UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

1 lines 83 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[3875,9397],{5482(e,t,r){function n(e,t,r,n){var s,i=arguments.length,a=i<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,r,n);else for(var o=e.length-1;o>=0;o--)(s=e[o])&&(a=(i<3?s(a):i>3?s(t,r,a):s(t,r))||a);return i>3&&a&&Object.defineProperty(t,r,a),a}function s(e,t,r){if(null!=t){if("object"!=typeof t&&"function"!=typeof t)throw new TypeError("Object expected.");var n,s;if(r){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");n=t[Symbol.asyncDispose]}if(void 0===n){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");n=t[Symbol.dispose],r&&(s=n)}if("function"!=typeof n)throw new TypeError("Object not disposable.");s&&(n=function(){try{s.call(this)}catch(e){return Promise.reject(e)}}),e.stack.push({value:t,dispose:n,async:r})}else r&&e.stack.push({async:!0});return t}r.d(t,{Cg:()=>n,hk:()=>a,mS:()=>s}),Object.create,Object.create;var i="function"==typeof SuppressedError?SuppressedError:function(e,t,r){var n=new Error(r);return n.name="SuppressedError",n.error=e,n.suppressed=t,n};function a(e){function t(t){e.error=e.hasError?new i(t,e.error,"An error was suppressed during disposal."):t,e.hasError=!0}var r,n=0;return function s(){for(;r=e.stack.pop();)try{if(!r.async&&1===n)return n=0,e.stack.push(r),Promise.resolve().then(s);if(r.dispose){var i=r.dispose.call(r.value);if(r.async)return n|=2,Promise.resolve(i).then(s,function(e){return t(e),s()})}else n|=1}catch(e){t(e)}if(1===n)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}()}},21276(e,t,r){r.d(t,{H:()=>i,f:()=>s});var n=r(49186);function s(e){if(e&&"object"==typeof e&&"type"in e&&"mesh"===e.type)throw new n.A("internal:mesh","Mesh geometries are not supported for this operation")}function i(e){e.forEach(s)}},28735(e,t,r){r.d(t,{Cv:()=>x,Gh:()=>m,ci:()=>b,je:()=>g,jg:()=>u,tD:()=>_,y7:()=>y,yw:()=>c});var n=r(4718),s=r(21276),i=r(16930),a=r(79258),o=r(21325);function l(e){return 57.29577951308232*e}function h(e){return.017453292519943*e}function c(e){return e/a.$O.radius}function u(e){return Math.PI/2-2*Math.atan(Math.exp(-e/a.$O.radius))}function f(e){return null!=e.wkid||null!=e.wkt}const d=[0,0];function p(e,t,r,n,s){const i=e,a=s;if(a.spatialReference=r,"x"in i&&"x"in a)[a.x,a.y]=t(i.x,i.y,d,n);else if("xmin"in i&&"xmin"in a)[a.xmin,a.ymin]=t(i.xmin,i.ymin,d,n),[a.xmax,a.ymax]=t(i.xmax,i.ymax,d,n);else if("paths"in i&&"paths"in a||"rings"in i&&"rings"in a){const e="paths"in i?i.paths:i.rings,r=[];let s;for(let i=0;i<e.length;i++){const a=e[i];s=[],r.push(s);for(let e=0;e<a.length;e++)s.push(t(a[e][0],a[e][1],[0,0],n)),a[e].length>2&&s[e].push(a[e][2]),a[e].length>3&&s[e].push(a[e][3])}"paths"in a?a.paths=r:a.rings=r}else if("points"in i&&"points"in a){const e=i.points,r=[];for(let s=0;s<e.length;s++)r[s]=t(e[s][0],e[s][1],[0,0],n),e[s].length>2&&r[s].push(e[s][2]),e[s].length>3&&r[s].push(e[s][3]);a.points=r}return s}function y(e,t){const r=e&&(f(e)?e:e.spatialReference),n=t&&(f(t)?t:t.spatialReference);return!(e&&"type"in e&&"mesh"===e.type||t&&"type"in t&&"mesh"===t.type||!r||!n)&&(!!(0,o.aI)(n,r)||(0,o.K8)(n)&&(0,o.oT)(r)||(0,o.K8)(r)&&(0,o.oT)(n))}function x(e,t){if(null==e)return null;const r=e.spatialReference,s=t&&(f(t)?t:t.spatialReference);return y(r,s)?(0,o.aI)(r,s)?(0,n.o8)(e):(0,o.K8)(s)?p(e,g,i.A.WebMercator,!1,(0,n.o8)(e)):(0,o.oT)(s)?p(e,_,i.A.WGS84,!1,(0,n.o8)(e)):null:null}function g(e,t,r=[0,0]){t>89.99999?t=89.99999:t<-89.99999&&(t=-89.99999);const n=h(t);return r[0]=h(e)*a.$O.radius,r[1]=a.$O.halfSemiMajorAxis*Math.log((1+Math.sin(n))/(1-Math.sin(n))),r}function _(e,t,r=[0,0],n=!1){if(e===o.Mc[0])r[0]=-180;else if(e===o.Mc[1])r[0]=180;else{const t=l(e/a.$O.radius);r[0]=n?t:t-360*Math.floor((t+180)/360)}return r[1]=l(Math.PI/2-2*Math.atan(Math.exp(-t/a.$O.radius))),r}function m(e,t=!1,r=(0,n.o8)(e)){return(0,s.f)(e),(0,s.f)(r),p(e,g,i.A.WebMercator,t,r)}function b(e,t=!1,r=(0,n.o8)(e)){return(0,s.f)(e),(0,s.f)(r),p(e,_,i.A.WGS84,t,r)}},34304(e,t,r){r.d(t,{DF:()=>l,FD:()=>s,Ov:()=>i,ct:()=>h});let n=1e-6;function s(){return n}const i=Math.random,a=Math.PI/180,o=180/Math.PI;function l(e){return e*a}function h(e){return e*o}Object.freeze(Object.defineProperty({__proto__:null,RANDOM:i,equals:function(e,t){return Math.abs(e-t)<=n*Math.max(1,Math.abs(e),Math.abs(t))},getEpsilon:s,setEpsilon:function(e){n=e},toDegree:h,toRadian:l},Symbol.toStringTag,{value:"Module"}))},36849(e,t,r){r.r(t),r.d(t,{default:()=>Y});var n=r(74887),s=r(6774),i=r(5408),a=r(13195);function o(e){return 746===e||747===e||!(e<4352)&&(e>=12704&&e<=12735||e>=12544&&e<=12591||e>=65072&&e<=65103&&!(e>=65097&&e<=65103)||e>=63744&&e<=64255||e>=13056&&e<=13311||e>=11904&&e<=12031||e>=12736&&e<=12783||e>=12288&&e<=12351&&!(e>=12296&&e<=12305||e>=12308&&e<=12319||12336===e)||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=12800&&e<=13055||e>=12592&&e<=12687||e>=43360&&e<=43391||e>=55216&&e<=55295||e>=4352&&e<=4607||e>=44032&&e<=55215||e>=12352&&e<=12447||e>=12272&&e<=12287||e>=12688&&e<=12703||e>=12032&&e<=12255||e>=12784&&e<=12799||e>=12448&&e<=12543&&12540!==e||e>=65280&&e<=65519&&!(65288===e||65289===e||65293===e||e>=65306&&e<=65310||65339===e||65341===e||65343===e||e>=65371&&e<=65503||65507===e||e>=65512&&e<=65519)||e>=65104&&e<=65135&&!(e>=65112&&e<=65118||e>=65123&&e<=65126)||e>=5120&&e<=5759||e>=6320&&e<=6399||e>=65040&&e<=65055||e>=19904&&e<=19967||e>=40960&&e<=42127||e>=42128&&e<=42191)}function l(e){return!(e<11904)&&(e>=12704&&e<=12735||e>=12544&&e<=12591||e>=65072&&e<=65103||e>=63744&&e<=64255||e>=13056&&e<=13311||e>=11904&&e<=12031||e>=12736&&e<=12783||e>=12288&&e<=12351||e>=13312&&e<=19903||e>=19968&&e<=40959||e>=12800&&e<=13055||e>=65280&&e<=65519||e>=12352&&e<=12447||e>=12272&&e<=12287||e>=12032&&e<=12255||e>=12784&&e<=12799||e>=12448&&e<=12543||e>=65040&&e<=65055||e>=42128&&e<=42191||e>=40960&&e<=42127)}function h(e){switch(e){case 10:case 32:case 38:case 40:case 41:case 43:case 45:case 47:case 173:case 183:case 8203:case 8208:case 8211:case 8231:return!0}return!1}function c(e){switch(e){case 9:case 10:case 11:case 12:case 13:case 32:return!0}return!1}var u=r(18989);const f=24;class d{constructor(e,t,r,n,s,i,a){this._glyphItems=e,this._maxWidth=t,this._lineHeight=r,this._letterSpacing=n,this._hAnchor=s,this._vAnchor=i,this._justify=a}getShaping(e,t,r){const n=this._letterSpacing,s=this._lineHeight,i=this._justify,a=this._maxWidth,u=[];let f=0,d=0;for(const t of e){const e=t.codePointAt(0);if(null==e)continue;const s=r&&o(e);let i;for(const t of this._glyphItems)if(i=t[e],i)break;u.push({codePoint:e,x:f,y:d,vertical:s,glyphMosaicItem:i}),i&&(f+=i.metrics.advance+n)}let p=f;a>0&&(p=f/Math.max(1,Math.ceil(f/a)));const y=e.includes("​"),x=[],g=u.length;for(let e=0;e<g-1;e++){const t=u[e].codePoint,r=l(t);if(h(t)||r){let n=0;if(10===t)n-=1e4;else if(r&&y)n+=150;else{40!==t&&65288!==t||(n+=50);const r=u[e+1].codePoint;41!==r&&65289!==r||(n+=50)}x.push(this._buildBreak(e+1,u[e].x,p,x,n,!1))}}const _=this._optimalBreaks(this._buildBreak(g,f,p,x,0,!0));let m=0;const b=t?-s:s;let w=0;for(let e=0;e<_.length;e++){const t=_[e];let r=w;for(;r<t&&c(u[r].codePoint);)u[r].glyphMosaicItem=null,++r;let n=t-1;for(;n>r&&c(u[n].codePoint);)u[n].glyphMosaicItem=null,--n;if(r<=n){const e=u[r].x;for(let t=r;t<=n;t++)u[t].x-=e,u[t].y=d;let t=u[n].x;u[n].glyphMosaicItem&&(t+=u[n].glyphMosaicItem.metrics.advance),m=Math.max(t,m),i&&this._applyJustification(u,r,n)}w=t,d+=b}if(u.length>0){const e=_.length-1,r=(i-this._hAnchor)*m;let n=(-this._vAnchor*(e+1)+.5)*s;t&&e&&(n+=e*s);for(const e of u)e.x+=r,e.y+=n}return u.filter(e=>e.glyphMosaicItem)}static getTextBox(e,t){if(!e.length)return null;let r=1/0,n=1/0,s=0,i=0;for(const a of e){const e=a.glyphMosaicItem.metrics.advance,o=a.x,l=a.y-17,h=o+e,c=l+t;r=Math.min(r,o),s=Math.max(s,h),n=Math.min(n,l),i=Math.max(i,c)}return{x:r,y:n,width:s-r,height:i-n}}static getBox(e){if(!e.length)return null;let t=1/0,r=1/0,n=0,s=0;for(const i of e){const{height:e,left:a,top:o,width:l}=i.glyphMosaicItem.metrics,h=i.x,c=i.y-(e-Math.abs(o)),u=h+l+a,f=c+e;t=Math.min(t,h),n=Math.max(n,u),r=Math.min(r,c),s=Math.max(s,f)}return{x:t,y:r,width:n-t,height:s-r}}static addDecoration(e,t){const r=e.length;if(0===r)return;let n=e[0].x+e[0].glyphMosaicItem.metrics.left,s=e[0].y;for(let i=1;i<r;i++){const r=e[i];if(r.y!==s){const a=e[i-1].x+e[i-1].glyphMosaicItem.metrics.left+e[i-1].glyphMosaicItem.metrics.width;e.push({codePoint:0,x:n,y:s+t-3,vertical:!1,glyphMosaicItem:{sdf:!0,rect:new u.A(4,0,4,8),metrics:{width:a-n,height:8,left:0,top:0,advance:0},page:0,code:0}}),s=r.y,n=r.x+r.glyphMosaicItem.metrics.left}}const i=e[r-1].x+e[r-1].glyphMosaicItem.metrics.left+e[r-1].glyphMosaicItem.metrics.width;e.push({codePoint:0,x:n,y:s+t-3,vertical:!1,glyphMosaicItem:{sdf:!0,rect:new u.A(4,0,4,8),metrics:{width:i-n,height:8,left:0,top:0,advance:0},page:0,code:0}})}_breakScore(e,t,r,n){const s=(e-t)*(e-t);return n?e<t?s/2:2*s:s+Math.abs(r)*r}_buildBreak(e,t,r,n,s,i){let a=null,o=this._breakScore(t,r,s,i);for(const e of n){const n=t-e.x,l=this._breakScore(n,r,s,i)+e.score;l<=o&&(a=e,o=l)}return{index:e,x:t,score:o,previousBreak:a}}_optimalBreaks(e){return e?this._optimalBreaks(e.previousBreak).concat(e.index):[]}_applyJustification(e,t,r){const n=e[r],s=n.vertical?f:n.glyphMosaicItem?n.glyphMosaicItem.metrics.advance:0,i=(n.x+s)*this._justify;for(let n=t;n<=r;n++)e[n].x-=i}}const p=.5;class y{constructor(e,t,r=0,n=-1,s=p){this.x=e,this.y=t,this.angle=r,this.segment=n,this.minzoom=s}}class x{constructor(e,t,r,n,s,i=p,o=a.MG){this.anchor=e,this.labelAngle=t,this.glyphAngle=r,this.page=n,this.alternateVerticalGlyph=s,this.minzoom=i,this.maxzoom=o}}class g{constructor(e,t,r,n,s,i,a,o,l,h,c,u){this.tl=e,this.tr=t,this.bl=r,this.br=n,this.mosaicRect=s,this.labelAngle=i,this.minAngle=a,this.maxAngle=o,this.anchor=l,this.minzoom=h,this.maxzoom=c,this.page=u}}class _{constructor(e){this.shapes=e}}class m{getIconPlacement(e,t,r){const n=new s.bR(e.x,e.y),i=0===r.rotationAlignment,o=r.keepUpright;let l=r.rotate*a.os;i&&(l+=e.angle);const h=new _([]);return h.iconColliders=[],this._addIconPlacement(h,n,t,r,l),i&&o&&this._addIconPlacement(h,n,t,r,l+a.Jo),h}_addIconPlacement(e,t,r,n,i){const o=r.rasterizationScale,l=r.width/o,h=r.height/o,c=n.offset;let u=c[0],f=c[1];switch(n.anchor){case 0:u-=l/2,f-=h/2;break;case 1:f-=h/2;break;case 2:u-=l,f-=h/2;break;case 3:u-=l/2;break;case 4:u-=l/2,f-=h;break;case 5:break;case 7:f-=h;break;case 6:u-=l;break;case 8:u-=l,f-=h}const d=r.rect,y=2/o,x=u-y,_=f-y,m=x+d.width/o,b=_+d.height/o,w=new s.bR(x,_),M=new s.bR(m,b),I=new s.bR(x,b),v=new s.bR(m,_);if(0!==i){const e=Math.cos(i),t=Math.sin(i);w.rotate(e,t),M.rotate(e,t),I.rotate(e,t),v.rotate(e,t)}const k=new g(w,v,I,M,d,i,0,256,t,p,a.MG,0);e.shapes.push(k);{const r=n.size,s=n.padding,o={xTile:t.x,yTile:t.y,dxPixels:u*r-s,dyPixels:f*r-s,hard:!n.optional,partIndex:0,width:l*r+2*s,height:h*r+2*s,angle:i,minLod:p,maxLod:a.MG};e.iconColliders.push(o)}}getTextPlacement(e,t,r,n){const o=new s.bR(e.x,e.y),{keepUpright:l,rotate:h,rotationAlignment:c,size:u}=n,y=h*a.os,m=0===c,b=l,w=n.padding;let M=p;const I=m?e.angle:0,v=e.segment>=0&&m,k=[],P=[],V=!v;let A=Number.POSITIVE_INFINITY,B=Number.NEGATIVE_INFINITY,D=A,S=B;const L=(v||m)&&b,R=u/f;let C=!1;for(const e of t)if(e.vertical){C=!0;break}let T,z=0,U=0;if(!v&&C){const e=d.getTextBox(t,n.lineHeight*f);switch(n.anchor){case 1:z=e.height/2,U=-e.width/2;break;case 2:z=-e.height/2,U=e.width/2;break;case 3:z=e.height/2,U=e.width/2;break;case 4:z=-e.height/2,U=-e.width/2;break;case 5:z=e.height;break;case 7:U=-e.width;break;case 6:U=e.width;break;case 8:z=-e.height}}z+=n.offset[0]*f,U+=n.offset[1]*f;for(const l of t){const t=l.glyphMosaicItem;if(!t||t.rect.isEmpty)continue;const h=t.rect,c=t.metrics,u=t.page;if(k&&V){if(void 0!==T&&T!==l.y){let t,r,s,i;C?(t=-S+z,r=A+U,s=S-D,i=B-A):(t=A+z,r=D+U,s=B-A,i=S-D);const o={xTile:e.x,yTile:e.y,dxPixels:t*R-w,dyPixels:r*R-w,hard:!n.optional,partIndex:1,width:s*R+2*w,height:i*R+2*w,angle:y,minLod:p,maxLod:a.MG};k.push(o),A=Number.POSITIVE_INFINITY,B=Number.NEGATIVE_INFINITY,D=A,S=B}T=l.y}const f=[];if(v){const n=.5*t.metrics.width,s=(l.x+c.left-4+n)*R*i.ih;if(M=this._placeGlyph(e,M,s,r,e.segment,1,l.vertical,u,f),b&&(M=this._placeGlyph(e,M,s,r,e.segment,-1,l.vertical,u,f)),M>=2)break}else f.push(new x(o,I,I,u,!1)),m&&b&&f.push(new x(o,I+a.Jo,I+a.Jo,u,!1));const d=l.x+c.left,_=l.y-17-c.top,F=d+c.width,N=_+c.height;let E,O,G,Z,j,W,q,K;if(!v&&C)if(l.vertical){const e=(d+F)/2-c.height/2,t=(_+N)/2+c.width/2;E=new s.bR(-t-4+z,e-4+U),O=new s.bR(E.x+h.width,E.y+h.height),G=new s.bR(E.x,O.y),Z=new s.bR(O.x,E.y)}else E=new s.bR(4-_+z,d-4+U),O=new s.bR(E.x-h.height,E.y+h.width),G=new s.bR(O.x,E.y),Z=new s.bR(E.x,O.y);else E=new s.bR(d-4+z,_-4+U),O=new s.bR(E.x+h.width,E.y+h.height),G=new s.bR(E.x,O.y),Z=new s.bR(O.x,E.y);for(const t of f){let r,i,a,o;if(t.alternateVerticalGlyph){if(!j){const e=(_+N)/2+U;j=new s.bR((d+F)/2+z-c.height/2-4,e+c.width/2+4),W=new s.bR(j.x+h.height,j.y-h.width),q=new s.bR(W.x,j.y),K=new s.bR(j.x,W.y)}r=j,i=q,a=K,o=W}else r=E,i=G,a=Z,o=O;const u=_,f=N,p=t.glyphAngle+y;if(0!==p){const e=Math.cos(p),t=Math.sin(p);r=r.clone(),i=i?.clone(),a=a?.clone(),o=o?.clone(),r.rotate(e,t),o?.rotate(e,t),i?.rotate(e,t),a?.rotate(e,t)}let x=0,m=256;if(v&&C?l.vertical?t.alternateVerticalGlyph?(x=32,m=96):(x=224,m=32):(x=224,m=96):(x=192,m=64),P.push(new g(r,a,i,o,h,t.labelAngle,x,m,t.anchor,t.minzoom,t.maxzoom,t.page)),k&&(!L||this._legible(t.labelAngle)))if(V)d<A&&(A=d),u<D&&(D=u),F>B&&(B=F),f>S&&(S=f);else if(t.minzoom<2){const r={xTile:e.x,yTile:e.y,dxPixels:(d+z)*R-w,dyPixels:(u+z)*R-w,hard:!n.optional,partIndex:1,width:(F-d)*R+2*w,height:(f-u)*R+2*w,angle:p,minLod:t.minzoom,maxLod:t.maxzoom};k.push(r)}}}if(M>=2)return null;if(k&&V){let t,r,s,i;C?(t=-S+z,r=A+U,s=S-D,i=B-A):(t=A+z,r=D+U,s=B-A,i=S-D);const o={xTile:e.x,yTile:e.y,dxPixels:t*R-w,dyPixels:r*R-w,hard:!n.optional,partIndex:1,width:s*R+2*w,height:i*R+2*w,angle:y,minLod:p,maxLod:a.MG};k.push(o)}const F=new _(P);return k&&k.length>0&&(F.textColliders=k),F}_legible(e){const t=(0,a.z0)(e);return t<65||t>=193}_placeGlyph(e,t,r,n,i,o,l,h,c){let u=o;const f=u<0?(0,a.Wh)(e.angle+a.Jo,a.pJ):e.angle;let d=0;r<0&&(u*=-1,r*=-1,d=a.Jo),u>0&&++i;let p=new s.bR(e.x,e.y),y=n[i],g=a.MG;if(n.length<=i)return g;for(;;){const e=y.x-p.x,s=y.y-p.y,o=Math.sqrt(e*e+s*s),_=Math.max(r/o,t),m=e/o,b=s/o,w=(0,a.Wh)(Math.atan2(b,m)+d,a.pJ);if(c.push(new x(p,f,w,h,!1,_,g)),l&&c.push(new x(p,f,w,h,!0,_,g)),_<=t)return _;p=y.clone();do{if(i+=u,n.length<=i||i<0)return _;y=n[i]}while(p.isEqual(y));let M=y.x-p.x,I=y.y-p.y;const v=Math.sqrt(M*M+I*I);M*=o/v,I*=o/v,p.x-=M,p.y-=I,g=_}}}var b=r(51624),w=r(15585);class M{constructor(e,t,r=0){this.values={},this._geometry=void 0,this._pbfGeometry=null,this.featureIndex=r;const n=t.keys,s=t.values,i=e.asUnsafe();for(;i.next();)switch(i.tag()){case 1:this.id=i.getUInt64();break;case 2:{const e=i.getMessage().asUnsafe(),t=this.values;for(;!e.empty();){const r=e.getUInt32(),i=e.getUInt32();t[n[r]]=s[i]}e.release();break}case 3:this.type=i.getUInt32();break;case 4:this._pbfGeometry=i.getMessage();break;default:i.skip()}}getGeometry(e){if(void 0!==this._geometry)return this._geometry;if(!this._pbfGeometry)return null;const t=this._pbfGeometry.asUnsafe();let r,n;this._pbfGeometry=null,e?e.reset(this.type):r=[];let i,a=1,o=0,l=0,h=0;for(;!t.empty();){if(0===o){const e=t.getUInt32();a=7&e,o=e>>3}switch(o--,a){case 1:l+=t.getSInt32(),h+=t.getSInt32(),e?e.moveTo(l,h):r&&(n&&r.push(n),n=[],n.push(new s.bR(l,h)));break;case 2:l+=t.getSInt32(),h+=t.getSInt32(),e?e.lineTo(l,h):n&&n.push(new s.bR(l,h));break;case 7:e?e.close():n&&!n[0].equals(l,h)&&n.push(n[0].clone());break;default:throw t.release(),new Error("Invalid path operation")}}return e?i=e.result():r&&(n&&r.push(n),i=r),t.release(),this._geometry=i,i}}r(44208);class I{constructor(e){this._array=[],this._stride=e}get array(){return this._array}get index(){return 4*this._array.length/this._stride}get itemSize(){return this._stride}get sizeInBytes(){return 4*this._array.length}reset(){this.array.length=0}toBuffer(){return new Uint32Array(this._array).buffer}}class v extends I{constructor(){super(12)}add(e,t,r){const n=this.array;n.push(e),n.push(t),n.push(r)}}class k{constructor(e){this.extent=i._H,this.keys=[],this.values=[],this._pbfLayer=e.clone();const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:this.name=t.getString();break;case 3:this.keys.push(t.getString());break;case 4:this.values.push(t.processMessage(k._parseValue));break;case 5:this.extent=t.getUInt32();break;default:t.skip()}}getData(){return this._pbfLayer}static _parseValue(e){for(;e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getInt64();case 5:return e.getUInt64();case 6:return e.getSInt64();case 7:return e.getBool();default:e.skip()}return null}}var P=r(89518);class V extends I{constructor(e){super(e)}add(e,t,r,n,s,i,a,o,l,h,c,u){const f=this.array;let d=(0,P.M9)(e,t);f.push(d);const p=31;d=(0,P.Ss)(Math.round(p*r),Math.round(p*n),Math.round(p*s),Math.round(p*i)),f.push(d),d=(0,P.Ss)(Math.round(p*a),Math.round(p*o),Math.round(p*l),Math.round(p*h)),f.push(d),d=(0,P.M9)(c,0),f.push(d),u&&f.push(...u)}}class A extends I{constructor(e){super(e)}add(e,t,r){const n=this.array;n.push((0,P.M9)(e,t)),r&&n.push(...r)}}class B extends I{constructor(e){super(e)}add(e,t,r,n,s,i,a){const o=this.array,l=this.index;let h=(0,P.M9)(e,t);return o.push(h),h=(0,P.Ss)(Math.round(15*r),Math.round(15*n),s,i),o.push(h),a&&o.push(...a),l}}class D extends I{constructor(e){super(e)}add(e,t,r,n,s,i,o,l,h,c,u,f){const d=this.array;let p=(0,P.M9)(e,t);d.push(p),p=(0,P.M9)(Math.round(8*r),Math.round(8*n)),d.push(p),p=(0,P.M9)((0,P.ws)(s/4,i/4),(0,P.ws)(l,h)),d.push(p),p=(0,P.M9)((0,P.ws)(0,(0,a.z0)(o)),(0,P.ws)(10*c,Math.min(10*u,255))),d.push(p),f&&d.push(...f)}}class S extends I{constructor(e){super(e)}add(e,t,r,n,s){const i=this.array,a=(0,P.M9)(2*e+r,2*t+n);i.push(a),s&&i.push(...s)}}class L{constructor(e,t,r){this.layerExtent=i._H,this._features=[],this.layer=e,this.zoom=t,this._spriteInfo=r,this._filter=e.getFeatureFilter()}pushFeature(e){this._filter&&!this._filter.filter(e,this.zoom)||this._features.push(e)}hasFeatures(){return this._features.length>0}getResources(e,t,r){}}class R extends L{constructor(e,t,r,n,s){super(e,t,r),this.type=4,this._circleVertexBuffer=n,this._circleIndexBuffer=s}get circleIndexStart(){return this._circleIndexStart}get circleIndexCount(){return this._circleIndexCount}processFeatures(e){const t=this._circleVertexBuffer,r=this._circleIndexBuffer;this._circleIndexStart=3*r.index,this._circleIndexCount=0;const n=this.layer,s=this.zoom;e&&e.setExtent(this.layerExtent);for(const i of this._features){const a=i.getGeometry(e);if(!a)continue;const o=n.circleMaterial.encodeAttributes(i,s,n);for(const e of a)if(e)for(const n of e){const e=t.index;t.add(n.x,n.y,0,0,o),t.add(n.x,n.y,0,1,o),t.add(n.x,n.y,1,0,o),t.add(n.x,n.y,1,1,o),r.add(e,e+1,e+2),r.add(e+1,e+2,e+3),this._circleIndexCount+=6}}}serialize(){let e=6;e+=this.layerUIDs.length,e+=this._circleVertexBuffer.array.length,e+=this._circleIndexBuffer.array.length;const t=new Uint32Array(e),r=new Int32Array(t.buffer);let n=0;t[n++]=this.type,t[n++]=this.layerUIDs.length;for(let e=0;e<this.layerUIDs.length;e++)t[n++]=this.layerUIDs[e];t[n++]=this._circleIndexStart,t[n++]=this._circleIndexCount,t[n++]=this._circleVertexBuffer.array.length;for(let e=0;e<this._circleVertexBuffer.array.length;e++)r[n++]=this._circleVertexBuffer.array[e];t[n++]=this._circleIndexBuffer.array.length;for(let e=0;e<this._circleIndexBuffer.array.length;e++)t[n++]=this._circleIndexBuffer.array[e];return t.buffer}}var C=r(98291),T=r(83349);class z extends L{constructor(e,t,r,n,s,i,a){super(e,t,r),this.type=1,this._patternMap=new Map,this._fillVertexBuffer=n,this._fillIndexBuffer=s,this._outlineVertexBuffer=i,this._outlineIndexBuffer=a}get fillIndexStart(){return this._fillIndexStart}get fillIndexCount(){return this._fillIndexCount}get outlineIndexStart(){return this._outlineIndexStart}get outlineIndexCount(){return this._outlineIndexCount}getResources(e,t,r){const n=this.layer,s=this.zoom,i=n.getPaintProperty("fill-pattern");if(i)if(i.isDataDriven)for(const e of this._features)t(i.getValue(s,e),!0);else t(i.getValue(s),!0)}processFeatures(e){this._fillIndexStart=3*this._fillIndexBuffer.index,this._fillIndexCount=0,this._outlineIndexStart=3*this._outlineIndexBuffer.index,this._outlineIndexCount=0;const t=this.layer,r=this.zoom,{fillMaterial:n,outlineMaterial:s,hasDataDrivenFill:i,hasDataDrivenOutline:a}=t;e&&e.setExtent(this.layerExtent);const o=t.getPaintProperty("fill-pattern"),l=o?.isDataDriven;let h=!o&&t.getPaintValue("fill-antialias",r);if(t.outlineUsesFillColor){if(h&&!t.hasDataDrivenOpacity){const e=t.getPaintValue("fill-opacity",r),n=t.getPaintValue("fill-opacity",r+1);e<1&&n<1&&(h=!1)}if(h&&!t.hasDataDrivenColor){const e=t.getPaintValue("fill-color",r),n=t.getPaintValue("fill-color",r+1);e[3]<1&&n[3]<1&&(h=!1)}}const c=this._features,u=e?.validateTessellation;if(l){const i=[];for(const l of c){const c=o.getValue(r,l),u=this._spriteInfo[c];if(!u?.rect)continue;const f=n.encodeAttributes(l,r,t,u),d=h&&a?s.encodeAttributes(l,r,t):[],p=l.getGeometry(e);i.push({ddFillAttributes:f,ddOutlineAttributes:d,page:u.page,geometry:p}),i.sort((e,t)=>e.page-t.page)}for(const{ddFillAttributes:e,ddOutlineAttributes:r,page:n,geometry:s}of i)this._processFeature(s,h,t.outlineUsesFillColor,e,r,u,n)}else for(const o of c){const l=i?n.encodeAttributes(o,r,t):null,c=h&&a?s.encodeAttributes(o,r,t):null,f=o.getGeometry(e);this._processFeature(f,h,t.outlineUsesFillColor,l,c,u)}}serialize(){let e=10;e+=this.layerUIDs.length,e+=this._fillVertexBuffer.array.length,e+=this._fillIndexBuffer.array.length,e+=this._outlineVertexBuffer.array.length,e+=this._outlineIndexBuffer.array.length,e+=3*this._patternMap.size+1;const t=new Uint32Array(e),r=new Int32Array(t.buffer);let n=0;t[n++]=this.type,t[n++]=this.layerUIDs.length;for(let e=0;e<this.layerUIDs.length;e++)t[n++]=this.layerUIDs[e];t[n++]=this._fillIndexStart,t[n++]=this._fillIndexCount,t[n++]=this._outlineIndexStart,t[n++]=this._outlineIndexCount;const s=this._patternMap,i=s.size;if(t[n++]=i,i>0)for(const[e,[r,i]]of s)t[n++]=e,t[n++]=r,t[n++]=i;t[n++]=this._fillVertexBuffer.array.length;for(let e=0;e<this._fillVertexBuffer.array.length;e++)r[n++]=this._fillVertexBuffer.array[e];t[n++]=this._fillIndexBuffer.array.length;for(let e=0;e<this._fillIndexBuffer.array.length;e++)t[n++]=this._fillIndexBuffer.array[e];t[n++]=this._outlineVertexBuffer.array.length;for(let e=0;e<this._outlineVertexBuffer.array.length;e++)r[n++]=this._outlineVertexBuffer.array[e];t[n++]=this._outlineIndexBuffer.array.length;for(let e=0;e<this._outlineIndexBuffer.array.length;e++)t[n++]=this._outlineIndexBuffer.array[e];return t.buffer}_processFeature(e,t,r,n,s,i,a){if(!e)return;const o=e.length,l=!s||0===s.length;if(t&&(!r||l))for(let t=0;t<o;t++)this._processOutline(e[t],s);let h;for(let t=0;t<o;t++){const r=z._area(e[t]);r>32?(void 0!==h&&this._processFill(e,h,n,i,a),h=[t]):r<-32&&void 0!==h&&h.push(t)}void 0!==h&&this._processFill(e,h,n,i,a)}_processOutline(e,t){const r=this._outlineVertexBuffer,n=this._outlineIndexBuffer,i=n.index;let a,o,l;const h=new s.bR(0,0),c=new s.bR(0,0),u=new s.bR(0,0);let f=-1,d=-1,p=-1,y=-1,x=-1,g=!1,_=e.length;if(_<2)return;const m=e[0];let b=e[_-1];for(;_&&b.isEqual(m);)--_,b=e[_-1];if(!(_-0<2)){for(let s=0;s<_;++s){0===s?(a=e[_-1],o=e[0],l=e[1],h.assignSub(o,a),h.normalize(),h.rightPerpendicular()):(a=o,o=l,l=s!==_-1?e[s+1]:e[0],h.assign(c));const i=this._isClipEdge(a,o);-1===y&&(g=i),c.assignSub(l,o),c.normalize(),c.rightPerpendicular();const m=h.x*c.y-h.y*c.x;u.assignAdd(h,c),u.normalize();const b=-u.x*-h.x+-u.y*-h.y;let w=Math.abs(0!==b?1/b:1);w>8&&(w=8),m>=0?(p=r.add(o.x,o.y,h.x,h.y,0,1,t),-1===y&&(y=p),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),d=r.add(o.x,o.y,w*-u.x,w*-u.y,0,-1,t),-1===x&&(x=d),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),f=d,d=p,p=r.add(o.x,o.y,u.x,u.y,0,1,t),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),d=r.add(o.x,o.y,c.x,c.y,0,1,t),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p)):(p=r.add(o.x,o.y,w*u.x,w*u.y,0,1,t),-1===y&&(y=p),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),d=r.add(o.x,o.y,-h.x,-h.y,0,-1,t),-1===x&&(x=d),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),f=d,d=p,p=r.add(o.x,o.y,-u.x,-u.y,0,-1,t),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p),f=r.add(o.x,o.y,-c.x,-c.y,0,-1,t),f>=0&&d>=0&&p>=0&&!i&&n.add(f,d,p))}f>=0&&d>=0&&y>=0&&!g&&n.add(f,d,y),f>=0&&y>=0&&x>=0&&!g&&n.add(f,x,y),this._outlineIndexCount+=3*(n.index-i)}}_processFill(e,t,r,n,s){let i;t.length>1&&(i=[]);let a=0;for(const r of t)0!==a&&i.push(a),a+=e[r].length;const o=2*a,l=C.A.acquire();for(const r of t){const t=e[r],n=t.length;for(let e=0;e<n;++e)l.push(t[e].x,t[e].y)}const h=(0,T.e)(l,i,2);if(T.e.deviation(l,i,2,h)>0){const n=t.map(t=>e[t].length),{buffer:i,vertexCount:a}=(0,w.QT)(l,n);if(a>0){const e=this._fillVertexBuffer.index;for(let e=0;e<a;e++)this._fillVertexBuffer.add(i[2*e],i[2*e+1],r);for(let t=0;t<a;t+=3){const r=e+t;this._fillIndexBuffer.add(r,r+1,r+2)}if(void 0!==s){const e=this._patternMap,t=e.get(s);t?t[1]+=a:e.set(s,[this._fillIndexStart+this._fillIndexCount,a])}this._fillIndexCount+=a}}else{const e=h.length;if(e>0){const t=this._fillVertexBuffer.index;let n=0;for(;n<o;)this._fillVertexBuffer.add(l[n++],l[n++],r);let i=0;for(;i<e;)this._fillIndexBuffer.add(t+h[i++],t+h[i++],t+h[i++]);if(void 0!==s){const t=this._patternMap,r=t.get(s);r?r[1]+=e:t.set(s,[this._fillIndexStart+this._fillIndexCount,e])}this._fillIndexCount+=e}}C.A.release(l)}_isClipEdge(e,t){return e.x===t.x?e.x<=-64||e.x>=4160:e.y===t.y&&(e.y<=-64||e.y>=4160)}static _area(e){let t=0;const r=e.length-1;for(let n=0;n<r;n++)t+=(e[n].x-e[n+1].x)*(e[n].y+e[n+1].y);return t+=(e[r].x-e[0].x)*(e[r].y+e[0].y),.5*t}}var U=r(83773);class F extends L{constructor(e,t,r,n,s){super(e,t,r),this.type=2,this._tessellationOptions={pixelCoordRatio:8,halfWidth:0,offset:0},this._patternMap=new Map,this.tessellationProperties={_lineVertexBuffer:null,_lineIndexBuffer:null,_ddValues:null},this.tessellationProperties._lineVertexBuffer=n,this.tessellationProperties._lineIndexBuffer=s,this._lineTessellator=new U.i(N(this.tessellationProperties),E(this.tessellationProperties),e.canUseThinTessellation)}get lineIndexStart(){return this._lineIndexStart}get lineIndexCount(){return this._lineIndexCount}getResources(e,t,r){const n=this.layer,s=this.zoom,i=n.getPaintProperty("line-pattern"),a=n.getPaintProperty("line-dasharray"),o=n.getLayoutProperty("line-cap");if(!i&&!a)return;const l=o?.getValue(s)||0,h=o?.isDataDriven,c=i?.isDataDriven,u=a?.isDataDriven;if(c||u)for(const e of this._features)t(c?i.getValue(s,e):this._getDashArrayKey(e,s,n,a,h,o,l));else if(i)t(i.getValue(s));else if(a){const e=a.getValue(s);t(n.getDashKey(e,l))}}processFeatures(e){this._lineIndexStart=3*this.tessellationProperties._lineIndexBuffer.index,this._lineIndexCount=0;const t=this.layer,r=this.zoom,n=this._features,s=this._tessellationOptions,{hasDataDrivenLine:i,lineMaterial:a}=t;e&&e.setExtent(this.layerExtent);const o=t.getPaintProperty("line-pattern"),l=t.getPaintProperty("line-dasharray"),h=o?.isDataDriven,c=l?.isDataDriven;let u;u=t.getLayoutProperty("line-cap");const f=u?.isDataDriven?u:null,d=f?null:t.getLayoutValue("line-cap",r),p=d||0,y=!!f;u=t.getLayoutProperty("line-join");const x=u?.isDataDriven?u:null,g=x?null:t.getLayoutValue("line-join",r);u=t.getLayoutProperty("line-miter-limit");const _=u?.isDataDriven?u:null,m=_?null:t.getLayoutValue("line-miter-limit",r);u=t.getLayoutProperty("line-round-limit");const b=u?.isDataDriven?u:null,w=b?null:t.getLayoutValue("line-round-limit",r);u=t.getPaintProperty("line-width");const M=u?.isDataDriven?u:null,I=M?null:t.getPaintValue("line-width",r);u=t.getPaintProperty("line-offset");const v=u?.isDataDriven?u:null,k=v?null:t.getPaintValue("line-offset",r);if(h||c){const i=[];for(const s of n){const n=h?o.getValue(r,s):this._getDashArrayKey(s,r,t,l,y,f,p),c=this._spriteInfo[n];if(!c?.rect)continue;const u=a.encodeAttributes(s,r,t,c),P=s.getGeometry(e);i.push({ddAttributes:u,page:c.page,cap:f?f.getValue(r,s):d,join:x?x.getValue(r,s):g,miterLimit:_?_.getValue(r,s):m,roundLimit:b?b.getValue(r,s):w,halfWidth:.5*(M?M.getValue(r,s):I),offset:v?v.getValue(r,s):k,geometry:P})}i.sort((e,t)=>e.page-t.page),s.textured=!0;for(const{ddAttributes:e,page:t,cap:r,join:n,miterLimit:a,roundLimit:o,halfWidth:l,offset:h,geometry:c}of i)s.capType=r,s.joinType=n,s.miterLimit=a,s.roundLimit=o,s.halfWidth=l,s.offset=h,this._processFeature(c,e,t)}else{if(o){const e=o.getValue(r),t=this._spriteInfo[e];if(!t?.rect)return}s.textured=!(!o&&!l),s.capType=d,s.joinType=g,s.miterLimit=m,s.roundLimit=w,s.halfWidth=.5*I,s.offset=k;for(const o of n){const n=i?a.encodeAttributes(o,r,t):null;f&&(s.capType=f.getValue(r,o)),x&&(s.joinType=x.getValue(r,o)),_&&(s.miterLimit=_.getValue(r,o)),b&&(s.roundLimit=b.getValue(r,o)),M&&(s.halfWidth=.5*M.getValue(r,o)),v&&(s.offset=v.getValue(r,o));const l=o.getGeometry(e);this._processFeature(l,n)}}}serialize(){let e=6;e+=this.layerUIDs.length,e+=this.tessellationProperties._lineVertexBuffer.array.length,e+=this.tessellationProperties._lineIndexBuffer.array.length,e+=3*this._patternMap.size+1;const t=new Uint32Array(e),r=new Int32Array(t.buffer);let n=0;t[n++]=this.type,t[n++]=this.layerUIDs.length;for(let e=0;e<this.layerUIDs.length;e++)t[n++]=this.layerUIDs[e];t[n++]=this._lineIndexStart,t[n++]=this._lineIndexCount;const s=this._patternMap,i=s.size;if(t[n++]=i,i>0)for(const[e,[r,i]]of s)t[n++]=e,t[n++]=r,t[n++]=i;t[n++]=this.tessellationProperties._lineVertexBuffer.array.length;for(let e=0;e<this.tessellationProperties._lineVertexBuffer.array.length;e++)r[n++]=this.tessellationProperties._lineVertexBuffer.array[e];t[n++]=this.tessellationProperties._lineIndexBuffer.array.length;for(let e=0;e<this.tessellationProperties._lineIndexBuffer.array.length;e++)t[n++]=this.tessellationProperties._lineIndexBuffer.array[e];return t.buffer}_processFeature(e,t,r){if(!e)return;const n=e.length;for(let s=0;s<n;s++)this._processGeometry(e[s],t,r)}_processGeometry(e,t,r){if(e.length<2)return;let n,s,i=e[0],a=1;for(;a<e.length;)n=e[a].x-i.x,s=e[a].y-i.y,n*n+s*s<1e-6?e.splice(a,1):(i=e[a],++a);if(e.length<2)return;const o=this.tessellationProperties._lineIndexBuffer,l=3*o.index;this._tessellationOptions.initialDistance=0,this._tessellationOptions.wrapDistance=65535,this.tessellationProperties._ddValues=t,this._lineTessellator.tessellate(e,this._tessellationOptions);const h=3*o.index-l;if(void 0!==r){const e=this._patternMap,t=e.get(r);t?t[1]+=h:e.set(r,[l+this._lineIndexCount,h])}this._lineIndexCount+=h}_getDashArrayKey(e,t,r,n,s,i,a){const o=s?i.getValue(t,e):a,l=n.getValue(t,e);return r.getDashKey(l,o)}}const N=e=>(t,r,n,s,i,a,o,l,h,c,u)=>(e._lineVertexBuffer.add(t,r,o,l,n,s,i,a,h,c,u,e._ddValues),e._lineVertexBuffer.index-1),E=e=>(t,r,n)=>{e._lineIndexBuffer.add(t,r,n)};var O=r(32488),G=r(97768),Z=r(799),j=r(4264);function W(e,t){return e.iconMosaicItem&&t.iconMosaicItem?e.iconMosaicItem.page===t.iconMosaicItem.page?0:e.iconMosaicItem.page-t.iconMosaicItem.page:e.iconMosaicItem&&!t.iconMosaicItem?1:!e.iconMosaicItem&&t.iconMosaicItem?-1:0}class q extends L{constructor(e,t,r,n,s,i,a,o,l){super(t,r,l.getSpriteItems()),this.type=3,this._markerMap=new Map,this._glyphMap=new Map,this._glyphBufferDataStorage=new Map,this._isIconSDF=!1,this._sourceTileKey=e,this._iconVertexBuffer=n,this._iconIndexBuffer=s,this._textVertexBuffer=i,this._textIndexBuffer=a,this._placementEngine=o,this._workerTileHandler=l}get markerPageMap(){return this._markerMap}get glyphsPageMap(){return this._glyphMap}get symbolInstances(){return this._symbolInstances}static{this._bidiEngine=new O.A}getResources(e,t,r){const n=this.layer,s=this.zoom;e&&e.setExtent(this.layerExtent);const i=n.getLayoutProperty("icon-image"),a=n.getLayoutProperty("text-field");let o=n.getLayoutProperty("text-transform"),l=n.getLayoutProperty("text-font");const h=[];let c,u,f,d;i&&!i.isDataDriven&&(c=i.getValue(s)),a&&!a.isDataDriven&&(u=a.getValue(s)),o&&o.isDataDriven||(f=n.getLayoutValue("text-transform",s),o=null),l&&l.isDataDriven||(d=n.getLayoutValue("text-font",s),l=null);for(const p of this._features){const y=p.getGeometry(e);if(!y||0===y.length)continue;let x,g;i&&(x=i.isDataDriven?i.getValue(s,p):this._replaceKeys(c,p.values),x&&t(x));let _=!1;if(a&&(g=a.isDataDriven?a.getValue(s,p):this._replaceKeys(u,p.values),g)){switch(g=g.replaceAll("\\n","\n"),o&&(f=o.getValue(s,p)),f){case 2:g=g.toLowerCase();break;case 1:g=g.toUpperCase()}if(q._bidiEngine.hasBidiChar(g)){let e;e="rtl"===q._bidiEngine.checkContextual(g)?"IDNNN":"ICNNN",g=q._bidiEngine.bidiTransform(g,e,"VLYSN"),_=!0}if(g.length>0){l&&(d=l.getValue(s,p));for(const e of d){let t=r[e];t||(t=r[e]=new Set);for(const e of g){const r=e.codePointAt(0);null!=r&&t.add(r)}}}}if(!x&&!g)continue;const m=n.getLayoutValue("symbol-sort-key",s,p),b={feature:p,sprite:x,label:g,rtl:_,geometry:y,hash:(g?(0,Z.Wm)(g):0)^(x?(0,Z.Wm)(x):0),priority:m,textFont:d};h.push(b)}this._symbolFeatures=h}processFeatures(e){e&&e.setExtent(this.layerExtent);const t=this.layer,r=this.zoom,n=t.getLayoutValue("symbol-placement",r),s=0!==n,o=t.getLayoutValue("symbol-spacing",r)*i.ih,l=t.getLayoutProperty("icon-image"),h=t.getLayoutProperty("text-field"),c=l?new j.aR(t,r,s):null,u=h?new j.uU(t,r,s):null,p=this._workerTileHandler;let x;l&&(x=p.getSpriteItems()),this._iconIndexStart=3*this._iconIndexBuffer.index,this._textIndexStart=3*this._textIndexBuffer.index,this._iconIndexCount=0,this._textIndexCount=0,this._markerMap.clear(),this._glyphMap.clear();const g=[];let _=1;u?.size&&(_=u.size/f);const m=u?u.maxAngle*a.os:0,b=u?u.size*i.ih:0;for(const e of this._symbolFeatures){let t,a;c&&x&&e.sprite&&(t=x[e.sprite],t&&t.sdf&&(this._isIconSDF=!0)),t&&c.update(r,e.feature);let l=0;const h=e.label;if(h){(0,G.Lw)(u),u.update(r,e.feature);const t=s&&0===u.rotationAlignment?u.keepUpright:u.writingMode&&u.writingMode.includes(1);let n=.5;switch(u.anchor){case 5:case 1:case 7:n=0;break;case 6:case 2:case 8:n=1}let o=.5;switch(u.anchor){case 5:case 3:case 6:o=0;break;case 7:case 4:case 8:o=1}let c=.5;switch(u.justify){case 0:c=n;break;case 1:c=0;break;case 3:c=1}const y=u.letterSpacing*f,x=s?0:u.maxWidth*f,g=u.lineHeight*f,m=e.textFont.map(e=>p.getGlyphItems(e));if(a=new d(m,x,g,y,n,o,c).getShaping(h,e.rtl,t),a&&a.length>0){let e=1e30,t=-1e30;for(const r of a)e=Math.min(e,r.x),t=Math.max(t,r.x);l=(t-e+48)*_*i.ih}}for(let r of e.geometry){const h=[];if(1===n){if(a?.length&&u?.size){const e=u.size*i.ih*(2+Math.min(2,4*Math.abs(u.offset[1])));r=q._smoothVertices(r,e)}q._pushAnchors(h,r,o,l)}else 2===n?q._pushCenterAnchor(h,r):3===e.feature.type?q._pushCentroid(h,r):h.push(new y(r[0].x,r[0].y));for(const n of h){if(n.x<0||n.x>i._H||n.y<0||n.y>i._H)continue;if(s&&l>0&&0===u?.rotationAlignment&&!q._honorsTextMaxAngle(r,n,l,m,b))continue;const o={shaping:a,line:r,iconMosaicItem:t,anchor:n,symbolFeature:e,textColliders:[],iconColliders:[],textVertexRanges:[],iconVertexRanges:[]};g.push(o),this._processFeature(o,c,u)}}}g.sort(W),this._addPlacedGlyphs(),this._symbolInstances=g}serialize(){let e=14;e+=this.layerUIDs.length,e+=3*this.markerPageMap.size,e+=3*this.glyphsPageMap.size,e+=q._symbolsSerializationLength(this._symbolInstances),e+=this._iconVertexBuffer.array.length,e+=this._iconIndexBuffer.array.length,e+=this._textVertexBuffer.array.length,e+=this._textIndexBuffer.array.length;const t=new Uint32Array(e),r=new Int32Array(t.buffer),n=new Float32Array(t.buffer),[s,i,a]=this._sourceTileKey.split("/");let o=0;t[o++]=this.type,t[o++]=this.layerUIDs.length;for(let e=0;e<this.layerUIDs.length;e++)t[o++]=this.layerUIDs[e];t[o++]=this._isIconSDF?1:0,t[o++]=parseFloat(s),t[o++]=parseFloat(i),t[o++]=parseFloat(a),t[o++]=this.markerPageMap.size;for(const[e,[r,n]]of this.markerPageMap)t[o++]=e,t[o++]=r,t[o++]=n;t[o++]=this.glyphsPageMap.size;for(const[e,[r,n]]of this.glyphsPageMap)t[o++]=e,t[o++]=r,t[o++]=n;t[o++]=this._iconVertexBuffer.index/4,t[o++]=this._textVertexBuffer.index/4,o=q.serializeSymbols(t,r,n,o,this._symbolInstances),t[o++]=this._iconVertexBuffer.array.length;for(let e=0;e<this._iconVertexBuffer.array.length;e++)r[o++]=this._iconVertexBuffer.array[e];t[o++]=this._iconIndexBuffer.array.length;for(let e=0;e<this._iconIndexBuffer.array.length;e++)t[o++]=this._iconIndexBuffer.array[e];t[o++]=this._textVertexBuffer.array.length;for(let e=0;e<this._textVertexBuffer.array.length;e++)r[o++]=this._textVertexBuffer.array[e];t[o++]=this._textIndexBuffer.array.length;for(let e=0;e<this._textIndexBuffer.array.length;e++)t[o++]=this._textIndexBuffer.array[e];return t.buffer}static _symbolsSerializationLength(e){let t=0;t+=1;for(const r of e||[]){t+=5,t+=1;for(const e of r.textColliders)t+=10;for(const e of r.iconColliders)t+=10;t+=1,t+=2*r.textVertexRanges.length,t+=1,t+=2*r.iconVertexRanges.length}return t}static serializeSymbols(e,t,r,n,s){s=s||[],t[n++]=s.length;for(const e of s){t[n++]=e.anchor.x,t[n++]=e.anchor.y,t[n++]=e.symbolFeature.hash,t[n++]=e.symbolFeature.priority,t[n++]=e.symbolFeature.feature.featureIndex,t[n++]=e.textColliders.length+e.iconColliders.length;for(const s of e.textColliders)t[n++]=s.xTile,t[n++]=s.yTile,t[n++]=s.dxPixels,t[n++]=s.dyPixels,t[n++]=s.hard?1:0,t[n++]=s.partIndex,r[n++]=s.minLod,r[n++]=s.maxLod,t[n++]=s.width,t[n++]=s.height;for(const s of e.iconColliders)t[n++]=s.xTile,t[n++]=s.yTile,t[n++]=s.dxPixels,t[n++]=s.dyPixels,t[n++]=s.hard?1:0,t[n++]=s.partIndex,r[n++]=s.minLod,r[n++]=s.maxLod,t[n++]=s.width,t[n++]=s.height;t[n++]=e.textVertexRanges.length;for(const[r,s]of e.textVertexRanges)t[n++]=r,t[n++]=s;t[n++]=e.iconVertexRanges.length;for(const[r,s]of e.iconVertexRanges)t[n++]=r,t[n++]=s}return n}_replaceKeys(e,t){return e.replaceAll(/{([^{}]+)}/g,(e,r)=>r in t?t[r]:"")}_processFeature(e,t,r){const{line:n,iconMosaicItem:s,shaping:i,anchor:o}=e,l=this.zoom,h=this.layer,c=!!s;let u=!0;c&&(u=t?.optional||!s);const f=i&&i.length>0,d=!f||r?.optional;let p,y;if(c&&(p=this._placementEngine.getIconPlacement(o,s,t)),(p||u)&&(f&&(y=this._placementEngine.getTextPlacement(o,i,n,r)),y||d)){if(p&&y||(d||u?d||y?u||p||(y=null):p=null:(p=null,y=null)),y){const t=h.hasDataDrivenText?h.textMaterial.encodeAttributes(e.symbolFeature.feature,l,h):null;if(this._storePlacedGlyphs(e,y.shapes,l,r.rotationAlignment,t),y.textColliders){e.textColliders=y.textColliders;for(const e of y.textColliders){e.minLod=Math.max(l+(0,a.p6)(e.minLod),0),e.maxLod=Math.min(l+(0,a.p6)(e.maxLod),25);const t=e.angle;if(t){const r=Math.cos(t),n=Math.sin(t),s=e.dxPixels*r-e.dyPixels*n,i=e.dxPixels*n+e.dyPixels*r,a=(e.dxPixels+e.width)*r-e.dyPixels*n,o=(e.dxPixels+e.width)*n+e.dyPixels*r,l=e.dxPixels*r-(e.dyPixels+e.height)*n,h=e.dxPixels*n+(e.dyPixels+e.height)*r,c=(e.dxPixels+e.width)*r-(e.dyPixels+e.height)*n,u=(e.dxPixels+e.width)*n+(e.dyPixels+e.height)*r,f=Math.min(s,a,l,c),d=Math.max(s,a,l,c),p=Math.min(i,o,h,u),y=Math.max(i,o,h,u);e.dxPixels=f,e.dyPixels=p,e.width=d-f,e.height=y-p}}}}if(p){const r=h.hasDataDrivenIcon?h.iconMaterial.encodeAttributes(e.symbolFeature.feature,l,h):null;if(this._addPlacedIcons(e,p.shapes,l,s.page,1===t.rotationAlignment,r),p.iconColliders){e.iconColliders=p.iconColliders;for(const e of p.iconColliders){e.minLod=Math.max(l+(0,a.p6)(e.minLod),0),e.maxLod=Math.min(l+(0,a.p6)(e.maxLod),25);const t=e.angle;if(t){const r=Math.cos(t),n=Math.sin(t),s=e.dxPixels*r-e.dyPixels*n,i=e.dxPixels*n+e.dyPixels*r,a=(e.dxPixels+e.width)*r-e.dyPixels*n,o=(e.dxPixels+e.width)*n+e.dyPixels*r,l=e.dxPixels*r-(e.dyPixels+e.height)*n,h=e.dxPixels*n+(e.dyPixels+e.height)*r,c=(e.dxPixels+e.width)*r-(e.dyPixels+e.height)*n,u=(e.dxPixels+e.width)*n+(e.dyPixels+e.height)*r,f=Math.min(s,a,l,c),d=Math.max(s,a,l,c),p=Math.min(i,o,h,u),y=Math.max(i,o,h,u);e.dxPixels=f,e.dyPixels=p,e.width=d-f,e.height=y-p}}}}}}_addPlacedIcons(e,t,r,n,s,i){const o=Math.max(r-1,0),l=this._iconVertexBuffer,h=this._iconIndexBuffer,c=this._markerMap;for(const u of t){const t=s?0:Math.max(r+(0,a.p6)(u.minzoom),o),f=s?25:Math.min(r+(0,a.p6)(u.maxzoom),25);if(f<=t)continue;const d=u.tl,p=u.tr,y=u.bl,x=u.br,g=u.mosaicRect,_=u.labelAngle,m=u.minAngle,b=u.maxAngle,w=u.anchor,M=l.index,I=g.x,v=g.y,k=I+g.width,P=v+g.height,V=l.index;l.add(w.x,w.y,d.x,d.y,I,v,_,m,b,t,f,i),l.add(w.x,w.y,p.x,p.y,k,v,_,m,b,t,f,i),l.add(w.x,w.y,y.x,y.y,I,P,_,m,b,t,f,i),l.add(w.x,w.y,x.x,x.y,k,P,_,m,b,t,f,i),e.iconVertexRanges.length>0&&e.iconVertexRanges[0][0]+e.iconVertexRanges[0][1]===V?e.iconVertexRanges[0][1]+=4:e.iconVertexRanges.push([V,4]),h.add(M,M+1,M+2),h.add(M+1,M+2,M+3),c.has(n)?c.get(n)[1]+=6:c.set(n,[this._iconIndexStart+this._iconIndexCount,6]),this._iconIndexCount+=6}}_addPlacedGlyphs(){const e=this._textVertexBuffer,t=this._textIndexBuffer,r=this._glyphMap;for(const[n,s]of this._glyphBufferDataStorage)for(const i of s){const s=e.index,a=i.symbolInstance,o=i.ddAttributes,l=e.index;e.add(i.glyphAnchor[0],i.glyphAnchor[1],i.tl[0],i.tl[1],i.xmin,i.ymin,i.labelAngle,i.minAngle,i.maxAngle,i.minLod,i.maxLod,o),e.add(i.glyphAnchor[0],i.glyphAnchor[1],i.tr[0],i.tr[1],i.xmax,i.ymin,i.labelAngle,i.minAngle,i.maxAngle,i.minLod,i.maxLod,o),e.add(i.glyphAnchor[0],i.glyphAnchor[1],i.bl[0],i.bl[1],i.xmin,i.ymax,i.labelAngle,i.minAngle,i.maxAngle,i.minLod,i.maxLod,o),e.add(i.glyphAnchor[0],i.glyphAnchor[1],i.br[0],i.br[1],i.xmax,i.ymax,i.labelAngle,i.minAngle,i.maxAngle,i.minLod,i.maxLod,o),a.textVertexRanges.length>0&&a.textVertexRanges[0][0]+a.textVertexRanges[0][1]===l?a.textVertexRanges[0][1]+=4:a.textVertexRanges.push([l,4]),t.add(s,s+1,s+2),t.add(s+1,s+2,s+3),r.has(n)?r.get(n)[1]+=6:r.set(n,[this._textIndexStart+this._textIndexCount,6]),this._textIndexCount+=6}this._glyphBufferDataStorage.clear()}_storePlacedGlyphs(e,t,r,n,s){const i=Math.max(r-1,0),o=1===n;let l,h,c,u,f,d,p,y,x,g,_;for(const n of t)l=o?0:Math.max(r+(0,a.p6)(n.minzoom),i),h=o?25:Math.min(r+(0,a.p6)(n.maxzoom),25),h<=l||(c=n.tl,u=n.tr,f=n.bl,d=n.br,p=n.labelAngle,y=n.minAngle,x=n.maxAngle,g=n.anchor,_=n.mosaicRect,this._glyphBufferDataStorage.has(n.page)||this._glyphBufferDataStorage.set(n.page,[]),this._glyphBufferDataStorage.get(n.page).push({glyphAnchor:[g.x,g.y],tl:[c.x,c.y],tr:[u.x,u.y],bl:[f.x,f.y],br:[d.x,d.y],xmin:_.x,ymin:_.y,xmax:_.x+_.width,ymax:_.y+_.height,labelAngle:p,minAngle:y,maxAngle:x,minLod:l,maxLod:h,placementLod:i,symbolInstance:e,ddAttributes:s}))}static _pushAnchors(e,t,r,n){r+=n;let i=0;const o=t.length-1;for(let e=0;e<o;e++)i+=s.bR.distance(t[e],t[e+1]);let l=n||r;if(l*=.5,i<=l)return;const h=l/i;let c=0,u=-(r=i/Math.max(Math.round(i/r),1))/2;const f=t.length-1;for(let n=0;n<f;n++){const s=t[n],i=t[n+1],o=i.x-s.x,l=i.y-s.y,f=Math.sqrt(o*o+l*l);let d;for(;u+r<c+f;){u+=r;const t=(u-c)/f,p=(0,a.GW)(s.x,i.x,t),x=(0,a.GW)(s.y,i.y,t);void 0===d&&(d=Math.atan2(l,o)),e.push(new y(p,x,d,n,h))}c+=f}}static _pushCenterAnchor(e,t){let r=0;const n=t.length-1;for(let e=0;e<n;e++)r+=s.bR.distance(t[e],t[e+1]);const i=r/2;let o=0;const l=t.length-1;for(let r=0;r<l;r++){const n=t[r],s=t[r+1],l=s.x-n.x,h=s.y-n.y,c=Math.sqrt(l*l+h*h);if(i<o+c){const t=(i-o)/c,u=(0,a.GW)(n.x,s.x,t),f=(0,a.GW)(n.y,s.y,t),d=Math.atan2(h,l);return void e.push(new y(u,f,d,r,0))}o+=c}}static _deviation(e,t,r){const n=(t.x-e.x)*(r.x-t.x)+(t.y-e.y)*(r.y-t.y),s=(t.x-e.x)*(r.y-t.y)-(t.y-e.y)*(r.x-t.x);return Math.atan2(s,n)}static _honorsTextMaxAngle(e,t,r,n,i){let a=0;const o=r/2;let l=new s.bR(t.x,t.y),h=t.segment+1;for(;a>-o;){if(--h,h<0)return!1;a-=s.bR.distance(e[h],l),l=e[h]}a+=s.bR.distance(e[h],e[h+1]);const c=[];let u=0;const f=e.length;for(;a<o;){const t=e[h];let r,o=h;do{if(++o,o===f)return!1;r=e[o]}while(r.isEqual(t));let l,d=o;do{if(++d,d===f)return!1;l=e[d]}while(l.isEqual(r));const p=this._deviation(t,r,l);for(c.push({deviation:p,distToAnchor:a}),u+=p;a-c[0].distToAnchor>i;)u-=c.shift().deviation;if(Math.abs(u)>n)return!1;a+=s.bR.distance(r,l),h=o}return!0}static _smoothVertices(e,t){if(t<=0)return e;let r=e.length;if(r<3)return e;const n=[];let i=0,a=0;n.push(0);for(let t=1;t<r;t++){const r=s.bR.distance(e[t],e[t-1]);r>0&&(i+=r,n.push(i),a++,a!==t&&(e[a]=e[t]))}if(r=a+1,r<3)return e;t=Math.min(t,.2*i);const o=e[0].x,l=e[0].y,h=e[r-1].x,c=e[r-1].y,u=s.bR.sub(e[0],e[1]);u.normalize(),e[0].x+=t*u.x,e[0].y+=t*u.y,u.assignSub(e[r-1],e[r-2]),u.normalize(),e[r-1].x+=t*u.x,e[r-1].y+=t*u.y,n[0]-=t,n[r-1]+=t;const f=[];f.push(new s.bR(o,l));const d=1e-6,p=.5*t;for(let i=1;i<r-1;i++){let a=0,o=0,l=0;for(let r=i-1;r>=0;r--){const s=p+n[r+1]-n[i];if(s<0)break;const h=n[r+1]-n[r],c=n[i]-n[r]<p?1:s/h;if(c<d)break;const u=c*c,f=c*s-.5*u*h,y=c*h/t,x=e[r+1],g=e[r].x-x.x,_=e[r].y-x.y;a+=y/f*(x.x*c*s+.5*u*(s*g-h*x.x)-u*c*h*g/3),o+=y/f*(x.y*c*s+.5*u*(s*_-h*x.y)-u*c*h*_/3),l+=y}for(let s=i+1;s<r;s++){const r=p-n[s-1]+n[i];if(r<0)break;const h=n[s]-n[s-1],c=n[s]-n[i]<p?1:r/h;if(c<d)break;const u=c*c,f=c*r-.5*u*h,y=c*h/t,x=e[s-1],g=e[s].x-x.x,_=e[s].y-x.y;a+=y/f*(x.x*c*r+.5*u*(r*g-h*x.x)-u*c*h*g/3),o+=y/f*(x.y*c*r+.5*u*(r*_-h*x.y)-u*c*h*_/3),l+=y}f.push(new s.bR(a/l,o/l))}return f.push(new s.bR(h,c)),e[0].x=o,e[0].y=l,e[r-1].x=h,e[r-1].y=c,f}static _pushCentroid(e,t){const r=i._H,n=i._H,s=t.length-1;let a=0,o=0,l=0,h=t[0].x,c=t[0].y;h>r&&(h=r),h<0&&(h=0),c>n&&(c=n),c<0&&(c=0);for(let e=1;e<s;e++){let s=t[e].x,i=t[e].y,u=t[e+1].x,f=t[e+1].y;s>r&&(s=r),s<0&&(s=0),i>n&&(i=n),i<0&&(i=0),u>r&&(u=r),u<0&&(u=0),f>n&&(f=n),f<0&&(f=0);const d=(s-h)*(f-c)-(u-h)*(i-c);a+=d*(h+s+u),o+=d*(c+i+f),l+=d}a/=3*l,o/=3*l,isNaN(a)||isNaN(o)||e.push(new y(a,o))}}class K{constructor(e,t,r,n,i,o){if(this._pbfTiles={},this._tileClippers={},this._client=r,this._tile=t,this._sourceDataMaxLOD=n,o){this._styleLayerUIDs=new Set;for(const e of o)this._styleLayerUIDs.add(e)}this._styleRepository=i,this._layers=this._styleRepository?.layers??[];const[l,h,c]=t.tileKey.split("/").map(parseFloat);this._level=l;const u=(0,a.IU)(this._level);for(const t of Object.keys(e)){const r=e[t];if(this._pbfTiles[t]=new b.A(new Uint8Array(r.protobuff),new DataView(r.protobuff)),r.refKey){const[e]=r.refKey.split("/").map(parseFloat),n=l-e;if(n>0){const e=(1<<n)-1,r=h&e,i=c&e;this._tileClippers[t]=new s.O3(n,r,i,8,u)}}this._tileClippers[t]||(this._tileClippers[t]=new s.Ox)}}_canParseStyleLayer(e){return!this._styleLayerUIDs||this._styleLayerUIDs.has(e)}async parse(e){const t=(0,w.If)(),r=this._initialize(e),{returnedBuckets:n}=r;this._processLayers(r),this._linkReferences(r),this._filterFeatures(r);const s=[],i=new Set,a=(e,t)=>{i.has(e)||(s.push({name:e,repeat:t}),i.add(e))},o={};for(const e of n)e.getResources(e.tileClipper,a,o);if(4===this._tile.status)return[];const l=this._fetchResources(s,o,e);return Promise.all([...l,t]).then(()=>this._processFeatures(r.returnedBuckets))}_initialize(e){const t=e?.signal;return{signal:t,sourceNameToTileData:this._parseTileData(this._pbfTiles),layers:this._layers,zoom:this._level,sourceNameToTileClipper:this._tileClippers,sourceNameToUniqueSourceLayerBuckets:{},sourceNameToUniqueSourceLayers:{},returnedBuckets:[],layerIdToBucket:{},referencerUIDToReferencedId:new Map}}_processLayers(e){const{sourceNameToTileData:t,zoom:r,layers:n,sourceNameToTileClipper:s,sourceNameToUniqueSourceLayerBuckets:i,sourceNameToUniqueSourceLayers:a,returnedBuckets:o,layerIdToBucket:l,referencerUIDToReferencedId:h}=e,c=this._sourceDataMaxLOD;for(let e=n.length-1;e>=0;e--){const u=n[e];if(r<c){if(u.minzoom&&r<Math.floor(u.minzoom)||u.maxzoom&&r>=u.maxzoom)continue}else if(u.maxzoom&&r>=u.maxzoom)continue;if(0===u.type||!this._canParseStyleLayer(u.uid)||!t[u.source]||!s[u.source])continue;const f=t[u.source],d=s[u.source],p=u.sourceLayer,y=f[p];if(y){let e=a[u.source];if(e||(e=a[u.source]=new Set),e.add(u.sourceLayer),u.refLayerId)h.set(u.uid,u.refLayerId);else{const e=this._createBucket(u);if(e){e.layerUIDs=[u.uid],e.layerExtent=y.extent,e.tileClipper=d;let t=i[u.source];t||(t=i[u.source]={});let r=t[p];r||(r=t[p]=[]),r.push(e),o.push(e),l[u.id]=e}}}}}_linkReferences(e){const{layerIdToBucket:t,referencerUIDToReferencedId:r}=e;r.forEach((e,r)=>{t[e]&&t[e].layerUIDs.push(r)})}_filterFeatures(e){const{signal:t,sourceNameToTileData:r,sourceNameToUniqueSourceLayerBuckets:s,sourceNameToUniqueSourceLayers:i}=e,a=10*this._level,o=10*(this._level+1),l=[],h=[];for(const e of Object.keys(i))i[e].forEach(t=>{l.push(t),h.push(e)});for(let e=0;e<l.length;e++){const i=h[e],c=l[e];if(!r[i]||!s[i])continue;const u=r[i][c],f=s[i][c];if(!f||0===f.length)continue;if((0,n.G4)(t))return;let d=0;const p=u.getData();for(;p.nextTag(2);){const e=p.getMessage(),t=new M(e,u,d++);e.release();const r=t.values;if(r){const e=r._minzoom;if(e&&e>=o)continue;const t=r._maxzoom;if(t&&t<=a)continue}for(const e of f)e.pushFeature(t)}}}_fetchResources(e,t,r){const n=[],s=this._tile.getWorkerTileHandler();let i,a;e.length>0&&(i=s.fetchSprites(e,this._client,r),n.push(i));for(const e in t){const i=t[e];i.size>0&&(a=s.fetchGlyphs(this._tile.tileKey,e,i,this._client,r),n.push(a))}return n}_processFeatures(e){const t=e.filter(e=>e.hasFeatures()||this._canParseStyleLayer(e.layer.uid));for(const e of t)e.processFeatures(e.tileClipper);return t}_parseTileData(e){const t={};for(const r of Object.keys(e)){const n=e[r],s={};for(;n.next();)switch(n.tag()){case 3:{const e=n.getMessage(),t=new k(e);e.release(),s[t.name]=t;break}default:n.skip()}t[r]=s}return t}_createBucket(e){switch(e.type){case 0:return null;case 1:return this._createFillBucket(e);case 2:return this._createLineBucket(e);case 4:return this._createCircleBucket(e);case 3:return this._createSymbolBucket(e)}}_createFillBucket(e){return new z(e,this._level,this._tile.getWorkerTileHandler().getSpriteItems(),new A(e.fillMaterial.getStride()),new v,new B(e.outlineMaterial.getStride()),new v)