UNPKG

@arcgis/core

Version:

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

1 lines • 85 kB
"use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5897],{3057:(t,e,r)=>{r.d(e,{lf:()=>Ot,L:()=>Gt,A4:()=>Bt,aR:()=>Mt,tU:()=>Ut,V1:()=>Ct,uU:()=>kt});var n,i,a=r(19419),o=r(83027),s=r(89640),l=r(13195),u=r(80081);!function(t){t[t.R8_SIGNED=0]="R8_SIGNED",t[t.R8_UNSIGNED=1]="R8_UNSIGNED",t[t.R16_SIGNED=2]="R16_SIGNED",t[t.R16_UNSIGNED=3]="R16_UNSIGNED",t[t.R8G8_SIGNED=4]="R8G8_SIGNED",t[t.R8G8_UNSIGNED=5]="R8G8_UNSIGNED",t[t.R16G16_SIGNED=6]="R16G16_SIGNED",t[t.R16G16_UNSIGNED=7]="R16G16_UNSIGNED",t[t.R8G8B8A8_SIGNED=8]="R8G8B8A8_SIGNED",t[t.R8G8B8A8_UNSIGNED=9]="R8G8B8A8_UNSIGNED",t[t.R8G8B8A8_COLOR=10]="R8G8B8A8_COLOR",t[t.R16G16B16A16_DASHARRAY=11]="R16G16B16A16_DASHARRAY",t[t.R16G16B16A16_PATTERN=12]="R16G16B16A16_PATTERN"}(n||(n={})),function(t){t[t.UNIFORM=0]="UNIFORM",t[t.DATA_DRIVEN=1]="DATA_DRIVEN",t[t.INTERPOLATED_DATA_DRIVEN=2]="INTERPOLATED_DATA_DRIVEN",t[t.UNUSED=3]="UNUSED"}(i||(i={}));var c=r(63907),h=r(74038);class p{constructor(t){this._locations=new Map,this._key=t}get key(){return this._key}get type(){return 7&this._key}defines(){return[]}getStride(){return this._layout||this._buildAttributesInfo(),this._stride}getAttributeLocations(){return 0===this._locations.size&&this._buildAttributesInfo(),this._locations}getLayoutInfo(){return this._layout||this._buildAttributesInfo(),this._layout}getEncodingInfos(){return this._propertyEncodingInfo||this._buildAttributesInfo(),this._propertyEncodingInfo}getUniforms(){return this._uniforms||this._buildAttributesInfo(),this._uniforms}getShaderHeader(){return this._shaderHeader||this._buildAttributesInfo(),this._shaderHeader}getShaderMain(){return this._shaderMain||this._buildAttributesInfo(),this._shaderMain}setDataUniforms(t,e,r,n,i){const a=this.getUniforms();for(const o of a){const{name:a,type:s,getValue:l}=o,u=l(r,e,n,i);if(null!==u)switch(s){case"float":t.setUniform1f(a,u);break;case"vec2":t.setUniform2fv(a,u);break;case"vec4":t.setUniform4fv(a,u)}}}encodeAttributes(t,e,r,i){const a=this.attributesInfo(),o=this.getEncodingInfos(),s=[];let l=0,u=0;for(const c of Object.keys(o)){const h=o[c],{type:p,precisionFactor:f,isLayout:y}=a[c],g=y?r.getLayoutProperty(c):r.getPaintProperty(c),d=g.interpolator?.getInterpolationRange(e);let m=0;for(const r of h){const{offset:a,bufferElementsToAdd:o}=r;if(o>0){for(let t=0;t<o;t++)s.push(0);l+=u,u=r.bufferElementsToAdd}const c=i??g.getValue(d?d[m]:e,t);switch(p){case n.R8_SIGNED:case n.R8_UNSIGNED:s[l]|=this._encodeByte(c*(f||1),8*a);break;case n.R16_SIGNED:case n.R16_UNSIGNED:s[l]|=this._encodeShort(c*(f||1),8*a);break;case n.R8G8_SIGNED:case n.R8G8_UNSIGNED:s[l]|=this._encodeByte(c*(f||1),8*a),s[l]|=this._encodeByte(c*(f||1),8*a+8);break;case n.R16G16_SIGNED:case n.R16G16_UNSIGNED:s[l]|=this._encodeShort(c*(f||1),8*a),s[l]|=this._encodeShort(c*(f||1),8*a+16);break;case n.R8G8B8A8_SIGNED:case n.R8G8B8A8_UNSIGNED:s[l]|=this._encodeByte(c*(f||1),8*a),s[l]|=this._encodeByte(c*(f||1),8*a+8),s[l]|=this._encodeByte(c*(f||1),8*a+16),s[l]|=this._encodeByte(c*(f||1),8*a+24);break;case n.R8G8B8A8_COLOR:s[l]=this._encodeColor(c);break;case n.R16G16B16A16_DASHARRAY:case n.R16G16B16A16_PATTERN:this._encodePattern(l,s,c);break;default:throw new Error("Unsupported encoding type")}m++}}return s}getAtributeState(t){let e=0;const r=3+2*t;return e|=this._bit(r),e|=this._bit(r+1)<<1,e}static{this._encodingInfo={[n.R8_SIGNED]:{dataType:c.pe.BYTE,bytesPerElement:1,count:1,normalized:!1},[n.R8_UNSIGNED]:{dataType:c.pe.UNSIGNED_BYTE,bytesPerElement:1,count:1,normalized:!1},[n.R16_SIGNED]:{dataType:c.pe.SHORT,bytesPerElement:2,count:1,normalized:!1},[n.R16_UNSIGNED]:{dataType:c.pe.UNSIGNED_SHORT,bytesPerElement:2,count:1,normalized:!1},[n.R8G8_SIGNED]:{dataType:c.pe.BYTE,bytesPerElement:1,count:2,normalized:!1},[n.R8G8_UNSIGNED]:{dataType:c.pe.UNSIGNED_BYTE,bytesPerElement:1,count:2,normalized:!1},[n.R16G16_SIGNED]:{dataType:c.pe.SHORT,bytesPerElement:2,count:2,normalized:!1},[n.R16G16_UNSIGNED]:{dataType:c.pe.UNSIGNED_SHORT,bytesPerElement:2,count:2,normalized:!1},[n.R8G8B8A8_SIGNED]:{dataType:c.pe.BYTE,bytesPerElement:1,count:4,normalized:!1},[n.R8G8B8A8_UNSIGNED]:{dataType:c.pe.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!1},[n.R8G8B8A8_COLOR]:{dataType:c.pe.UNSIGNED_BYTE,bytesPerElement:1,count:4,normalized:!0},[n.R16G16B16A16_DASHARRAY]:{dataType:c.pe.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1},[n.R16G16B16A16_PATTERN]:{dataType:c.pe.UNSIGNED_SHORT,bytesPerElement:2,count:4,normalized:!1}}}_buildAttributesInfo(){const t=[],e={},r={};let n=-1;const a=this.attributesInfo(),o=this.attributes();let s=-1;for(const l of o){s++;const o=this.getAtributeState(s);if(o===i.UNIFORM||o===i.UNUSED)continue;const u=a[l],c=[];e[l]=c;const h=u.type;for(let e=0;e<o;e++){const{dataType:e,bytesPerElement:i,count:a,normalized:o}=p._encodingInfo[h],s=i*a,l=`${e}-${!0===o}`;let u=r[l],f=0;if(!u||u.count+a>4)n++,u={dataIndex:n,count:0,offset:0},4!==a&&(r[l]=u),t.push({location:-1,name:"a_data_"+n,count:a,type:e,normalized:o}),f=Math.ceil(Math.max(s/4,1));else{const e=t[u.dataIndex];e.count+=a,f=Math.ceil(Math.max(e.count*i/4,1))-Math.ceil(Math.max(u.offset/4,1))}c.push({dataIndex:u.dataIndex,offset:u.offset,bufferElementsToAdd:f}),u.offset+=s,u.count+=a}}for(const e of t)switch(e.type){case c.pe.BYTE:case c.pe.UNSIGNED_BYTE:e.count=4;break;case c.pe.SHORT:case c.pe.UNSIGNED_SHORT:e.count+=e.count%2}this._buildVertexBufferLayout(t);let l=0;const u=this._layout.get("geometry");for(const t of u)this._locations.set(t.name,l++);const h=this._layout.get("opacity");if(h)for(const t of h)this._locations.set(t.name,l++);this._buildShaderInfo(t,e),this._propertyEncodingInfo=e}_buildVertexBufferLayout(t){const e=new Map,r=this.geometryInfo();let n=r[0].stride;if(0===t.length)e.set("geometry",r);else{const i=[];let a=n;for(const e of t)n+=f(e.type)*e.count;for(const t of r)i.push(new h._(t.name,t.count,t.type,t.offset,n,t.normalized));for(const e of t)i.push(new h._(e.name,e.count,e.type,a,n,e.normalized)),a+=f(e.type)*e.count;e.set("geometry",i)}const i=this.opacityInfo();i&&e.set("opacity",i),this._layout=e,this._stride=n}_buildShaderInfo(t,e){let r="\n",a="\n";const o=[];for(const e of t)r+=`attribute ${this._getType(e.count)} ${e.name};\n`;const s=this.attributes(),l=this.attributesInfo();let u=-1;for(const t of s){u++;const{name:s,type:c,precisionFactor:h,isLayout:f}=l[t],g=h&&1!==h?" * "+1/h:"",{bytesPerElement:d,count:m}=p._encodingInfo[c],_=t=>`a_data_${t.dataIndex}${y(m,t.offset,d)}`;switch(this.getAtributeState(u)){case i.UNIFORM:{const e=this._getType(m),i=`u_${s}`;o.push({name:i,type:e,getValue:(e,r,i,a)=>{const o=f?e.getLayoutValue(t,r):e.getPaintValue(t,r);if(c===n.R16G16B16A16_DASHARRAY){const t=e.getDashKey(o,e.getLayoutValue("line-cap",r)),n=a.getMosaicItemPosition(t,!1);if(null==n)return null;const{tl:i,br:s}=n;return[i[0],s[1],s[0],i[1]]}if(c===n.R16G16B16A16_PATTERN){const e=a.getMosaicItemPosition(o,!t.includes("line-"));if(null==e)return null;const{tl:r,br:n}=e;return[r[0],n[1],n[0],r[1]]}if(c===n.R8G8B8A8_COLOR){const t=o[3];return[t*o[0],t*o[1],t*o[2],t]}return o}}),r+=`uniform ${e} ${i};\n`,a+=`${e} ${s} = ${i};\n`}break;case i.DATA_DRIVEN:{const r=_(e[t][0]);a+=`${this._getType(m)} ${s} = ${r}${g};\n`}break;case i.INTERPOLATED_DATA_DRIVEN:{const n=`u_t_${s}`;o.push({name:n,type:"float",getValue:(e,r,n,i)=>(f?e.getLayoutProperty(t):e.getPaintProperty(t)).interpolator.interpolationUniformValue(n,r)}),r+=`uniform float ${n};\n`;const i=_(e[t][0]),l=_(e[t][1]);a+=`${this._getType(m)} ${s} = mix(${i}${g}, ${l}${g}, ${n});\n`}}}this._shaderHeader=r,this._shaderMain=a,this._uniforms=o}_bit(t){return(this._key&1<<t)>>t}_getType(t){switch(t){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4"}throw new Error("Invalid count")}_encodeColor(t){const e=255*t[3];return u.A.i8888to32(t[0]*e,t[1]*e,t[2]*e,e)}_encodePattern(t,e,r){if(!r?.rect)return;const n=r.rect,i=r.width,a=r.height;e[t]=this._encodeShort(n.x+2,0),e[t]|=this._encodeShort(n.y+2+a,16),e[t+1]=this._encodeShort(n.x+2+i,0),e[t+1]|=this._encodeShort(n.y+2,16)}_encodeByte(t,e){return(255&t)<<e}_encodeShort(t,e){return(65535&t)<<e}}const f=t=>{switch(t){case c.pe.FLOAT:case c.pe.INT:case c.pe.UNSIGNED_INT:return 4;case c.pe.SHORT:case c.pe.UNSIGNED_SHORT:case c.pe.HALF_FLOAT:return 2;case c.pe.BYTE:case c.pe.UNSIGNED_BYTE:return 1}},y=(t,e,r)=>{const n=e/r;if(1===t)switch(n){case 0:return".x";case 1:return".y";case 2:return".z";case 3:return".w"}else if(2===t)switch(n){case 0:return".xy";case 1:return".yz";case 2:return".zw"}else if(3===t)switch(n){case 0:return".xyz";case 1:return".yzw"}return""};class g extends p{static{this.ATTRIBUTES=[]}static{this.GEOMETRY_LAYOUT=[new h._("a_pos",2,c.pe.BYTE,0,2)]}static{this.ATTRIBUTES_INFO={}}constructor(t){super(t)}geometryInfo(){return g.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return g.ATTRIBUTES}attributesInfo(){return g.ATTRIBUTES_INFO}}class d extends p{static{this.ATTRIBUTES=["circle-radius","circle-color","circle-opacity","circle-stroke-width","circle-stroke-color","circle-stroke-opacity","circle-blur"]}static{this.GEOMETRY_LAYOUT=[new h._("a_pos",2,c.pe.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"circle-radius":{name:"radius",type:n.R8_UNSIGNED},"circle-color":{name:"color",type:n.R8G8B8A8_COLOR},"circle-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100},"circle-stroke-width":{name:"stroke_width",type:n.R8_UNSIGNED,precisionFactor:4},"circle-stroke-color":{name:"stroke_color",type:n.R8G8B8A8_COLOR},"circle-stroke-opacity":{name:"stroke_opacity",type:n.R8_UNSIGNED,precisionFactor:100},"circle-blur":{name:"blur",type:n.R8_UNSIGNED,precisionFactor:32}}}constructor(t){super(t)}geometryInfo(){return d.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return d.ATTRIBUTES}attributesInfo(){return d.ATTRIBUTES_INFO}}class m extends p{static{this.ATTRIBUTES=["fill-color","fill-opacity","fill-pattern"]}static{this.GEOMETRY_LAYOUT=[new h._("a_pos",2,c.pe.SHORT,0,4)]}static{this.ATTRIBUTES_INFO={"fill-color":{name:"color",type:n.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100},"fill-pattern":{name:"tlbr",type:n.R16G16B16A16_PATTERN,isOptional:!0}}}constructor(t){super(t)}geometryInfo(){return m.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return m.ATTRIBUTES}attributesInfo(){return m.ATTRIBUTES_INFO}}class _ extends p{static{this.ATTRIBUTES_OUTLINE=["fill-outline-color","fill-opacity"]}static{this.ATTRIBUTES_FILL=["fill-color","fill-opacity"]}static{this.GEOMETRY_LAYOUT=[new h._("a_pos",2,c.pe.SHORT,0,8),new h._("a_offset",2,c.pe.BYTE,4,8),new h._("a_xnormal",2,c.pe.BYTE,6,8)]}static{this.ATTRIBUTES_INFO_OUTLINE={"fill-outline-color":{name:"color",type:n.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100}}}static{this.ATTRIBUTES_INFO_FILL={"fill-color":{name:"color",type:n.R8G8B8A8_COLOR},"fill-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100}}}constructor(t,e){super(t),this._usefillColor=e}geometryInfo(){return _.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return this._usefillColor?_.ATTRIBUTES_FILL:_.ATTRIBUTES_OUTLINE}attributesInfo(){return this._usefillColor?_.ATTRIBUTES_INFO_FILL:_.ATTRIBUTES_INFO_OUTLINE}}class b extends p{static{this.ATTRIBUTES=["line-blur","line-color","line-gap-width","line-offset","line-opacity","line-width","line-pattern","line-dasharray"]}static{this.GEOMETRY_LAYOUT=[new h._("a_pos",2,c.pe.SHORT,0,16),new h._("a_extrude_offset",4,c.pe.BYTE,4,16),new h._("a_dir_normal",4,c.pe.BYTE,8,16),new h._("a_accumulatedDistance",2,c.pe.UNSIGNED_SHORT,12,16)]}static{this.ATTRIBUTES_INFO={"line-width":{name:"width",type:n.R8_UNSIGNED,precisionFactor:2},"line-gap-width":{name:"gap_width",type:n.R8_UNSIGNED,precisionFactor:2},"line-offset":{name:"offset",type:n.R8_SIGNED,precisionFactor:2},"line-color":{name:"color",type:n.R8G8B8A8_COLOR},"line-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100},"line-blur":{name:"blur",type:n.R8_UNSIGNED,precisionFactor:4},"line-pattern":{name:"tlbr",type:n.R16G16B16A16_PATTERN,isOptional:!0},"line-dasharray":{name:"tlbr",type:n.R16G16B16A16_DASHARRAY,isOptional:!0}}}constructor(t){super(t)}geometryInfo(){return b.GEOMETRY_LAYOUT}opacityInfo(){return null}attributes(){return b.ATTRIBUTES}attributesInfo(){return b.ATTRIBUTES_INFO}}const E=[new h._("a_pos",2,c.pe.SHORT,0,16),new h._("a_vertexOffset",2,c.pe.SHORT,4,16),new h._("a_texAngleRange",4,c.pe.UNSIGNED_BYTE,8,16),new h._("a_levelInfo",4,c.pe.UNSIGNED_BYTE,12,16)],T=[new h._("a_opacityInfo",1,c.pe.UNSIGNED_BYTE,0,1)];class I extends p{static{this.ATTRIBUTES=["icon-color","icon-opacity","icon-halo-blur","icon-halo-color","icon-halo-width","icon-size"]}static{this.ATTRIBUTES_INFO={"icon-color":{name:"color",type:n.R8G8B8A8_COLOR},"icon-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100},"icon-halo-color":{name:"halo_color",type:n.R8G8B8A8_COLOR},"icon-halo-width":{name:"halo_width",type:n.R8_UNSIGNED,precisionFactor:4},"icon-halo-blur":{name:"halo_blur",type:n.R8_UNSIGNED,precisionFactor:4},"icon-size":{name:"size",type:n.R8_UNSIGNED,precisionFactor:32,isLayout:!0}}}constructor(t){super(t)}geometryInfo(){return E}opacityInfo(){return T}attributes(){return I.ATTRIBUTES}attributesInfo(){return I.ATTRIBUTES_INFO}}class w extends p{static{this.ATTRIBUTES=["text-color","text-opacity","text-halo-blur","text-halo-color","text-halo-width","text-size"]}static{this.ATTRIBUTES_INFO={"text-color":{name:"color",type:n.R8G8B8A8_COLOR},"text-opacity":{name:"opacity",type:n.R8_UNSIGNED,precisionFactor:100},"text-halo-color":{name:"halo_color",type:n.R8G8B8A8_COLOR},"text-halo-width":{name:"halo_width",type:n.R8_UNSIGNED,precisionFactor:4},"text-halo-blur":{name:"halo_blur",type:n.R8_UNSIGNED,precisionFactor:4},"text-size":{name:"size",type:n.R8_UNSIGNED,isLayout:!0}}}constructor(t){super(t)}geometryInfo(){return E}opacityInfo(){return T}attributes(){return w.ATTRIBUTES}attributesInfo(){return w.ATTRIBUTES_INFO}}var v=r(68197),R=r(85334),A=r(6774);function N(t,e,r,n){const i=3*t,a=3*(r-t)-i,o=1-i-a,s=3*e,l=3*(n-e)-s,u=1-s-l;function c(t){return((o*t+a)*t+i)*t}function h(t){return(3*o*t+2*a)*t+i}return function(t,e=1e-6){return function(t){return((u*t+l)*t+s)*t}(function(t,e){let r,n,i,a,o,s;for(i=t,s=0;s<8;s++){if(a=c(i)-t,Math.abs(a)<e)return i;if(o=h(i),Math.abs(o)<1e-6)break;i-=a/o}if(r=0,n=1,i=t,i<r)return r;if(i>n)return n;for(;r<n;){if(a=c(i),Math.abs(a-t)<e)return i;t>a?r=i:n=i,i=.5*(n-r)+r}return i}(t,e))}}const D={};D.ease=N(.25,.1,.25,1),D.linear=N(0,0,1,1),D.easeIn=D["ease-in"]=N(.42,0,1,1),D.easeOut=D["ease-out"]=N(0,0,.58,1),D.easeInOut=D["ease-in-out"]=N(.42,0,.58,1);const L={kind:"null"},P={kind:"number"},S={kind:"string"},x={kind:"boolean"},O={kind:"color"},B={kind:"object"},U={kind:"value"};function C(t,e){return{kind:"array",itemType:t,n:e}}const G=[L,P,S,x,O,B,C(U)];function M(t){if("array"===t.kind){const e=M(t.itemType);return"number"==typeof t.n?`array<${e}, ${t.n}>`:"value"===t.itemType.kind?"array":`array<${e}>`}return t.kind}function k(t){if(null===t)return L;if("string"==typeof t)return S;if("boolean"==typeof t)return x;if("number"==typeof t)return P;if(t instanceof v.A)return O;if(Array.isArray(t)){let e;for(const r of t){const t=k(r);if(e){if(e!==t){e=U;break}}else e=t}return C(e||U,t.length)}return"object"==typeof t?B:U}function F(t,e){if("array"===e.kind)return"array"===t.kind&&(0===t.n&&"value"===t.itemType.kind||F(t.itemType,e.itemType))&&("number"!=typeof e.n||e.n===t.n);if("value"===e.kind)for(const e of G)if(F(t,e))return!0;return e.kind===t.kind}function V(t){if(null===t)return"";const e=typeof t;return"string"===e?t:"number"===e||"boolean"===e?String(t):t instanceof v.A?t.toString():JSON.stringify(t)}class z{constructor(t){this._parent=t,this._vars={}}add(t,e){this._vars[t]=e}get(t){return this._vars[t]?this._vars[t]:this._parent?this._parent.get(t):null}}class ${constructor(){this.type=U}static parse(t){if(t.length>1)throw new Error('"id" does not expect arguments');return new $}evaluate(t,e){return t?.id}}class H{constructor(){this.type=S}static parse(t){if(t.length>1)throw new Error('"geometry-type" does not expect arguments');return new H}evaluate(t,e){if(!t)return null;switch(t.type){case A.dC.Point:return"Point";case A.dC.LineString:return"LineString";case A.dC.Polygon:return"Polygon";default:return null}}}class W{constructor(){this.type=B}static parse(t){if(t.length>1)throw new Error('"properties" does not expect arguments');return new W}evaluate(t,e){return t?.values}}class Y{constructor(){this.type=P}static parse(t){if(t.length>1)throw new Error('"zoom" does not expect arguments');return new Y}evaluate(t,e){return e}}class q{constructor(t,e,r){this._lhs=t,this._rhs=e,this._compare=r,this.type=x}static parse(t,e,r){if(3!==t.length&&4!==t.length)throw new Error(`"${t[0]}" expects 2 or 3 arguments`);if(4===t.length)throw new Error(`"${t[0]}" collator not supported`);return new q(vt(t[1],e),vt(t[2],e),r)}evaluate(t,e){return this._compare(this._lhs.evaluate(t,e),this._rhs.evaluate(t,e))}}class K{constructor(t){this._arg=t,this.type=x}static parse(t,e){if(2!==t.length)throw new Error('"!" expects 1 argument');return new K(vt(t[1],e))}evaluate(t,e){return!this._arg.evaluate(t,e)}}class j{constructor(t){this._args=t,this.type=x}static parse(t,e){const r=[];for(let n=1;n<t.length;n++)r.push(vt(t[n],e));return new j(r)}evaluate(t,e){for(const r of this._args)if(!r.evaluate(t,e))return!1;return!0}}class Z{constructor(t){this._args=t,this.type=x}static parse(t,e){const r=[];for(let n=1;n<t.length;n++)r.push(vt(t[n],e));return new Z(r)}evaluate(t,e){for(const r of this._args)if(r.evaluate(t,e))return!0;return!1}}class J{constructor(t){this._args=t,this.type=x}static parse(t,e){const r=[];for(let n=1;n<t.length;n++)r.push(vt(t[n],e));return new J(r)}evaluate(t,e){for(const r of this._args)if(r.evaluate(t,e))return!1;return!0}}class X{constructor(t,e,r){this.type=t,this._args=e,this._fallback=r}static parse(t,e,r){if(t.length<4)throw new Error('"case" expects at least 3 arguments');if(t.length%2==1)throw new Error('"case" expects an odd number of arguments');let n;const i=[];for(let a=1;a<t.length-1;a+=2){const o=vt(t[a],e),s=vt(t[a+1],e,r);n||(n=s.type),i.push({condition:o,output:s})}const a=vt(t[t.length-1],e,r);return n||(n=a.type),new X(n,i,a)}evaluate(t,e){for(const r of this._args)if(r.condition.evaluate(t,e))return r.output.evaluate(t,e);return this._fallback.evaluate(t,e)}}class Q{constructor(t,e){this.type=t,this._args=e}static parse(t,e){if(t.length<2)throw new Error('"coalesce" expects at least 1 argument');let r;const n=[];for(let i=1;i<t.length;i++){const a=vt(t[i],e);r||(r=a.type),n.push(a)}return new Q(r,n)}evaluate(t,e){for(const r of this._args){const n=r.evaluate(t,e);if(null!==n)return n}return null}}class tt{constructor(t,e,r,n,i){this.type=t,this._input=e,this._labels=r,this._outputs=n,this._fallback=i}static parse(t,e){if(t.length<3)throw new Error('"match" expects at least 3 arguments');if(t.length%2==0)throw new Error('"case" expects an even number of arguments');let r;const n=vt(t[1],e),i=[],a={};let o;for(let n=2;n<t.length-1;n+=2){let s=t[n];Array.isArray(s)||(s=[s]);for(const t of s){const e=typeof t;if("string"!==e&&"number"!==e)throw new Error('"match" requires string or number literal as labels');if(o){if(e!==o)throw new Error('"match" requires labels to have the same type')}else o=e;a[t]=i.length}const l=vt(t[n+1],e);r||(r=l.type),i.push(l)}return new tt(r,n,a,i,vt(t[t.length-1],e))}evaluate(t,e){const r=this._input.evaluate(t,e);return(this._outputs[this._labels[r]]||this._fallback).evaluate(t,e)}}class et{constructor(t,e,r,n,i){this._operator=t,this.type=e,this.interpolation=r,this.input=n,this._stops=i}static parse(t,e,r){const n=t[0];if(t.length<5)throw new Error(`"${n}" expects at least 4 arguments`);const i=t[1];if(!Array.isArray(i)||0===i.length)throw new Error(`"${i}" is not a valid interpolation`);switch(i[0]){case"linear":if(1!==i.length)throw new Error("Linear interpolation cannot have parameters");break;case"exponential":if(2!==i.length||"number"!=typeof i[1])throw new Error("Exponential interpolation requires one numeric argument");break;case"cubic-bezier":if(5!==i.length)throw new Error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1");for(let t=1;t<5;t++){const e=i[t];if("number"!=typeof e||e<0||e>1)throw new Error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1")}break;default:throw new Error(`"${t[0]}" unknown interpolation type "${i[0]}"`)}if(t.length%2!=1)throw new Error(`"${n}" expects an even number of arguments`);const a=vt(t[2],e,P);let o;"interpolate-hcl"===n||"interpolate-lab"===n?o=O:r&&"value"!==r.kind&&(o=r);const s=[];for(let r=3;r<t.length;r+=2){const i=t[r];if("number"!=typeof i)throw new Error(`"${n}" requires stop inputs as literal numbers`);if(s.length&&s[s.length-1][0]>=i)throw new Error(`"${n}" requires strictly ascending stop inputs`);const a=vt(t[r+1],e,o);o||(o=a.type),s.push([i,a])}if(o&&o!==O&&o!==P&&("array"!==o.kind||o.itemType!==P))throw new Error(`"${n}" cannot interpolate type ${M(o)}`);return new et(n,o,i,a,s)}evaluate(t,e){const r=this._stops;if(1===r.length)return r[0][1].evaluate(t,e);const n=this.input.evaluate(t,e);if(n<=r[0][0])return r[0][1].evaluate(t,e);if(n>=r[r.length-1][0])return r[r.length-1][1].evaluate(t,e);let i=0;for(;++i<r.length&&!(n<r[i][0]););const a=r[i-1][0],o=r[i][0],s=et.interpolationRatio(this.interpolation,n,a,o),u=r[i-1][1].evaluate(t,e),c=r[i][1].evaluate(t,e);if("interpolate"===this._operator){if("array"===this.type.kind&&Array.isArray(u)&&Array.isArray(c))return u.map(((t,e)=>(0,l.GW)(t,c[e],s)));if("color"===this.type.kind&&u instanceof v.A&&c instanceof v.A){const t=new v.A(u),e=new v.A(c);return new v.A([(0,l.GW)(t.r,e.r,s),(0,l.GW)(t.g,e.g,s),(0,l.GW)(t.b,e.b,s),(0,l.GW)(t.a,e.a,s)])}if("number"===this.type.kind&&"number"==typeof u&&"number"==typeof c)return(0,l.GW)(u,c,s);throw new Error(`"${this._operator}" cannot interpolate type ${M(this.type)}`)}if("interpolate-hcl"===this._operator){const t=(0,R.RH)(u),e=(0,R.RH)(c),r=e.h-t.h,n=(0,R.$)({h:t.h+s*(r>180||r<-180?r-360*Math.round(r/360):r),c:(0,l.GW)(t.c,e.c,s),l:(0,l.GW)(t.l,e.l,s)});return new v.A({a:(0,l.GW)(u.a,c.a,s),...n})}if("interpolate-lab"===this._operator){const t=(0,R.ZD)(u),e=(0,R.ZD)(c),r=(0,R.$)({l:(0,l.GW)(t.l,e.l,s),a:(0,l.GW)(t.a,e.a,s),b:(0,l.GW)(t.b,e.b,s)});return new v.A({a:(0,l.GW)(u.a,c.a,s),...r})}throw new Error(`Unexpected operator "${this._operator}"`)}interpolationUniformValue(t,e){const r=this._stops;if(1===r.length)return 0;if(t>=r[r.length-1][0])return 0;let n=0;for(;++n<r.length&&!(t<r[n][0]););const i=r[n-1][0],a=r[n][0];return et.interpolationRatio(this.interpolation,e,i,a)}getInterpolationRange(t){const e=this._stops;if(1===e.length){const t=e[0][0];return[t,t]}const r=e[e.length-1][0];if(t>=r)return[r,r];let n=0;for(;++n<e.length&&!(t<e[n][0]););return[e[n-1][0],e[n][0]]}static interpolationRatio(t,e,r,n){let i=0;return"linear"===t[0]?i=et._exponentialInterpolationRatio(e,1,r,n):"exponential"===t[0]?i=et._exponentialInterpolationRatio(e,t[1],r,n):"cubic-bezier"===t[0]&&(i=N(t[1],t[2],t[3],t[4])(et._exponentialInterpolationRatio(e,1,r,n),1e-5)),i<0?i=0:i>1&&(i=1),i}static _exponentialInterpolationRatio(t,e,r,n){const i=n-r;if(0===i)return 0;const a=t-r;return 1===e?a/i:(e**a-1)/(e**i-1)}}class rt{constructor(t,e,r){this.type=t,this._input=e,this._stops=r}static parse(t,e){if(t.length<5)throw new Error('"step" expects at least 4 arguments');if(t.length%2!=1)throw new Error('"step" expects an even number of arguments');const r=vt(t[1],e,P);let n;const i=[];i.push([-1/0,vt(t[2],e)]);for(let r=3;r<t.length;r+=2){const a=t[r];if("number"!=typeof a)throw new Error('"step" requires stop inputs as literal numbers');if(i.length&&i[i.length-1][0]>=a)throw new Error('"step" requires strictly ascending stop inputs');const o=vt(t[r+1],e);n||(n=o.type),i.push([a,o])}return new rt(n,r,i)}evaluate(t,e){const r=this._stops;if(1===r.length)return r[0][1].evaluate(t,e);const n=this._input.evaluate(t,e);let i=0;for(;++i<r.length&&!(n<r[i][0]););return this._stops[i-1][1].evaluate(t,e)}}class nt{constructor(t,e){this.type=t,this._output=e}static parse(t,e,r){if(t.length<4)throw new Error('"let" expects at least 3 arguments');if(t.length%2==1)throw new Error('"let" expects an odd number of arguments');const n=new z(e);for(let r=1;r<t.length-1;r+=2){const i=t[r];if("string"!=typeof i)throw new Error(`"let" requires a string to define variable names - found ${i}`);n.add(i,vt(t[r+1],e))}const i=vt(t[t.length-1],n,r);return new nt(i.type,i)}evaluate(t,e){return this._output.evaluate(t,e)}}class it{constructor(t,e){this.type=t,this.output=e}static parse(t,e,r){if(2!==t.length||"string"!=typeof t[1])throw new Error('"var" requires just one literal string argument');const n=e.get(t[1]);if(!n)throw new Error(`${t[1]} must be defined before being used in a "var" expression`);return new it(r||U,n)}evaluate(t,e){return this.output.evaluate(t,e)}}class at{constructor(t,e,r){this.type=t,this._index=e,this._array=r}static parse(t,e){if(3!==t.length)throw new Error('"at" expects 2 arguments');const r=vt(t[1],e,P),n=vt(t[2],e);return new at(n.type.itemType,r,n)}evaluate(t,e){const r=this._index.evaluate(t,e),n=this._array.evaluate(t,e);if(r<0||r>=n.length)throw new Error('"at" index out of bounds');if(r!==Math.floor(r))throw new Error('"at" index must be an integer');return n[r]}}class ot{constructor(t,e){this._key=t,this._obj=e,this.type=U}static parse(t,e){let r,n;switch(t.length){case 2:return r=vt(t[1],e),new ot(r);case 3:return r=vt(t[1],e),n=vt(t[2],e),new ot(r,n);default:throw new Error('"get" expects 1 or 2 arguments')}}evaluate(t,e){const r=this._key.evaluate(t,e);return this._obj?this._obj.evaluate(t,e)[r]:t?.values[r]}}class st{constructor(t,e){this._key=t,this._obj=e,this.type=x}static parse(t,e){let r,n;switch(t.length){case 2:return r=vt(t[1],e),new st(r);case 3:return r=vt(t[1],e),n=vt(t[2],e),new st(r,n);default:throw new Error('"has" expects 1 or 2 arguments')}}evaluate(t,e){const r=this._key.evaluate(t,e);return this._obj?r in this._obj.evaluate(t,e):!!t?.values[r]}}class lt{constructor(t,e){this._key=t,this._vals=e,this.type=x}static parse(t,e){if(3!==t.length)throw new Error('"in" expects 2 arguments');return new lt(vt(t[1],e),vt(t[2],e))}evaluate(t,e){const r=this._key.evaluate(t,e);return this._vals.evaluate(t,e).includes(r)}}class ut{constructor(t,e,r){this._item=t,this._array=e,this._from=r,this.type=P}static parse(t,e){if(t.length<3||t.length>4)throw new Error('"index-of" expects 3 or 4 arguments');const r=vt(t[1],e),n=vt(t[2],e);if(4===t.length){const i=vt(t[3],e,P);return new ut(r,n,i)}return new ut(r,n)}evaluate(t,e){const r=this._item.evaluate(t,e),n=this._array.evaluate(t,e);if(this._from){const i=this._from.evaluate(t,e);if(i!==Math.floor(i))throw new Error('"index-of" index must be an integer');return n.indexOf(r,i)}return n.indexOf(r)}}class ct{constructor(t){this._arg=t,this.type=P}static parse(t,e){if(2!==t.length)throw new Error('"length" expects 2 arguments');const r=vt(t[1],e);return new ct(r)}evaluate(t,e){const r=this._arg.evaluate(t,e);if("string"==typeof r)return r.length;if(Array.isArray(r))return r.length;throw new Error('"length" expects string or array')}}class ht{constructor(t,e,r,n){this.type=t,this._array=e,this._from=r,this._to=n}static parse(t,e){if(t.length<3||t.length>4)throw new Error('"slice" expects 2 or 3 arguments');const r=vt(t[1],e),n=vt(t[2],e,P);if(n.type!==P)throw new Error('"slice" index must return a number');if(4===t.length){const i=vt(t[3],e,P);if(i.type!==P)throw new Error('"slice" index must return a number');return new ht(r.type,r,n,i)}return new ht(r.type,r,n)}evaluate(t,e){const r=this._array.evaluate(t,e);if(!Array.isArray(r)&&"string"!=typeof r)throw new Error('"slice" input must be an array or a string');const n=this._from.evaluate(t,e);if(n<0||n>=r.length)throw new Error('"slice" index out of bounds');if(n!==Math.floor(n))throw new Error('"slice" index must be an integer');if(this._to){const i=this._to.evaluate(t,e);if(i<0||i>=r.length)throw new Error('"slice" index out of bounds');if(i!==Math.floor(i))throw new Error('"slice" index must be an integer');return r.slice(n,i)}return r.slice(n)}}class pt{constructor(){this.type=x}static parse(t){if(1!==t.length)throw new Error('"has-id" expects no arguments');return new pt}evaluate(t,e){return void 0!==t?.id}}class ft{constructor(t,e){this._args=t,this._calculate=e,this.type=P}static parse(t,e,r){const n=t.slice(1).map((t=>vt(t,e)));return new ft(n,r)}evaluate(t,e){let r;return this._args&&(r=this._args.map((r=>r.evaluate(t,e)))),this._calculate(r)}}class yt{constructor(t,e){this._args=t,this._calculate=e,this.type=P}static{this.ops={abs:t=>Math.abs(t[0]),acos:t=>Math.acos(t[0]),asin:t=>Math.asin(t[0]),atan:t=>Math.atan(t[0]),ceil:t=>Math.ceil(t[0]),cos:t=>Math.cos(t[0]),e:()=>Math.E,floor:t=>Math.floor(t[0]),ln:t=>Math.log(t[0]),ln2:()=>Math.LN2,log10:t=>Math.log(t[0])/Math.LN10,log2:t=>Math.log(t[0])/Math.LN2,max:t=>Math.max(...t),min:t=>Math.min(...t),pi:()=>Math.PI,round:t=>Math.round(t[0]),sin:t=>Math.sin(t[0]),sqrt:t=>Math.sqrt(t[0]),tan:t=>Math.tan(t[0])}}static parse(t,e){const r=t.slice(1).map((t=>vt(t,e)));return new yt(r,yt.ops[t[0]])}evaluate(t,e){let r;return this._args&&(r=this._args.map((r=>r.evaluate(t,e)))),this._calculate(r)}}class gt{constructor(t){this._args=t,this.type=S}static parse(t,e){return new gt(t.slice(1).map((t=>vt(t,e))))}evaluate(t,e){return this._args.map((r=>r.evaluate(t,e))).join("")}}class dt{constructor(t,e){this._arg=t,this._calculate=e,this.type=S}static{this.ops={downcase:t=>t.toLowerCase(),upcase:t=>t.toUpperCase()}}static parse(t,e){if(2!==t.length)throw new Error(`${t[0]} expects 1 argument`);const r=vt(t[1],e);return new dt(r,dt.ops[t[0]])}evaluate(t,e){return this._calculate(this._arg.evaluate(t,e))}}class mt{constructor(t){this._args=t,this.type=O}static parse(t,e){if(4!==t.length)throw new Error('"rgb" expects 3 arguments');const r=t.slice(1).map((t=>vt(t,e)));return new mt(r)}evaluate(t,e){const r=this._validate(this._args[0].evaluate(t,e)),n=this._validate(this._args[1].evaluate(t,e)),i=this._validate(this._args[2].evaluate(t,e));return new v.A({r,g:n,b:i})}_validate(t){if("number"!=typeof t||t<0||t>255)throw new Error(`${t}: invalid color component`);return Math.round(t)}}class _t{constructor(t){this._args=t,this.type=O}static parse(t,e){if(5!==t.length)throw new Error('"rgba" expects 4 arguments');const r=t.slice(1).map((t=>vt(t,e)));return new _t(r)}evaluate(t,e){const r=this._validate(this._args[0].evaluate(t,e)),n=this._validate(this._args[1].evaluate(t,e)),i=this._validate(this._args[2].evaluate(t,e)),a=this._validateAlpha(this._args[3].evaluate(t,e));return new v.A({r,g:n,b:i,a})}_validate(t){if("number"!=typeof t||t<0||t>255)throw new Error(`${t}: invalid color component`);return Math.round(t)}_validateAlpha(t){if("number"!=typeof t||t<0||t>1)throw new Error(`${t}: invalid alpha color component`);return t}}class bt{constructor(t){this._color=t,this.type=C(P,4)}static parse(t,e){if(2!==t.length)throw new Error('"to-rgba" expects 1 argument');const r=vt(t[1],e);return new bt(r)}evaluate(t,e){return new v.A(this._color.evaluate(t,e)).toRgba()}}class Et{constructor(t,e){this.type=t,this._args=e}static parse(t,e){const r=t[0];if(t.length<2)throw new Error(`${r} expects at least one argument`);let n,i=1;if("array"===r){if(t.length>2){switch(t[1]){case"string":n=S;break;case"number":n=P;break;case"boolean":n=x;break;default:throw new Error('"array" type argument must be string, number or boolean')}i++}else n=U;let e;if(t.length>3){if(e=t[2],null!==e&&("number"!=typeof e||e<0||e!==Math.floor(e)))throw new Error('"array" length argument must be a positive integer literal');i++}n=C(n,e)}else switch(r){case"string":n=S;break;case"number":n=P;break;case"boolean":n=x;break;case"object":n=B}const a=[];for(;i<t.length;i++){const r=vt(t[i],e);a.push(r)}return new Et(n,a)}evaluate(t,e){let r;for(const n of this._args){const i=n.evaluate(t,e);if(r=k(i),F(r,this.type))return i}throw new Error(`Expected ${M(this.type)} but got ${M(r)}`)}}class Tt{static{this.types={"to-boolean":x,"to-color":O,"to-number":P,"to-string":S}}constructor(t,e){this.type=t,this._args=e}static parse(t,e){const r=t[0],n=Tt.types[r];if(n===x||n===S){if(2!==t.length)throw new Error(`${r} expects one argument`)}else if(t.length<2)throw new Error(`${r} expects at least one argument`);const i=[];for(let r=1;r<t.length;r++){const n=vt(t[r],e);i.push(n)}return new Tt(n,i)}evaluate(t,e){if(this.type===x)return Boolean(this._args[0].evaluate(t,e));if(this.type===S)return V(this._args[0].evaluate(t,e));if(this.type===P){for(const r of this._args){const n=Number(r.evaluate(t,e));if(!isNaN(n))return n}return null}if(this.type===O){for(const r of this._args)try{const n=Tt.toColor(r.evaluate(t,e));if(n instanceof v.A)return n}catch{}return null}}static toBoolean(t){return Boolean(t)}static toString(t){return V(t)}static toNumber(t){const e=Number(t);if(isNaN(e))throw new Error(`"${t}" is not a number`);return e}static toColor(t){if(t instanceof v.A)return t;if("string"==typeof t){const e=v.A.fromString(t);if(e)return e;throw new Error(`"${t}" is not a color`)}if(Array.isArray(t))return v.A.fromArray(t);throw new Error(`"${t}" is not a color`)}}class It{constructor(t){this._val=t,this.type=k(t)}static parse(t){if(2!==t.length)throw new Error('"literal" expects 1 argument');return new It(t[1])}evaluate(t,e){return this._val}}class wt{constructor(t){this._arg=t,this.type=S}static parse(t,e){if(2!==t.length)throw new Error('"typeof" expects 1 argument');return new wt(vt(t[1],e))}evaluate(t,e){return M(k(this._arg.evaluate(t,e)))}}function vt(t,e,r){const n=typeof t;if("string"===n||"boolean"===n||"number"===n||null===t){if(r)switch(r.kind){case"string":"string"!==n&&(t=Tt.toString(t));break;case"number":"number"!==n&&(t=Tt.toNumber(t));break;case"color":t=Tt.toColor(t)}t=["literal",t]}if(!Array.isArray(t)||0===t.length)throw new Error("Expression must be a non empty array");const i=t[0];if("string"!=typeof i)throw new Error("First element of expression must be a string");const a=Rt[i];if(void 0===a)throw new Error(`Invalid expression operator "${i}"`);if(!a)throw new Error(`Unimplemented expression operator "${i}"`);return a.parse(t,e,r)}const Rt={array:Et,boolean:Et,collator:null,format:null,image:null,literal:It,number:Et,"number-format":null,object:Et,string:Et,"to-boolean":Tt,"to-color":Tt,"to-number":Tt,"to-string":Tt,typeof:wt,accumulated:null,"feature-state":null,"geometry-type":H,id:$,"line-progress":null,properties:W,at,get:ot,has:st,in:lt,"index-of":ut,length:ct,slice:ht,"!":K,"!=":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t!==e))}},"<":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t<e))}},"<=":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t<=e))}},"==":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t===e))}},">":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t>e))}},">=":class extends q{static parse(t,e){return q.parse(t,e,((t,e)=>t>=e))}},all:j,any:Z,case:X,coalesce:Q,match:tt,within:null,interpolate:et,"interpolate-hcl":et,"interpolate-lab":et,step:rt,let:nt,var:it,concat:gt,downcase:dt,"is-supported-script":null,"resolved-locale":null,upcase:dt,rgb:mt,rgba:_t,"to-rgba":bt,"-":class extends ft{static parse(t,e){switch(t.length){case 2:return ft.parse(t,e,(t=>-t[0]));case 3:return ft.parse(t,e,(t=>t[0]-t[1]));default:throw new Error('"-" expects 1 or 2 arguments')}}},"*":class extends ft{static parse(t,e){return ft.parse(t,e,(t=>{let e=1;for(const r of t)e*=r;return e}))}},"/":class extends ft{static parse(t,e){if(3===t.length)return ft.parse(t,e,(t=>t[0]/t[1]));throw new Error('"/" expects 2 arguments')}},"%":class extends ft{static parse(t,e){if(3===t.length)return ft.parse(t,e,(t=>t[0]%t[1]));throw new Error('"%" expects 2 arguments')}},"^":class extends ft{static parse(t,e){if(3===t.length)return ft.parse(t,e,(t=>t[0]**t[1]));throw new Error('"^" expects 1 or 2 arguments')}},"+":class extends ft{static parse(t,e){return ft.parse(t,e,(t=>{let e=0;for(const r of t)e+=r;return e}))}},abs:yt,acos:yt,asin:yt,atan:yt,ceil:yt,cos:yt,e:yt,floor:yt,ln:yt,ln2:yt,log10:yt,log2:yt,max:yt,min:yt,pi:yt,round:yt,sin:yt,sqrt:yt,tan:yt,zoom:Y,"heatmap-density":null,"has-id":pt,none:J};class At{constructor(t){this._expression=t}filter(t,e){if(!this._expression)return!0;try{return this._expression.evaluate(t,e)}catch(t){return console.log(t.message),!0}}static createFilter(t){if(!t)return null;this.isLegacyFilter(t)&&(t=this.convertLegacyFilter(t));try{const e=vt(t,null,x);return new At(e)}catch(t){return console.log(t.message),null}}static isLegacyFilter(t){if(!Array.isArray(t))return!0;if(0===t.length)return!0;switch(t[0]){case"==":case"!=":case">":case"<":case">=":case"<=":return 3===t.length&&"string"==typeof t[1]&&!Array.isArray(t[2]);case"in":return t.length>=3&&"string"==typeof t[1]&&!Array.isArray(t[2]);case"!in":case"none":case"!has":return!0;case"any":case"all":for(let e=1;e<t.length;e++)if(this.isLegacyFilter(t[e]))return!0;return!1;case"has":return 2===t.length&&("$id"===t[1]||"$type"===t[1]);default:return!1}}static convertLegacyFilter(t){if(!Array.isArray(t)||0===t.length)return!0;const e=t[0];if(1===t.length)return"any"!==e;switch(e){case"==":return At.convertComparison("==",t[1],t[2]);case"!=":return At.negate(At.convertComparison("==",t[1],t[2]));case">":case"<":case">=":case"<=":return At.convertComparison(e,t[1],t[2]);case"in":return At.convertIn(t[1],t.slice(2));case"!in":return At.negate(At.convertIn(t[1],t.slice(2)));case"any":case"all":case"none":return At.convertCombining(e,t.slice(1));case"has":return At.convertHas(t[1]);case"!has":return At.negate(At.convertHas(t[1]));default:throw new Error("Unexpected legacy filter.")}}static convertComparison(t,e,r){switch(e){case"$type":return[t,["geometry-type"],r];case"$id":return[t,["id"],r];default:return[t,["get",e],r]}}static convertIn(t,e){switch(t){case"$type":return["in",["geometry-type"],["literal",e]];case"$id":return["in",["id"],["literal",e]];default:return["in",["get",t],["literal",e]]}}static convertHas(t){switch(t){case"$type":return!0;case"$id":return["has-id"];default:return["has",t]}}static convertCombining(t,e){return[t].concat(e.map(this.convertLegacyFilter))}static negate(t){return["!",t]}}var Nt=r(4272),Dt=r(40876);class Lt{constructor(t,e){let r;switch(this.isDataDriven=!1,this.interpolator=null,t.type){case"number":case"color":r=!0;break;case"array":r="number"===t.value;break;default:r=!1}if((null==e||""===e&&"color"===t.type)&&(e=t.default),Array.isArray(e)&&e.length>0&&Rt[e[0]]){const r={number:P,color:O,string:S,boolean:x,enum:S};try{const n=vt(e,null,"array"===t.type?C(r[t.value]||U,t.length):r[t.type]);this.getValue=this._buildExpression(n,t),this.isDataDriven=!0,n instanceof et&&n.input instanceof Y&&(this.interpolator=n)}catch(e){console.log(e.message),this.getValue=this._buildSimple(t.default)}return}r&&"interval"===e.type&&(r=!1);const n=e?.stops&&e.stops.length>0;if(n)for(const r of e.stops)r[1]=this._validate(r[1],t);if(this.isDataDriven=!!e&&!!e.property,this.isDataDriven)if(void 0!==e.default&&(e.default=this._validate(e.default,t)),n)switch(e.type){case"identity":this.getValue=this._buildIdentity(e,t);break;case"categorical":this.getValue=this._buildCategorical(e,t);break;default:this.getValue=r?this._buildInterpolate(e,t):this._buildInterval(e,t)}else this.getValue=this._buildIdentity(e,t);else n?this.getValue=r?this._buildZoomInterpolate(e):this._buildZoomInterval(e):(e=this._validate(e,t),this.getValue=this._buildSimple(e))}_validate(t,e){if("number"===e.type){if(null!=e.minimum&&t<e.minimum)return e.minimum;if(null!=e.maximum&&t>e.maximum)return e.maximum}else"color"===e.type?t=Lt._parseColor(t):"enum"===e.type?"string"==typeof t&&(t=e.values.indexOf(t)):"array"===e.type&&"enum"===e.value?t=t.map((t=>"string"==typeof t?e.values.indexOf(t):t)):"string"===e.type&&(t=V(t));return t}_buildSimple(t){return()=>t}_buildExpression(t,e){return(r,n)=>{try{const i=t.evaluate(n,r);return void 0===i?e.default:this._validate(i,e)}catch(t){return console.log(t.message),e.default}}}_buildIdentity(t,e){return(r,n)=>{let i;return n&&(i=n.values[t.property]),void 0!==i&&(i=this._validate(i,e)),null!=i?i:void 0!==t.default?t.default:e.default}}_buildCategorical(t,e){return(r,n)=>{let i;return n&&(i=n.values[t.property]),i=this._categorical(i,t.stops),void 0!==i?i:void 0!==t.default?t.default:e.default}}_buildInterval(t,e){return(r,n)=>{let i;return n&&(i=n.values[t.property]),"number"==typeof i?this._interval(i,t.stops):void 0!==t.default?t.default:e.default}}_buildInterpolate(t,e){return(r,n)=>{let i;return n&&(i=n.values[t.property]),"number"==typeof i?this._interpolate(i,t.stops,t.base||1):void 0!==t.default?t.default:e.default}}_buildZoomInterpolate(t){return e=>this._interpolate(e,t.stops,t.base||1)}_buildZoomInterval(t){return e=>this._interval(e,t.stops)}_categorical(t,e){const r=e.length;for(let n=0;n<r;n++)if(e[n][0]===t)return e[n][1]}_interval(t,e){const r=e.length;let n=0;for(let i=0;i<r&&e[i][0]<=t;i++)n=i;return e[n][1]}_interpolate(t,e,r){let n,i;const a=e.length;for(let r=0;r<a;r++){const a=e[r];if(!(a[0]<=t)){i=a;break}n=a}if(n&&i){const e=i[0]-n[0],a=t-n[0],o=1===r?a/e:(r**a-1)/(r**e-1);if(Array.isArray(n[1])){const t=n[1],e=i[1],r=[];for(let n=0;n<t.length;n++)r.push((0,l.GW)(t[n],e[n],o));return r}return(0,l.GW)(n[1],i[1],o)}return n?n[1]:i?i[1]:void 0}static _isEmpty(t){for(const e in t)if(t.hasOwnProperty(e))return!1;return!0}static _parseColor(t){return Array.isArray(t)?t:"string"==typeof t?(0,Dt.Vm)(t)??void 0:t instanceof v.A&&!this._isEmpty(t)?v.A.toUnitRGBA(t):void 0}}var Pt,St=r(76213);!function(t){t[t.BUTT=0]="BUTT",t[t.ROUND=1]="ROUND",t[t.SQUARE=2]="SQUARE",t[t.UNKNOWN=4]="UNKNOWN"}(Pt||(Pt={}));class xt{constructor(t,e,r,n){switch(this.type=t,this.typeName=e.type,this.id=e.id,this.source=e.source,this.sourceLayer=e["source-layer"],this.minzoom=e.minzoom,this.maxzoom=e.maxzoom,this.filter=e.filter,this.layout=e.layout,this.paint=e.paint,this.z=r,this.uid=n,t){case Nt.Dc.BACKGROUND:this._layoutDefinition=Nt.$u.backgroundLayoutDefinition,this._paintDefinition=Nt.$u.backgroundPaintDefinition;break;case Nt.Dc.FILL:this._layoutDefinition=Nt.$u.fillLayoutDefinition,this._paintDefinition=Nt.$u.fillPaintDefinition;break;case Nt.Dc.LINE:this._layoutDefinition=Nt.$u.lineLayoutDefinition,this._paintDefinition=Nt.$u.linePaintDefinition;break;case Nt.Dc.SYMBOL:this._layoutDefinition=Nt.$u.symbolLayoutDefinition,this._paintDefinition=Nt.$u.symbolPaintDefinition;break;case Nt.Dc.CIRCLE:this._layoutDefinition=Nt.$u.circleLayoutDefinition,this._paintDefinition=Nt.$u.circlePaintDefinition}this._layoutProperties=this._parseLayout(this.layout),this._paintProperties=this._parsePaint(this.paint)}getFeatureFilter(){return void 0!==this._featureFilter?this._featureFilter:this._featureFilter=At.createFilter(this.filter)}getLayoutProperty(t){return this._layoutProperties[t]}getPaintProperty(t){return this._paintProperties[t]}getLayoutValue(t,e,r){let n;const i=this._layoutProperties[t];return i&&(n=i.getValue(e,r)),void 0===n&&(n=this._layoutDefinition[t].default),n}getPaintValue(t,e,r){let n;const i=this._paintProperties[t];return i&&(n=i.getValue(e,r)),void 0===n&&(n=this._paintDefinition[t].default),n}isPainterDataDriven(){const t=this._paintProperties;if(t)for(const e in t)if(t[e].isDataDriven)return!0;return!1}isIntersectingFeature(t,e,r,n,i,a,o){return!1}getFeatureInflatedBounds(t,e,r,n){return null}_parseLayout(t){const e={};for(const r in t){const n=this._layoutDefinition[r];n&&(e[r]=new Lt(n,t[r]))}return e}_parsePaint(t){const e={};for(const r in t){const n=this._paintDefinition[r];n&&(e[r]=new Lt(n,t[r]))}return e}computeAttributesKey(t,e,r,n){let i=0,a=0;for(const t of e){let e=3;if(!t||t!==n){const n=r[t],{isLayout:i,isOptional:a}=n,o=i?this.getLayoutProperty(t):this.getPaintProperty(t);e=o?.interpolator?2:o?.isDataDriven?1:a&&!o?3:0}a|=e<<i,i+=2}return a<<3|t}}class Ot extends xt{constructor(t,e,r,n){super(t,e,r,n),this.backgroundMaterial=new g(this.computeAttributesKey(s.kh.BACKGROUND,g.ATTRIBUTES,g.ATTRIBUTES_INFO))}}class Bt extends xt{constructor(t,e,r,n){super(t,e,r,n);const i=this.getPaintProperty("fill-color"),a=this.getPaintProperty("fill-opacity"),o=this.getPaintProperty("fill-pattern");this.hasDataDrivenColor=i?.isDataDriven,this.hasDataDrivenOpacity=a?.isDataDriven,this.hasDataDrivenFill=this.hasDataDrivenColor||this.hasDataDrivenOpacity||o?.isDataDriven;const l=this.getPaintProperty("fill-outline-color");this.outlineUsesFillColor=!l,this.hasDataDrivenOutlineColor=l?.isDataDriven,this.hasDataDrivenOutline=l?l.isDataDriven:!!i&&i.isDataDriven,this.hasDataDrivenOutline=(l?this.hasDataDrivenOutlineColor:this.hasDataDrivenColor)||this.hasDataDrivenOpacity,this.fillMaterial=new m(this.computeAttributesKey(s.kh.FILL,m.ATTRIBUTES,m.ATTRIBUTES_INFO)),this.outlineMaterial=new _(this.computeAttributesKey(s.kh.OUTLINE,this.outlineUsesFillColor?_.ATTRIBUTES_FILL:_.ATTRIBUTES_OUTLINE,this.outlineUsesFillColor?_.ATTRIBUTES_INFO_FILL:_.ATTRIBUTES_INFO_OUTLINE),this.outlineUsesFillColor)}getFeatureInflatedBounds(t,e,r,n){const i=Ft(t);if(!i)return null;const a=this.getPaintValue("fill-translate",e,t),o=n*Math.max(a[0],a[1]);return i[0]-=o,i[2]-=o,i[1]+=o,i[3]+=o,i}isIntersectingFeature(t,e,r,n,i,a,s){const u=n.getGeometry();if(!u)return!1;const c=o.ih/s.normalizationRatio;t=t/s.normalizationRatio+s.normalizationOffsetX,e=e/s.normalizationRatio+s.normalizationOffsetY;const h=(0,l.yM)(this.getPaintValue("fill-translate",i,n),this.getPaintValue("fill-translate-anchor",i,n),a,o.ih);return t-=c*h.x,e-=c*h.y,!!(0,l.s3)(t,e,u)||(0,l.ru)(t,e,u,c*r)}}class Ut extends xt{constructor(t,e,r,n){super(t,e,r,n);const i=this.getPaintProperty("line-pattern");if(this.lineMaterial=new b(this.computeAttributesKey(s.kh.LINE,b.ATTRIBUTES,b.ATTRIBUTES_INFO,i?"line-dasharray":"")),this.hasDataDrivenLine=this.getPaintProperty("line-blur")?.isDataDriven||this.getPaintProperty("line-color")?.isDataDriven||this.getPaintProperty("line-gap-width")?.isDataDriven||this.getPaintProperty("line-offset")?.isDataDriven||this.getPaintProperty("line-opacity")?.isDataDriven||this.getPaintProperty("line-pattern")?.isDataDriven||this.getPaintProperty("line-dasharray")?.isDataDriven||this.getLayoutProperty("line-cap")?.isDataDriven||this.getPaintProperty("line-width")?.isDataDriven,this.canUseThinTessellation=!1,!this.hasDataDrivenLine){const t=this.getPaintProperty("line-width");if(!t||"number"==typeof t&&.5*t<St.Gh){const t=this.getPaintProperty("line-offset");(!t||"number"==typeof t&&0===t)&&(this.canUseThinTessellation=!0)}}}getDashKey(t,e){let r;switch(e){case Pt.BUTT:r="Butt";break;case Pt.ROUND:r="Round";break;case Pt.SQUARE:r="Square";break;default:r="Butt"}return`dasharray-[${t.toString()}]-${r}`}getFeatureInflatedBounds(t,e,r,n){const i=Ft(t);if(!i)return null;const a=this.getPaintValue("line-translate",e,t),o=n*Math.max(a[0],a[1]);i[0]-=o,i[2]-=o,i[1]+=o,i[3]+=o;const s=n*Math.abs(this.getPaintValue("line-offset",e,t)||0),l=n*(this.getPaintValue("line-width",e,t)/2);return i[0]-=s+l,i[1]-=s+l,i[2]+=s+l,i[3]+=s+l,i}isIntersectingFeature(t,e,r,n,i,a,s){let u=n.getGeometry();if(!u)return!1;const c=o.ih/s.normalizationRatio;t=t/s.normalizationRatio+s.normalizationOffsetX,e=e/s.normalizationRatio+s.normalizationOffsetY;const h=(0,l.yM)(this.getPaintValue("line-translate",i,n),this.getPaintValue("line-translate-anchor",i,n),a,o.ih);t-=c*h.x,e-=c*h.y;const p=c*this.getPaintValue("line-offset",i,n)||0;0!==p&&(u=(0,l.cP)(u,-p));const f=this.getPaintValue("line-width",i,n);return(0,l.ru)(t,e,u,c*(r+f/2))}}class Ct extends xt{constructor(t,e,r,n){super(t,e,r,n),this.iconMaterial=new I(this.computeAttributesKey(s.kh.ICON,I.ATTRIBUTES,I.ATTRIBUTES_INFO)),this.textMaterial=new w(this.computeAttributesKey(s.kh.TEXT,w.ATTRIBUTES,w.ATTRIBUTES_INFO)),this.hasDataDrivenIcon=this.getPaintProperty("icon-color")?.isDataDriven||this.getPaintProperty("icon-halo-blur")?.isDataDriven||this.getPaintProperty("icon-halo-color")?.isDataDriven||this.getPaintProperty("icon-halo-width")?.isDataDriven||this.getPaintProperty("icon-opacity")?.isDataDriven||this.getLayoutProperty("icon-size")?.isDataDriven,this.hasDataDrivenText=this.getPaintProperty("text-color")?.isDataDriven||this.getPaintProperty("text-halo-blur")?.isDataDriven||this.getPaintProperty("text-halo-color")?.isDataDriven||this.getPaintProperty("text-halo-width")?.isDataDriven||this.getPaintProperty("text-opacity")?.isDataDriven||this.getLayoutProperty("text-size")?.isDataDriven}}class Gt extends xt{constructor(t,e,r,n){super(t,e,r,n),this.circleMaterial=new d(this.computeAttributesKey(s.kh.CIRCLE,d.ATTRIBUTES,d.ATTRIBUTES_INFO))}getFeatureInflatedBounds(t,e,r,n){const i=Ft(t);if(!i)return null;const a=this.getPaintValue("circle-translate",e,t),s=Math.max(a[0],a[1]);i[0]-=s,i[2]-=s,i[1]+=s,i[3]+=s;const l=n*(o.ih*(this.getPaintValue("circle-radius",e,t)+this.getPaintValue("circle-stroke-width",e,t))/2);return i[0]-=l,i[1]-=l,i[2]+=l,i[3]+=l,i}isIntersectingFeature(t,e,r,n,i,a,s){const u=n.getGeometry();if(!u)return!1;const c=o.ih/s.normalizationRatio;t=t/s.normalizationRatio+s.normalizationOffsetX,e=e/s.normalizationRatio+s.normalizationOffsetY,r*=c;const h=(0,l.yM)(this.getPaintValue("circle-translate",i,n),this.getPaintValue("circle-translate-anchor",i,n),a,c),p=c*(this.getPaintValue("circle-radius",i,n)+this.getPaintValue("circle-stroke-width",i,n));let f,y;for(const n of u)if(n)for(const i of n)if(f=i.x+h.x,y=i.y+h.y,Math.sqrt((t-f)*(t-f)+(e-y)*(e-y))-r<=p)return!0;return!1}}class Mt{construc