var e={ADD:`add`,REMOVE:`remove`},t={PROPERTYCHANGE:`propertychange`},n={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`},r=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},i=r;function a(e,t,n){let r,i;n||=o;let a=0,s=e.length,c=!1;for(;a>1),i=+n(e[r],t),i<0?a=r+1:(s=r,c=!i);return c?a:~a}function o(e,t){return e>t?1:et?-1:0}function c(e,t,n){if(e[0]<=t)return 0;let r=e.length;if(t<=e[r-1])return r-1;if(typeof n==`function`){for(let i=1;i0?i-1:i}return r-1}if(n>0){for(let n=1;n0||n&&a===0)})}function p(){return!0}function m(){return!1}function h(){}function g(e){let t,n,r;return function(){let i=Array.prototype.slice.call(arguments);return(!n||this!==r||!d(i,n))&&(r=this,n=i,t=e.apply(this,arguments)),t}}function _(e){function t(){let t;try{t=e()}catch(e){return Promise.reject(e)}return t instanceof Promise?t:Promise.resolve(t)}return t()}function v(e){for(let t in e)delete e[t]}function y(e){let t;for(t in e)return!1;return!t}var b=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}},x=b,S=class extends i{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||={},r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e==`string`,n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let i=t?new x(e):e;i.target||=this.eventTarget_||this;let a=this.dispatching_||={},o=this.pendingRemovals_||={};n in a||(a[n]=0,o[n]=0),++a[n];let s;for(let e=0,t=r.length;e0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=h,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},C=S;function w(e,t,n,r,i){if(i){let i=n;n=function(a){return e.removeEventListener(t,n),i.call(r??this,a)}}else r&&r!==e&&(n=n.bind(r));let a={target:e,type:t,listener:n};return e.addEventListener(t,n),a}function T(e,t,n,r){return w(e,t,n,r,!0)}function E(e){e&&e.target&&(e.target.removeEventListener(e.type,e.listener),v(e))}var D=class extends C{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(n.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=Array(n);for(let i=0;i0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw Error(`Index out of bounds: `+t);this.unique_&&this.assertUnique_(n),this.array_.splice(t,0,n),this.updateLength_(),this.dispatchEvent(new ie(e.ADD,n,t))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let n=this.array_[t];return this.array_.splice(t,1),this.updateLength_(),this.dispatchEvent(new ie(e.REMOVE,n,t)),n}setAt(t,n){let r=this.getLength();if(t>=r){this.insertAt(t,n);return}if(t<0)throw Error(`Index out of bounds: `+t);this.unique_&&this.assertUnique_(n,t);let i=this.array_[t];this.array_[t]=n,this.dispatchEvent(new ie(e.REMOVE,i,t)),this.dispatchEvent(new ie(e.ADD,n,t))}updateLength_(){this.set(re.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;ni&&(c|=P.RIGHT),sa&&(c|=P.ABOVE),c===P.UNKNOWN&&(c=P.INTERSECTING),c}function F(){return[1/0,1/0,-1/0,-1/0]}function ye(e,t,n,r,i){return i?(i[0]=e,i[1]=t,i[2]=n,i[3]=r,i):[e,t,n,r]}function be(e){return ye(1/0,1/0,-1/0,-1/0,e)}function xe(e,t){let n=e[0],r=e[1];return ye(n,r,n,r,t)}function Se(e,t,n,r,i){let a=be(i);return Ee(a,e,t,n,r)}function Ce(e,t){return e[0]==t[0]&&e[2]==t[2]&&e[1]==t[1]&&e[3]==t[3]}function we(e,t){return t[0]e[2]&&(e[2]=t[2]),t[1]e[3]&&(e[3]=t[3]),e}function Te(e,t){t[0]e[2]&&(e[2]=t[0]),t[1]e[3]&&(e[3]=t[1])}function Ee(e,t,n,r,i){for(;nt[0]?r[0]=e[0]:r[0]=t[0],e[1]>t[1]?r[1]=e[1]:r[1]=t[1],e[2]=t[0]&&e[1]<=t[3]&&e[3]>=t[1]}function Be(e){return e[2]=o&&h<=c),!r&&a&P.RIGHT&&!(i&P.RIGHT)&&(g=p-(f-c)*m,r=g>=s&&g<=l),!r&&a&P.BELOW&&!(i&P.BELOW)&&(h=f-(p-s)/m,r=h>=o&&h<=c),!r&&a&P.LEFT&&!(i&P.LEFT)&&(g=p-(f-o)*m,r=g>=s&&g<=l)}return r}function Ue(e,t,n,r){if(Be(e))return be(n);let i=[];if(r>1){let t=e[2]-e[0],n=e[3]-e[1];for(let a=0;a=n[2])){let t=L(n),i=Math.floor((r[0]-n[0])/t),a=i*t;e[0]-=a,e[2]-=a}return e}function Ge(e,t,n){if(t.canWrapX()){let r=t.getExtent();if(!isFinite(e[0])||!isFinite(e[2]))return[[r[0],e[1],r[2],e[3]]];We(e,t);let i=L(r);if(L(e)>i&&!n)return[[r[0],e[1],r[2],e[3]]];if(e[0]r[2])return[[e[0],e[1],r[2],e[3]],[r[0],e[1],e[2]-i,e[3]]]}return[e]}function R(e,t,n){return Math.min(Math.max(e,t),n)}function Ke(e,t,n,r,i,a){let o=i-n,s=a-r;if(o!==0||s!==0){let c=((e-n)*o+(t-r)*s)/(o*o+s*s);c>1?(n=i,r=a):c>0&&(n+=o*c,r+=s*c)}return qe(e,t,n,r)}function qe(e,t,n,r){let i=n-e,a=r-t;return i*i+a*a}function Je(e){let t=e.length;for(let n=0;ni&&(i=t,r=a)}if(i===0)return null;let a=e[r];e[r]=e[n],e[n]=a;for(let r=n+1;r=0;r--){n[r]=e[r][t]/e[r][r];for(let i=r-1;i>=0;i--)e[i][t]-=e[i][r]*n[r]}return n}function Ye(e){return e*180/Math.PI}function Xe(e){return e*Math.PI/180}function Ze(e,t){let n=e%t;return n*t<0?n+t:n}function Qe(e,t,n){return e+n*(t-e)}function $e(e,t){let n=10**t;return Math.round(e*n)/n}function et(e,t){return Math.floor($e(e,t))}function tt(e,t){return Math.ceil($e(e,t))}function nt(e,t,n){if(e>=t&&eat.warn||console.warn(...e)}function ct(e,t){return e[0]+=+t[0],e[1]+=+t[1],e}function lt(e,t){let n=!0;for(let r=e.length-1;r>=0;--r)if(e[r]!=t[r]){n=!1;break}return n}function ut(e,t){let n=Math.cos(t),r=Math.sin(t),i=e[0]*n-e[1]*r,a=e[1]*n+e[0]*r;return e[0]=i,e[1]=a,e}function dt(e,t){return e[0]*=t,e[1]*=t,e}function ft(e,t){if(t.canWrapX()){let n=L(t.getExtent()),r=pt(e,t,n);r&&(e[0]-=r*n)}return e}function pt(e,t,n){let r=t.getExtent(),i=0;return t.canWrapX()&&(e[0]r[2])&&(n||=L(r),i=Math.floor((e[0]-r[0])/n)),i}const mt={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var ht=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent===void 0?null:e.extent,this.worldExtent_=e.worldExtent===void 0?null:e.worldExtent,this.axisOrientation_=e.axisOrientation===void 0?`enu`:e.axisOrientation,this.global_=e.global===void 0?!1:e.global,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||mt[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},gt=ht;const _t=6378137,vt=Math.PI*_t,yt=[-vt,-vt,vt,vt],bt=[-180,-85,180,85],xt=_t*Math.log(Math.tan(Math.PI/2));var St=class extends gt{constructor(e){super({code:e,units:`m`,extent:yt,global:!0,worldExtent:bt,getPointResolution:function(e,t){return e/Math.cosh(t[1]/_t)}})}};const Ct=[new St(`EPSG:3857`),new St(`EPSG:102100`),new St(`EPSG:102113`),new St(`EPSG:900913`),new St(`http://www.opengis.net/def/crs/EPSG/0/3857`),new St(`http://www.opengis.net/gml/srs/epsg.xml#3857`)];function wt(e,t,n,r){let i=e.length;n=n>1?n:2,r??=n,t===void 0&&(t=n>2?e.slice():Array(i));for(let n=0;nxt?r=xt:r<-xt&&(r=-xt),t[n+1]=r}return t}function Tt(e,t,n,r){let i=e.length;n=n>1?n:2,r??=n,t===void 0&&(t=n>2?e.slice():Array(i));for(let n=0;non&&(t=on);let r=Xe(t),i=Math.sin(r),a=Math.cos(r),o=i/a,s=o*o,c=s*s,l=Xe(e),u=un(n.number),d=Xe(u),f=nn/Math.sqrt(1-Rt*i**2),p=Vt*a**2,m=a*nt(l-d,-Math.PI,Math.PI),h=m*m,g=h*m,_=g*m,v=_*m,y=v*m,b=nn*(Jt*r-Yt*Math.sin(2*r)+Xt*Math.sin(4*r)-Zt*Math.sin(6*r)),x=Lt*f*(m+g/6*(1-s+p)+v/120*(5-18*s+c+72*p-58*Vt))+5e5,S=Lt*(b+f*o*(h/2+_/24*(5-s+9*p+4*p**2)+y/720*(61-58*s+c+600*p-330*Vt)));return n.north||(S+=1e7),[x,S]}function un(e){return(e-1)*6-180+3}const dn=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function fn(e){let t=0;for(let n of dn){let r=e.match(n);if(r){t=parseInt(r[1]);break}}if(!t)return null;let n=0,r=!1;return t>32700&&t<32761?n=t-32700:t>32600&&t<32661&&(r=!0,n=t-32600),n?{number:n,north:r}:null}function pn(e,t){return function(n,r,i,a){let o=n.length;i=i>1?i:2,a??=i,r||=i>2?n.slice():Array(o);for(let i=0;i=s?t[o+e]:a[e]}return n})}function On(e,t){return yn(),Nn(e,`EPSG:4326`,t===void 0?`EPSG:3857`:t)}function kn(e,t){if(e===t)return!0;let n=e.getUnits()===t.getUnits();if(e.getCode()===t.getCode())return n;let r=An(e,t);return r===bn&&n}function An(e,t){let n=e.getCode(),r=t.getCode(),i=It(n,r);if(i)return i;let a=null,o=null;for(let n of gn)a||=n(e),o||=n(t);if(!a&&!o)return null;let s=`EPSG:4326`;if(o)if(a)i=jn(a.inverse,o.forward);else{let e=It(n,s);e&&(i=jn(e,o.forward))}else{let e=It(s,r);e&&(i=jn(a.inverse,e))}return i&&(xn(e),xn(t),Ft(e,t,i)),i}function jn(e,t){return function(n,r,i,a){return r=e(n,r,i,a),t(r,r,i,a)}}function Mn(e,t){let n=z(e),r=z(t);return An(n,r)}function Nn(e,t,n){let r=Mn(t,n);if(!r){let e=z(t).getCode(),r=z(n).getCode();throw Error(`No transform available between ${e} and ${r}`)}return r(e,void 0,e.length)}function Pn(e,t,n,r){let i=Mn(t,n);return Ue(e,i,void 0,r)}let Fn=null;function In(){return Fn}function Ln(e,t){return Fn?Nn(e,t,Fn):e}function Rn(e,t){return Fn?Nn(e,Fn,t):(vn&&!lt(e,[0,0])&&e[0]>=-180&&e[0]<=180&&e[1]>=-90&&e[1]<=90&&(vn=!1,st(`Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.`)),e)}function zn(e,t){return Fn?Pn(e,t,Fn):e}function Bn(e,t){return Fn?Pn(e,Fn,t):e}function Vn(e,t){if(!Fn)return e;let n=z(t).getMetersPerUnit(),r=Fn.getMetersPerUnit();return n&&r?e*n/r:e}function Hn(){wn(Ct),wn(At),Tn(At,Ct,wt,Tt)}Hn();function Un(){return[1,0,0,1,0,0]}function Wn(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e}function B(e,t){let n=t[0],r=t[1];return t[0]=e[0]*n+e[2]*r+e[4],t[1]=e[1]*n+e[3]*r+e[5],t}function Gn(e,t,n,r,i,a,o,s){let c=Math.sin(a),l=Math.cos(a);return e[0]=r*l,e[1]=i*c,e[2]=-r*c,e[3]=i*l,e[4]=o*r*l-s*r*c+t,e[5]=o*i*c+s*i*l+n,e}function Kn(e,t){let n=qn(t);N(n!==0,`Transformation matrix cannot be inverted`);let r=t[0],i=t[1],a=t[2],o=t[3],s=t[4],c=t[5];return e[0]=o/n,e[1]=-i/n,e[2]=-a/n,e[3]=r/n,e[4]=(a*c-o*s)/n,e[5]=-(r*c-i*s)/n,e}function qn(e){return e[0]*e[3]-e[1]*e[2]}const Jn=[1e5,1e5,1e5,1e5,2,2];function Yn(e){let t=`matrix(`+e.join(`, `)+`)`;return t}function Xn(e){let t=e.substring(7,e.length-1).split(`,`);return t.map(parseFloat)}function Zn(e,t){let n=Xn(e),r=Xn(t);for(let e=0;e<6;++e)if(Math.round((n[e]-r[e])*Jn[e])!==0)return!1;return!0}function Qn(e,t,n,r,i,a,o){a||=[],o||=2;let s=0;for(let c=t;c{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return A()}closestPointXY(e,t,n,r){return A()}containsXY(e,t){return this.closestPointXY(e,t,rr,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t||=[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return A()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let e=this.computeExtent(this.extent_);(isNaN(e[0])||isNaN(e[1]))&&be(e),this.extentRevision_=this.getRevision()}return Ve(this.extent_,e)}rotate(e,t){A()}scale(e,t,n){A()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return A()}getType(){return A()}applyTransform(e){A()}intersectsExtent(e){return A()}translate(e,t){A()}transform(e,t){let n=z(e),r=n.getUnits()==`tile-pixels`?function(e,r,i){let a=n.getExtent(),o=n.getWorldExtent(),s=I(o)/I(a);Gn(nr,o[0],o[3],s,-s,0,0,0);let c=Qn(e,0,e.length,i,nr,r),l=Mn(n,t);return l?l(c,c,i):c}:Mn(n,t);return this.applyTransform(r),this}},ar=ir,or=class extends ar{constructor(){super(),this.layout=`XY`,this.stride=2,this.flatCoordinates}computeExtent(e){return Se(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return A()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e),n=t.getFlatCoordinates();return n.length1)d=n;else if(f>0){for(let i=0;ii&&(i=s),a=n,o=r}return i}function gr(e,t,n,r,i){for(let a=0,o=n.length;a0;){let n=l.pop(),a=l.pop(),o=0,s=e[a],d=e[a+1],f=e[n],p=e[n+1];for(let t=a+r;to&&(u=t,o=i)}o>i&&(c[(u-t)/r]=1,a+r0&&m>f)&&(p<0&&h0&&h>p)){l=n,u=d;continue}a[o++]=l,a[o++]=u,s=l,c=u,l=n,u=d}return a[o++]=l,a[o++]=u,o}function Mr(e,t,n,r,i,a,o,s){for(let c=0,l=n.length;ca&&(n-s)*(a-c)-(i-s)*(r-c)>0&&o++:r<=a&&(n-s)*(a-c)-(i-s)*(r-c)<0&&o--,s=n,c=r}return o!==0}function Br(e,t,n,r,i,a){if(n.length===0||!zr(e,t,n[0],r,i,a))return!1;for(let t=1,o=n.length;tv&&(u=(d+f)/2,Br(e,t,n,r,u,h)&&(_=u,v=i)),d=f}return isNaN(_)&&(_=i[a]),s?(s.push(_,h,v),s):[_,h,v]}function Ur(e,t,n,r,i){let a=[];for(let o=0,s=n.length;o=i[0]&&a[2]<=i[2]||a[1]>=i[1]&&a[3]<=i[3]?!0:Wr(e,t,n,r,function(e,t){return He(i,e,t)}):!1}function Kr(e,t,n,r,i){for(let a=0,o=n.length;a0}function Qr(e,t,n,r,i){i=i===void 0?!1:i;for(let a=0,o=n.length;a1?s:2,o||=Array(s);for(let t=0;t>1;i.0031308?e**(1/2.4)*269.025-14.025:e*3294.6}function Ui(e){return e>.2068965?e**3:(e-4/29)*(108/841)}function Wi(e){return e>10.314724?((e+14.025)/269.025)**2.4:e/3294.6}function Gi(e){return e>.0088564?e**(1/3):e/(108/841)+4/29}function Ki(e){let t=Wi(e[0]),n=Wi(e[1]),r=Wi(e[2]),i=Gi(t*.222488403+n*.716873169+r*.06060791),a=500*(Gi(t*.452247074+n*.399439023+r*.148375274)-i),o=200*(i-Gi(t*.016863605+n*.117638439+r*.865350722)),s=Math.atan2(o,a)*(180/Math.PI);return[116*i-16,Math.sqrt(a*a+o*o),s<0?s+360:s,e[3]]}function qi(e){let t=(e[0]+16)/116,n=e[1],r=e[2]*Math.PI/180,i=Ui(t),a=Ui(t+n/500*Math.cos(r)),o=Ui(t-n/200*Math.sin(r)),s=Hi(a*3.021973625-i*1.617392459-o*.404875592),c=Hi(a*-.943766287+i*1.916279586+o*.027607165),l=Hi(a*.069407491-i*.22898585+o*1.159737864);return[R(s+.5|0,0,255),R(c+.5|0,0,255),R(l+.5|0,0,255),e[3]]}function Ji(e){if(e===`none`)return Di;if(zi.hasOwnProperty(e))return zi[e];if(Bi>=Ri){let e=0;for(let t in zi)e++&3||(delete zi[t],--Bi)}let t=Ii(e);t.length!==4&&Fi(e);for(let n of t)isNaN(n)&&Fi(e);return zi[e]=t,++Bi,t}function Yi(e){return Array.isArray(e)?e:Ji(e)}function Xi(e){let t=e[0];t!=(t|0)&&(t=t+.5|0);let n=e[1];n!=(n|0)&&(n=n+.5|0);let r=e[2];r!=(r|0)&&(r=r+.5|0);let i=e[3]===void 0?1:Math.round(e[3]*1e3)/1e3;return`rgba(`+t+`,`+n+`,`+r+`,`+i+`)`}function Zi(e,t,r){let i=e,a=!0,o=!1,s=!1,c=[T(i,n.LOAD,function(){s=!0,o||t()})];return i.src&&yi?(o=!0,i.decode().then(function(){a&&t()}).catch(function(e){a&&(s?t():r())})):c.push(T(i,n.ERROR,r)),function(){a=!1,c.forEach(E)}}function Qi(e,t){return new Promise((n,r)=>{function i(){o(),n(e)}function a(){o(),r(Error(`Image load error`))}function o(){e.removeEventListener(`load`,i),e.removeEventListener(`error`,a)}e.addEventListener(`load`,i),e.addEventListener(`error`,a),t&&(e.src=t)})}function $i(e,t){return t&&(e.src=t),e.src&&yi?new Promise((t,n)=>e.decode().then(()=>t(e)).catch(r=>e.complete&&e.width?t(e):n(r))):Qi(e)}var ea=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];!(e++&3)&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=ta(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=ta(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,i){let a=ta(e,t,n),o=a in this.cache_;this.cache_[a]=r,i&&(r.getImageState()===V.IDLE&&r.load(),r.getImageState()===V.LOADING?r.ready().then(()=>{this.patternCache_[a]=Si().createPattern(r.getImage(1),`repeat`)}):this.patternCache_[a]=Si().createPattern(r.getImage(1),`repeat`)),o||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function ta(e,t,n){let r=n?Yi(n):`null`;return t+`:`+e+`:`+r}const na=new ea;let ra=null;var ia=class extends C{constructor(e,t,n,r,i){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=i,this.imageState_=r===void 0?V.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===V.LOADED){ra||=H(1,1,void 0,{willReadFrequently:!0}),ra.drawImage(this.image_,0,0);try{ra.getImageData(0,0,1,1),this.tainted_=!1}catch{ra=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(n.CHANGE)}handleImageError_(){this.imageState_=V.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=V.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=H(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===V.IDLE){this.image_||this.initializeImage_(),this.imageState_=V.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&$i(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==V.LOADED)return;let t=this.image_,n=H(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation=`multiply`,n.fillStyle=Li(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation=`destination-in`,n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||=new Promise(e=>{if(this.imageState_===V.LOADED||this.imageState_===V.ERROR)e();else{let t=()=>{(this.imageState_===V.LOADED||this.imageState_===V.ERROR)&&(this.removeEventListener(n.CHANGE,t),e())};this.addEventListener(n.CHANGE,t)}}),this.ready_}};function aa(e,t,n,r,i,a){let o=t===void 0?void 0:na.get(t,n,i);return o||(o=new ia(e,e&&`src`in e?e.src||void 0:t,n,r,i),na.set(t,n,i,o,a)),a&&o&&!na.getPattern(t,n,i)&&na.set(t,n,i,o,a),o}var oa=ia;function sa(e){return e?Array.isArray(e)?Xi(e):typeof e==`object`&&`src`in e?ca(e):e:null}function ca(e){if(!e.offset||!e.size)return na.getPattern(e.src,`anonymous`,e.color);let t=e.src+`:`+e.offset,n=na.getPattern(t,void 0,e.color);if(n)return n;let r=na.get(e.src,`anonymous`,null);if(r.getImageState()!==V.LOADED)return null;let i=H(e.size[0],e.size[1]);return i.drawImage(r.getImage(1),e.offset[0],e.offset[1],e.size[0],e.size[1],0,0,e.size[0],e.size[1]),aa(i.canvas,t,void 0,V.LOADED,e.color,!0),na.getPattern(t,void 0,e.color)}var la=class{drawCustom(e,t,n,r,i){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},ua=la;const da=`ol-hidden`,fa=`ol-unselectable`,pa=`ol-collapsed`,ma=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-z0-9]+?)\\s*$`].join(``),`i`),ha=[`style`,`variant`,`weight`,`size`,`lineHeight`,`family`],ga={normal:400,bold:700},_a=function(e){let t=e.match(ma);if(!t)return null;let n={lineHeight:`normal`,size:`1.2em`,style:`normal`,weight:`400`,variant:`normal`};for(let e=0,r=ha.length;ee.trim().replace(/^['"]|['"]$/g,``)),n},va=`10px sans-serif`,ya=`#000`,ba=`round`,xa=[],Sa=0,Ca=`round`,wa=10,Ta=`#000`,Ea=`center`,Da=`middle`,Oa=[0,0,0,0],ka=1,Aa=new ne;let ja=null,Ma;const Na={},Pa=new Set([`serif`,`sans-serif`,`monospace`,`cursive`,`fantasy`,`system-ui`,`ui-serif`,`ui-sans-serif`,`ui-monospace`,`ui-rounded`,`emoji`,`math`,`fangsong`]);function Fa(e,t,n){return`${e} ${t} 16px "${n}"`}const Ia=(function(){let e=100,t,n;async function r(e){await n.ready;let t=await n.load(e);if(t.length===0)return!1;let r=_a(e),i=r.families[0].toLowerCase(),a=r.weight;return t.some(e=>{let t=e.family.replace(/^['"]|['"]$/g,``).toLowerCase(),n=ga[e.weight]||e.weight;return t===i&&e.style===r.style&&n==a})}async function i(){await n.ready;let a=!0,o=Aa.getProperties(),s=Object.keys(o).filter(t=>o[t]=0;--t){let n=s[t],i=o[n];iMath.max(t,za(e,n)),0);return n[t]=r,r}function Va(e,t){let n=[],r=[],i=[],a=0,o=0,s=0,c=0;for(let l=0,u=t.length;l<=u;l+=2){let d=t[l];if(d===` `||l===u){a=Math.max(a,o),i.push(o),o=0,s+=c,c=0;continue}let f=t[l+1]||e.font,p=za(f,d);n.push(p),o+=p;let m=La(f);r.push(m),c=Math.max(c,m)}return{width:a,height:s,widths:n,heights:r,lineWidths:i}}function Ha(e,t,n,r,i,a,o,s,c,l,u){e.save(),n!==1&&(e.globalAlpha===void 0?e.globalAlpha=e=>e.globalAlpha*=n:e.globalAlpha*=n),t&&e.transform.apply(e,t),r.contextInstructions?(e.translate(c,l),e.scale(u[0],u[1]),Ua(r,e)):u[0]<0||u[1]<0?(e.translate(c,l),e.scale(u[0],u[1]),e.drawImage(r,i,a,o,s,0,0,o,s)):e.drawImage(r,i,a,o,s,c,l,o*u[0],s*u[1]),e.restore()}function Ua(e,t){let n=e.contextInstructions;for(let e=0,r=n.length;ee*this.pixelRatio_),lineDashOffset:(i||Sa)*this.pixelRatio_,lineJoin:a===void 0?Ca:a,lineWidth:(o===void 0?ka:o)*this.pixelRatio_,miterLimit:s===void 0?wa:s,strokeStyle:sa(e||Ta)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),i=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=i[0],this.imageOriginY_=i[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let a=e.getScaleArray();this.imageScale_=[a[0]*this.pixelRatio_/n,a[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_=``;else{let t=e.getFill();if(!t)this.textFillState_=null;else{let e=t.getColor();this.textFillState_={fillStyle:sa(e||ya)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let e=n.getColor(),t=n.getLineCap(),r=n.getLineDash(),i=n.getLineDashOffset(),a=n.getLineJoin(),o=n.getWidth(),s=n.getMiterLimit();this.textStrokeState_={lineCap:t===void 0?ba:t,lineDash:r||xa,lineDashOffset:i||Sa,lineJoin:a===void 0?Ca:a,lineWidth:o===void 0?ka:o,miterLimit:s===void 0?wa:s,strokeStyle:sa(e||Ta)}}let r=e.getFont(),i=e.getOffsetX(),a=e.getOffsetY(),o=e.getRotateWithView(),s=e.getRotation(),c=e.getScaleArray(),l=e.getText(),u=e.getTextAlign(),d=e.getTextBaseline();this.textState_={font:r===void 0?va:r,textAlign:u===void 0?Ea:u,textBaseline:d===void 0?Da:d},this.text_=l===void 0?``:Array.isArray(l)?l.reduce((e,t,n)=>e+=n%2?` `:t,``):l,this.textOffsetX_=i===void 0?0:this.pixelRatio_*i,this.textOffsetY_=a===void 0?0:this.pixelRatio_*a,this.textRotateWithView_=o===void 0?!1:o,this.textRotation_=s===void 0?0:s,this.textScale_=[this.pixelRatio_*c[0],this.pixelRatio_*c[1]]}}},Ga=Wa;const Ka=.5,qa={Point:ao,LineString:no,Polygon:so,MultiPoint:oo,MultiLineString:ro,MultiPolygon:io,GeometryCollection:to,Circle:Za};function Ja(e,t){return parseInt(M(e),10)-parseInt(M(t),10)}function Ya(e,t){let n=Xa(e,t);return n*n}function Xa(e,t){return Ka*e/t}function Za(e,t,n,r,i){let a=n.getFill(),o=n.getStroke();if(a||o){let s=e.getBuilder(n.getZIndex(),`Circle`);s.setFillStrokeStyle(a,o),s.drawCircle(t,r,i)}let s=n.getText();if(s&&s.getText()){let i=e.getBuilder(n.getZIndex(),`Text`);i.setTextStyle(s),i.drawText(t,r)}}function Qa(e,t,n,r,i,a,o,s){let c=[],l=n.getImage();if(l){let e=!0,t=l.getImageState();t==V.LOADED||t==V.ERROR?e=!1:t==V.IDLE&&l.load(),e&&c.push(l.ready())}let u=n.getFill();u&&u.loading()&&c.push(u.ready());let d=c.length>0;return d&&Promise.all(c).then(()=>i(null)),$a(e,t,n,r,a,o,s),d}function $a(e,t,n,r,i,a,o){let s=n.getGeometryFunction()(t);if(!s)return;let c=s.simplifyTransformed(r,i),l=n.getRenderer();if(l)eo(e,c,n,t,o);else{let r=qa[c.getType()];r(e,c,n,t,o,a)}}function eo(e,t,n,r,i){if(t.getType()==`GeometryCollection`){let a=t.getGeometries();for(let t=0,o=a.length;t=200&&s.status<300){let e=t.getType();try{let r;e==`text`||e==`json`?r=s.responseText:e==`xml`?r=s.responseXML||s.responseText:e==`arraybuffer`&&(r=s.response),r?a(t.readFeatures(r,{extent:n,featureProjection:i}),t.readProjection(r)):o()}catch{o()}}else o()},s.onerror=o,s.send()}function uo(e,t){return function(n,r,i,a,o){lo(e,t,n,r,i,(e,t)=>{this.addFeatures(e),a!==void 0&&a(e)},()=>{this.changed(),o!==void 0&&o()})}}function fo(e,t){return[[-1/0,-1/0,1/0,1/0]]}function po(e,t,n,r){let i=[],a=F();for(let o=0,s=n.length;oe.clone())}var go=mo,_o=class e extends ur{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let t=e,n=[],r=[];for(let e=0,i=t.length;e{if(t===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),n&&this.simplifiedGeometry_.applyTransform(n);let r=this.simplifiedGeometry_.getFlatCoordinates(),i;switch(this.type_){case`LineString`:r.length=Or(r,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,t,r,0),i=[r.length];break;case`MultiLineString`:i=[],r.length=kr(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,t,r,0,i);break;case`Polygon`:i=[],r.length=Mr(r,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(t),r,0,i);break;default:}return i&&(this.simplifiedGeometry_=new e(this.type_,r,i,2,this.properties_,this.id_)),this.squaredTolerance_=t,this.simplifiedGeometry_}),this}};wo.prototype.getFlatCoordinates=wo.prototype.getOrientedFlatCoordinates;var To=wo;function Eo(e,t,n=0,r=e.length-1,i=Oo){for(;r>n;){if(r-n>600){let a=r-n+1,o=t-n+1,s=Math.log(a),c=.5*Math.exp(2*s/3),l=.5*Math.sqrt(s*c*(a-c)/a)*(o-a/2<0?-1:1),u=Math.max(n,Math.floor(t-o*c/a+l)),d=Math.min(r,Math.floor(t+(a-o)*c/a+l));Eo(e,t,u,d,i)}let a=e[t],o=n,s=r;for(Do(e,n,t),i(e[r],a)>0&&Do(e,n,r);o0;)s--}i(e[n],a)===0?Do(e,n,s):(s++,Do(e,s,r)),s<=t&&(n=s+1),t<=s&&(r=s-1)}}function Do(e,t,n){let r=e[t];e[t]=e[n],e[n]=r}function Oo(e,t){return et?1:0}var ko=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!Vo(e,t))return n;let r=this.toBBox,i=[];for(;t;){for(let a=0;a=0&&i[t].children.length>this._maxEntries;)this._split(i,t),t--;this._adjustParentBBoxes(r,i,t)}_split(e,t){let n=e[t],r=n.children.length,i=this._minEntries;this._chooseSplitAxis(n,i,r);let a=this._chooseSplitIndex(n,i,r),o=Ho(n.children.splice(a,n.children.length-a));o.height=n.height,o.leaf=n.leaf,jo(n,this.toBBox),jo(o,this.toBBox),t?e[t-1].children.push(o):this._splitRoot(n,o)}_splitRoot(e,t){this.data=Ho([e,t]),this.data.height=e.height+1,this.data.leaf=!1,jo(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,i=1/0,a=1/0;for(let o=t;o<=n-t;o++){let t=Mo(e,0,o,this.toBBox),s=Mo(e,o,n,this.toBBox),c=zo(t,s),l=Io(t)+Io(s);c=t;r--){let t=e.children[r];No(o,e.leaf?i(t):t),s+=Lo(o)}return s}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)No(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():jo(e[t],this.toBBox)}};function Ao(e,t,n){if(!n)return t.indexOf(e);for(let r=0;r=e.minX&&t.maxY>=e.minY}function Ho(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function Uo(e,t,n,r,i){let a=[t,n];for(;a.length;){if(n=a.pop(),t=a.pop(),n-t<=r)continue;let o=t+Math.ceil((n-t)/r/2)*r;Eo(e,o,t,n,i),a.push(t,o,o,n)}}var Wo=class{constructor(e){this.rbush_=new ko(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[M(t)]=n}load(e,t){let n=Array(t.length);for(let r=0,i=t.length;re):null}var Jo=Ko,Yo={ADDFEATURE:`addfeature`,CHANGEFEATURE:`changefeature`,CLEAR:`clear`,REMOVEFEATURE:`removefeature`,FEATURESLOADSTART:`featuresloadstart`,FEATURESLOADEND:`featuresloadend`,FEATURESLOADERROR:`featuresloaderror`},Xo=class extends x{constructor(e,t,n){super(e),this.feature=t,this.features=n}},Zo=class extends Jo{constructor(e){e||={},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:`ready`,wrapX:e.wrapX===void 0?!0:e.wrapX}),this.on,this.once,this.un,this.loader_=h,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader===void 0?this.url_!==void 0&&(N(this.format_,"`format` must be set when `url` is set"),this.loader_=uo(this.url_,this.format_)):this.loader_=e.loader,this.strategy_=e.strategy===void 0?fo:e.strategy;let t=e.useSpatialIndex===void 0?!0:e.useSpatialIndex;this.featuresRtree_=t?new Go:null,this.loadedExtentsRtree_=new Go,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new oe(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=M(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let t=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(t,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Xo(Yo.ADDFEATURE,e))}setupChangeEvents_(e,r){r instanceof To||(this.featureChangeKeys_[e]=[w(r,n.CHANGE,this.handleFeatureChange_,this),w(r,t.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let e=String(t.getId());if(!(e in this.idIndex_))this.idIndex_[e]=t;else if(t instanceof To){let r=this.idIndex_[e];r instanceof To?Array.isArray(r)?r.push(t):this.idIndex_[e]=[r,t]:n=!1}else n=!1}return n&&(N(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let t=0,r=e.length;t{n||(n=!0,this.addFeature(e.element),n=!1)}),t.addEventListener(e.REMOVE,e=>{n||(n=!0,this.removeFeature(e.element),n=!1)}),this.featuresCollection_=t}clear(e){if(e){for(let e in this.featureChangeKeys_){let t=this.featureChangeKeys_[e];t.forEach(E)}this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_)for(let e in this.featuresRtree_.forEach(e=>{this.removeFeatureInternal(e)}),this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[e]);this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Xo(Yo.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(n){let r=n.getGeometry();if(r instanceof To||r.intersectsCoordinate(e))return t(n)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof To||r.intersectsExtent(e)){let e=t(n);if(e)return e}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),y(this.nullGeometryFeatures_)||u(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(e){t.push(e)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){let n=t&&t.canWrapX()&&this.getWrapX();if(!n)return this.featuresRtree_.getInExtent(e);let r=Ge(e,t);return[].concat(...r.map(e=>this.featuresRtree_.getInExtent(e)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],i=null,a=[NaN,NaN],o=1/0,s=[-1/0,-1/0,1/0,1/0];return t||=p,this.featuresRtree_.forEachInExtent(s,function(e){if(t(e)){let t=e.getGeometry(),c=o;if(o=t instanceof To?0:t.closestPointXY(n,r,a,o),o{--this.loadingExtentsCount_,this.dispatchEvent(new Xo(Yo.FEATURESLOADEND,void 0,e))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Xo(Yo.FEATURESLOADERROR))}),r.insert(a,{extent:a.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(t){if(Ce(t.extent,e))return t});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===V.IDLE&&t.load(),t.getImageState()===V.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?M(e):typeof e==`object`&&`src`in e?e.src+`:`+e.offset:Yi(e).toString():``}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},es=$o,ts=class e{constructor(e){e||={},this.color_=e.color===void 0?null:e.color,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash===void 0?null:e.lineDash,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let t=this.getColor();return new e({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(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},ns=ts;function rs(e){return e[0]>0&&e[1]>0}function os(e,t,n){return n===void 0&&(n=[0,0]),n[0]=e[0]*t+.5|0,n[1]=e[1]*t+.5|0,n}function ss(e,t){return Array.isArray(e)?e:(t===void 0?t=[e,e]:(t[0]=e,t[1]=e),t)}var cs=class e{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=ss(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let t=this.getScale();return new e({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 A()}getImage(e){return A()}getHitDetectionImage(){return A()}getPixelRatio(e){return 1}getImageState(){return A()}getImageSize(){return A()}getOrigin(){return A()}getSize(){return A()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=ss(e)}listenImageChange(e){A()}load(){A()}unlistenImageChange(e){A()}ready(){return Promise.resolve()}},ls=cs,us=class e extends ls{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView===void 0?!1:e.rotateWithView,rotation:e.rotation===void 0?0:e.rotation,scale:e.scale===void 0?1:e.scale,displacement:e.displacement===void 0?[0,0]:e.displacement,declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill===void 0?null:e.fill,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle===void 0?0:e.angle,this.stroke_=e.stroke===void 0?null:e.stroke,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?V.LOADING:V.LOADED,this.imageState_===V.LOADING&&this.ready().then(()=>this.imageState_=V.LOADED),this.render()}clone(){let t=this.getScale(),n=new e({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(t)?t.slice():t,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return n.setOpacity(this.getOpacity()),n}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||=this.createHitDetectionCanvas_(this.renderOptions_),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(`,`),r=na.get(n,null,null)?.getImage(1);if(!r){let t=this.renderOptions_,i=Math.ceil(t.size*e),a=H(i,i);this.draw_(t,a,e),r=a.canvas,na.set(n,null,null,new oa(r,void 0,null,V.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!==`bevel`&&e!==`miter`)return t;let r=this.radius,i=this.radius2_===void 0?r:this.radius2_;if(rs&&(this.instructions.push([U.CUSTOM,s,l,e,n,Tr,i]),this.hitDetectionInstructions.push([U.CUSTOM,s,l,e,r||n,Tr,i]));break;case`Point`:c=e.getFlatCoordinates(),this.coordinates.push(c[0],c[1]),l=this.coordinates.length,this.instructions.push([U.CUSTOM,s,l,e,n,void 0,i]),this.hitDetectionInstructions.push([U.CUSTOM,s,l,e,r||n,void 0,i]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[U.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[U.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,i,a=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[U.SET_FILL_STYLE,t];return typeof t!=`string`&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[U.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!=`string`||e.currentFillStyle!=n)&&(this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,i=e.lineDash,a=e.lineDashOffset,o=e.lineJoin,s=e.lineWidth,c=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||i!=e.currentLineDash&&!d(e.currentLineDash,i)||e.currentLineDashOffset!=a||e.currentLineJoin!=o||e.currentLineWidth!=s||e.currentMiterLimit!=c)&&(t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=i,e.currentLineDashOffset=a,e.currentLineJoin=o,e.currentLineWidth=s,e.currentMiterLimit=c)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[U.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=pe(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;fe(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},As=ks,js=class extends As{constructor(e,t,n,r){super(e,t,n,r),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(e,t,n){if(!this.image_||this.maxExtent&&!he(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),i=e.getStride(),a=this.coordinates.length,o=this.appendFlatPointCoordinates(r,i);this.instructions.push([U.DRAW_IMAGE,a,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([U.DRAW_IMAGE,a,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(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),i=[];for(let t=0,n=r.length;t=e){let t=(e-s+d)/d,f=Qe(n,l,t),p=Qe(r,u,t);c.push(f,p),a.push(c),c=[f,p],s==e&&(o+=i),s=0}else if(s0&&a.push(c),a}function Rs(e,t,n,r,i){let a=n,o=n,s=0,c=0,l=n,u,d,f,p,m,h,g,_,v,y;for(d=n;de&&(c>s&&(s=c,a=l,o=d),c=0,l=d-i)),f=p,g=v,_=y),m=n,h=r}return c+=p,c>s?[l,d]:[a,o]}const zs={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1};var Bs=class extends As{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_=``,this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[ya]={fillStyle:ya},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_=``,this.fillKey_=``,this.strokeKey_=``,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,i=this.textStrokeState_,a=this.textState_;if(this.text_===``||!a||!r&&!i)return;let o=this.coordinates,s=o.length,c=e.getType(),l=null,u=e.getStride();if(a.placement===`line`&&(c==`LineString`||c==`MultiLineString`||c==`Polygon`||c==`MultiPolygon`)){if(!ze(this.maxExtent,e.getExtent()))return;let r;if(l=e.getFlatCoordinates(),c==`LineString`)r=[l.length];else if(c==`MultiLineString`)r=e.getEnds();else if(c==`Polygon`)r=e.getEnds().slice(0,1);else if(c==`MultiPolygon`){let t=e.getEndss();r=[];for(let e=0,n=t.length;e{let r=o[(e+n)*2]===l[n*u]&&o[(e+n)*2+1]===l[n*u+1];return r||--e,r})}this.saveTextStates_();let d=a.backgroundFill?this.createFill(this.fillStyleToState(a.backgroundFill)):null,f=a.backgroundStroke?this.createStroke(this.strokeStyleToState(a.backgroundStroke)):null;this.beginGeometry(e,t,n);let p=a.padding;if(p!=Oa&&(a.scale[0]<0||a.scale[1]<0)){let e=a.padding[0],t=a.padding[1],n=a.padding[2],r=a.padding[3];a.scale[0]<0&&(t=-t,r=-r),a.scale[1]<0&&(e=-e,n=-n),p=[e,t,n,r]}let m=this.pixelRatio;this.instructions.push([U.DRAW_IMAGE,s,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,p==Oa?Oa:p.map(function(e){return e*m}),d,f,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]);let h=1/m,g=d?d.slice(0):null;g&&(g[1]=ya),this.hitDetectionInstructions.push([U.DRAW_IMAGE,s,i,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[h,h],NaN,this.declutterMode_,this.declutterImageWithText_,p,g,f,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?ya:this.fillKey_,this.textOffsetX_,this.textOffsetY_,r]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let i=this.textKey_;i in this.textStates||(this.textStates[i]={font:t.font,textAlign:t.textAlign||Ea,justify:t.justify,textBaseline:t.textBaseline||Da,scale:t.scale});let a=this.fillKey_;n&&(a in this.fillStates||(this.fillStates[a]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,i=this.strokeKey_,a=this.textKey_,o=this.fillKey_;this.saveTextStates_();let s=this.pixelRatio,c=zs[r.textBaseline],l=this.textOffsetY_*s,u=this.text_,d=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([U.DRAW_CHARS,e,t,c,r.overflow,o,r.maxAngle,s,l,i,d*s,u,a,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([U.DRAW_CHARS,e,t,c,r.overflow,o&&ya,r.maxAngle,s,l,i,d*s,u,a,1/s,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,i;if(!e)this.text_=``;else{let t=e.getFill();t?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=sa(t.getColor()||ya)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)i=null,this.textStrokeState_=i;else{i=this.textStrokeState_,i||(i={},this.textStrokeState_=i);let e=a.getLineDash(),t=a.getLineDashOffset(),n=a.getWidth(),r=a.getMiterLimit();i.lineCap=a.getLineCap()||ba,i.lineDash=e?e.slice():xa,i.lineDashOffset=t===void 0?Sa:t,i.lineJoin=a.getLineJoin()||Ca,i.lineWidth=n===void 0?ka:n,i.miterLimit=r===void 0?wa:r,i.strokeStyle=sa(a.getColor()||Ta)}n=this.textState_;let o=e.getFont()||va;Ia(o);let s=e.getScaleArray();n.overflow=e.getOverflow(),n.font=o,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Da,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Oa,n.scale=s===void 0?[1,1]:s;let c=e.getOffsetX(),l=e.getOffsetY(),u=e.getRotateWithView(),d=e.getKeepUpright(),f=e.getRotation();this.text_=e.getText()||``,this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=l===void 0?0:l,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=d===void 0?!0:d,this.textRotation_=f===void 0?0:f,this.strokeKey_=i?(typeof i.strokeStyle==`string`?i.strokeStyle:M(i.strokeStyle))+i.lineCap+i.lineDashOffset+`|`+i.lineWidth+i.lineJoin+i.miterLimit+`[`+i.lineDash.join()+`]`:``,this.textKey_=n.font+n.scale+(n.textAlign||`?`)+(n.repeat||`?`)+(n.justify||`?`)+(n.textBaseline||`?`),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle==`string`?r.fillStyle:`|`+M(r.fillStyle):``}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},Vs=Bs;const Hs={Circle:Is,Default:As,Image:Ms,LineString:Ps,Polygon:Is,Text:Vs};var Us=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let i=n[r].finish();e[t][r]=i}}return e}getBuilder(e,t){let n=e===void 0?`0`:e.toString(),r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let i=r[t];if(i===void 0){let e=Hs[t];i=new e(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=i}return i}},Ws=Us;function Gs(e,t,n,r,i,a,o,s,c,l,u,d,f=!0){let p=e[t],m=e[t+1],h=0,g=0,_=0,v=0;function y(){h=p,g=m,t+=r,p=e[t],m=e[t+1],v+=_,_=Math.sqrt((p-h)*(p-h)+(m-g)*(m-g))}do y();while(te[2]}else O=x>E;let k=Math.PI,A=[],j=C+r===t;t=C,_=0,v=w,p=e[t],m=e[t+1];let M;if(j){y(),M=Math.atan2(m-g,p-h),O&&(M+=M>0?-k:k);let e=(E+x)/2,t=(D+S)/2;return A[0]=[e,t,(T-a)/2,M,i],A}i=i.replace(/\n/g,` `);for(let e=0,d=i.length;e0?-k:k),M!==void 0){let e=f-M;if(e+=e>k?-2*k:e<-k?2*k:0,Math.abs(e)>o)return null}M=f;let x=e,S=0;for(;e{if(typeof Si()[t]==`function`)return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&e.push(` `,``),e.push(t,``),e}function rc(e,t,n){return n%2==0&&(e+=t),e}var ic=class{constructor(e,t,n,r,i){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Un(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=i?new qs:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let i=e+t+n+r;if(this.labels_[i])return this.labels_[i];let a=r?this.strokeStates[r]:null,o=n?this.fillStates[n]:null,s=this.textStates[t],c=this.pixelRatio,l=[s.scale[0]*c,s.scale[1]*c],u=s.justify?zs[s.justify]:tc(Array.isArray(e)?e[0]:e,s.textAlign||Ea),d=r&&a.lineWidth?a.lineWidth:0,f=Array.isArray(e)?e:String(e).split(` `).reduce(nc,[]),{width:p,height:m,widths:h,heights:g,lineWidths:_}=Va(s,f),v=p+d,y=[],b=(v+2)*l[0],x=(m+d)*l[1],S={width:b<0?Math.floor(b):Math.ceil(b),height:x<0?Math.floor(x):Math.ceil(x),contextInstructions:y};(l[0]!=1||l[1]!=1)&&y.push(`scale`,l),r&&(y.push(`strokeStyle`,a.strokeStyle),y.push(`lineWidth`,d),y.push(`lineCap`,a.lineCap),y.push(`lineJoin`,a.lineJoin),y.push(`miterLimit`,a.miterLimit),y.push(`setLineDash`,[a.lineDash]),y.push(`lineDashOffset`,a.lineDashOffset)),n&&y.push(`fillStyle`,o.fillStyle),y.push(`textBaseline`,`middle`),y.push(`textAlign`,`center`);let C=.5-u,w=u*v+C*d,T=[],E=[],D=0,O=0,k=0,A=0,j;for(let e=0,t=f.length;ee?e-c:i,y=a+l>t?t-l:a,b=p[3]+v*d[0]+p[1],x=p[0]+y*d[1]+p[2],S=g-p[3],C=_-p[0];(m||u!==0)&&(Ys[0]=S,Qs[0]=S,Ys[1]=C,Xs[1]=C,Xs[0]=S+b,Zs[0]=Xs[0],Zs[1]=C+x,Qs[1]=Zs[1]);let w;return u===0?ye(Math.min(S,S+b),Math.min(C,C+x),Math.max(S,S+b),Math.max(C,C+x),Js):(w=Gn(Un(),n,r,1,1,u,-n,-r),B(w,Ys),B(w,Xs),B(w,Zs),B(w,Qs),ye(Math.min(Ys[0],Xs[0],Zs[0],Qs[0]),Math.min(Ys[1],Xs[1],Zs[1],Qs[1]),Math.max(Ys[0],Xs[0],Zs[0],Qs[0]),Math.max(Ys[1],Xs[1],Zs[1],Qs[1]),Js)),f&&(g=Math.round(g),_=Math.round(_)),{drawImageX:g,drawImageY:_,drawImageW:v,drawImageH:y,originX:c,originY:l,declutterBox:{minX:Js[0],minY:Js[1],maxX:Js[2],maxY:Js[3],value:h},canvasTransform:w,scale:d}}replayImageOrLabel_(e,t,n,r,i,a,o){let s=!!(a||o),c=r.declutterBox,l=o?o[2]*r.scale[0]/2:0,u=c.minX-l<=t[0]&&c.maxX+l>=0&&c.minY-l<=t[1]&&c.maxY+l>=0;return u&&(s&&this.replayTextBackground_(e,Ys,Xs,Zs,Qs,a,o),Ha(e,r.canvasTransform,i,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=B(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],t[1]&&(e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6]))}drawLabelWithPointPlacement_(e,t,n,r){let i=this.textStates[t],a=this.createLabel(e,t,r,n),o=this.strokeStates[n],s=this.pixelRatio,c=tc(Array.isArray(e)?e[0]:e,i.textAlign||Ea),l=zs[i.textBaseline||Da],u=o&&o.lineWidth?o.lineWidth:0,d=a.width/s-2*i.scale[0],f=c*d+2*(.5-c)*u,p=l*a.height/s+2*(.5-l)*u;return{label:a,anchorX:f,anchorY:p}}execute_(e,t,n,r,i,a,o,s){let c=this.zIndexContext_,l;this.pixelCoordinates_&&d(n,this.renderedTransform_)?l=this.pixelCoordinates_:(this.pixelCoordinates_||=[],l=Qn(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),Wn(this.renderedTransform_,n));let u=0,f=r.length,p=0,m,h,g,_,v,y,b,x,S,C,w,T,E,D=0,O=0,k=this.coordinateCache_,A=this.viewRotation_,j=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,M={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:A},ee=this.instructions!=r||this.overlaps?0:200,te,ne,re,ie;for(;uee&&(this.fill_(e),D=0),O>ee&&(e.stroke(),O=0),!D&&!O&&(e.beginPath(),v=NaN,y=NaN),++u;break;case U.CIRCLE:p=n[1];let r=l[p],d=l[p+1],f=l[p+2],ae=l[p+3],oe=f-r,N=ae-d,se=Math.sqrt(oe*oe+N*N);e.moveTo(r+se,d),e.arc(r,d,se,0,2*Math.PI,!0),++u;break;case U.CLOSE_PATH:e.closePath(),++u;break;case U.CUSTOM:p=n[1],m=n[2];let ce=n[3],le=n[4],P=n[5];M.geometry=ce,M.feature=te,u in k||(k[u]=[]);let ue=k[u];P?P(l,p,m,2,ue):(ue[0]=l[p],ue[1]=l[p+1],ue.length=2),c&&(c.zIndex=n[6]),le(ue,M),++u;break;case U.DRAW_IMAGE:p=n[1],m=n[2],S=n[3],h=n[4],g=n[5];let de=n[6],fe=n[7],pe=n[8],me=n[9],he=n[10],ge=n[11],_e=n[12],ve=n[13];_=n[14]||`declutter`;let F=n[15];if(!S&&n.length>=20){C=n[19],w=n[20],T=n[21],E=n[22];let e=this.drawLabelWithPointPlacement_(C,w,T,E);S=e.label,n[3]=S;let t=n[23];h=(e.anchorX-t)*this.pixelRatio,n[4]=h;let r=n[24];g=(e.anchorY-r)*this.pixelRatio,n[5]=g,de=S.height,n[6]=de,ve=S.width,n[13]=ve}let ye;n.length>25&&(ye=n[25]);let be,xe,Se;n.length>17?(be=n[16],xe=n[17],Se=n[18]):(be=Oa,xe=null,Se=null),he&&j?ge+=A:!he&&!j&&(ge-=A);let Ce=0;for(;p!sc.includes(e));var lc=class{constructor(e,t,n,r,i,a,o){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=a,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Un(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(i,o)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let i=e[n];for(let e in i){let n=i[e];r[e]=new ac(this.resolution_,this.pixelRatio_,this.overlaps_,n,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let t=0,r=e.length;t0){if(!a||n===`none`||p!==`Image`&&p!==`Text`||a.includes(e)){let n=(f[c]-3)/4,a=r-n%s,o=r-(n/s|0),l=i(e,t,a*a+o*o);if(l)return l}u.clearRect(0,0,s,s);break}}let h=Object.keys(this.executorsByZIndex_).map(Number);h.sort(o);let g,_,v,y,b;for(g=h.length-1;g>=0;--g){let e=h[g].toString();for(v=this.executorsByZIndex_[e],_=oc.length-1;_>=0;--_)if(p=oc[_],y=v[p],y!==void 0&&(b=y.executeHitDetection(u,c,n,m,d),b))return b}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],i=t[2],a=t[3],o=[n,r,n,a,i,a,i,r];return Qn(o,0,8,2,e,o),o}isEmpty(){return y(this.executorsByZIndex_)}execute(e,t,n,r,i,a,c){let l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(c?s:o),a||=oc;let u=oc.length;for(let o=0,s=l.length;op.execute(e,t,n,r,i,c)),d&&s.restore(),a){a.offset();let e=l[o]*u+oc.indexOf(f);this.deferredZIndexContexts_[e]||(this.deferredZIndexContexts_[e]=[]),this.deferredZIndexContexts_[e].push(a)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(o);for(let n=0,r=t.length;n{e.draw(this.renderedContext_),e.clear()}),e[t[n]].length=0}};const uc={};function dc(e){if(uc[e]!==void 0)return uc[e];let t=e*2+1,n=e*e,r=Array(n+1);for(let i=0;i<=e;++i)for(let a=0;a<=e;++a){let o=i*i+a*a;if(o>n)break;let s=r[o];s||(s=[],r[o]=s),s.push(((e+i)*t+(e+a))*4+3),i>0&&s.push(((e-i)*t+(e+a))*4+3),a>0&&(s.push(((e+i)*t+(e-a))*4+3),i>0&&s.push(((e-i)*t+(e-a))*4+3))}let i=[];for(let e=0,t=r.length;e0,"A defined and non-empty `src` or `image` must be provided"),N(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),"`width` or `height` cannot be provided together with `scale`");let s;if(e.src===void 0?a!==void 0&&(s=`complete`in a?a.complete?a.src?V.LOADED:V.IDLE:V.LOADING:V.LOADED):s=V.IDLE,this.color_=e.color===void 0?null:Yi(e.color),this.iconImage_=aa(a,o,this.crossOrigin_,s,this.color_),this.offset_=e.offset===void 0?[0,0]:e.offset,this.offsetOrigin_=e.offsetOrigin===void 0?`top-left`:e.offsetOrigin,this.origin_=null,this.size_=e.size===void 0?null:e.size,this.initialOptions_,e.width!==void 0||e.height!==void 0){let t,n;if(e.size)[t,n]=e.size;else{let r=this.getImage(1);if(r.width&&r.height)t=r.width,n=r.height;else if(r instanceof HTMLImageElement){this.initialOptions_=e;let t=()=>{if(this.unlistenImageChange(t),!this.initialOptions_)return;let n=this.iconImage_.getSize();this.setScale(pc(n[0],n[1],e.width,e.height))};this.listenImageChange(t);return}}t!==void 0&&this.setScale(pc(t,n,e.width,e.height))}}clone(){let t,n,r;return this.initialOptions_?(n=this.initialOptions_.width,r=this.initialOptions_.height):(t=this.getScale(),t=Array.isArray(t)?t.slice():t),new e({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_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:t,width:n,height:r,size:this.size_===null?void 0:this.size_.slice(),src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let t=this.getSize();if(this.anchorXUnits_==`fraction`||this.anchorYUnits_==`fraction`){if(!t)return null;e=this.anchor_.slice(),this.anchorXUnits_==`fraction`&&(e[0]*=t[0]),this.anchorYUnits_==`fraction`&&(e[1]*=t[1])}if(this.anchorOrigin_!=`top-left`){if(!t)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_==`top-right`||this.anchorOrigin_==`bottom-right`)&&(e[0]=-e[0]+t[0]),(this.anchorOrigin_==`bottom-left`||this.anchorOrigin_==`bottom-right`)&&(e[1]=-e[1]+t[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!=`top-left`){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_==`top-right`||this.offsetOrigin_==`bottom-right`)&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_==`bottom-left`||this.offsetOrigin_==`bottom-right`)&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==V.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==V.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(n.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(n.CHANGE,e)}ready(){return this.iconImage_.ready()}},hc=mc;const gc=.5;function _c(e,t,n,r,i,a,s,c,l){let u=l?zn(i,l):i,d=e[0]*gc,f=e[1]*gc,p=H(d,f);p.imageSmoothingEnabled=!1;let m=p.canvas,h=new Ga(p,gc,i,null,s,c,l?An(In(),l):null),g=n.length,_=Math.floor((256*256*256-1)/g),v={};for(let e=1;e<=g;++e){let t=n[e-1],i=t.getStyleFunction()||r;if(!i)continue;let o=i(t,a);if(!o)continue;Array.isArray(o)||(o=[o]);let s=e*_,c=s.toString(16).padStart(7,`#00000`);for(let e=0,n=o.length;ethis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return A()}getData(e){return null}prepareFrame(e){return A()}renderFrame(e,t){return A()}forEachFeatureAtCoordinate(e,t,n,r,i){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===V.LOADED||t.getState()===V.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=V.LOADED&&t!=V.ERROR&&e.addEventListener(n.CHANGE,this.boundHandleImageChange_),t==V.IDLE&&(e.load(),t=e.getState()),t==V.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()===`ready`&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},Cc=Sc;const wc=[];let Tc=null;function Ec(){Tc=H(1,1,void 0,{willReadFrequently:!0})}var Dc=class extends Cc{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Un(),this.pixelTransform=Un(),this.inversePixelTransform=Un(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){Tc||Ec(),Tc.clearRect(0,0,1,1);let r;try{Tc.drawImage(e,t,n,1,1,0,0,1,1),r=Tc.getImageData(0,0,1,1).data}catch{return Tc=null,null}return r}getBackground(e){let t=this.getLayer(),n=t.getBackground();return typeof n==`function`&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),i,a;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&d(Yi(e.style.backgroundColor),Yi(n)))){let t=e.firstElementChild;t instanceof HTMLCanvasElement&&(a=t.getContext(`2d`))}if(a&&Zn(a.canvas.style.transform,t)?(this.container=e,this.context=a,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){i=document.createElement(`div`),i.className=r;let e=i.style;e.position=`absolute`,e.width=`100%`,e.height=`100%`,a=H();let t=a.canvas;i.appendChild(t),e=t.style,e.position=`absolute`,e.left=`0`,e.transformOrigin=`top left`,this.container=i,this.context=a}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=Le(n),i=Re(n),a=je(n),o=Ae(n);B(t.coordinateToPixelTransform,r),B(t.coordinateToPixelTransform,i),B(t.coordinateToPixelTransform,a),B(t.coordinateToPixelTransform,o);let s=this.inversePixelTransform;B(s,r),B(s,i),B(s,a),B(s,o),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(i[0]),Math.round(i[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,i=e.viewState.rotation,a=e.pixelRatio,o=Math.round(L(n)/r*a),s=Math.round(I(n)/r*a);Gn(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/a,1/a,i,-o/2,-s/2),Kn(this.inversePixelTransform,this.pixelTransform);let c=Yn(this.pixelTransform);if(this.useContainer(t,c,this.getBackground(e)),!this.containerReused){let e=this.context.canvas;e.width!=o||e.height!=s?(e.width=o,e.height=s):this.context.clearRect(0,0,o,s),c!==e.style.transform&&(e.style.transform=c)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let i=new bc(e,this.inversePixelTransform,n,t);r.dispatchEvent(i)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(fi.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(fi.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new qs),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(fi.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(fi.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,i,a,o){let s=i/2,c=a/2,l=r/t,u=-l,d=-e[0]+o,f=-e[1];return Gn(this.tempTransform,s,c,l,u,-n,d,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},Oc=Dc,kc=class extends Oc{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=F(),this.wrappedRenderedExtent_=F(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,i=t.viewState,a=i.center,o=i.resolution,s=i.projection,c=i.rotation,l=s.getExtent(),u=this.getLayer().getSource(),d=this.getLayer().getDeclutter(),f=t.pixelRatio,p=t.viewHints,m=!(p[Cs.ANIMATING]||p[Cs.INTERACTING]),h=this.context,g=Math.round(L(r)/o*f),_=Math.round(I(r)/o*f),v=u.getWrapX()&&s.canWrapX(),y=v?L(l):null,b=v?Math.ceil((r[2]-l[2])/y)+1:1,x=v?Math.floor((r[0]-l[0])/y):0;do{let r=this.getRenderTransform(a,o,0,f,g,_,x*y);t.declutter&&(r=r.slice(0)),e.execute(h,[h.canvas.width,h.canvas.height],r,c,m,n===void 0?oc:n?sc:cc,n?d&&t.declutter[d]:void 0)}while(++x{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let e=this.frameState.size.slice(),t=this.renderedCenter_,n=this.renderedResolution_,r=this.renderedRotation_,i=this.renderedProjection_,a=this.wrappedRenderedExtent_,o=this.getLayer(),s=[],c=e[0]*gc,l=e[1]*gc;s.push(this.getRenderTransform(t,n,r,gc,c,l,0).slice());let u=o.getSource(),d=i.getExtent();if(u.getWrapX()&&i.canWrapX()&&!ge(d,a)){let e=a[0],i=L(d),o=0,u;for(;ed[2];)++o,u=i*o,s.push(this.getRenderTransform(t,n,r,gc,c,l,u).slice()),e-=i}let f=In();this.hitDetectionImageData_=_c(e,s,this.renderedFeatures_,o.getStyleFunction(),a,n,r,Ya(n,this.renderedPixelRatio_),f?i:null)}t(vc(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,i){if(!this.replayGroup_)return;let a=t.viewState.resolution,o=t.viewState.rotation,s=this.getLayer(),c={},l=function(e,t,n){let a=M(e),o=c[a];if(o){if(o!==!0&&ne.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Cs.ANIMATING],i=e.viewHints[Cs.INTERACTING],a=t.getUpdateWhileAnimating(),o=t.getUpdateWhileInteracting();if(this.ready&&!a&&r||!o&&i)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let s=e.extent,c=e.viewState,l=c.projection,u=c.resolution,f=e.pixelRatio,p=t.getRevision(),m=t.getRenderBuffer(),h=t.getRenderOrder();h===void 0&&(h=Ja);let g=c.center.slice(),_=fe(s,m*u),v=_.slice(),y=[_.slice()],b=l.getExtent();if(n.getWrapX()&&l.canWrapX()&&!ge(b,e.extent)){let e=L(b),t=Math.max(L(_)/2,e);_[0]=b[0]-t,_[2]=b[2]+t,ft(g,l);let n=We(y[0],l);n[0]b[0]&&n[2]>b[2]&&y.push([n[0]-e,n[1],n[2]-e,n[3]])}if(this.ready&&this.renderedResolution_==u&&this.renderedRevision_==p&&this.renderedRenderOrder_==h&&this.renderedFrameDeclutter_===!!e.declutter&&ge(this.wrappedRenderedExtent_,_))return d(this.renderedExtent_,v)||(this.hitDetectionImageData_=null,this.renderedExtent_=v),this.renderedCenter_=g,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let x=new Ws(Xa(u,f),_,u,f),S=In(),C;if(S){for(let e=0,t=y.length;e{let r,i=e.getStyleFunction()||t.getStyleFunction();if(i&&(r=i(e,u)),r){let t=this.renderFeature(e,w,r,x,C,this.getLayer().getDeclutter(),n);T&&=!t}},D=zn(_,l),O=n.getFeaturesInExtent(D);h&&O.sort(h);for(let e=0,t=O.length;e`,GreaterThanOrEqualTo:`>=`,LessThan:`<`,LessThanOrEqualTo:`<=`,Multiply:`*`,Divide:`/`,Add:`+`,Subtract:`-`,Clamp:`clamp`,Mod:`%`,Pow:`^`,Abs:`abs`,Floor:`floor`,Ceil:`ceil`,Round:`round`,Sin:`sin`,Cos:`cos`,Atan:`atan`,Sqrt:`sqrt`,Match:`match`,Between:`between`,Interpolate:`interpolate`,Coalesce:`coalesce`,Case:`case`,In:`in`,Number:`number`,String:`string`,Array:`array`,Color:`color`,Id:`id`,Band:`band`,Palette:`palette`,ToString:`to-string`,Has:`has`},Kc={[q.Get]:X(J(1,1/0),qc),[q.Var]:X(J(1,1),Jc),[q.Has]:X(J(1,1/0),qc),[q.Id]:X(Yc,Qc),[q.Concat]:X(J(2,1/0),Y(Nc)),[q.GeometryType]:X(Xc,Qc),[q.LineMetric]:X(Qc),[q.Resolution]:X(Zc,Qc),[q.Zoom]:X(Zc,Qc),[q.Time]:X(Zc,Qc),[q.Any]:X(J(2,1/0),Y(Mc)),[q.All]:X(J(2,1/0),Y(Mc)),[q.Not]:X(J(1,1),Y(Mc)),[q.Equal]:X(J(2,2),Y(Lc)),[q.NotEqual]:X(J(2,2),Y(Lc)),[q.GreaterThan]:X(J(2,2),Y(W)),[q.GreaterThanOrEqualTo]:X(J(2,2),Y(W)),[q.LessThan]:X(J(2,2),Y(W)),[q.LessThanOrEqualTo]:X(J(2,2),Y(W)),[q.Multiply]:X(J(2,1/0),$c),[q.Coalesce]:X(J(2,1/0),$c),[q.Divide]:X(J(2,2),Y(W)),[q.Add]:X(J(2,1/0),Y(W)),[q.Subtract]:X(J(2,2),Y(W)),[q.Clamp]:X(J(3,3),Y(W)),[q.Mod]:X(J(2,2),Y(W)),[q.Pow]:X(J(2,2),Y(W)),[q.Abs]:X(J(1,1),Y(W)),[q.Floor]:X(J(1,1),Y(W)),[q.Ceil]:X(J(1,1),Y(W)),[q.Round]:X(J(1,1),Y(W)),[q.Sin]:X(J(1,1),Y(W)),[q.Cos]:X(J(1,1),Y(W)),[q.Atan]:X(J(1,2),Y(W)),[q.Sqrt]:X(J(1,1),Y(W)),[q.Match]:X(J(4,1/0),tl,nl),[q.Between]:X(J(3,3),Y(W)),[q.Interpolate]:X(J(6,1/0),tl,rl),[q.Case]:X(J(3,1/0),el,il),[q.In]:X(J(2,2),al),[q.Number]:X(J(1,1/0),Y(Lc)),[q.String]:X(J(1,1/0),Y(Lc)),[q.Array]:X(J(1,1/0),Y(W)),[q.Color]:X(J(1,4),Y(W)),[q.Band]:X(J(1,3),Y(W)),[q.Palette]:X(J(2,2),ol),[q.ToString]:X(J(1,1),Y(Mc|W|Nc|Pc))};function qc(e,t,n){let r=e.length-1,i=Array(r);for(let t=0;tt){let n=t===1/0?`${e} or more`:`${e} to ${t}`;throw Error(`expected ${n} arguments for ${a}, got ${o}`)}}}function $c(e,t,n){let r=e.length-1,i=Array(r);for(let a=0;ae.featureId;case q.GeometryType:return e=>e.geometryType;case q.Concat:{let n=e.args.map(e=>dl(e,t));return e=>``.concat(...n.map(t=>t(e).toString()))}case q.Resolution:return e=>e.resolution;case q.Any:case q.All:case q.Between:case q.In:case q.Not:return hl(e,t);case q.Equal:case q.NotEqual:case q.LessThan:case q.LessThanOrEqualTo:case q.GreaterThan:case q.GreaterThanOrEqualTo:return ml(e,t);case q.Multiply:case q.Divide:case q.Add:case q.Subtract:case q.Clamp:case q.Mod:case q.Pow:case q.Abs:case q.Floor:case q.Ceil:case q.Round:case q.Sin:case q.Cos:case q.Atan:case q.Sqrt:return gl(e,t);case q.Case:return _l(e,t);case q.Match:return vl(e,t);case q.Interpolate:return yl(e,t);case q.ToString:return bl(e,t);default:throw Error(`Unsupported operator ${n}`)}}function fl(e,t){let n=e.operator,r=e.args.length,i=Array(r);for(let n=0;n{for(let t=0;t{for(let t=0;t{let n=e.args,i=t.properties[r];for(let e=1,t=n.length;ee.variables[r];case q.Has:return t=>{let n=e.args;if(!(r in t.properties))return!1;let i=t.properties[r];for(let e=1,t=n.length;er(e)===i(e);case q.NotEqual:return e=>r(e)!==i(e);case q.LessThan:return e=>r(e)r(e)<=i(e);case q.GreaterThan:return e=>r(e)>i(e);case q.GreaterThanOrEqualTo:return e=>r(e)>=i(e);default:throw Error(`Unsupported comparison operator ${n}`)}}function hl(e,t){let n=e.operator,r=e.args.length,i=Array(r);for(let n=0;n{for(let t=0;t{for(let t=0;t{let t=i[0](e),n=i[1](e),r=i[2](e);return t>=n&&t<=r};case q.In:return e=>{let t=i[0](e);for(let n=1;n!i[0](e);default:throw Error(`Unsupported logical operator ${n}`)}}function gl(e,t){let n=e.operator,r=e.args.length,i=Array(r);for(let n=0;n{let t=1;for(let n=0;ni[0](e)/i[1](e);case q.Add:return e=>{let t=0;for(let n=0;ni[0](e)-i[1](e);case q.Clamp:return e=>{let t=i[0](e),n=i[1](e);if(tr?r:t};case q.Mod:return e=>i[0](e)%i[1](e);case q.Pow:return e=>i[0](e)**+i[1](e);case q.Abs:return e=>Math.abs(i[0](e));case q.Floor:return e=>Math.floor(i[0](e));case q.Ceil:return e=>Math.ceil(i[0](e));case q.Round:return e=>Math.round(i[0](e));case q.Sin:return e=>Math.sin(i[0](e));case q.Cos:return e=>Math.cos(i[0](e));case q.Atan:return r===2?e=>Math.atan2(i[0](e),i[1](e)):e=>Math.atan(i[0](e));case q.Sqrt:return e=>Math.sqrt(i[0](e));default:throw Error(`Unsupported numeric operator ${n}`)}}function _l(e,t){let n=e.args.length,r=Array(n);for(let i=0;i{for(let t=0;t{let t=r[0](e);for(let i=1;i{let t=r[0](e),i=r[1](e),a,o;for(let s=2;s=i)return s===2?c:l?Sl(t,i,a,o,n,c):xl(t,i,a,o,n,c);a=n,o=c}return o}}function bl(e,t){let n=e.operator,r=e.args.length,i=Array(r);for(let n=0;n{let n=i[0](t);return e.args[0].type===Pc?Xi(n):n.toString()};default:throw Error(`Unsupported convert operator ${n}`)}}function xl(e,t,n,r,i,a){let o=i-n;if(o===0)return r;let s=t-n,c=e===1?s/o:(e**+s-1)/(e**+o-1);return r+c*(a-r)}function Sl(e,t,n,r,i,a){let o=i-n;if(o===0)return r;let s=Ki(r),c=Ki(a),l=c[2]-s[2];l>180?l-=360:l<-180&&(l+=360);let u=[xl(e,t,n,s[0],i,c[0]),xl(e,t,n,s[1],i,c[1]),s[2]+xl(e,t,n,0,i,l),xl(e,t,n,r[3],i,a[3])];return qi(u)}function Cl(e){return!0}function wl(e){let t=Gc(),n=El(e,t),r=ll();return function(e,i){if(r.properties=e.getPropertiesInternal(),r.resolution=i,t.featureId){let t=e.getId();t===void 0?r.featureId=null:r.featureId=t}return t.geometryType&&(r.geometryType=cl(e.getGeometry())),n(r)}}function Tl(e){let t=Gc(),n=e.length,r=Array(n);for(let i=0;inull;r=zl(e,t+`fill-color`,n)}if(!r)return null;let i=new es;return function(e){let t=r(e);return t===Di?null:(i.setColor(t),i)}}function kl(e,t,n){let r=Fl(e,t+`stroke-width`,n),i=zl(e,t+`stroke-color`,n);if(!r&&!i)return null;let a=Il(e,t+`stroke-line-cap`,n),o=Il(e,t+`stroke-line-join`,n),s=Bl(e,t+`stroke-line-dash`,n),c=Fl(e,t+`stroke-line-dash-offset`,n),l=Fl(e,t+`stroke-miter-limit`,n),u=new ns;return function(e){if(i){let t=i(e);if(t===Di)return null;u.setColor(t)}if(r&&u.setWidth(r(e)),a){let t=a(e);if(t!==`butt`&&t!==`round`&&t!==`square`)throw Error(`Expected butt, round, or square line cap`);u.setLineCap(t)}if(o){let t=o(e);if(t!==`bevel`&&t!==`round`&&t!==`miter`)throw Error(`Expected bevel, round, or miter line join`);u.setLineJoin(t)}return s&&u.setLineDash(s(e)),c&&u.setLineDashOffset(c(e)),l&&u.setMiterLimit(l(e)),u}}function Al(e,t){let n=`text-`,r=Il(e,n+`value`,t);if(!r)return null;let i=Ol(e,n,t),a=Ol(e,n+`background-`,t),o=kl(e,n,t),s=kl(e,n+`background-`,t),c=Il(e,n+`font`,t),l=Fl(e,n+`max-angle`,t),u=Fl(e,n+`offset-x`,t),d=Fl(e,n+`offset-y`,t),f=Rl(e,n+`overflow`,t),p=Il(e,n+`placement`,t),m=Fl(e,n+`repeat`,t),h=Ul(e,n+`scale`,t),g=Rl(e,n+`rotate-with-view`,t),_=Fl(e,n+`rotation`,t),v=Il(e,n+`align`,t),y=Il(e,n+`justify`,t),b=Il(e,n+`baseline`,t),x=Rl(e,n+`keep-upright`,t),S=Bl(e,n+`padding`,t),C=Xl(e,n+`declutter-mode`),w=new Ss({declutterMode:C});return function(e){if(w.setText(r(e)),i&&w.setFill(i(e)),a&&w.setBackgroundFill(a(e)),o&&w.setStroke(o(e)),s&&w.setBackgroundStroke(s(e)),c&&w.setFont(c(e)),l&&w.setMaxAngle(l(e)),u&&w.setOffsetX(u(e)),d&&w.setOffsetY(d(e)),f&&w.setOverflow(f(e)),p){let t=p(e);if(t!==`point`&&t!==`line`)throw Error(`Expected point or line for text-placement`);w.setPlacement(t)}if(m&&w.setRepeat(m(e)),h&&w.setScale(h(e)),g&&w.setRotateWithView(g(e)),_&&w.setRotation(_(e)),v){let t=v(e);if(t!==`left`&&t!==`center`&&t!==`right`&&t!==`end`&&t!==`start`)throw Error(`Expected left, right, center, start, or end for text-align`);w.setTextAlign(t)}if(y){let t=y(e);if(t!==`left`&&t!==`right`&&t!==`center`)throw Error(`Expected left, right, or center for text-justify`);w.setJustify(t)}if(b){let t=b(e);if(t!==`bottom`&&t!==`top`&&t!==`middle`&&t!==`alphabetic`&&t!==`hanging`)throw Error(`Expected bottom, top, middle, alphabetic, or hanging for text-baseline`);w.setTextBaseline(t)}return S&&w.setPadding(S(e)),x&&w.setKeepUpright(x(e)),w}}function jl(e,t){return`icon-src`in e?Ml(e,t):`shape-points`in e?Nl(e,t):`circle-radius`in e?Pl(e,t):null}function Ml(e,t){let n=`icon-`,r=n+`src`,i=$l(e[r],r),a=Vl(e,n+`anchor`,t),o=Ul(e,n+`scale`,t),s=Fl(e,n+`opacity`,t),c=Vl(e,n+`displacement`,t),l=Fl(e,n+`rotation`,t),u=Rl(e,n+`rotate-with-view`,t),d=ql(e,n+`anchor-origin`),f=Jl(e,n+`anchor-x-units`),p=Jl(e,n+`anchor-y-units`),m=Zl(e,n+`color`),h=Kl(e,n+`cross-origin`),g=Yl(e,n+`offset`),_=ql(e,n+`offset-origin`),v=Wl(e,n+`width`),y=Wl(e,n+`height`),b=Gl(e,n+`size`),x=Xl(e,n+`declutter-mode`),S=new hc({src:i,anchorOrigin:d,anchorXUnits:f,anchorYUnits:p,color:m,crossOrigin:h,offset:g,offsetOrigin:_,height:y,width:v,size:b,declutterMode:x});return function(e){return s&&S.setOpacity(s(e)),c&&S.setDisplacement(c(e)),l&&S.setRotation(l(e)),u&&S.setRotateWithView(u(e)),o&&S.setScale(o(e)),a&&S.setAnchor(a(e)),S}}function Nl(e,t){let n=`shape-`,r=n+`points`,i=n+`radius`,a=eu(e[r],r),o=eu(e[i],i),s=Ol(e,n,t),c=kl(e,n,t),l=Ul(e,n+`scale`,t),u=Vl(e,n+`displacement`,t),d=Fl(e,n+`rotation`,t),f=Rl(e,n+`rotate-with-view`,t),p=Wl(e,n+`radius2`),m=Wl(e,n+`angle`),h=Xl(e,n+`declutter-mode`),g=new ds({points:a,radius:o,radius2:p,angle:m,declutterMode:h});return function(e){return s&&g.setFill(s(e)),c&&g.setStroke(c(e)),u&&g.setDisplacement(u(e)),d&&g.setRotation(d(e)),f&&g.setRotateWithView(f(e)),l&&g.setScale(l(e)),g}}function Pl(e,t){let n=`circle-`,r=Ol(e,n,t),i=kl(e,n,t),a=Fl(e,n+`radius`,t),o=Ul(e,n+`scale`,t),s=Vl(e,n+`displacement`,t),c=Fl(e,n+`rotation`,t),l=Rl(e,n+`rotate-with-view`,t),u=Xl(e,n+`declutter-mode`),d=new ps({radius:5,declutterMode:u});return function(e){return a&&d.setRadius(a(e)),r&&d.setFill(r(e)),i&&d.setStroke(i(e)),s&&d.setDisplacement(s(e)),c&&d.setRotation(c(e)),l&&d.setRotateWithView(l(e)),o&&d.setScale(o(e)),d}}function Fl(e,t,n){if(!(t in e))return;let r=ul(e[t],W,n);return function(e){return eu(r(e),t)}}function Il(e,t,n){if(!(t in e))return null;let r=ul(e[t],Nc,n);return function(e){return $l(r(e),t)}}function Ll(e,t,n){let r=Il(e,t+`pattern-src`,n),i=Hl(e,t+`pattern-offset`,n),a=Hl(e,t+`pattern-size`,n),o=zl(e,t+`color`,n);return function(e){return{src:r(e),offset:i&&i(e),size:a&&a(e),color:o&&o(e)}}}function Rl(e,t,n){if(!(t in e))return null;let r=ul(e[t],Mc,n);return function(e){let n=r(e);if(typeof n!=`boolean`)throw Error(`Expected a boolean for ${t}`);return n}}function zl(e,t,n){if(!(t in e))return null;let r=ul(e[t],Pc,n);return function(e){return tu(r(e),t)}}function Bl(e,t,n){if(!(t in e))return null;let r=ul(e[t],Fc,n);return function(e){return Ql(r(e),t)}}function Vl(e,t,n){if(!(t in e))return null;let r=ul(e[t],Fc,n);return function(e){let n=Ql(r(e),t);if(n.length!==2)throw Error(`Expected two numbers for ${t}`);return n}}function Hl(e,t,n){if(!(t in e))return null;let r=ul(e[t],Fc,n);return function(e){return nu(r(e),t)}}function Ul(e,t,n){if(!(t in e))return null;let r=ul(e[t],Fc|W,n);return function(e){return ru(r(e),t)}}function Wl(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`number`)throw Error(`Expected a number for ${t}`);return n}}function Gl(e,t){let n=e[t];if(n!==void 0){if(typeof n==`number`)return ss(n);if(!Array.isArray(n)||n.length!==2||typeof n[0]!=`number`||typeof n[1]!=`number`)throw Error(`Expected a number or size array for ${t}`);return n}}function Kl(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`string`)throw Error(`Expected a string for ${t}`);return n}}function ql(e,t){let n=e[t];if(n!==void 0){if(n!==`bottom-left`&&n!==`bottom-right`&&n!==`top-left`&&n!==`top-right`)throw Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${t}`);return n}}function Jl(e,t){let n=e[t];if(n!==void 0){if(n!==`pixels`&&n!==`fraction`)throw Error(`Expected pixels or fraction for ${t}`);return n}}function Yl(e,t){let n=e[t];if(n!==void 0)return Ql(n,t)}function Xl(e,t){let n=e[t];if(n!==void 0){if(typeof n!=`string`)throw Error(`Expected a string for ${t}`);if(n!==`declutter`&&n!==`obstacle`&&n!==`none`)throw Error(`Expected declutter, obstacle, or none for ${t}`);return n}}function Zl(e,t){let n=e[t];if(n!==void 0)return tu(n,t)}function Ql(e,t){if(!Array.isArray(e))throw Error(`Expected an array for ${t}`);let n=e.length;for(let r=0;r4)throw Error(`Expected a color with 3 or 4 values for ${t}`);return n}function nu(e,t){let n=Ql(e,t);if(n.length!==2)throw Error(`Expected an array of two numbers for ${t}`);return n}function ru(e,t){return typeof e==`number`?e:nu(e,t)}var iu={CENTER:`center`,RESOLUTION:`resolution`,ROTATION:`rotation`};function au(e,t,n){return(function(r,i,a,o,s){if(!r)return;if(!i&&!t)return r;let c=t?0:a[0]*i,l=t?0:a[1]*i,u=s?s[0]:0,d=s?s[1]:0,f=e[0]+c/2+u,p=e[2]-c/2+u,m=e[1]+l/2+d,h=e[3]-l/2+d;f>p&&(f=(p+f)/2,p=f),m>h&&(m=(h+m)/2,h=m);let g=R(r[0],f,p),_=R(r[1],m,h);if(o&&n&&i){let e=30*i;g+=-e*Math.log(1+Math.max(0,f-r[0])/e)+e*Math.log(1+Math.max(0,r[0]-p)/e),_+=-e*Math.log(1+Math.max(0,m-r[1])/e)+e*Math.log(1+Math.max(0,r[1]-h)/e)}return[g,_]})}function ou(e){return e}function su(e){return e**3}function cu(e){return 1-su(1-e)}function lu(e){return 3*e*e-2*e*e*e}function uu(e){return e}function du(e,t,n,r){let i=L(t)/n[0],a=I(t)/n[1];return r?Math.min(e,Math.max(i,a)):Math.min(e,Math.min(i,a))}function fu(e,t,n){let r=Math.min(e,t),i=50;return r*=Math.log(1+i*Math.max(0,e/t-1))/i+1,n&&(r=Math.max(r,n),r/=Math.log(1+i*Math.max(0,n/e-1))/i+1),R(r,n/2,t*2)}function pu(e,t,n,r){return t=t===void 0?!0:t,(function(i,a,o,s){if(i!==void 0){let l=e[0],u=e[e.length-1],d=n?du(l,n,o,r):l;if(s)return t?fu(i,d,u):R(i,u,d);let f=Math.min(d,i),p=Math.floor(c(e,f,a));return e[p]>d&&p1&&typeof arguments[t-1]==`function`&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Cs.INTERACTING]>0}cancelAnimations(){this.setHint(Cs.ANIMATING,-this.hints_[Cs.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],i=!0;for(let n=0,a=r.length;n0?o/a.duration:1;s>=1?(a.complete=!0,s=1):i=!1;let c=a.easing(s);if(a.sourceCenter){let e=a.sourceCenter[0],t=a.sourceCenter[1],n=a.targetCenter[0],r=a.targetCenter[1];this.nextCenter_=a.targetCenter;let i=e+c*(n-e),o=t+c*(r-t);this.targetCenter_=[i,o]}if(a.sourceResolution&&a.targetResolution){let e=c===1?a.targetResolution:a.sourceResolution+c*(a.targetResolution-a.sourceResolution);if(a.anchor){let t=this.getViewportSize_(this.getRotation()),n=this.constraints_.resolution(e,0,t,!0);this.targetCenter_=this.calculateCenterZoom(n,a.anchor)}this.nextResolution_=a.targetResolution,this.targetResolution_=e,this.applyTargetState_(!0)}if(a.sourceRotation!==void 0&&a.targetRotation!==void 0){let e=c===1?Ze(a.targetRotation+Math.PI,2*Math.PI)-Math.PI:a.sourceRotation+c*(a.targetRotation-a.sourceRotation);if(a.anchor){let t=this.constraints_.rotation(e,!0);this.targetCenter_=this.calculateCenterRotate(t,a.anchor)}this.nextRotation_=a.targetRotation,this.targetRotation_=e}if(this.applyTargetState_(!0),t=!0,!a.complete)break}if(i){this.animations_[n]=null,this.setHint(Cs.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let e=r[0].callback;e&&wu(e,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],ut(n,e-this.getRotation()),ct(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),i=this.getResolution();if(r!==void 0&&i!==void 0){let a=t[0]-e*(t[0]-r[0])/i,o=t[1]-e*(t[1]-r[1])/i;n=[a,o]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Ln(e,this.getProjection())}getCenterInternal(){return this.get(iu.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get(`constrainResolution`)}getHints(e){return e===void 0?this.hints_.slice():(e[0]=this.hints_[0],e[1]=this.hints_[1],e)}calculateExtent(e){let t=this.calculateExtentInternal(e);return zn(t,this.getProjection())}calculateExtentInternal(e){e||=this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();N(t,`The view center is not defined`);let n=this.getResolution();N(n!==void 0,`The view resolution is not defined`);let r=this.getRotation();return N(r!==void 0,`The view rotation is not defined`),Pe(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(iu.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Bn(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t||=this.getViewportSizeMinusPadding_();let n=L(e)/t[0],r=I(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e||=2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return(function(n){let i=t/e**+(n*r);return i})}getRotation(){return this.get(iu.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,i=Math.log(n/r)/t;return(function(e){let r=Math.log(n/e)/t/i;return r})}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),i=this.padding_;if(i){let e=this.getViewportSizeMinusPadding_();r=ku(r,this.getViewportSize_(),[e[0]/2+i[3],e[1]/2+i[0]],t,n)}return{center:r.slice(0),projection:e===void 0?null:e,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let i=c(this.resolutions_,e,1);t=i,n=this.resolutions_[i],r=i==this.resolutions_.length-1?2:n/this.resolutions_[i+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=R(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/n**+R(e-t,0,1)}return this.maxResolution_/this.zoomFactor_**+(e-this.minZoom_)}fit(e,t){let n;if(N(Array.isArray(e)||typeof e.getSimplifiedGeometry==`function`,"Invalid extent or geometry provided as `geometry`"),Array.isArray(e)){N(!Be(e),"Cannot fit empty extent provided as `geometry`");let t=Bn(e,this.getProjection());n=ai(t)}else if(e.getType()===`Circle`){let t=Bn(e.getExtent(),this.getProjection());n=ai(t),n.rotate(this.getRotation(),Me(t))}else{let t=In();n=t?e.clone().transform(t,this.getProjection()):e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),i=e.getFlatCoordinates(),a=e.getStride(),o=1/0,s=1/0,c=-1/0,l=-1/0;for(let e=0,t=i.length;e{this.dispatchEvent(`sourceready`)},0))),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),t=e instanceof Au?{viewState:e.getState(),extent:e.calculateExtent()}:e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(e=>e.layer===this),!r)return!1}else r=this.getLayerState();let i=this.getExtent();return Pu(r,t.viewState)&&(!i||ze(i,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof Au?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(Z.MAP,e)}getMapInternal(){return this.get(Z.MAP)}setMap(e){this.mapPrecomposeKey_&&(E(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(E(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=w(e,fi.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=w(this,n.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);N(!t.some(e=>e.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set(Z.SOURCE,e)}getRenderer(){return this.renderer_||=this.createRenderer(),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function Pu(e,t){if(!e.visible)return!1;let n=t.resolution;if(n=e.maxResolution)return!1;let r=t.zoom;return r>e.minZoom&&r<=e.maxZoom}var Fu=Nu;const Iu={RENDER_ORDER:`renderOrder`};var Lu=class extends Fu{constructor(e){e||={};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer===void 0?100:e.renderBuffer,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating===void 0?!1:e.updateWhileAnimating,this.updateWhileInteracting_=e.updateWhileInteracting===void 0?!1:e.updateWhileInteracting}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Iu.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new ko(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(Iu.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?_s:e;let t=Ru(e);this.styleFunction_=e===null?void 0:hs(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function Ru(e){if(e===void 0)return _s;if(!e)return null;if(typeof e==`function`||e instanceof ys)return e;if(!Array.isArray(e))return Tl([e]);if(e.length===0)return[];let t=e.length,n=e[0];if(n instanceof ys){let n=Array(t);for(let r=0;re)throw Error(`Tile load sequence violation`);this.state=e,this.changed()}}load(){A()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:su(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},Uu=Hu,Wu=class extends Uu{constructor(e,t,n,r,i,a){super(e,t,a),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=i}getImage(){return this.image_}setImage(e){this.image_=e,this.state=Q.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=Q.ERROR,this.unlistenImage_(),this.image_=Gu(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=Q.LOADED:this.state=Q.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==Q.ERROR&&(this.state=Q.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==Q.IDLE&&(this.state=Q.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=Zi(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function Gu(){let e=H(1,1);return e.fillStyle=`rgba(0,0,0,0)`,e.fillRect(0,0,1,1),e.canvas}var Ku=Wu,qu=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let i=this.points_[t]-this.points_[n],a=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(a,i),this.initialVelocity_=Math.sqrt(i*i+a*a)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},Ju=qu,Yu=class extends x{constructor(e,t,n){super(e),this.map=t,this.frameState=n===void 0?null:n}},Xu=Yu,Zu=class extends Xu{constructor(e,t,n,r,i,a){super(e,t,i),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r===void 0?!1:r,this.activePointers=a}get pixel(){return this.pixel_||=this.map.getEventPixel(this.originalEvent),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||=this.map.getCoordinateFromPixel(this.pixel),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),`preventDefault`in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),`stopPropagation`in this.originalEvent&&this.originalEvent.stopPropagation()}},Qu=Zu,$={SINGLECLICK:`singleclick`,CLICK:n.CLICK,DBLCLICK:n.DBLCLICK,POINTERDRAG:`pointerdrag`,POINTERMOVE:`pointermove`,POINTERDOWN:`pointerdown`,POINTERUP:`pointerup`,POINTEROVER:`pointerover`,POINTEROUT:`pointerout`,POINTERENTER:`pointerenter`,POINTERLEAVE:`pointerleave`,POINTERCANCEL:`pointercancel`},$u={POINTERMOVE:`pointermove`,POINTERDOWN:`pointerdown`,POINTERUP:`pointerup`,POINTEROVER:`pointerover`,POINTEROUT:`pointerout`,POINTERENTER:`pointerenter`,POINTERLEAVE:`pointerleave`,POINTERCANCEL:`pointercancel`},ed=class extends C{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let r=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=r,this.pointerdownListenerKey_=w(r,$u.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=w(r,$u.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(n.TOUCHMOVE,this.boundHandleTouchMove_,bi?{passive:!1}:!1)}emulateClick_(e){let t=new Qu($.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_===void 0?this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let t=new Qu($.SINGLECLICK,this.map_,e);this.dispatchEvent(t)},250):(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Qu($.DBLCLICK,this.map_,e),this.dispatchEvent(t))}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==$.POINTERUP||t.type==$.POINTERCANCEL){for(let e in delete this.trackedTouches_[n],this.trackedTouches_)if(this.trackedTouches_[e].target!==t.target){delete this.trackedTouches_[e];break}}else (t.type==$.POINTERDOWN||t.type==$.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Qu($.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Qu($.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,`target`,{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let e=this.map_.getOwnerDocument();this.dragListenerKeys_.push(w(e,$.POINTERMOVE,this.handlePointerMove_,this),w(e,$.POINTERUP,this.handlePointerUp_,this),w(this.element_,$.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==e&&this.dragListenerKeys_.push(w(this.element_.getRootNode(),$.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Qu($.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Qu($.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!=`boolean`||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(E(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(n.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(E(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(E),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},td=ed,nd={POSTRENDER:`postrender`,MOVESTART:`movestart`,MOVEEND:`moveend`,LOADSTART:`loadstart`,LOADEND:`loadend`},rd={LAYERGROUP:`layergroup`,SIZE:`size`,TARGET:`target`,VIEW:`view`};const id=1/0;var ad=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,v(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){N(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");let t=this.priorityFunction_(e);return t==id?!1:(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0)}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,i=t[e],a=n[e],o=e;for(;e>1;){let i=this.getLeftChildIndex_(e),a=this.getRightChildIndex_(e),o=ae;){let e=this.getParentIndex_(t);if(r[e]>a)n[t]=n[e],r[t]=r[e],t=e;else break}n[t]=i,r[t]=a}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,i=t.length,a,o,s;for(o=0;oe.apply(null,t),e=>e[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);if(t){let t=e[0];t.addEventListener(n.CHANGE,this.boundHandleTileChange_)}return t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,r=t.getState();if(r===Q.LOADED||r===Q.ERROR||r===Q.EMPTY){r!==Q.ERROR&&t.removeEventListener(n.CHANGE,this.boundHandleTileChange_);let e=t.getKey();e in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[e],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let e=this.dequeue()[0],t=e.getKey(),r=e.getState();r===Q.IDLE&&!(t in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[t]=!0,++this.tilesLoading_,++n,e.load())}}},cd=sd;function ld(e,t,n,r,i){if(!e||!(n in e.wantedTiles)||!e.wantedTiles[n][t.getKey()])return id;let a=e.viewState.center,o=r[0]-a[0],s=r[1]-a[1];return 65536*Math.log(i)+Math.sqrt(o*o+s*s)/i}var ud=class extends ne{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents=`auto`),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let e=0,t=this.listenerKeys.length;et.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(e=>n.add(e)):n.add(this.attributions_)),!this.overrideCollapsible_){let e=!t.some(e=>e.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(e)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display=`none`,this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(e=>_(()=>e))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?``:`none`,this.renderedVisible_=n),!d(t,this.renderedAttributions_)){Ti(this.ulElement_);for(let e=0,n=t.length;e0&&n%(2*Math.PI)!=0?t.animate({rotation:0,duration:this.duration_,easing:cu}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let e=`rotate(`+n+`rad)`;if(this.autoHide_){let e=this.element.classList.contains(da);!e&&n===0?this.element.classList.add(da):e&&n!==0&&this.element.classList.remove(da)}this.label_.style.transform=e}this.rotation_=n}},hd=md,gd=class extends dd{constructor(e){e||={},super({element:document.createElement(`div`),target:e.target});let t=e.className===void 0?`ol-zoom`:e.className,r=e.delta===void 0?1:e.delta,i=e.zoomInClassName===void 0?t+`-in`:e.zoomInClassName,a=e.zoomOutClassName===void 0?t+`-out`:e.zoomOutClassName,o=e.zoomInLabel===void 0?`+`:e.zoomInLabel,s=e.zoomOutLabel===void 0?`–`:e.zoomOutLabel,c=e.zoomInTipLabel===void 0?`Zoom in`:e.zoomInTipLabel,l=e.zoomOutTipLabel===void 0?`Zoom out`:e.zoomOutTipLabel,u=document.createElement(`button`);u.className=i,u.setAttribute(`type`,`button`),u.title=c,u.appendChild(typeof o==`string`?document.createTextNode(o):o),u.addEventListener(n.CLICK,this.handleClick_.bind(this,r),!1);let d=document.createElement(`button`);d.className=a,d.setAttribute(`type`,`button`),d.title=l,d.appendChild(typeof s==`string`?document.createTextNode(s):s),d.addEventListener(n.CLICK,this.handleClick_.bind(this,-r),!1);let f=t+` ol-unselectable ol-control`,p=this.element;p.className=f,p.appendChild(u),p.appendChild(d),this.duration_=e.duration===void 0?250:e.duration}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let t=this.getMap(),n=t.getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let t=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:t,duration:this.duration_,easing:cu})):n.setZoom(t)}}},_d=gd;function vd(e){e||={};let t=new oe,n=e.zoom===void 0?!0:e.zoom;n&&t.push(new _d(e.zoomOptions));let r=e.rotate===void 0?!0:e.rotate;r&&t.push(new hd(e.rotateOptions));let i=e.attribution===void 0?!0:e.attribution;return i&&t.push(new pd(e.attributionOptions)),t}var yd={ACTIVE:`active`},bd=class extends ne{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(yd.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(yd.ACTIVE,e)}setMap(e){this.map_=e}};function xd(e,t,n){let r=e.getCenterInternal();if(r){let i=[r[0]+t[0],r[1]+t[1]];e.animateInternal({duration:n===void 0?250:n,easing:uu,center:e.getConstrainedCenter(i)})}}function Sd(e,t,n,r){let i=e.getZoom();if(i===void 0)return;let a=e.getConstrainedZoom(i+t),o=e.getResolutionForZoom(a);e.getAnimating()&&e.cancelAnimations(),e.animate({resolution:o,anchor:n,duration:r===void 0?250:r,easing:cu})}var Cd=bd,wd=class extends Cd{constructor(e){super(),e||={},this.delta_=e.delta?e.delta:1,this.duration_=e.duration===void 0?250:e.duration}handleEvent(e){let t=!1;if(e.type==$.DBLCLICK){let n=e.originalEvent,r=e.map,i=e.coordinate,a=n.shiftKey?-this.delta_:this.delta_,o=r.getView();Sd(o,a,i,this.duration_),n.preventDefault(),t=!0}return!t}},Td=wd;function Ed(e){let t=arguments;return function(e){let n=!0;for(let r=0,i=t.length;r0}}else if(e.type==$.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==$.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function zd(e){let t=e.length,n=0,r=0;for(let i=0;i0&&this.condition_(e)){let t=e.map,n=t.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},Hd=Vd,Ud=class extends Bd{constructor(e){e||={},super({stopDown:m}),this.condition_=e.condition?e.condition:Dd,this.lastAngle_=void 0,this.duration_=e.duration===void 0?250:e.duration}handleDragEvent(e){if(!Id(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===gu)return;let r=t.getSize(),i=e.pixel,a=Math.atan2(r[1]/2-i[1],i[0]-r[0]/2);if(this.lastAngle_!==void 0){let e=a-this.lastAngle_;n.adjustRotationInternal(-e)}this.lastAngle_=a}handleUpEvent(e){if(!Id(e))return!0;let t=e.map,n=t.getView();return n.endInteraction(this.duration_),!1}handleDownEvent(e){if(!Id(e))return!1;if(jd(e)&&this.condition_(e)){let t=e.map;return t.getView().beginInteraction(),this.lastAngle_=void 0,!0}return!1}},Wd=Ud,Gd=class extends i{constructor(e){super(),this.geometry_=null,this.element_=document.createElement(`div`),this.element_.style.position=`absolute`,this.element_.style.pointerEvents=`auto`,this.element_.className=`ol-box `+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n=`px`,r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let e=this.element_.style;e.left=`inherit`,e.top=`inherit`,e.width=`inherit`,e.height=`inherit`}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,n=[e,[e[0],t[1]],t,[t[0],e[1]]],r=n.map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new ii([r])}getGeometry(){return this.geometry_}},Kd=Gd;const qd={BOXSTART:`boxstart`,BOXDRAG:`boxdrag`,BOXEND:`boxend`,BOXCANCEL:`boxcancel`};var Jd=class extends x{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},Yd=class extends Bd{constructor(e){super(),this.on,this.once,this.un,e??={},this.box_=new Kd(e.className||`ol-dragbox`),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??jd,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],i=n[1]-t[1];return r*r+i*i>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new Jd(qd.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new Jd(t?qd.BOXEND:qd.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Jd(qd.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Jd(qd.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){let t=this.getMap();t&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Jd(qd.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},Xd=Yd,Zd=class extends Xd{constructor(e){e||={};let t=e.condition?e.condition:Pd;super({condition:t,className:e.className||`ol-dragzoom`,minArea:e.minArea}),this.duration_=e.duration===void 0?200:e.duration,this.out_=e.out===void 0?!1:e.out}onBoxEnd(e){let t=this.getMap(),n=t.getView(),r=this.getGeometry();if(this.out_){let e=n.rotatedExtentForGeometry(r),t=n.getResolutionForExtentInternal(e),i=n.getResolution()/t;r=r.clone(),r.scale(i*i)}n.fitInternal(r,{duration:this.duration_,easing:cu})}},Qd=Zd,$d={LEFT:`ArrowLeft`,UP:`ArrowUp`,RIGHT:`ArrowRight`,DOWN:`ArrowDown`},ef=class extends Cd{constructor(e){super(),e||={},this.defaultCondition_=function(e){return Md(e)&&Fd(e)},this.condition_=e.condition===void 0?this.defaultCondition_:e.condition,this.duration_=e.duration===void 0?100:e.duration,this.pixelDelta_=e.pixelDelta===void 0?128:e.pixelDelta}handleEvent(e){let t=!1;if(e.type==n.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==$d.DOWN||r==$d.LEFT||r==$d.RIGHT||r==$d.UP)){let i=e.map,a=i.getView(),o=a.getResolution()*this.pixelDelta_,s=0,c=0;r==$d.DOWN?c=-o:r==$d.LEFT?s=-o:r==$d.RIGHT?s=o:c=o;let l=[s,c];ut(l,a.getRotation()),xd(a,l,this.duration_),n.preventDefault(),t=!0}}return!t}},tf=ef,nf=class extends Cd{constructor(e){super(),e||={},this.condition_=e.condition?e.condition:function(e){return!Nd(e)&&Fd(e)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration===void 0?100:e.duration}handleEvent(e){let t=!1;if(e.type==n.KEYDOWN||e.type==n.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r===`+`||r===`-`)){let i=e.map,a=r===`+`?this.delta_:-this.delta_,o=i.getView();Sd(o,a,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},rf=nf;const af=40,sf=300;var cf=class extends Cd{constructor(e){e||={},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta===void 0?1:e.maxDelta,this.duration_=e.duration===void 0?250:e.duration,this.timeout_=e.timeout===void 0?80:e.timeout,this.useAnchor_=e.useAnchor===void 0?!0:e.useAnchor,this.constrainResolution_=e.constrainResolution===void 0?!1:e.constrainResolution;let t=e.condition?e.condition:Ad;this.condition_=e.onFocusOnly?Ed(kd,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;let t=e.getView();t.endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e))return!0;let t=e.type;if(t!==n.WHEEL)return!0;let r=e.map,i=e.originalEvent;i.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let a=i.deltaY;switch(i.deltaMode){case WheelEvent.DOM_DELTA_LINE:a*=af;break;case WheelEvent.DOM_DELTA_PAGE:a*=sf;break;default:}if(a===0)return!1;this.lastDelta_=a;let o=Date.now();this.startTime_===void 0&&(this.startTime_=o),(!this.mode_||o-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(a)<4?`trackpad`:`wheel`);let s=r.getView();if(this.mode_===`trackpad`&&!(s.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(s.getAnimating()&&s.cancelAnimations(),s.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),s.adjustZoom(-a/this.deltaPerZoom_,this.lastAnchor_?r.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=o,!1;this.totalDelta_+=a;let c=Math.max(this.timeout_-(o-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,r),c),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-R(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),Sd(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},lf=cf,uf=class extends Bd{constructor(e){e||={};let t=e;t.stopDown||=m,super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold===void 0?.3:e.threshold,this.duration_=e.duration===void 0?250:e.duration}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],i=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let e=i-this.lastAngle_;this.rotationDelta_+=e,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=e}this.lastAngle_=i;let a=e.map,o=a.getView();o.getConstraints().rotation!==gu&&(this.anchor_=a.getCoordinateFromPixelInternal(a.getEventPixel(zd(this.targetPointers))),this.rotating_&&(a.render(),o.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){if(this.targetPointers.length<2){let t=e.map,n=t.getView();return n.endInteraction(this.duration_),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},df=uf,ff=class extends Bd{constructor(e){e||={};let t=e;t.stopDown||=m,super(t),this.anchor_=null,this.duration_=e.duration===void 0?400:e.duration,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],i=n.clientX-r.clientX,a=n.clientY-r.clientY,o=Math.sqrt(i*i+a*a);this.lastDistance_!==void 0&&(t=this.lastDistance_/o),this.lastDistance_=o;let s=e.map,c=s.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(zd(this.targetPointers))),s.render(),c.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let t=e.map,n=t.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},pf=ff;function mf(e){e||={};let t=new oe,n=new Ju(-.005,.05,100),r=e.altShiftDragRotate===void 0?!0:e.altShiftDragRotate;r&&t.push(new Wd);let i=e.doubleClickZoom===void 0?!0:e.doubleClickZoom;i&&t.push(new Td({delta:e.zoomDelta,duration:e.zoomDuration}));let a=e.dragPan===void 0?!0:e.dragPan;a&&t.push(new Hd({onFocusOnly:e.onFocusOnly,kinetic:n}));let o=e.pinchRotate===void 0?!0:e.pinchRotate;o&&t.push(new df);let s=e.pinchZoom===void 0?!0:e.pinchZoom;s&&t.push(new pf({duration:e.zoomDuration}));let c=e.keyboard===void 0?!0:e.keyboard;c&&(t.push(new tf),t.push(new rf({delta:e.zoomDelta,duration:e.zoomDuration})));let l=e.mouseWheelZoom===void 0?!0:e.mouseWheelZoom;l&&t.push(new lf({onFocusOnly:e.onFocusOnly,duration:e.zoomDuration}));let u=e.shiftDragZoom===void 0?!0:e.shiftDragZoom;return u&&t.push(new Qd({duration:e.zoomDuration})),t}var hf=class extends x{constructor(e,t){super(e),this.layer=t}};const gf={LAYERS:`layers`};var _f=class r extends Mu{constructor(e){e||={};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(gf.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new oe(n.slice(),{unique:!0}):N(typeof n.getArray==`function`,"Expected `layers` to be an array or a `Collection`"):n=new oe(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(E),this.layersListenerKeys_.length=0;let t=this.getLayers();for(let n in this.layersListenerKeys_.push(w(t,e.ADD,this.handleLayersAdd_,this),w(t,e.REMOVE,this.handleLayersRemove_,this)),this.listenerKeys_)this.listenerKeys_[n].forEach(E);v(this.listenerKeys_);let n=t.getArray();for(let e=0,t=n.length;e=0;--i){let a=m[i],d=a.layer;if(d.hasRenderer()&&Pu(a,l)&&o.call(s,d)){let i=d.getRenderer(),o=d.getSource();if(i&&o){let s=o.getWrapX()?f:e,l=u.bind(null,a.managed);_[0]=s[0]+p[r][0],_[1]=s[1]+p[r][1],c=i.forEachFeatureAtCoordinate(_,t,n,l,g)}if(c)return c}}if(g.length===0)return;let v=1/g.length;return g.forEach((e,t)=>e.distanceSq+=t*v),g.sort((e,t)=>e.distanceSq-t.distanceSq),g.some(e=>c=e.callback(e.feature,e.layer,e.geometry)),c}hasFeatureAtCoordinate(e,t,n,r,i,a){let o=this.forEachFeatureAtCoordinate(e,t,n,r,p,this,i,a);return o!==void 0}getMap(){return this.map_}renderFrame(e){A()}scheduleExpireIconCache(e){na.canExpireCache()&&e.postRenderFunctions.push(bf)}};function bf(e,t){na.expire()}var xf=yf,Sf=class extends xf{constructor(e){super(e),this.fontChangeListenerKey_=w(Aa,t.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement(`div`);let n=this.element_.style;n.position=`absolute`,n.width=`100%`,n.height=`100%`,n.zIndex=`0`,this.element_.className=fa+` ol-layers`;let r=e.getViewport();r.insertBefore(this.element_,r.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new bc(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){E(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display=`none`,this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(fi.PRECOMPOSE,e);let t=e.layerStatesArray.sort((e,t)=>e.zIndex-t.zIndex),n=t.some(e=>e.layer instanceof zu&&e.layer.getDeclutter());n&&(e.declutter={});let r=e.viewState;this.children_.length=0;let i=[],a=null;for(let n=0,o=t.length;n=0;--n){let r=t[n],i=r.layer;i.getDeclutter()&&i.renderDeclutter(e,r)}t.forEach(t=>t.layer.renderDeferred(e))}}},Cf=Sf;function wf(e){if(e instanceof Fu){e.setMapInternal(null);return}e instanceof vf&&e.getLayers().forEach(wf)}function Tf(e,t){if(e instanceof Fu){e.setMapInternal(t);return}if(e instanceof vf){let n=e.getLayers().getArray();for(let e=0,r=n.length;ethis.updateSize()),this.controls=n.controls||vd(),this.interactions=n.interactions||mf({onFocusOnly:!0}),this.overlays_=n.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new cd(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(rd.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(rd.VIEW,this.handleViewChanged_),this.addChangeListener(rd.SIZE,this.handleSizeChanged_),this.addChangeListener(rd.TARGET,this.handleTargetChanged_),this.setProperties(n.values);let r=this;t.view&&!(t.view instanceof Au)&&t.view.then(function(e){r.setView(new Au(e))}),this.controls.addEventListener(e.ADD,e=>{e.element.setMap(this)}),this.controls.addEventListener(e.REMOVE,e=>{e.element.setMap(null)}),this.interactions.addEventListener(e.ADD,e=>{e.element.setMap(this)}),this.interactions.addEventListener(e.REMOVE,e=>{e.element.setMap(null)}),this.overlays_.addEventListener(e.ADD,e=>{this.addOverlayInternal_(e.element)}),this.overlays_.addEventListener(e.REMOVE,e=>{let t=e.element.getId();t!==void 0&&delete this.overlayIdIndex_[t.toString()],e.element.setMap(null)}),this.controls.forEach(e=>{e.setMap(this)}),this.interactions.forEach(e=>{e.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){let t=this.getLayerGroup().getLayers();t.push(e)}handleLayerAdd_(e){Tf(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n===void 0?{}:n;let i=n.hitTolerance===void 0?0:n.hitTolerance,a=n.layerFilter===void 0?p:n.layerFilter,o=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,i,o,t,null,a,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(e){n.push(e)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(n){n instanceof vf?t(n.getLayers()):e.push(n)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t===void 0?{}:t;let r=t.layerFilter===void 0?p:t.layerFilter,i=t.hitTolerance===void 0?0:t.hitTolerance,a=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,i,a,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let t=this.viewport_,n=t.getBoundingClientRect(),r=this.getSize(),i=n.width/r[0],a=n.height/r[1],o=`changedTouches`in e?e.changedTouches[0]:e;return[(o.clientX-n.left)/i,(o.clientY-n.top)/a]}getTarget(){return this.get(rd.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Ln(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?B(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t===void 0?null:t}getInteractions(){return this.interactions}getLayerGroup(){return this.get(rd.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof oe){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){let e=this.getLayerGroup().getLayers();return e}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;n--){let r=t[n];if(r.getMap()!==this||!r.getActive()||!this.getTargetElement())continue;let i=r.handleEvent(e);if(!i||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let n=this.maxTilesLoading_,r=n;if(e){let t=e.viewHints;if(t[Cs.ANIMATING]||t[Cs.INTERACTING]){let t=Date.now()-e.time>8;n=t?0:8,r=t?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0)}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new hf(`removelayer`,t)),this.set(rd.LAYERGROUP,e)}setSize(e){this.set(rd.SIZE,e)}setTarget(e){this.set(rd.TARGET,e)}setView(e){if(!e||e instanceof Au){this.set(rd.VIEW,e);return}this.set(rd.VIEW,new Au);let t=this;e.then(function(e){t.setView(new Au(e))})}updateSize(){let e=this.getTargetElement(),t;if(e){let n=getComputedStyle(e),r=e.offsetWidth-parseFloat(n.borderLeftWidth)-parseFloat(n.paddingLeft)-parseFloat(n.paddingRight)-parseFloat(n.borderRightWidth),i=e.offsetHeight-parseFloat(n.borderTopWidth)-parseFloat(n.paddingTop)-parseFloat(n.paddingBottom)-parseFloat(n.borderBottomWidth);!isNaN(r)&&!isNaN(i)&&(t=[Math.max(0,r),Math.max(0,i)],!rs(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&st(`No map visible because the map container's width or height are 0.`))}let n=this.getSize();t&&(!n||!d(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function Df(e){let t=null;e.keyboardEventTarget!==void 0&&(t=typeof e.keyboardEventTarget==`string`?document.getElementById(e.keyboardEventTarget):e.keyboardEventTarget);let n={},r=e.layers&&typeof e.layers.getLayers==`function`?e.layers:new vf({layers:e.layers});n[rd.LAYERGROUP]=r,n[rd.TARGET]=e.target,n[rd.VIEW]=e.view instanceof Au?e.view:new Au;let i;e.controls!==void 0&&(Array.isArray(e.controls)?i=new oe(e.controls.slice()):(N(typeof e.controls.getArray==`function`,"Expected `controls` to be an array or an `ol/Collection.js`"),i=e.controls));let a;e.interactions!==void 0&&(Array.isArray(e.interactions)?a=new oe(e.interactions.slice()):(N(typeof e.interactions.getArray==`function`,"Expected `interactions` to be an array or an `ol/Collection.js`"),a=e.interactions));let o;return e.overlays===void 0?o=new oe:Array.isArray(e.overlays)?o=new oe(e.overlays.slice()):(N(typeof e.overlays.getArray==`function`,"Expected `overlays` to be an array or an `ol/Collection.js`"),o=e.overlays),{controls:i,interactions:a,keyboardEventTarget:t,overlays:o,values:n}}var Of=Ef,kf=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function Af(e,t,n,r,i){return i===void 0?new kf(e,t,n,r):(i.minX=e,i.maxX=t,i.minY=n,i.maxY=r,i)}var jf=kf,Mf=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=le,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?z(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()===`tile-pixels`&&(n=z(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return A()}readFeature(e,t){return A()}readFeatures(e,t){return A()}readGeometry(e,t){return A()}readProjection(e){return A()}writeFeature(e,t){return A()}writeFeatures(e,t){return A()}writeGeometry(e,t){return A()}},Nf=Mf;function Pf(e,t,n){let r=n?z(n.featureProjection):null,i=n?z(n.dataProjection):null,a=e;if(r&&i&&!kn(r,i)){t&&(a=e.clone());let n=t?r:i,o=t?i:r;n.getUnits()===`tile-pixels`?a.transform(n,o):a.applyTransform(Mn(n,o))}if(t&&n&&n.decimals!==void 0){let t=10**n.decimals,r=function(e){for(let n=0,r=e.length;nLf({...e,geometry:t})).flat();let r=n.type===`MultiPolygon`?`Polygon`:n.type;if(r===`GeometryCollection`||r===`Circle`)throw Error(`Unsupported geometry type: `+r);let i=n.layout.length;return Pf(new To(r,r===`Polygon`?If(n.flatCoordinates,n.ends,i):n.flatCoordinates,n.ends?.flat(),i,e.properties||{},e.id).enableSimplifyTransformed(),!1,t)}function Rf(e,t){if(!e)return null;if(Array.isArray(e)){let n=e.map(e=>Rf(e,t));return new go(n)}let n=Ff[e.type];return Pf(new n(e.flatCoordinates,e.layout||`XY`,e.ends),!1,t)}var zf=class extends Nf{constructor(){super()}getType(){return`json`}readFeature(e,t){return this.readFeatureFromObject(Bf(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(Bf(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return A()}readFeaturesFromObject(e,t){return A()}readGeometry(e,t){return this.readGeometryFromObject(Bf(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return A()}readProjection(e){return this.readProjectionFromObject(Bf(e))}readProjectionFromObject(e){return A()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return A()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return A()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return A()}};function Bf(e){if(typeof e==`string`){let t=JSON.parse(e);return t||null}return e===null?null:e}var Vf=zf,Hf=class extends Vf{constructor(e){e||={},super(),this.dataProjection=z(e.dataProjection?e.dataProjection:`EPSG:4326`),e.featureProjection&&(this.defaultFeatureProjection=z(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=[`application/geo+json`,`application/vnd.geo+json`]}readFeatureFromObject(e,t){let n=null;n=e.type===`Feature`?e:{type:`Feature`,geometry:e,properties:null};let r=Uf(n.geometry,t);if(this.featureClass===To)return Lf({geometry:r,id:n.id,properties:n.properties},t);let i=new le;return this.geometryName_?i.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&i.setGeometryName(n.geometry_name),i.setGeometry(Rf(r,t)),`id`in n&&i.setId(n.id),n.properties&&i.setProperties(n.properties,!0),i}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type===`FeatureCollection`){let n=e;r=[];let i=n.features;for(let e=0,n=i.length;e2||Math.abs(e[t*4+3]-.75*255)>2}function gp(){if(fp===void 0){let e=H(6,6,pp);e.globalCompositeOperation=`lighter`,e.fillStyle=`rgba(210, 0, 0, 0.75)`,mp(e,4,5,4,0),mp(e,4,5,0,5);let t=e.getImageData(0,0,3,3).data;fp=hp(t,0)||hp(t,4)||hp(t,8),Ci(e),pp.push(e.canvas)}return fp}function _p(e,t,n,r){let i=Nn(n,t,e),a=Cn(t,r,n),o=t.getMetersPerUnit();o!==void 0&&(a*=o);let s=e.getMetersPerUnit();s!==void 0&&(a/=s);let c=e.getExtent();if(!c||he(c,i)){let t=Cn(e,a,i)/a;isFinite(t)&&t>0&&(a/=t)}return a}function vp(e,t,n,r){let i=Me(n),a=_p(e,t,i,r);return(!isFinite(a)||a<=0)&&Oe(n,function(n){return a=_p(e,t,n,r),isFinite(a)&&a>0}),a}function yp(e,t,n,r,i,a,o,s,c,l,u,d,f,p){let m=H(Math.round(n*e),Math.round(n*t),pp);if(d||(m.imageSmoothingEnabled=!1),c.length===0)return m.canvas;m.scale(n,n);function h(e){return Math.round(e*n)/n}m.globalCompositeOperation=`lighter`;let g=F();c.forEach(function(e,t,n){we(g,e.extent)});let _,v=n/r,y=(d?1:1+2**-24)/v;if(!f||c.length!==1||l!==0){if(_=H(Math.round(L(g)*v),Math.round(I(g)*v),pp),d||(_.imageSmoothingEnabled=!1),i&&p){let e=(i[0]-g[0])*v,t=-(i[3]-g[3])*v,n=L(i)*v,r=I(i)*v;_.rect(e,t,n,r),_.clip()}c.forEach(function(e,t,n){if(e.image.width>0&&e.image.height>0){if(e.clipExtent){_.save();let t=(e.clipExtent[0]-g[0])*v,n=-(e.clipExtent[3]-g[3])*v,r=L(e.clipExtent)*v,i=I(e.clipExtent)*v;_.rect(d?t:Math.round(t),d?n:Math.round(n),d?r:Math.round(t+r)-Math.round(t),d?i:Math.round(n+i)-Math.round(n)),_.clip()}let t=(e.extent[0]-g[0])*v,n=-(e.extent[3]-g[3])*v,r=L(e.extent)*v,i=I(e.extent)*v;_.drawImage(e.image,l,l,e.image.width-2*l,e.image.height-2*l,d?t:Math.round(t),d?n:Math.round(n),d?r:Math.round(t+r)-Math.round(t),d?i:Math.round(n+i)-Math.round(n)),e.clipExtent&&_.restore()}})}let b=Le(o);return s.getTriangles().forEach(function(e,t,n){let r=e.source,i=e.target,o=r[0][0],s=r[0][1],l=r[1][0],u=r[1][1],f=r[2][0],p=r[2][1],v=h((i[0][0]-b[0])/a),x=h(-(i[0][1]-b[1])/a),S=h((i[1][0]-b[0])/a),C=h(-(i[1][1]-b[1])/a),w=h((i[2][0]-b[0])/a),T=h(-(i[2][1]-b[1])/a),E=o,D=s;o=0,s=0,l-=E,u-=D,f-=E,p-=D;let O=[[l,u,0,0,S-v],[f,p,0,0,w-v],[0,0,l,u,C-x],[0,0,f,p,T-x]],k=Je(O);if(!k)return;if(m.save(),m.beginPath(),gp()||!d){m.moveTo(S,C);let e=4,t=v-S,n=x-C;for(let r=0;rB(o,Nn(e,this.targetProj_,this.sourceProj_))):Mn(this.targetProj_,this.sourceProj_);this.transformInv_=function(e){let t=e[0]+`/`+e[1];return s[t]||(s[t]=c(e)),s[t]},this.maxSourceExtent_=r,this.errorThresholdSquared_=i*i,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&L(r)>=L(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?L(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?L(this.targetProj_.getExtent()):null;let l=Le(n),u=Re(n),d=je(n),f=Ae(n),p=this.transformInv_(l),m=this.transformInv_(u),h=this.transformInv_(d),g=this.transformInv_(f),_=bp+(a?Math.max(0,Math.ceil(Math.log2(ke(n)/(a*a*256*256)))):0);if(this.addQuad_(l,u,d,f,p,m,h,g,_),this.wrapsXInSource_){let e=1/0;this.triangles_.forEach(function(t,n,r){e=Math.min(e,t.source[0][0],t.source[1][0],t.source[2][0])}),this.triangles_.forEach(t=>{if(Math.max(t.source[0][0],t.source[1][0],t.source[2][0])-e>this.sourceWorldWidth_/2){let n=[[t.source[0][0],t.source[0][1]],[t.source[1][0],t.source[1][1]],[t.source[2][0],t.source[2][1]]];n[0][0]-e>this.sourceWorldWidth_/2&&(n[0][0]-=this.sourceWorldWidth_),n[1][0]-e>this.sourceWorldWidth_/2&&(n[1][0]-=this.sourceWorldWidth_),n[2][0]-e>this.sourceWorldWidth_/2&&(n[2][0]-=this.sourceWorldWidth_);let r=Math.min(n[0][0],n[1][0],n[2][0]),i=Math.max(n[0][0],n[1][0],n[2][0]);i-r.5&&u<1,p=!1;if(c>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let i=ue([e,t,n,r]),a=L(i)/this.targetWorldWidth_;p=a>xp||p}!f&&this.sourceProj_.isGlobal()&&u&&(p=u>xp||p)}if(!p&&this.maxSourceExtent_&&isFinite(l[0])&&isFinite(l[1])&&isFinite(l[2])&&isFinite(l[3])&&!ze(l,this.maxSourceExtent_))return;let m=0;if(!p&&(!isFinite(i[0])||!isFinite(i[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1]))){if(c>0)p=!0;else if(m=(!isFinite(i[0])||!isFinite(i[1])?8:0)+(!isFinite(a[0])||!isFinite(a[1])?4:0)+(!isFinite(o[0])||!isFinite(o[1])?2:0)+(!isFinite(s[0])||!isFinite(s[1])?1:0),m!=1&&m!=2&&m!=4&&m!=8)return}if(c>0){if(!p){let t=[(e[0]+n[0])/2,(e[1]+n[1])/2],r=this.transformInv_(t),a;if(f){let e=(Ze(i[0],d)+Ze(o[0],d))/2;a=e-Ze(r[0],d)}else a=(i[0]+o[0])/2-r[0];let s=(i[1]+o[1])/2-r[1],c=a*a+s*s;p=c>this.errorThresholdSquared_}if(p){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let l=[(t[0]+n[0])/2,(t[1]+n[1])/2],u=this.transformInv_(l),d=[(r[0]+e[0])/2,(r[1]+e[1])/2],f=this.transformInv_(d);this.addQuad_(e,t,l,d,i,a,u,f,c-1),this.addQuad_(d,l,n,r,f,u,o,s,c-1)}else{let l=[(e[0]+t[0])/2,(e[1]+t[1])/2],u=this.transformInv_(l),d=[(n[0]+r[0])/2,(n[1]+r[1])/2],f=this.transformInv_(d);this.addQuad_(e,l,d,r,i,u,f,s,c-1),this.addQuad_(l,t,n,d,u,a,o,f,c-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}m&11||this.addTriangle_(e,n,r,i,o,s),m&14||this.addTriangle_(e,n,t,i,o,a),m&&(m&13||this.addTriangle_(t,r,e,a,s,i),m&7||this.addTriangle_(t,r,n,a,s,o))}calculateSourceExtent(){let e=F();return this.triangles_.forEach(function(t,n,r){let i=t.source;Te(e,i[0]),Te(e,i[1]),Te(e,i[2])}),e}getTriangles(){return this.triangles_}},Cp=Sp;const wp=.5;var Tp=class extends Uu{constructor(e,t,n,r,i,a,o,s,c,l,u,d){super(i,Q.IDLE,d),this.renderEdges_=u===void 0?!1:u,this.pixelRatio_=o,this.gutter_=s,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=a||i,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),p=this.targetTileGrid_.getExtent(),m=this.sourceTileGrid_.getExtent(),h=p?Ie(f,p):f;if(ke(h)===0){this.state=Q.EMPTY;return}let g=e.getExtent();g&&(m=m?Ie(m,g):g);let _=r.getResolution(this.wrappedTileCoord_[0]),v=vp(e,n,h,_);if(!isFinite(v)||v<=0){this.state=Q.EMPTY;return}let y=l===void 0?wp:l;if(this.triangulation_=new Cp(e,n,h,m,v*y,_),this.triangulation_.getTriangles().length===0){this.state=Q.EMPTY;return}this.sourceZ_=t.getZForResolution(v);let b=this.triangulation_.calculateSourceExtent();if(m&&(e.canWrapX()?(b[1]=R(b[1],m[1],m[3]),b[3]=R(b[3],m[1],m[3])):b=Ie(b,m)),!ke(b))this.state=Q.EMPTY;else{let n=0,r=0;e.canWrapX()&&(n=L(g),r=Math.floor((b[0]-g[0])/n));let i=Ge(b.slice(),e,!0);i.forEach(e=>{let i=t.getTileRangeForExtentAndZ(e,this.sourceZ_);for(let e=i.minX;e<=i.maxX;e++)for(let t=i.minY;t<=i.maxY;t++){let i=c(this.sourceZ_,e,t,o);if(i){let e=r*n;this.sourceTiles_.push({tile:i,offset:e})}}++r}),this.sourceTiles_.length===0&&(this.state=Q.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==Q.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let i=this.clipExtent_?.slice();i&&(i[0]+=t.offset,i[2]+=t.offset),e.push({extent:r,clipExtent:i,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=Q.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n==`number`?n:n[0],i=typeof n==`number`?n:n[1],a=this.targetTileGrid_.getResolution(t),o=this.sourceTileGrid_.getResolution(this.sourceZ_),s=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=yp(r,i,this.pixelRatio_,o,this.sourceTileGrid_.getExtent(),a,s,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=Q.LOADED}this.changed()}load(){if(this.state==Q.IDLE){this.state=Q.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let r=t.getState();if(r==Q.IDLE||r==Q.LOADING){e++;let r=w(t,n.CHANGE,n=>{let i=t.getState();(i==Q.LOADED||i==Q.ERROR||i==Q.EMPTY)&&(E(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:e},t,n){let r=e.getState();r==Q.IDLE&&e.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(E),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Ci(this.canvas_.getContext(`2d`)),pp.push(this.canvas_),this.canvas_=null),super.release()}},Ep=Tp,Dp=class{constructor(e){this.highWaterMark=e===void 0?2048:e,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof i&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return N(n!==void 0,`Tried to get a value for a key that does not exist in the cache`),n===this.newest_?n.value_:(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n,n.value_)}remove(e){let t=this.entries_[e];return N(t!==void 0,`Tried to get a value for a key that does not exist in the cache`),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){N(!(e in this.entries_),`Tried to set a value for a key that is used already`);let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},Op=Dp;function kp(e,t,n,r){return r===void 0?[e,t,n]:(r[0]=e,r[1]=t,r[2]=n,r)}function Ap(e,t,n){return e+`/`+t+`/`+n}function jp(e){return Mp(e[0],e[1],e[2])}function Mp(e,t,n){return(t<n||n>t.getMaxZoom())return!1;let a=t.getFullTileRange(n);return a?a.containsXY(r,i):!0}function Pp(e,t,n,r,i){return`${M(e)},${t},${Ap(n,r,i)}`}function Fp(e,t,n){if(!(n in e))return e[n]=new Set([t]),!0;let r=e[n],i=r.has(t);return i||r.add(t),!i}function Ip(e,t,n){let r=e[n];return r?r.delete(t):!1}function Lp(e,t){let n=e.layerStatesArray[e.layerIndex];n.extent&&(t=Ie(t,Bn(n.extent,e.viewState.projection)));let r=n.layer.getRenderSource();if(!r.getWrapX()){let n=r.getTileGridForProjection(e.viewState.projection).getExtent();n&&(t=Ie(t,n))}return t}var Rp=class extends Oc{constructor(e,t){super(e),t||={},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=F(),this.tempTileRange_=new jf(0,0,0,0),this.tempTileCoord_=kp(0,0,0);let n=t.cacheSize===void 0?512:t.cacheSize;this.tileCache_=new Op(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let i=this.tileCache_,a=this.getLayer(),o=a.getSource(),s=Pp(o,o.getKey(),e,t,n),c;if(i.containsKey(s))c=i.get(s);else{if(c=o.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!c)return null;i.set(s,c)}return c}getTile(e,t,n,r){let i=this.getOrCreateTile(e,t,n,r);return i||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=B(t.pixelToCoordinateTransform,e.slice()),i=n.getExtent();if(i&&!he(i,r))return null;let a=t.viewState,o=n.getRenderSource(),s=o.getTileGridForProjection(a.projection),c=o.getTilePixelRatio(t.pixelRatio);for(let e=s.getZForResolution(a.resolution);e>=s.getMinZoom();--e){let n=s.getTileCoordForCoordAndZ(r,e),i=this.getTile(e,n[1],n[2],t);if(!i||i.getState()!==Q.LOADED)continue;let l=s.getOrigin(e),u=ss(s.getTileSize(e)),d=s.getResolution(e),f;if(i instanceof Ku||i instanceof Ep)f=i.getImage();else if(i instanceof dp){if(f=sp(i.getData()),!f)continue}else continue;let p=Math.floor(c*((r[0]-l[0])/d-n[1]*u[0])),m=Math.floor(c*((l[1]-r[1])/d-n[2]*u[1])),h=Math.round(c*o.getGutterForProjection(a.projection));return this.getImageData(f,p+h,m+h)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedSourceRevision_?this.renderedSourceRevision_!==n&&(this.renderedSourceRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedSourceRevision_=n,!0}enqueueTiles(e,t,n,r,i){let a=e.viewState,o=this.getLayer(),s=o.getRenderSource(),c=s.getTileGridForProjection(a.projection),l=M(s);l in e.wantedTiles||(e.wantedTiles[l]={});let u=e.wantedTiles[l],d=o.getMapInternal(),f=Math.max(n-i,c.getMinZoom(),c.getZForResolution(Math.min(o.getMaxResolution(),d?d.getView().getResolutionForZoom(Math.max(o.getMinZoom(),0)):c.getResolution(0)),s.zDirection)),p=a.rotation,m=p?Fe(a.center,a.resolution,p,e.size):void 0;for(let i=n;i>=f;--i){let n=c.getTileRangeForExtentAndZ(t,i,this.tempTileRange_),a=c.getResolution(i);for(let t=n.minX;t<=n.maxX;++t)for(let o=n.minY;o<=n.maxY;++o){if(p&&!c.tileCoordIntersectsViewport([i,t,o],m))continue;let n=this.getTile(i,t,o,e);if(!n)continue;let s=Fp(r,n,i);if(!s)continue;let d=n.getKey();if(u[d]=!0,n.getState()===Q.IDLE&&!e.tileQueue.isKeyQueued(d)){let r=kp(i,t,o,this.tempTileCoord_);e.tileQueue.enqueue([n,l,c.getTileCoordCenter(r),a])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],i=e[1],a=e[2],o=this.getStaleKeys();for(let e=0;e0&&setTimeout(()=>{this.enqueueTiles(e,T,f-1,C,w-1)},0),!(f in C))return this.container;let E=M(this),D=e.time;for(let t of C[f]){let n=t.getState();if(n===Q.EMPTY)continue;let r=t.tileCoord;if(n===Q.LOADED){let e=t.getAlpha(E,D);if(e===1){t.endTransition(E);continue}}n!==Q.ERROR&&(this.renderComplete=!1);let i=this.findStaleTile_(r,C);if(i){Ip(C,t,f),e.animate=!0;continue}let a=this.findAltTiles_(d,r,f+1,C);if(a)continue;let o=d.getMinZoom();for(let e=f-1;e>=o;--e){let t=this.findAltTiles_(d,r,e,C);if(t)break}}let O=p/a*c/g,k=this.getRenderContext(e);Gn(this.tempTransform,_/2,v/2,O,O,0,-_/2,-v/2),n.extent&&this.clipUnrotated(k,e,y),u.getInterpolate()||(k.imageSmoothingEnabled=!1),this.preRender(k,e);let A=Object.keys(C).map(Number);A.sort(o);let j,ee=[],te=[];for(let t=A.length-1;t>=0;--t){let n=A[t],r=u.getTilePixelSize(n,c,i),a=d.getResolution(n),o=a/p,s=r[0]*o*O,l=r[1]*o*O,f=d.getTileCoordForCoordAndZ(Le(S),n),m=d.getTileCoordExtent(f),h=B(this.tempTransform,[g*(m[0]-S[0])/p,g*(S[3]-m[3])/p]),_=g*u.getGutterForProjection(i);for(let t of C[n]){if(t.getState()!==Q.LOADED)continue;let r=t.tileCoord,i=f[1]-r[1],a=Math.round(h[0]-(i-1)*s),o=f[2]-r[2],c=Math.round(h[1]-(o-1)*l),d=Math.round(h[0]-i*s),p=Math.round(h[1]-o*l),m=a-d,g=c-p,v=A.length===1,y=!1;j=[d,p,d+m,p,d+m,p+g,d,p+g];for(let e=0,t=ee.length;e{let n=M(u),r=t.wantedTiles[n],i=r?Object.keys(r).length:0;this.updateCacheSize(i),this.tileCache_.expireCache()};e.postRenderFunctions.push(t)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,i,a,o,s){let c;if(e instanceof dp){if(c=sp(e.getData()),!c)throw Error(`Rendering array data is not yet supported`)}else c=this.getTileImage(e);if(!c)return;let l=this.getRenderContext(t),u=M(this),d=t.layerStatesArray[t.layerIndex],f=d.opacity*(s?e.getAlpha(u,t.time):1),p=f!==l.globalAlpha;p&&(l.save(),l.globalAlpha=f),l.drawImage(c,o,o,c.width-2*o,c.height-2*o,n,r,i,a),p&&l.restore(),f===d.opacity?s&&e.endTransition(u):t.animate=!0}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=M(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},zp=Rp,Bp={PRELOAD:`preload`,USE_INTERIM_TILES_ON_ERROR:`useInterimTilesOnError`},Vp=class extends Fu{constructor(e){e||={};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload===void 0?0:e.preload),this.setUseInterimTilesOnError(e.useInterimTilesOnError===void 0?!0:e.useInterimTilesOnError)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(Bp.PRELOAD)}setPreload(e){this.set(Bp.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(Bp.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(Bp.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},Hp=Vp,Up=class extends Hp{constructor(e){super(e)}createRenderer(){return new zp(this,{cacheSize:this.getCacheSize()})}},Wp=Up;const Gp=[0,0,0],Kp=5;var qp=class{constructor(e){this.minZoom=e.minZoom===void 0?0:e.minZoom,this.resolutions_=e.resolutions,N(f(this.resolutions_,(e,t)=>t-e,!0),"`resolutions` must be sorted in descending order");let t;if(!e.origins){for(let e=0,n=this.resolutions_.length-1;e{let r=new jf(Math.min(0,e[0]),Math.max(e[0]-1,-1),Math.min(0,e[1]),Math.max(e[1]-1,-1));if(n){let e=this.getTileRangeForExtentAndZ(n,t);r.minX=Math.max(e.minX,r.minX),r.maxX=Math.min(e.maxX,r.maxX),r.minY=Math.max(e.minY,r.minY),r.maxY=Math.min(e.maxY,r.maxY)}return r})}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let e=r.minX,i=r.maxX;e<=i;++e)for(let i=r.minY,a=r.maxY;i<=a;++i)n([t,e,i])}forEachTileCoordParentTileRange(e,t,n,r){let i,a,o,s=null,c=e[0]-1;for(this.zoomFactor_===2?(a=e[1],o=e[2]):s=this.getTileCoordExtent(e,r);c>=this.minZoom;){if(a!==void 0&&o!==void 0?(a=Math.floor(a/2),o=Math.floor(o/2),i=Af(a,a,o,o,n)):i=this.getTileRangeForExtentAndZ(s,c,n),t(c,i))return!0;--c}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?r:Math.max(a/n[0],i/n[1]);let o=t+1,s=Array(o);for(let e=0;ethis.getTileInternal(e,t,n,r,a),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return d.key=s,d}getTileInternal(e,t,n,r,i){let a=this.getKey();return this.createTile_(e,t,n,r,i,a)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=z(e);if(n){let e=M(n);e in this.tileGridForProjection||(this.tileGridForProjection[e]=t)}}};function vm(e,t){e.getImage().src=t}var ym=_m,bm=class extends ym{constructor(e){e||={};let t=e.projection===void 0?`EPSG:3857`:e.projection,n=e.tileGrid===void 0?Qp({extent:tm(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize}):e.tileGrid;super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX===void 0?!0:e.wrapX,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter===void 0?0:e.gutter}getGutter(){return this.gutter_}},xm=bm;const Sm=`© OpenStreetMap contributors.`;var Cm=class extends xm{constructor(e){e||={};let t;t=e.attributions===void 0?[Sm]:e.attributions;let n=e.crossOrigin===void 0?`anonymous`:e.crossOrigin,r=e.url===void 0?`https://tile.openstreetmap.org/{z}/{x}/{y}.png`:e.url;super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom===void 0?19:e.maxZoom,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},wm=Cm;export{ps as Circle,le as Feature,es as Fill,op as GeoJSON,wm as OSM,Of as OlMap,Lr as Point,ns as Stroke,ys as Style,Wp as TileLayer,Vu as VectorLayer,Qo as VectorSource,Au as View,F as createEmpty,On as fromLonLat}; //# sourceMappingURL=ol.min.js.map