@loaders.gl/mvt 4.3.1 → 4.4.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/dist.dev.js +151 -93
  2. package/dist/dist.min.js +1 -1
  3. package/dist/index.cjs +74 -78
  4. package/dist/index.cjs.map +4 -4
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +0 -1
  8. package/dist/lib/parse-mvt.d.ts.map +1 -1
  9. package/dist/lib/pojo-parser/mvt-constants.d.ts +116 -0
  10. package/dist/lib/pojo-parser/mvt-constants.d.ts.map +1 -0
  11. package/dist/lib/pojo-parser/mvt-constants.js +126 -0
  12. package/dist/lib/pojo-parser/mvt-types.d.ts +17 -0
  13. package/dist/lib/pojo-parser/mvt-types.d.ts.map +1 -0
  14. package/dist/lib/pojo-parser/mvt-types.js +4 -0
  15. package/dist/lib/pojo-parser/parse-geometry-from-pbf.d.ts +77 -0
  16. package/dist/lib/pojo-parser/parse-geometry-from-pbf.d.ts.map +1 -0
  17. package/dist/lib/pojo-parser/parse-geometry-from-pbf.js +234 -0
  18. package/dist/lib/pojo-parser/parse-mvt-from-pbf.d.ts +25 -0
  19. package/dist/lib/pojo-parser/parse-mvt-from-pbf.d.ts.map +1 -0
  20. package/dist/lib/pojo-parser/parse-mvt-from-pbf.js +262 -0
  21. package/dist/lib/vector-tile/vector-tile-feature.d.ts +2 -1
  22. package/dist/lib/vector-tile/vector-tile-feature.d.ts.map +1 -1
  23. package/dist/lib/vector-tile/vector-tile-layer.d.ts +1 -1
  24. package/dist/lib/vector-tile/vector-tile-layer.d.ts.map +1 -1
  25. package/dist/mvt-format.d.ts +12 -0
  26. package/dist/mvt-format.d.ts.map +1 -0
  27. package/dist/mvt-format.js +20 -0
  28. package/dist/mvt-loader.d.ts +12 -12
  29. package/dist/mvt-loader.d.ts.map +1 -1
  30. package/dist/mvt-loader.js +3 -13
  31. package/dist/mvt-source.d.ts +22 -24
  32. package/dist/mvt-source.d.ts.map +1 -1
  33. package/dist/mvt-source.js +14 -23
  34. package/dist/mvt-worker.js +20 -15
  35. package/dist/table-tile-source.d.ts +38 -38
  36. package/dist/table-tile-source.d.ts.map +1 -1
  37. package/dist/table-tile-source.js +54 -53
  38. package/dist/tilejson-loader.js +1 -1
  39. package/package.json +7 -7
  40. package/src/index.ts +2 -2
  41. package/src/lib/parse-mvt.ts +2 -8
  42. package/src/lib/pojo-parser/mvt-constants.ts +135 -0
  43. package/src/lib/pojo-parser/mvt-types.ts +22 -0
  44. package/src/lib/pojo-parser/parse-geometry-from-pbf.ts +285 -0
  45. package/src/lib/pojo-parser/parse-mvt-from-pbf.ts +310 -0
  46. package/src/lib/vector-tile/vector-tile-feature.ts +2 -6
  47. package/src/lib/vector-tile/vector-tile-layer.ts +1 -1
  48. package/src/mvt-format.ts +23 -0
  49. package/src/mvt-loader.ts +2 -13
  50. package/src/mvt-source.ts +33 -38
  51. package/src/table-tile-source.ts +116 -96
package/dist/dist.min.js CHANGED
@@ -4,7 +4,7 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['loaders'] = factory();
6
6
  else root['loaders'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var _n=Object.create;var X=Object.defineProperty;var An=Object.getOwnPropertyDescriptor;var En=Object.getOwnPropertyNames;var Bn=Object.getPrototypeOf,Mn=Object.prototype.hasOwnProperty;var Ln=(e,t,n)=>t in e?X(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var ke=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Dn=(e,t)=>{for(var n in t)X(e,n,{get:t[n],enumerable:!0})},he=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of En(t))!Mn.call(e,i)&&i!==n&&X(e,i,{get:()=>t[i],enumerable:!(r=An(t,i))||r.enumerable});return e},pe=(e,t,n)=>(he(e,t,"default"),n&&he(n,t,"default")),pt=(e,t,n)=>(n=e!=null?_n(Bn(e)):{},he(t||!e||!e.__esModule?X(n,"default",{value:e,enumerable:!0}):n,e)),Vn=e=>he(X({},"__esModule",{value:!0}),e);var de=(e,t,n)=>(Ln(e,typeof t!="symbol"?t+"":t,n),n);var mt=ke((no,dt)=>{dt.exports=globalThis.loaders});var Jt=ke(We=>{We.read=function(e,t,n,r,i){var o,s,a=i*8-r-1,l=(1<<a)-1,c=l>>1,f=-7,u=n?i-1:0,h=n?-1:1,p=e[t+u];for(u+=h,o=p&(1<<-f)-1,p>>=-f,f+=a;f>0;o=o*256+e[t+u],u+=h,f-=8);for(s=o&(1<<-f)-1,o>>=-f,f+=r;f>0;s=s*256+e[t+u],u+=h,f-=8);if(o===0)o=1-c;else{if(o===l)return s?NaN:(p?-1:1)*(1/0);s=s+Math.pow(2,r),o=o-c}return(p?-1:1)*s*Math.pow(2,o-r)};We.write=function(e,t,n,r,i,o){var s,a,l,c=o*8-i-1,f=(1<<c)-1,u=f>>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=r?0:o-1,d=r?1:-1,y=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+u>=1?t+=h/l:t+=h*Math.pow(2,1-u),t*l>=2&&(s++,l/=2),s+u>=f?(a=0,s=f):s+u>=1?(a=(t*l-1)*Math.pow(2,i),s=s+u):(a=t*Math.pow(2,u-1)*Math.pow(2,i),s=0));i>=8;e[n+p]=a&255,p+=d,a/=256,i-=8);for(s=s<<i|a,c+=i;c>0;e[n+p]=s&255,p+=d,s/=256,c-=8);e[n+p-d]|=y*128}});var Kt=ke((Ks,Xt)=>{"use strict";Xt.exports=x;var be=Jt();function x(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}x.Varint=0;x.Fixed64=1;x.Bytes=2;x.Fixed32=5;var Ye=(1<<16)*(1<<16),Ht=1/Ye,$r=12,Yt=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");x.prototype={destroy:function(){this.buf=null},readFields:function(e,t,n){for(n=n||this.length;this.pos<n;){var r=this.readVarint(),i=r>>3,o=this.pos;this.type=r&7,e(i,t,this),this.pos===o&&this.skip(r)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=Ie(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=Wt(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=Ie(this.buf,this.pos)+Ie(this.buf,this.pos+4)*Ye;return this.pos+=8,e},readSFixed64:function(){var e=Ie(this.buf,this.pos)+Wt(this.buf,this.pos+4)*Ye;return this.pos+=8,e},readFloat:function(){var e=be.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=be.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,n,r;return r=t[this.pos++],n=r&127,r<128||(r=t[this.pos++],n|=(r&127)<<7,r<128)||(r=t[this.pos++],n|=(r&127)<<14,r<128)||(r=t[this.pos++],n|=(r&127)<<21,r<128)?n:(r=t[this.pos],n|=(r&15)<<28,Jr(n,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=$r&&Yt?oi(this.buf,t,e):ii(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==x.Bytes)return e.push(this.readVarint(t));var n=D(this);for(e=e||[];this.pos<n;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==x.Bytes)return e.push(this.readSVarint());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==x.Bytes)return e.push(this.readBoolean());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==x.Bytes)return e.push(this.readFloat());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==x.Bytes)return e.push(this.readDouble());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed32());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed32());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed64());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed64());var t=D(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=e&7;if(t===x.Varint)for(;this.buf[this.pos++]>127;);else if(t===x.Bytes)this.pos=this.readVarint()+this.pos;else if(t===x.Fixed32)this.pos+=4;else if(t===x.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var n=new Uint8Array(t);n.set(this.buf),this.buf=n,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),W(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),W(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),W(this.buf,e&-1,this.pos),W(this.buf,Math.floor(e*Ht),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),W(this.buf,e&-1,this.pos),W(this.buf,Math.floor(e*Ht),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){Hr(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=si(this.buf,e,this.pos);var n=this.pos-t;n>=128&&Zt(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n},writeFloat:function(e){this.realloc(4),be.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),be.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var n=0;n<t;n++)this.buf[this.pos++]=e[n]},writeRawMessage:function(e,t){this.pos++;var n=this.pos;e(t,this);var r=this.pos-n;r>=128&&Zt(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r},writeMessage:function(e,t,n){this.writeTag(e,x.Bytes),this.writeRawMessage(t,n)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,Yr,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,Xr,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,qr,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,Kr,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,Qr,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,ei,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,ti,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,ni,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,ri,t)},writeBytesField:function(e,t){this.writeTag(e,x.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,x.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,x.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,x.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}};function Jr(e,t,n){var r=n.buf,i,o;if(o=r[n.pos++],i=(o&112)>>4,o<128||(o=r[n.pos++],i|=(o&127)<<3,o<128)||(o=r[n.pos++],i|=(o&127)<<10,o<128)||(o=r[n.pos++],i|=(o&127)<<17,o<128)||(o=r[n.pos++],i|=(o&127)<<24,o<128)||(o=r[n.pos++],i|=(o&1)<<31,o<128))return Z(e,i,t);throw new Error("Expected varint not more than 10 bytes")}function D(e){return e.type===x.Bytes?e.readVarint()+e.pos:e.pos+1}function Z(e,t,n){return n?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function Hr(e,t){var n,r;if(e>=0?(n=e%4294967296|0,r=e/4294967296|0):(n=~(-e%4294967296),r=~(-e/4294967296),n^4294967295?n=n+1|0:(n=0,r=r+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),Zr(n,r,t),Wr(r,t)}function Zr(e,t,n){n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos++]=e&127|128,e>>>=7,n.buf[n.pos]=e&127}function Wr(e,t){var n=(e&7)<<4;t.buf[t.pos++]|=n|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function Zt(e,t,n){var r=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));n.realloc(r);for(var i=n.pos-1;i>=e;i--)n.buf[i+r]=n.buf[i]}function Yr(e,t){for(var n=0;n<e.length;n++)t.writeVarint(e[n])}function Xr(e,t){for(var n=0;n<e.length;n++)t.writeSVarint(e[n])}function Kr(e,t){for(var n=0;n<e.length;n++)t.writeFloat(e[n])}function Qr(e,t){for(var n=0;n<e.length;n++)t.writeDouble(e[n])}function qr(e,t){for(var n=0;n<e.length;n++)t.writeBoolean(e[n])}function ei(e,t){for(var n=0;n<e.length;n++)t.writeFixed32(e[n])}function ti(e,t){for(var n=0;n<e.length;n++)t.writeSFixed32(e[n])}function ni(e,t){for(var n=0;n<e.length;n++)t.writeFixed64(e[n])}function ri(e,t){for(var n=0;n<e.length;n++)t.writeSFixed64(e[n])}function Ie(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+e[t+3]*16777216}function W(e,t,n){e[n]=t,e[n+1]=t>>>8,e[n+2]=t>>>16,e[n+3]=t>>>24}function Wt(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function ii(e,t,n){for(var r="",i=t;i<n;){var o=e[i],s=null,a=o>239?4:o>223?3:o>191?2:1;if(i+a>n)break;var l,c,f;a===1?o<128&&(s=o):a===2?(l=e[i+1],(l&192)===128&&(s=(o&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=e[i+1],c=e[i+2],(l&192)===128&&(c&192)===128&&(s=(o&15)<<12|(l&63)<<6|c&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=e[i+1],c=e[i+2],f=e[i+3],(l&192)===128&&(c&192)===128&&(f&192)===128&&(s=(o&15)<<18|(l&63)<<12|(c&63)<<6|f&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,r+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),r+=String.fromCharCode(s),i+=a}return r}function oi(e,t,n){return Yt.decode(e.subarray(t,n))}function si(e,t,n){for(var r=0,i,o;r<t.length;r++){if(i=t.charCodeAt(r),i>55295&&i<57344)if(o)if(i<56320){e[n++]=239,e[n++]=191,e[n++]=189,o=i;continue}else i=o-55296<<10|i-56320|65536,o=null;else{i>56319||r+1===t.length?(e[n++]=239,e[n++]=191,e[n++]=189):o=i;continue}else o&&(e[n++]=239,e[n++]=191,e[n++]=189,o=null);i<128?e[n++]=i:(i<2048?e[n++]=i>>6|192:(i<65536?e[n++]=i>>12|224:(e[n++]=i>>18|240,e[n++]=i>>12&63|128),e[n++]=i>>6&63|128),e[n++]=i&63|128)}return n}});var ue={};Dn(ue,{MVTLoader:()=>ve,MVTSource:()=>mn,MVTWorkerLoader:()=>qe,TableTileSource:()=>ht,TileJSONLoader:()=>z});pe(ue,pt(mt(),1));function gt(e){let t=[];if(e.fields)for(let n of e.fields)t.push({name:n.name,type:Cn(n),metadata:Nn(n)});return{metadata:kn(e),fields:t}}function kn(e){let t={};for(let[n,r]of Object.entries(e))n!=="fields"&&r&&(t[n]=JSON.stringify(r));return t}function Cn(e){switch(e.type.toLowerCase()){case"float32":return"float32";case"number":case"float64":return"float64";case"string":case"utf8":return"utf8";case"boolean":return"bool";default:return"null"}}function Nn(e){let t={};for(let[n,r]of Object.entries(e))n!=="name"&&r&&(t[n]=JSON.stringify(r));return t}var Tt=e=>e!==null&&typeof e=="object";function Ce(e,t){if(!e||!Tt(e))return null;let n={name:e.name||"",description:e.description||""};if(typeof e.generator=="string"&&(n.generator=e.generator),typeof e.generator_options=="string"&&(n.generatorOptions=e.generator_options),n.boundingBox=yt(e.bounds)||yt(e.antimeridian_adjusted_bounds),n.center=zn(e.center),n.maxZoom=xt(e.maxzoom),n.minZoom=xt(e.minzoom),typeof e?.json=="string")try{n.metaJson=JSON.parse(e.json)}catch(a){console.warn("Failed to parse tilejson.json field",a)}let r=e.tilestats||n.metaJson?.tilestats,i=On(r,t),o=Un(e.vector_layers),s=Rn(o,i);return n={...n,layers:s},n.maxZoom===null&&s.length>0&&(n.maxZoom=s[0].maxZoom||null),n.minZoom===null&&s.length>0&&(n.minZoom=s[0].minZoom||null),n}function Un(e){return Array.isArray(e)?e.map(t=>Gn(t)):[]}function Gn(e){let t=Object.entries(e.fields||[]).map(([r,i])=>({name:r,...It(String(i))})),n={...e};return delete n.fields,{name:e.id||"",...n,fields:t}}function On(e,t){return Tt(e)&&Array.isArray(e.layers)?e.layers.map(n=>jn(n,t)):[]}function jn(e,t){let n=[],r={},i=e.attributes||[];for(let o of i){let s=o.attribute;if(typeof s=="string")if(s.split("|").length>1){let a=s.split("|")[0];r[a]=r[a]||[],r[a].push(o),console.warn("ignoring tilestats indexed field",a)}else n[s]||n.push(Jn(o,t))}return{name:e.layer||"",dominantGeometry:e.geometry,fields:n}}function Rn(e,t){return e.map(n=>{let r=t.find(s=>s.name===n.name),i=r?.fields||n.fields||[],o={...n,...r,fields:i};return o.schema=gt(o),o})}function yt(e){let t=bt(e);if(Array.isArray(t)&&t.length===4&&[t[0],t[2]].every(Pt)&&[t[1],t[3]].every(Ft))return[[t[0],t[1]],[t[2],t[3]]]}function zn(e){let t=bt(e);return Array.isArray(t)&&t.length===3&&Pt(t[0])&&Ft(t[1])&&$n(t[2])?t:null}function xt(e){let t=typeof e=="string"?parseFloat(e):typeof e=="number"?e:null;return t===null||isNaN(t)?null:t}function Ft(e){return Number.isFinite(e)&&e<=90&&e>=-90}function Pt(e){return Number.isFinite(e)&&e<=180&&e>=-180}function $n(e){return Number.isFinite(e)&&e>=0&&e<=22}function bt(e){return typeof e=="string"?e.split(",").map(parseFloat):Array.isArray(e)?e:null}var wt={number:{type:"float32"},numeric:{type:"float32"},string:{type:"utf8"},vachar:{type:"utf8"},float:{type:"float32"},int:{type:"int32"},int4:{type:"int32"},boolean:{type:"boolean"},bool:{type:"boolean"}};function Jn(e={},t){let n=It(e.type),r={name:e.attribute,...n};return typeof e.min=="number"&&(r.min=e.min),typeof e.max=="number"&&(r.max=e.max),typeof e.count=="number"&&(r.uniqueValueCount=e.count),e.values&&(r.values=e.values),r.values&&typeof t.maxValues=="number"&&(r.values=r.values?.slice(0,t.maxValues)),r}function It(e){let t=e.toLowerCase();return!t||wt[t],wt[t]||{type:"string"}}var Hn="4.3.0",z={dataType:null,batchType:null,name:"TileJSON",id:"tilejson",module:"pmtiles",version:Hn,worker:!0,extensions:["json"],mimeTypes:["application/json"],text:!0,options:{tilejson:{maxValues:void 0}},parse:async(e,t)=>{let n=new TextDecoder().decode(e),r=JSON.parse(n),i={...z.options.tilejson,...t?.tilejson};return Ce(r,i)},parseTextSync:(e,t)=>{let n=JSON.parse(e),r={...z.options.tilejson,...t?.tilejson};return Ce(n,r)}};function me(e,t="float32"){return e instanceof Date?"date-millisecond":e instanceof Number?t:typeof e=="string"?"utf8":(e===null||e==="undefined","null")}function St(e){let t=Zn(e);return t!=="null"?{type:t,nullable:!1}:e.length>0?(t=me(e[0]),{type:t,nullable:!0}):{type:"null",nullable:!0}}function Zn(e){switch(e.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function Ne(e){switch(e.shape){case"array-row-table":case"object-row-table":return Yn(e.data);case"geojson-table":return Xn(e.features);case"columnar-table":return Wn(e.data);case"arrow-table":default:throw new Error("Deduce schema")}}function Wn(e){let t=[];for(let[n,r]of Object.entries(e)){let i=Kn(r,n);t.push(i)}return{fields:t,metadata:{}}}function Yn(e){if(!e.length)throw new Error("deduce from empty table");let t=[],n=e[0];for(let[r,i]of Object.entries(n))t.push(vt(i,r));return{fields:t,metadata:{}}}function Xn(e){if(!e.length)throw new Error("deduce from empty table");let t=[],n=e[0].properties||{};for(let[r,i]of Object.entries(n))t.push(vt(i,r));return{fields:t,metadata:{}}}function Kn(e,t){if(ArrayBuffer.isView(e)){let n=St(e);return{name:t,type:n.type||"null",nullable:n.nullable}}if(Array.isArray(e)&&e.length>0){let n=e[0],r=me(n);return{name:t,type:r,nullable:!0}}throw new Error("empty table")}function vt(e,t){let n=me(e);return{name:t,type:n,nullable:!0}}var K={x:0,y:1,z:2};function C(e,t={}){let{start:n=0,end:r=e.length,plane:i="xy"}=t,o=t.size||2,s=0,a=K[i[0]],l=K[i[1]];for(let c=n,f=r-o;c<r;c+=o)s+=(e[c+a]-e[f+a])*(e[c+l]+e[f+l]),f=c;return s/2}function Ge(e,t,n=2,r,i="xy"){let o=t&&t.length,s=o?t[0]*n:e.length,a=At(e,0,s,n,!0,r&&r[0],i),l=[];if(!a||a.next===a.prev)return l;let c,f,u,h,p,d,y;if(o&&(a=ir(e,t,a,n,r,i)),e.length>80*n){h=f=e[0],p=u=e[1];for(let w=n;w<s;w+=n)d=e[w],y=e[w+1],d<h&&(h=d),y<p&&(p=y),d>f&&(f=d),y>u&&(u=y);c=Math.max(f-h,u-p),c=c!==0?32767/c:0}return Q(a,l,n,h,p,c,0),l}function At(e,t,n,r,i,o,s){let a,l;o===void 0&&(o=C(e,{start:t,end:n,size:r,plane:s}));let c=K[s[0]],f=K[s[1]];if(i===o<0)for(a=t;a<n;a+=r)l=_t(a,e[a+c],e[a+f],l);else for(a=n-r;a>=t;a-=r)l=_t(a,e[a+c],e[a+f],l);return l&&xe(l,l.next)&&(ee(l),l=l.next),l}function N(e,t){if(!e)return e;t||(t=e);let n=e,r;do if(r=!1,!n.steiner&&(xe(n,n.next)||T(n.prev,n,n.next)===0)){if(ee(n),n=t=n.prev,n===n.next)break;r=!0}else n=n.next;while(r||n!==t);return t}function Q(e,t,n,r,i,o,s){if(!e)return;!s&&o&&cr(e,r,i,o);let a=e,l,c;for(;e.prev!==e.next;){if(l=e.prev,c=e.next,o?tr(e,r,i,o):er(e)){t.push(l.i/n|0),t.push(e.i/n|0),t.push(c.i/n|0),ee(e),e=c.next,a=c.next;continue}if(e=c,e===a){s?s===1?(e=nr(N(e),t,n),Q(e,t,n,r,i,o,2)):s===2&&rr(e,t,n,r,i,o):Q(N(e),t,n,r,i,o,1);break}}}function er(e){let t=e.prev,n=e,r=e.next;if(T(t,n,r)>=0)return!1;let i=t.x,o=n.x,s=r.x,a=t.y,l=n.y,c=r.y,f=i<o?i<s?i:s:o<s?o:s,u=a<l?a<c?a:c:l<c?l:c,h=i>o?i>s?i:s:o>s?o:s,p=a>l?a>c?a:c:l>c?l:c,d=r.next;for(;d!==t;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&$(i,a,o,l,s,c,d.x,d.y)&&T(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function tr(e,t,n,r){let i=e.prev,o=e,s=e.next;if(T(i,o,s)>=0)return!1;let a=i.x,l=o.x,c=s.x,f=i.y,u=o.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,d=f<u?f<h?f:h:u<h?u:h,y=a>l?a>c?a:c:l>c?l:c,w=f>u?f>h?f:h:u>h?u:h,S=Ue(p,d,t,n,r),v=Ue(y,w,t,n,r),m=e.prevZ,g=e.nextZ;for(;m&&m.z>=S&&g&&g.z<=v;){if(m.x>=p&&m.x<=y&&m.y>=d&&m.y<=w&&m!==i&&m!==s&&$(a,f,l,u,c,h,m.x,m.y)&&T(m.prev,m,m.next)>=0||(m=m.prevZ,g.x>=p&&g.x<=y&&g.y>=d&&g.y<=w&&g!==i&&g!==s&&$(a,f,l,u,c,h,g.x,g.y)&&T(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;m&&m.z>=S;){if(m.x>=p&&m.x<=y&&m.y>=d&&m.y<=w&&m!==i&&m!==s&&$(a,f,l,u,c,h,m.x,m.y)&&T(m.prev,m,m.next)>=0)return!1;m=m.prevZ}for(;g&&g.z<=v;){if(g.x>=p&&g.x<=y&&g.y>=d&&g.y<=w&&g!==i&&g!==s&&$(a,f,l,u,c,h,g.x,g.y)&&T(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function nr(e,t,n){let r=e;do{let i=r.prev,o=r.next.next;!xe(i,o)&&Et(i,r,r.next,o)&&q(i,o)&&q(o,i)&&(t.push(i.i/n|0),t.push(r.i/n|0),t.push(o.i/n|0),ee(r),ee(r.next),r=e=o),r=r.next}while(r!==e);return N(r)}function rr(e,t,n,r,i,o){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&hr(s,a)){let l=Bt(s,a);s=N(s,s.next),l=N(l,l.next),Q(s,t,n,r,i,o,0),Q(l,t,n,r,i,o,0);return}a=a.next}s=s.next}while(s!==e)}function ir(e,t,n,r,i,o){let s=[],a,l,c,f,u;for(a=0,l=t.length;a<l;a++)c=t[a]*r,f=a<l-1?t[a+1]*r:e.length,u=At(e,c,f,r,!1,i&&i[a+1],o),u===u.next&&(u.steiner=!0),s.push(ur(u));for(s.sort(or),a=0;a<s.length;a++)n=sr(s[a],n);return n}function or(e,t){return e.x-t.x}function sr(e,t){let n=ar(e,t);if(!n)return t;let r=Bt(n,e);return N(r,r.next),N(n,n.next)}function ar(e,t){let n=t,r=e.x,i=e.y,o=-1/0,s;do{if(i<=n.y&&i>=n.next.y&&n.next.y!==n.y){let h=n.x+(i-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(h<=r&&h>o&&(o=h,s=n.x<n.next.x?n:n.next,h===r))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,l=s.x,c=s.y,f=1/0,u;n=s;do r>=n.x&&n.x>=l&&r!==n.x&&$(i<c?r:o,i,l,c,i<c?o:r,i,n.x,n.y)&&(u=Math.abs(i-n.y)/(r-n.x),q(n,e)&&(u<f||u===f&&(n.x>s.x||n.x===s.x&&lr(s,n)))&&(s=n,f=u)),n=n.next;while(n!==a);return s}function lr(e,t){return T(e.prev,e,t.prev)<0&&T(t.next,e,e.next)<0}function cr(e,t,n,r){let i=e;do i.z===0&&(i.z=Ue(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,fr(i)}function fr(e){let t,n,r=1,i,o,s,a,l,c;do{for(o=e,e=null,c=null,i=0;o;){for(i++,a=o,s=0,n=0;n<r&&(s++,a=a.nextZ,!!a);n++);for(l=r;s>0||l>0&&a;)s!==0&&(l===0||!a||o.z<=a.z)?(t=o,o=o.nextZ,s--):(t=a,a=a.nextZ,l--),c?c.nextZ=t:e=t,t.prevZ=c,c=t;o=a}c.nextZ=null,r*=2}while(i>1);return e}function Ue(e,t,n,r,i){return e=(e-n)*i|0,t=(t-r)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function ur(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function $(e,t,n,r,i,o,s,a){return(i-s)*(t-a)>=(e-s)*(o-a)&&(e-s)*(r-a)>=(n-s)*(t-a)&&(n-s)*(o-a)>=(i-s)*(r-a)}function hr(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!pr(e,t)&&(q(e,t)&&q(t,e)&&dr(e,t)&&(T(e.prev,e,t.prev)||T(e,t.prev,t))||xe(e,t)&&T(e.prev,e,e.next)>0&&T(t.prev,t,t.next)>0)}function T(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function xe(e,t){return e.x===t.x&&e.y===t.y}function Et(e,t,n,r){let i=ye(T(e,t,n)),o=ye(T(e,t,r)),s=ye(T(n,r,e)),a=ye(T(n,r,t));return!!(i!==o&&s!==a||i===0&&ge(e,n,t)||o===0&&ge(e,r,t)||s===0&&ge(n,e,r)||a===0&&ge(n,t,r))}function ge(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function ye(e){return e>0?1:e<0?-1:0}function pr(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Et(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function q(e,t){return T(e.prev,e,e.next)<0?T(e,t,e.next)>=0&&T(e,e.prev,t)>=0:T(e,t,e.prev)<0||T(e,e.next,t)<0}function dr(e,t){let n=e,r=!1,i=(e.x+t.x)/2,o=(e.y+t.y)/2;do n.y>o!=n.next.y>o&&n.next.y!==n.y&&i<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next;while(n!==e);return r}function Bt(e,t){let n=new te(e.i,e.x,e.y),r=new te(t.i,t.x,t.y),i=e.next,o=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function _t(e,t,n,r){let i=new te(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function ee(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var te=class{constructor(t,n,r){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=t,this.x=n,this.y=r}};function Re(e,t,n){let r=wr(e),i=Object.keys(r).filter(o=>r[o]!==Array);return Tr(e,{propArrayTypes:r,...t},{numericPropKeys:n&&n.numericPropKeys||i,PositionDataType:n?n.PositionDataType:Float32Array,triangulate:n?n.triangulate:!0})}function wr(e){let t={};for(let n of e)if(n.properties)for(let r in n.properties){let i=n.properties[r];t[r]=vr(i,t[r])}return t}function Tr(e,t,n){let{pointPositionsCount:r,pointFeaturesCount:i,linePositionsCount:o,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:c,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=t,{numericPropKeys:d=[],PositionDataType:y=Float32Array,triangulate:w=!0}=n,S=e[0]&&"id"in e[0],v=e.length>65535?Uint32Array:Uint16Array,m={type:"Point",positions:new y(r*p),globalFeatureIds:new v(r),featureIds:i>65535?new Uint32Array(r):new Uint16Array(r),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:o>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new y(o*p),globalFeatureIds:new v(o),featureIds:a>65535?new Uint32Array(o):new Uint16Array(o),numericProps:{},properties:[],fields:[]},b={type:"Polygon",polygonIndices:l>65535?new Uint32Array(c+1):new Uint16Array(c+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new y(l*p),globalFeatureIds:new v(l),featureIds:u>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};w&&(b.triangles=[]);for(let P of[m,g,b])for(let _ of d){let A=h[_];P.numericProps[_]=new A(P.positions.length/p)}g.pathIndices[s]=o,b.polygonIndices[c]=l,b.primitivePolygonIndices[f]=l;let I={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let P of e){let _=P.geometry,A=P.properties||{};switch(_.type){case"Point":Fr(_,m,I,p,A),m.properties.push(je(A,d)),S&&m.fields.push({id:P.id}),I.pointFeature++;break;case"LineString":Pr(_,g,I,p,A),g.properties.push(je(A,d)),S&&g.fields.push({id:P.id}),I.lineFeature++;break;case"Polygon":br(_,b,I,p,A),b.properties.push(je(A,d)),S&&b.fields.push({id:P.id}),I.polygonFeature++;break;default:throw new Error("Invalid geometry type")}I.feature++}return Sr(m,g,b,p)}function Fr(e,t,n,r,i){t.positions.set(e.data,n.pointPosition*r);let o=e.data.length/r;ze(t,i,n.pointPosition,o),t.globalFeatureIds.fill(n.feature,n.pointPosition,n.pointPosition+o),t.featureIds.fill(n.pointFeature,n.pointPosition,n.pointPosition+o),n.pointPosition+=o}function Pr(e,t,n,r,i){t.positions.set(e.data,n.linePosition*r);let o=e.data.length/r;ze(t,i,n.linePosition,o),t.globalFeatureIds.fill(n.feature,n.linePosition,n.linePosition+o),t.featureIds.fill(n.lineFeature,n.linePosition,n.linePosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=e.indices[s],c=s===a-1?e.data.length:e.indices[s+1];t.pathIndices[n.linePath++]=n.linePosition,n.linePosition+=(c-l)/r}}function br(e,t,n,r,i){t.positions.set(e.data,n.polygonPosition*r);let o=e.data.length/r;ze(t,i,n.polygonPosition,o),t.globalFeatureIds.fill(n.feature,n.polygonPosition,n.polygonPosition+o),t.featureIds.fill(n.polygonFeature,n.polygonPosition,n.polygonPosition+o);for(let s=0,a=e.indices.length;s<a;++s){let l=n.polygonPosition;t.polygonIndices[n.polygonObject++]=l;let c=e.areas[s],f=e.indices[s],u=e.indices[s+1];for(let p=0,d=f.length;p<d;++p){let y=f[p],w=p===d-1?u===void 0?e.data.length:u[0]:f[p+1];t.primitivePolygonIndices[n.polygonRing++]=n.polygonPosition,n.polygonPosition+=(w-y)/r}let h=n.polygonPosition;Ir(t,c,f,{startPosition:l,endPosition:h,coordLength:r})}}function Ir(e,t,n,{startPosition:r,endPosition:i,coordLength:o}){if(!e.triangles)return;let s=r*o,a=i*o,l=e.positions.subarray(s,a),c=n[0],f=n.slice(1).map(h=>(h-c)/o),u=Ge(l,f,o,t);for(let h=0,p=u.length;h<p;++h)e.triangles.push(r+u[h])}function Oe(e,t){let n={};for(let r in e)n[r]={value:e[r],size:t};return n}function Sr(e,t,n,r){let i={shape:"binary-feature-collection",points:{...e,positions:{value:e.positions,size:r},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Oe(e.numericProps,1)},lines:{...t,positions:{value:t.positions,size:r},pathIndices:{value:t.pathIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Oe(t.numericProps,1)},polygons:{...n,positions:{value:n.positions,size:r},polygonIndices:{value:n.polygonIndices,size:1},primitivePolygonIndices:{value:n.primitivePolygonIndices,size:1},globalFeatureIds:{value:n.globalFeatureIds,size:1},featureIds:{value:n.featureIds,size:1},numericProps:Oe(n.numericProps,1)}};return i.polygons&&n.triangles&&(i.polygons.triangles={value:new Uint32Array(n.triangles),size:1}),i}function ze(e,t,n,r){for(let i in e.numericProps)if(i in t){let o=t[i];e.numericProps[i].fill(o,n,n+r)}}function je(e,t){let n={};for(let r in e)t.includes(r)||(n[r]=e[r]);return n}function vr(e,t){return t===Array||!Number.isFinite(e)?Array:t===Float64Array||Math.fround(e)!==e?Float64Array:Float32Array}function ne(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var M={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},_r=M.self||M.window||M.global||{},Ar=M.window||M.self||M.global||{},Er=M.global||M.self||M.window||{},Br=M.document||{};var $e=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Dt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Mr=Dt&&parseFloat(Dt[1])||0;var we=globalThis,Lr=globalThis.document||{},Te=globalThis.process||{},Dr=globalThis.console,qo=globalThis.navigator||{};function Vt(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,n=e||t;return Boolean(n&&n.indexOf("Electron")>=0)}function U(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Vt()}var Je="4.0.7";function kr(e){try{let t=window[e],n="__storage_test__";return t.setItem(n,n),t.removeItem(n),t}catch{return null}}var Fe=class{constructor(t,n,r="sessionStorage"){this.storage=kr(r),this.id=t,this.config=n,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let n=JSON.stringify(this.config);this.storage.setItem(this.id,n)}}_loadConfiguration(){let t={};if(this.storage){let n=this.storage.getItem(this.id);t=n?JSON.parse(n):{}}return Object.assign(this.config,t),this}};function kt(e){let t;return e<10?t=`${e.toFixed(2)}ms`:e<100?t=`${e.toFixed(1)}ms`:e<1e3?t=`${e.toFixed(0)}ms`:t=`${(e/1e3).toFixed(2)}s`,t}function Ct(e,t=8){let n=Math.max(t-e.length,0);return`${" ".repeat(n)}${e}`}var Pe;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Pe||(Pe={}));var Cr=10;function Nt(e){return typeof e!="string"?e:(e=e.toUpperCase(),Pe[e]||Pe.WHITE)}function Ut(e,t,n){return!U&&typeof e=="string"&&(t&&(e=`\x1B[${Nt(t)}m${e}\x1B[39m`),n&&(e=`\x1B[${Nt(n)+Cr}m${e}\x1B[49m`)),e}function Gt(e,t=["constructor"]){let n=Object.getPrototypeOf(e),r=Object.getOwnPropertyNames(n),i=e;for(let o of r){let s=i[o];typeof s=="function"&&(t.find(a=>o===a)||(i[o]=s.bind(e)))}}function re(e,t){if(!e)throw new Error(t||"Assertion failed")}function G(){let e;if(U()&&we.performance)e=we?.performance?.now?.();else if("hrtime"in Te){let t=Te?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var J={debug:U()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Nr={enabled:!0,level:0};function H(){}var Ot={},jt={once:!0},V=class{constructor({id:t}={id:""}){this.VERSION=Je,this._startTs=G(),this._deltaTs=G(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new Fe(`__probe-${this.id}__`,Nr),this.timeStamp(`${this.id} started`),Gt(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((G()-this._startTs).toPrecision(10))}getDelta(){return Number((G()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(t=!0){return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,n){this._storage.setConfiguration({[t]:n})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,n){if(!t)throw new Error(n||"Assertion failed")}warn(t){return this._getLogFunction(0,t,J.warn,arguments,jt)}error(t){return this._getLogFunction(0,t,J.error,arguments)}deprecated(t,n){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${n}\` instead`)}removed(t,n){return this.error(`\`${t}\` has been removed. Use \`${n}\` instead`)}probe(t,n){return this._getLogFunction(t,n,J.log,arguments,{time:!0,once:!0})}log(t,n){return this._getLogFunction(t,n,J.debug,arguments)}info(t,n){return this._getLogFunction(t,n,console.info,arguments)}once(t,n){return this._getLogFunction(t,n,J.debug||J.info,arguments,jt)}table(t,n,r){return n?this._getLogFunction(t,n,console.table||H,r&&[r],{tag:Gr(n)}):H}time(t,n){return this._getLogFunction(t,n,console.time?console.time:console.info)}timeEnd(t,n){return this._getLogFunction(t,n,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,n){return this._getLogFunction(t,n,console.timeStamp||H)}group(t,n,r={collapsed:!1}){let i=Rt({logLevel:t,message:n,opts:r}),{collapsed:o}=r;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(t,n,r={}){return this.group(t,n,Object.assign({},r,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||H)}withGroup(t,n,r){this.group(t,n)();try{r()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=zt(t)}_getLogFunction(t,n,r,i,o){if(this._shouldLog(t)){o=Rt({logLevel:t,message:n,args:i,opts:o}),r=r||o.method,re(r),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=G();let s=o.tag||o.message;if(o.once&&s)if(!Ot[s])Ot[s]=G();else return H;return n=Ur(this.id,o.message,o),r.bind(console,n,...o.args)}return H}};V.VERSION=Je;function zt(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return re(Number.isFinite(t)&&t>=0),t}function Rt(e){let{logLevel:t,message:n}=e;e.logLevel=zt(t);let r=e.args?Array.from(e.args):[];for(;r.length&&r.shift()!==n;);switch(typeof t){case"string":case"function":n!==void 0&&r.unshift(n),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let i=typeof e.message;return re(i==="string"||i==="object"),Object.assign(e,{args:r},e.opts)}function Ur(e,t,n){if(typeof t=="string"){let r=n.time?Ct(kt(n.total)):"";t=n.time?`${e}: ${r} ${t}`:`${e}: ${t}`,t=Ut(t,n.color,n.background)}return t}function Gr(e){for(let t in e)for(let n in e[t])return n||"untitled";return"empty"}globalThis.probe={};var Is=new V({id:"@probe.gl/log"});var He="4.3.0",Or=He[0]>="0"&&He[0]<="9"?`v${He}`:"";function jr(){let e=new V({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=Or,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var F=jr();function ie(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var E=class{constructor(t,n){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=n,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=ie(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(ie()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var O=class{constructor(t){this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t,n="count"){return this._getOrCreate({name:t,type:n})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let n of Object.values(this.stats))t(n)}getTable(){let t={};return this.forEach(n=>{t[n.name]={time:n.time||0,count:n.count||0,average:n.getAverageTime()||0,hz:n.getHz()||0}}),t}_initializeStats(t=[]){t.forEach(n=>this._getOrCreate(n))}_getOrCreate(t){let{name:n,type:r}=t,i=this.stats[n];return i||(t instanceof E?i=t:i=new E(n,r),this.stats[n]=i),i}};var Rr="",$t={};function Ze(e){for(let t in $t)if(e.startsWith(t)){let n=$t[t];e=e.replace(t,n)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Rr}${e}`),e}var oe=class{fetch;loadOptions;_needsRefresh=!0;props;constructor(t){this.props={...t},this.loadOptions={...t.loadOptions},this.fetch=zr(this.loadOptions)}setProps(t){this.props=Object.assign(this.props,t),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(t=!0){let n=this._needsRefresh;return t&&(this._needsRefresh=!1),n}};function zr(e){let t=e?.fetch;if(t&&typeof t=="function")return(r,i)=>t(r,i);let n=e?.fetch;return n&&typeof n!="function"?r=>fetch(r,n):r=>fetch(r)}var Ke=pt(Kt(),1);function ai(e){let t=0;for(let n=0,r=e.length-1,i,o;n<e.length;r=n++)i=e[n],o=e[r],t+=(o[0]-i[0])*(i[1]+o[1]);return t}function se(e,t){if(Array.isArray(e[0])){for(let r of e)se(r,t);return}let n=e;n[0]/=t,n[1]/=t}function Qt(e,t){for(let n=0;n<e.length;++n)e[n]/=t}function ae(e,t,n){if(typeof e[0][0]!="number"){for(let s of e)ae(s,t,n);return}let r=n*Math.pow(2,t.z),i=n*t.x,o=n*t.y;for(let s=0;s<e.length;s++){let a=e[s];a[0]=(a[0]+i)*360/r-180;let l=180-(a[1]+o)*360/r;a[1]=360/Math.PI*Math.atan(Math.exp(l*Math.PI/180))-90}}function qt(e,t,n){let{x:r,y:i,z:o}=t,s=n*Math.pow(2,o),a=n*r,l=n*i;for(let c=0,f=e.length;c<f;c+=2){e[c]=(e[c]+a)*360/s-180;let u=180-(e[c+1]+l)*360/s;e[c+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function en(e){let t=e.length;if(t<=1)return[e];let n=[],r,i;for(let o=0;o<t;o++){let s=ai(e[o]);s!==0&&(i===void 0&&(i=s<0),i===s<0?(r&&n.push(r),r=[e[o]]):r&&r.push(e[o]))}return r&&n.push(r),n}function tn(e){let t=e.indices.length,n="Polygon";if(t<=1)return{type:n,data:e.data,areas:[[C(e.data)]],indices:[e.indices]};let r=[],i=[],o=[],s=[],a,l=0;for(let c,f=0,u;f<t;f++){u=e.indices[f]-l,c=e.indices[f+1]-l||e.data.length;let h=e.data.slice(u,c),p=C(h);if(p===0){let d=e.data.slice(0,u),y=e.data.slice(c);e.data=d.concat(y),l+=c-u;continue}a===void 0&&(a=p<0),a===p<0?(s.length&&(r.push(o),i.push(s)),s=[u],o=[p]):(o.push(p),s.push(u))}return o&&r.push(o),s.length&&i.push(s),{type:n,areas:r,indices:i,data:e.data}}var j=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(t,n,r,i,o,s){this.properties={},this.extent=r,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=i,this._values=o,this._geometryInfo=s,t.readFields(li,this,n)}toGeoJSONFeature(t,n){let r=this.loadGeometry();switch(t){case"wgs84":return nn(this,r,i=>ae(i,n,this.extent));default:return nn(this,r,se)}}toBinaryFeature(t,n){let r=this.loadFlatGeometry();switch(t){case"wgs84":return this._toBinaryCoordinates(r,i=>qt(i,n,this.extent));default:return this._toBinaryCoordinates(r,Qt)}}bbox(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=1/0,l=-1/0,c=1/0,f=-1/0;for(;t.pos<n;){if(i<=0){let u=t.readVarint();r=u&7,i=u>>3}if(i--,r===1||r===2)o+=t.readSVarint(),s+=t.readSVarint(),o<a&&(a=o),o>l&&(l=o),s<c&&(c=s),s>f&&(f=s);else if(r!==7)throw new Error(`unknown command ${r}`)}return[a,c,l,f]}_toBinaryCoordinates(t,n){let r;n(t.data,this.extent);let i=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=t.indices.length,r={type:"Point",...t};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=t.indices.length,this._geometryInfo.linePositionsCount+=t.data.length/i,r={type:"LineString",...t};break;case 3:r=tn(t),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=r.indices.length;for(let s of r.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=r.data.length/i;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let o={type:"Feature",geometry:r,properties:this.properties};return this.id!==null&&(o.id=this.id),o}loadGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i=0,o=0,s=0,a=[],l;for(;t.pos<n;){if(i<=0){let c=t.readVarint();r=c&7,i=c>>3}switch(i--,r){case 1:case 2:o+=t.readSVarint(),s+=t.readSVarint(),r===1&&(l&&a.push(l),l=[]),l&&l.push([o,s]);break;case 7:l&&l.push(l[0].slice());break;default:throw new Error(`unknown command ${r}`)}}return l&&a.push(l),a}loadFlatGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,r=1,i,o=0,s=0,a=0,l=0,c=[],f=[];for(;t.pos<n;)if(o<=0&&(i=t.readVarint(),r=i&7,o=i>>3),o--,r===1||r===2)s+=t.readSVarint(),a+=t.readSVarint(),r===1&&c.push(l),f.push(s,a),l+=2;else if(r===7){if(l>0){let u=c[c.length-1];f.push(f[u],f[u+1]),l+=2}}else throw new Error(`unknown command ${r}`);return{data:f,indices:c}}};de(j,"types",["Unknown","Point","LineString","Polygon"]);function nn(e,t,n){let r=j.types[e.type],i,o,s;switch(e.type){case 1:let l=[];for(i=0;i<t.length;i++)l[i]=t[i][0];s=l,n(s,e.extent);break;case 2:for(s=t,i=0;i<s.length;i++)n(s[i],e.extent);break;case 3:for(s=en(t),i=0;i<s.length;i++)for(o=0;o<s[i].length;o++)n(s[i][o],e.extent);break;default:throw new Error("illegal vector tile type")}s.length===1?s=s[0]:r=`Multi${r}`;let a={type:"Feature",geometry:{type:r,coordinates:s},properties:e.properties};return e.id!==null&&(a.properties||={},a.properties.id=e.id),a}function li(e,t,n){t&&n&&(e===1?t.id=n.readVarint():e===2?ci(n,t):e===3?t.type=n.readVarint():e===4&&(t._geometry=n.pos))}function ci(e,t){let n=e.readVarint()+e.pos;for(;e.pos<n;){let r=t._keys[e.readVarint()],i=t._values[e.readVarint()];t.properties[r]=i}}var Se=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(t,n){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(fi,this,n),this.length=this._features.length}getGeoJSONFeature(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let n=this._pbf.readVarint()+this._pbf.pos;return new j(this._pbf,n,this.extent,this._keys,this._values)}getBinaryFeature(t,n){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let r=this._pbf.readVarint()+this._pbf.pos;return new j(this._pbf,r,this.extent,this._keys,this._values,n)}};function fi(e,t,n){t&&n&&(e===15?t.version=n.readVarint():e===1?t.name=n.readString():e===5?t.extent=n.readVarint():e===2?t._features.push(n.pos):e===3?t._keys.push(n.readString()):e===4&&t._values.push(ui(n)))}function ui(e){let t=null,n=e.readVarint()+e.pos;for(;e.pos<n;){let r=e.readVarint()>>3;t=r===1?e.readString():r===2?e.readFloat():r===3?e.readDouble():r===4?e.readVarint64():r===5?e.readVarint():r===6?e.readSVarint():r===7?e.readBoolean():null}return t}var le=class{layers;constructor(t,n){this.layers=t.readFields(hi,{},n)}};function hi(e,t,n){if(e===3&&n){let r=new Se(n,n.readVarint()+n.pos);r.length&&t&&(t[r.name]=r)}}function Qe(e,t){let n=di(t),r=t?.gis?.format||t?.mvt?.shape||t?.shape;switch(r){case"columnar-table":return{shape:"columnar-table",data:Xe(e,n)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:rn(e,n)};case"geojson":return rn(e,n);case"binary-geometry":return Xe(e,n);case"binary":return Xe(e,n);default:throw new Error(r||"undefined shape")}}function Xe(e,t){let[n,r]=pi(e,t),i=Re(n,r);return i.byteLength=e.byteLength,i}function pi(e,t){let n=[],r={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(e.byteLength<=0)return[n,r];let i=new le(new Ke.default(e));return(t&&Array.isArray(t.layers)?t.layers:Object.keys(i.layers)).forEach(s=>{let a=i.layers[s];if(a)for(let l=0;l<a.length;l++){let c=a.getBinaryFeature(l,r),f=gi(c,t,s);n.push(f)}}),[n,r]}function rn(e,t){if(e.byteLength<=0)return[];let n=[],r=new le(new Ke.default(e));return(Array.isArray(t.layers)?t.layers:Object.keys(r.layers)).forEach(o=>{let s=r.layers[o];if(s)for(let a=0;a<s.length;a++){let l=s.getGeoJSONFeature(a),c=mi(l,t,o);n.push(c)}}),n}function di(e){if(!e?.mvt)throw new Error("mvt options required");if(e.mvt?.coordinates==="wgs84"&&!e.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return e.gis&&F.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),e.mvt}function mi(e,t,n){let r=e.toGeoJSONFeature(t.coordinates||"local",t.tileIndex);return t.layerProperty&&(r.properties||={},r.properties[t.layerProperty]=n),r}function gi(e,t,n){let r=e.toBinaryFeature(t.coordinates||"local",t.tileIndex);return t.layerProperty&&r.properties&&(r.properties[t.layerProperty]=n),r}var yi="4.3.0",qe={dataType:null,batchType:null,name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:yi,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},ve={...qe,parse:async(e,t)=>Qe(e,t),parseSync:Qe,binary:!0};var on="4.3.0";var xi=globalThis.loaders?.parseImageNode,et=typeof Image<"u",tt=typeof ImageBitmap<"u",wi=Boolean(xi),nt=$e?!0:wi;function sn(e){switch(e){case"auto":return tt||et||nt;case"imagebitmap":return tt;case"image":return et;case"data":return nt;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function an(){if(tt)return"imagebitmap";if(et)return"image";if(nt)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Ti(e){let t=Fi(e);if(!t)throw new Error("Not an image");return t}function ln(e){switch(Ti(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),n=t.getContext("2d");if(!n)throw new Error("getImageData");return t.width=e.width,t.height=e.height,n.drawImage(e,0,0),n.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function Fi(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var Pi=/^data:image\/svg\+xml/,bi=/\.svg((\?|#).*)?$/;function _e(e){return e&&(Pi.test(e)||bi.test(e))}function cn(e,t){if(_e(t)){let r=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(r=unescape(encodeURIComponent(r)))}catch(o){throw new Error(o.message)}return`data:image/svg+xml;base64,${btoa(r)}`}return rt(e,t)}function rt(e,t){if(_e(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Ae(e,t,n){let r=cn(e,n),i=self.URL||self.webkitURL,o=typeof r!="string"&&i.createObjectURL(r);try{return await Ii(o||r,t)}finally{o&&i.revokeObjectURL(o)}}async function Ii(e,t){let n=new Image;return n.src=e,t.image&&t.image.decode&&n.decode?(await n.decode(),n):await new Promise((r,i)=>{try{n.onload=()=>r(n),n.onerror=o=>{let s=o instanceof Error?o.message:"error";i(new Error(s))}}catch(o){i(o)}})}var Si={},fn=!0;async function un(e,t,n){let r;_e(n)?r=await Ae(e,t,n):r=rt(e,n);let i=t&&t.imagebitmap;return await vi(r,i)}async function vi(e,t=null){if((_i(t)||!fn)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(n){console.warn(n),fn=!1}return await createImageBitmap(e)}function _i(e){for(let t in e||Si)return!1;return!0}function hn(e){return!Mi(e,"ftyp",4)||!(e[8]&96)?null:Ai(e)}function Ai(e){switch(Ei(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Ei(e,t,n){return String.fromCharCode(...e.slice(t,n))}function Bi(e){return[...e].map(t=>t.charCodeAt(0))}function Mi(e,t,n=0){let r=Bi(t);for(let i=0;i<r.length;++i)if(r[i]!==e[i+n])return!1;return!0}var L=!1,ce=!0;function R(e){let t=fe(e);return Di(t)||Ci(t)||Vi(t)||ki(t)||Li(t)}function Li(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),n=hn(t);return n?{mimeType:n.mimeType,width:0,height:0}:null}function Di(e){let t=fe(e);return t.byteLength>=24&&t.getUint32(0,L)===2303741511?{mimeType:"image/png",width:t.getUint32(16,L),height:t.getUint32(20,L)}:null}function Vi(e){let t=fe(e);return t.byteLength>=10&&t.getUint32(0,L)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,ce),height:t.getUint16(8,ce)}:null}function ki(e){let t=fe(e);return t.byteLength>=14&&t.getUint16(0,L)===16973&&t.getUint32(2,ce)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,ce),height:t.getUint32(22,ce)}:null}function Ci(e){let t=fe(e);if(!(t.byteLength>=3&&t.getUint16(0,L)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:r,sofMarkers:i}=Ni(),o=2;for(;o+9<t.byteLength;){let s=t.getUint16(o,L);if(i.has(s))return{mimeType:"image/jpeg",height:t.getUint16(o+5,L),width:t.getUint16(o+7,L)};if(!r.has(s))return null;o+=2,o+=t.getUint16(o,L)}return null}function Ni(){let e=new Set([65499,65476,65484,65501,65534]);for(let n=65504;n<65520;++n)e.add(n);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function fe(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function pn(e,t){let{mimeType:n}=R(e)||{},r=globalThis.loaders?.parseImageNode;return ne(r),await r(e,n)}async function dn(e,t,n){t=t||{};let i=(t.image||{}).type||"auto",{url:o}=n||{},s=Ui(i),a;switch(s){case"imagebitmap":a=await un(e,t,o);break;case"image":a=await Ae(e,t,o);break;case"data":a=await pn(e,t);break;default:ne(!1)}return i==="data"&&(a=ln(a)),a}function Ui(e){switch(e){case"auto":case"data":return an();default:return sn(e),e}}var Gi=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Oi=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],ji={image:{type:"auto",decode:!0}},it={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:on,mimeTypes:Oi,extensions:Gi,parse:dn,tests:[e=>Boolean(R(new DataView(e)))],options:ji};var mn={name:"MVT",id:"mvt",module:"mvt",version:"0.0.0",extensions:["mvt"],mimeTypes:["application/octet-stream"],options:{mvt:{}},type:"mvt",fromUrl:!0,fromBlob:!1,testURL:e=>!0,createDataSource(e,t){return new ot(e,t)}},ot=class extends oe{props;url;metadataUrl=null;data;schema="tms";metadata;extension;mimeType=null;constructor(t,n){super(n),this.props=n,this.url=Ze(t),this.metadataUrl=n.mvt?.metadataUrl||`${this.url}/tilejson.json`,this.extension=n.mvt?.extension||".png",this.data=this.url,this.getTileData=this.getTileData.bind(this),this.metadata=this.getMetadata(),Ri(this.url)&&(this.schema="template")}async getMetadata(){if(!this.metadataUrl)return null;let t;try{t=await this.fetch(this.metadataUrl)}catch(i){return console.error(i.message),null}if(!t.ok)return console.error(t.statusText),null;let n=await t.text();return z.parseTextSync?.(n)||null}getTileMIMEType(){return this.mimeType}async getTile(t){let{x:n,y:r,z:i}=t,o=this.getTileURL(n,r,i),s=await this.fetch(o);return s.ok?await s.arrayBuffer():null}async getTileData(t){let{x:n,y:r,z:i}=t.index,o=await this.getTile({x:n,y:r,z:i,layers:[]});if(o===null)return null;let s=R(o);switch(this.mimeType=this.mimeType||s?.mimeType||"application/vnd.mapbox-vector-tile",this.mimeType){case"application/vnd.mapbox-vector-tile":return await this._parseVectorTile(o,{x:n,y:r,z:i,layers:[]});default:return await this._parseImageTile(o)}}async getImageTile(t){let n=await this.getTile(t);return n?this._parseImageTile(n):null}async _parseImageTile(t){return await it.parse(t,this.loadOptions)}async getVectorTile(t){let n=await this.getTile(t);return n?this._parseVectorTile(n,t):null}async _parseVectorTile(t,n){let r={shape:"geojson-table",mvt:{coordinates:"wgs84",tileIndex:{x:n.x,y:n.y,z:n.z},...this.loadOptions?.mvt},...this.loadOptions};return await ve.parse(t,r)}getMetadataUrl(){return this.metadataUrl}getTileURL(t,n,r){switch(this.schema){case"xyz":return`${this.url}/${t}/${n}/${r}${this.extension}`;case"tms":return`${this.url}/${r}/${t}/${n}${this.extension}`;case"template":return Hi(this.url,t,n,r,"0");default:throw new Error(this.schema)}}};function Ri(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))|(?=.*{x})(?=.*({y}|{-y})(?=.*{z}))/.test(e)}var zi=new RegExp("{x}","g"),$i=new RegExp("{y}","g"),Ji=new RegExp("{z}","g");function Hi(e,t,n,r,i="0"){if(Array.isArray(e)){let s=Zi(i)%e.length;e=e[s]}let o=e;return o=o.replace(zi,String(t)),o=o.replace($i,String(n)),o=o.replace(Ji,String(r)),Number.isInteger(n)&&Number.isInteger(r)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r)-n-1))),o}function Zi(e){return Math.abs(e.split("").reduce((t,n)=>(t<<5)-t+n.charCodeAt(0)|0,0))}function gn(e,t,n,r,i){let o=t===i.maxZoom?0:i.tolerance/((1<<t)*i.extent),s={protoFeatures:[],sourceFeatures:null,numPoints:0,numSimplified:0,numFeatures:e.length,x:n,y:r,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(let a of e)Wi(s,a,o,i);return s}function Wi(e,t,n,r){let i=t.geometry,o=t.type,s=[];e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY);let a;switch(o){case"Point":case"MultiPoint":a=1;for(let l=0;l<i.length;l+=3)s.push(i[l],i[l+1]),e.numPoints++,e.numSimplified++;break;case"LineString":a=2,Ee(s,i,e,n,!1,!1);break;case"MultiLineString":a=2;for(let l=0;l<i.length;l++)Ee(s,i[l],e,n,!1,l===0);break;case"Polygon":a=3;for(let l=0;l<i.length;l++)Ee(s,i[l],e,n,!0,l===0);break;case"MultiPolygon":a=3;for(let l=0;l<i.length;l++){let c=i[l];for(let f=0;f<c.length;f++)Ee(s,c[f],e,n,!0,f===0)}break;default:throw new Error(`Unknown geometry type: ${o}`)}if(s.length){let l=t.tags||null;if(o==="LineString"&&r.lineMetrics){l={};for(let f in t.tags)l[f]=t.tags[f];l.mapbox_clip_start=i.start/i.size,l.mapbox_clip_end=i.end/i.size}let c={geometry:s,simplifiedType:a,tags:l};t.id!==null&&(c.id=t.id),e.protoFeatures.push(c)}}function Ee(e,t,n,r,i,o){let s=r*r;if(r>0&&t.size<(i?s:r)){n.numPoints+=t.length/3;return}let a=[];for(let l=0;l<t.length;l+=3)(r===0||t[l+2]>s)&&(n.numSimplified++,a.push(t[l],t[l+1])),n.numPoints++;i&&Yi(a,o),e.push(a)}function Yi(e,t){let n=0;for(let r=0,i=e.length-2;r<e.length;i=r,r+=2)n+=(e[r]-e[i])*(e[r+1]+e[i+1]);if(n>0===t)for(let r=0,i=e.length;r<i/2;r+=2){let o=e[r],s=e[r+1];e[r]=e[i-2-r],e[r+1]=e[i-1-r],e[i-2-r]=o,e[i-1-r]=s}}function st(e,t){if(e.transformed)return e;let n=1<<e.z,r=e.x,i=e.y;for(let o of e.protoFeatures){let s=o.geometry,a=o.simplifiedType;if(o.geometry=[],a===1)for(let l=0;l<s.length;l+=2)o.geometry.push(yn(s[l],s[l+1],t,n,r,i));else for(let l=0;l<s.length;l++){let c=[];for(let f=0;f<s[l].length;f+=2)c.push(yn(s[l][f],s[l][f+1],t,n,r,i));o.geometry.push(c)}}return e.transformed=!0,e}function yn(e,t,n,r,i,o){return[Math.round(n*(e*r-i)),Math.round(n*(t*r-o))]}function xn(e,t){let n=[];for(let i of e.protoFeatures){if(!i||!i.geometry)continue;let o,s;switch(i.simplifiedType){case 1:i.geometry.length===1?(o="Point",s=i.geometry[0]):(o="MultiPoint",s=i.geometry);break;case 2:i.geometry.length===1?(o="LineString",s=i.geometry[0]):(o="MultiLineString",s=i.geometry);break;case 3:i.geometry.length>1?(o="MultiPolygon",s=[i.geometry]):(o="Polygon",s=i.geometry);break;default:throw new Error(`${i.simplifiedType}is not a valid simplified type`)}switch(t.coordinates){case"EPSG:4326":case"wgs84":ae(s,t.tileIndex,t.extent);break;default:se(s,t.extent);break}let a={type:"Feature",geometry:{type:o,coordinates:s},properties:i.tags||{},id:i.id};n.push(a)}return n.length===0?null:{shape:"geojson-table",type:"FeatureCollection",features:n}}function k(e,t,n,r){let i={id:e??null,type:t,simplifiedType:void 0,geometry:n,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};switch(t){case"Point":case"MultiPoint":case"LineString":Be(i,n);break;case"MultiLineString":for(let o of n)Be(i,o);break;case"Polygon":Be(i,n[0]);break;case"MultiPolygon":for(let o of n)Be(i,o[0]);break;default:throw new Error(String(t))}return i}function Be(e,t){for(let n=0;n<t.length;n+=3)e.minX=Math.min(e.minX,t[n]),e.minY=Math.min(e.minY,t[n+1]),e.maxX=Math.max(e.maxX,t[n]),e.maxY=Math.max(e.maxY,t[n+1])}function Me(e,t,n,r){let i=r,o=n-t>>1,s=n-t,a,l=e[t],c=e[t+1],f=e[n],u=e[n+1];for(let h=t+3;h<n;h+=3){let p=Xi(e[h],e[h+1],l,c,f,u);if(p>i)a=h,i=p;else if(p===i){let d=Math.abs(h-o);d<s&&(a=h,s=d)}}i>r&&(a-t>3&&Me(e,t,a,r),e[a+2]=i,n-a>3&&Me(e,a,n,r))}function Xi(e,t,n,r,i,o){let s=i-n,a=o-r;if(s!==0||a!==0){let l=((e-n)*s+(t-r)*a)/(s*s+a*a);l>1?(n=i,r=o):l>0&&(n+=s*l,r+=a*l)}return s=e-n,a=t-r,s*s+a*a}function Tn(e,t){let n=[];switch(e.type){case"FeatureCollection":let r=0;for(let i of e.features)n.push(Le(i,t,r++));break;case"Feature":n.push(Le(e,t));break;default:n.push(Le({geometry:e},t))}return n}function Le(e,t,n){if(!e.geometry)return;let r=e.geometry.coordinates,i=e.geometry.type,o=Math.pow(t.tolerance/((1<<t.maxZoom)*t.extent),2),s=[],a=e.id;switch(t.promoteId?a=e.properties[t.promoteId]:t.generateId&&(a=n||0),i){case"Point":wn(r,s);break;case"MultiPoint":for(let l of r)wn(l,s);break;case"LineString":lt(r,s,o,!1);break;case"MultiLineString":if(t.lineMetrics){for(let l of r)s=[],lt(l,s,o,!1),features.push(k(a,"LineString",s,e.properties));return}break;case"Polygon":at(r,s,o,!0);break;case"MultiPolygon":for(let l of r){let c=[];at(l,c,o,!0),s.push(c)}break;case"GeometryCollection":for(let l of e.geometry.geometries)Le(features,{id:a,geometry:l,properties:e.properties},t,n);break;default:throw new Error("Input data is not a valid GeoJSON object.")}return k(a,i,s,e.properties)}function wn(e,t){t.push(Fn(e[0]),Pn(e[1]),0)}function lt(e,t,n,r){let i,o,s=0;for(let l=0;l<e.length;l++){let c=Fn(e[l][0]),f=Pn(e[l][1]);t.push(c,f,0),l>0&&(r?s+=(i*f-c*o)/2:s+=Math.sqrt(Math.pow(c-i,2)+Math.pow(f-o,2))),i=c,o=f}let a=t.length-3;t[2]=1,Me(t,0,a,n),t[a+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size}function at(e,t,n,r){for(let i=0;i<e.length;i++){let o=[];lt(e[i],o,n,r),t.push(o)}}function Fn(e){return e/360+.5}function Pn(e){let t=Math.sin(e*Math.PI/180),n=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return n<0?0:n>1?1:n}function B(e,t,n,r,i,o,s,a){if(n/=t,r/=t,o>=n&&s<r)return e;if(s<n||o>=r)return null;let l=[];for(let c of e){let f=c.geometry,u=c.type,h=i===0?c.minX:c.minY,p=i===0?c.maxX:c.maxY;if(h>=n&&p<r){l.push(c);continue}else if(p<n||h>=r)continue;let d=[];if(u==="Point"||u==="MultiPoint")Ki(f,d,n,r,i);else if(u==="LineString")In(f,d,n,r,i,!1,a.lineMetrics);else if(u==="MultiLineString")ct(f,d,n,r,i,!1);else if(u==="Polygon")ct(f,d,n,r,i,!0);else if(u==="MultiPolygon")for(let y of f){let w=[];ct(y,w,n,r,i,!0),w.length&&d.push(w)}if(d.length){if(a.lineMetrics&&u==="LineString"){for(let y of d)l.push(k(c.id,u,y,c.tags));continue}(u==="LineString"||u==="MultiLineString")&&(d.length===1?(u="LineString",d=d[0]):u="MultiLineString"),(u==="Point"||u==="MultiPoint")&&(u=d.length===3?"Point":"MultiPoint"),l.push(k(c.id,u,d,c.tags))}}return l.length?l:null}function Ki(e,t,n,r,i){for(let o=0;o<e.length;o+=3){let s=e[o+i];s>=n&&s<=r&&Y(t,e[o],e[o+1],e[o+2])}}function In(e,t,n,r,i,o,s){let a=bn(e),l=i===0?Qi:qi,c=e.start,f,u;for(let S=0;S<e.length-3;S+=3){let v=e[S],m=e[S+1],g=e[S+2],b=e[S+3],I=e[S+4],P=i===0?v:m,_=i===0?b:I,A=!1;s&&(f=Math.sqrt(Math.pow(v-b,2)+Math.pow(m-I,2))),P<n?_>n&&(u=l(a,v,m,b,I,n),s&&(a.start=c+f*u)):P>r?_<r&&(u=l(a,v,m,b,I,r),s&&(a.start=c+f*u)):Y(a,v,m,g),_<n&&P>=n&&(u=l(a,v,m,b,I,n),A=!0),_>r&&P<=r&&(u=l(a,v,m,b,I,r),A=!0),!o&&A&&(s&&(a.end=c+f*u),t.push(a),a=bn(e)),s&&(c+=f)}let h=e.length-3,p=e[h],d=e[h+1],y=e[h+2],w=i===0?p:d;w>=n&&w<=r&&Y(a,p,d,y),h=a.length-3,o&&h>=3&&(a[h]!==a[0]||a[h+1]!==a[1])&&Y(a,a[0],a[1],a[2]),a.length&&t.push(a)}function bn(e){let t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function ct(e,t,n,r,i,o){for(let s of e)In(s,t,n,r,i,o,!1)}function Y(e,t,n,r){e.push(t,n,r)}function Qi(e,t,n,r,i,o){let s=(o-t)/(r-t);return Y(e,o,n+(i-n)*s,1),s}function qi(e,t,n,r,i,o){let s=(o-n)/(i-n);return Y(e,t+(r-t)*s,o,1),s}function vn(e,t){let n=t.buffer/t.extent,r=e,i=B(e,1,-1-n,n,0,-1,2,t),o=B(e,1,1-n,2+n,0,-1,2,t);return(i||o)&&(r=B(e,1,-n,1+n,0,-1,2,t)||[],i&&(r=Sn(i,1).concat(r)),o&&(r=r.concat(Sn(o,-1)))),r}function Sn(e,t){let n=[];for(let r=0;r<e.length;r++){let i=e[r],o=i.type,s;switch(o){case"Point":case"MultiPoint":case"LineString":s=ft(i.geometry,t);break;case"MultiLineString":case"Polygon":s=[];for(let a of i.geometry)s.push(ft(a,t));break;case"MultiPolygon":s=[];for(let a of i.geometry){let l=[];for(let c of a)l.push(ft(c,t));s.push(l)}break;default:throw new Error(String(o))}n.push(k(i.id,o,s,i.tags))}return n}function ft(e,t){let n=[];n.size=e.size,e.start!==void 0&&(n.start=e.start,n.end=e.end);for(let r=0;r<e.length;r+=3)n.push(e[r]+t,e[r+1],e[r+2]);return n}var ht={name:"TableTiler",id:"table-tiler",version:"0.0.0",extensions:["mvt"],mimeTypes:["application/octet-stream"],options:{table:{coordinates:"local",promoteId:void 0,maxZoom:14,indexMaxZoom:5,maxPointsPerTile:1e4,tolerance:3,extent:4096,buffer:64,generateId:void 0}},type:"table",testURL:e=>e.endsWith(".geojson"),createDataSource(e,t){let n=typeof e=="string"||e instanceof Blob,r=t?.table?.loaders?.[0],i=n?eo(e,r):e;return new De(i,t)}};async function eo(e,t){if(typeof e=="string"){let i=await(await fetch(e)).arrayBuffer();return await t.parse(i)}let n=await e.arrayBuffer();return await t.parse(n)}var Ve=class{stats=new O({id:"table-tile-source",stats:[new E("tiles","count"),new E("features","count")]});mimeType="application/vnd.mapbox-vector-tile";localCoordinates=!0;props;schema=null;tiles={};tileCoords=[];ready;metadata;constructor(t,n){this.props={...ht.options.table,...n?.table},this.getTileData=this.getTileData.bind(this),this.ready=this.initializeTilesAsync(t),this.metadata=this.getMetadata()}async initializeTilesAsync(t){let n=await t;this.schema=Ne(n),this.createRootTiles(n)}async getMetadata(){return await this.ready,{schema:this.schema,minZoom:0,maxZoom:this.props.maxZoom}}async getSchema(){return await this.ready,this.schema}async getVectorTile(t){await this.ready;let n=this.getTileSync(t);return F.info(2,"getVectorTile",t,n)(),n}async getTile(t){return await this.ready,this.getTileSync(t)}async getTileData(t){let{x:n,y:r,z:i}=t.index;return(await this.getVectorTile({x:n,y:r,z:i}))?.features||[]}getTileSync(t){let n=this.getProtoTile(t);return n?xn(n,{coordinates:this.props.coordinates,tileIndex:t,extent:this.props.extent}):null}createRootTiles(t){if(this.props.maxZoom<0||this.props.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(this.props.promoteId&&this.props.generateId)throw new Error("promoteId and generateId cannot be used together.");F.log(1,"DynamicVectorTileSource creating root tiles",this.props)(),F.time(1,"preprocess table")();let n=Tn(t,this.props);if(F.timeEnd(1,"preprocess table")(),F.time(1,"generate tiles")(),n=vn(n,this.props),n.length===0){F.log(1,"DynamicVectorTileSource: no features generated")();return}this.splitTile(n,0,0,0);let r=this.tiles[0];F.log(1,`root tile features: ${r.numFeatures}, points: ${r.numPoints}`)(),F.timeEnd(1,"generate tiles")(),F.log(1,`DynamicVectorTileSource: tiles generated: ${this.stats.get("total").count}`,this.stats)()}getProtoTile(t){let{z:n,y:r}=t,{x:i}=t,{extent:o}=this.props;if(n<0||n>24)return null;let s=1<<n;i=i+s&s-1;let a=ut(n,i,r);if(this.tiles[a])return st(this.tiles[a],o);F.log(F,"drilling down to z%d-%d-%d",n,i,r)();let l=n,c=i,f=r,u;for(;!u&&l>0;)l--,c=c>>1,f=f>>1,u=this.tiles[ut(l,c,f)];return!u||!u.sourceFeatures?null:(F.log(1,"found parent tile z%d-%d-%d",l,c,f)(),F.time(1,"drilling down")(),this.splitTile(u.sourceFeatures,l,c,f,n,i,r),F.timeEnd(1,"drilling down")(),this.tiles[a]?st(this.tiles[a],o):null)}splitTile(t,n,r,i,o,s,a){let l=[t,n,r,i];for(;l.length;){i=l.pop(),r=l.pop(),n=l.pop(),t=l.pop();let c=1<<n,f=ut(n,r,i),u=this.tiles[f];if(!u){F.time(2,"tile creation")(),u=this.tiles[f]=gn(t,n,r,i,this.props),this.tileCoords.push({z:n,x:r,y:i});let I=`z${n}`,P=this.stats.get(I,"count");P.incrementCount(),P=this.stats.get("total"),P.incrementCount(),P=Ve.stats.get(I,"count"),P.incrementCount(),P=Ve.stats.get("total"),P.incrementCount(),F.log(2,"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",n,r,i,u.numFeatures,u.numPoints,u.numSimplified)(),F.timeEnd(2,"tile creation")()}if(u.sourceFeatures=t,o===void 0){if(n===this.props.indexMaxZoom||u.numPoints<=this.props.maxPointsPerTile)continue}else{if(n===this.props.maxZoom||n===o)continue;if(o!==void 0){let I=o-n;if(r!==s>>I||i!==a>>I)continue}}if(u.sourceFeatures=null,t.length===0)continue;F.time(2,"clipping tile")();let h=.5*this.props.buffer/this.props.extent,p=.5-h,d=.5+h,y=1+h,w=null,S=null,v=null,m=null,g=B(t,c,r-h,r+d,0,u.minX,u.maxX,this.props),b=B(t,c,r+p,r+y,0,u.minX,u.maxX,this.props);t=null,g&&(w=B(g,c,i-h,i+d,1,u.minY,u.maxY,this.props),S=B(g,c,i+p,i+y,1,u.minY,u.maxY,this.props),g=null),b&&(v=B(b,c,i-h,i+d,1,u.minY,u.maxY,this.props),m=B(b,c,i+p,i+y,1,u.minY,u.maxY,this.props),b=null),F.timeEnd(2,"clipping tile")(),l.push(w||[],n+1,r*2,i*2),l.push(S||[],n+1,r*2,i*2+1),l.push(v||[],n+1,r*2+1,i*2),l.push(m||[],n+1,r*2+1,i*2+1)}}},De=Ve;de(De,"stats",new O({id:"table-tile-source-all",stats:[new E("count","tiles"),new E("count","features")]}));function ut(e,t,n){return((1<<e)*n+t)*32+e}return Vn(ue);})();
7
+ "use strict";var __exports__=(()=>{var Er=Object.create;var Q=Object.defineProperty;var Mr=Object.getOwnPropertyDescriptor;var Cr=Object.getOwnPropertyNames;var Lr=Object.getPrototypeOf,Vr=Object.prototype.hasOwnProperty;var kr=(e,t,r)=>t in e?Q(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var De=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Nr=(e,t)=>{for(var r in t)Q(e,r,{get:t[r],enumerable:!0})},pe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Cr(t))!Vr.call(e,o)&&o!==r&&Q(e,o,{get:()=>t[o],enumerable:!(n=Mr(t,o))||n.enumerable});return e},de=(e,t,r)=>(pe(e,t,"default"),r&&pe(r,t,"default")),mt=(e,t,r)=>(r=e!=null?Er(Lr(e)):{},pe(t||!e||!e.__esModule?Q(r,"default",{value:e,enumerable:!0}):r,e)),Dr=e=>pe(Q({},"__esModule",{value:!0}),e);var W=(e,t,r)=>(kr(e,typeof t!="symbol"?t+"":t,r),r);var yt=De((ai,gt)=>{gt.exports=globalThis.loaders});var Kt=De(Ye=>{Ye.read=function(e,t,r,n,o){var i,s,a=o*8-n-1,l=(1<<a)-1,c=l>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=e[t+u];for(u+=h,i=p&(1<<-f)-1,p>>=-f,f+=a;f>0;i=i*256+e[t+u],u+=h,f-=8);for(s=i&(1<<-f)-1,i>>=-f,f+=n;f>0;s=s*256+e[t+u],u+=h,f-=8);if(i===0)i=1-c;else{if(i===l)return s?NaN:(p?-1:1)*(1/0);s=s+Math.pow(2,n),i=i-c}return(p?-1:1)*s*Math.pow(2,i-n)};Ye.write=function(e,t,r,n,o,i){var s,a,l,c=i*8-o-1,f=(1<<c)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:i-1,d=n?1:-1,y=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(a=isNaN(t)?1:0,s=f):(s=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-s))<1&&(s--,l*=2),s+u>=1?t+=h/l:t+=h*Math.pow(2,1-u),t*l>=2&&(s++,l/=2),s+u>=f?(a=0,s=f):s+u>=1?(a=(t*l-1)*Math.pow(2,o),s=s+u):(a=t*Math.pow(2,u-1)*Math.pow(2,o),s=0));o>=8;e[r+p]=a&255,p+=d,a/=256,o-=8);for(s=s<<o|a,c+=o;c>0;e[r+p]=s&255,p+=d,s/=256,c-=8);e[r+p-d]|=y*128}});var rr=De((ra,tr)=>{"use strict";tr.exports=x;var Ie=Kt();function x(e){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(e)?e:new Uint8Array(e||0),this.pos=0,this.type=0,this.length=this.buf.length}x.Varint=0;x.Fixed64=1;x.Bytes=2;x.Fixed32=5;var Ke=(1<<16)*(1<<16),Xt=1/Ke,Zn=12,er=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");x.prototype={destroy:function(){this.buf=null},readFields:function(e,t,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,i=this.pos;this.type=n&7,e(o,t,this),this.pos===i&&this.skip(n)}return t},readMessage:function(e,t){return this.readFields(e,t,this.readVarint()+this.pos)},readFixed32:function(){var e=Se(this.buf,this.pos);return this.pos+=4,e},readSFixed32:function(){var e=qt(this.buf,this.pos);return this.pos+=4,e},readFixed64:function(){var e=Se(this.buf,this.pos)+Se(this.buf,this.pos+4)*Ke;return this.pos+=8,e},readSFixed64:function(){var e=Se(this.buf,this.pos)+qt(this.buf,this.pos+4)*Ke;return this.pos+=8,e},readFloat:function(){var e=Ie.read(this.buf,this.pos,!0,23,4);return this.pos+=4,e},readDouble:function(){var e=Ie.read(this.buf,this.pos,!0,52,8);return this.pos+=8,e},readVarint:function(e){var t=this.buf,r,n;return n=t[this.pos++],r=n&127,n<128||(n=t[this.pos++],r|=(n&127)<<7,n<128)||(n=t[this.pos++],r|=(n&127)<<14,n<128)||(n=t[this.pos++],r|=(n&127)<<21,n<128)?r:(n=t[this.pos],r|=(n&15)<<28,Yn(r,e,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var e=this.readVarint();return e%2===1?(e+1)/-2:e/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=Zn&&er?co(this.buf,t,e):lo(this.buf,t,e)},readBytes:function(){var e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t},readPackedVarint:function(e,t){if(this.type!==x.Bytes)return e.push(this.readVarint(t));var r=L(this);for(e=e||[];this.pos<r;)e.push(this.readVarint(t));return e},readPackedSVarint:function(e){if(this.type!==x.Bytes)return e.push(this.readSVarint());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readSVarint());return e},readPackedBoolean:function(e){if(this.type!==x.Bytes)return e.push(this.readBoolean());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readBoolean());return e},readPackedFloat:function(e){if(this.type!==x.Bytes)return e.push(this.readFloat());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readFloat());return e},readPackedDouble:function(e){if(this.type!==x.Bytes)return e.push(this.readDouble());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readDouble());return e},readPackedFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed32());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readFixed32());return e},readPackedSFixed32:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed32());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed32());return e},readPackedFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readFixed64());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readFixed64());return e},readPackedSFixed64:function(e){if(this.type!==x.Bytes)return e.push(this.readSFixed64());var t=L(this);for(e=e||[];this.pos<t;)e.push(this.readSFixed64());return e},skip:function(e){var t=e&7;if(t===x.Varint)for(;this.buf[this.pos++]>127;);else if(t===x.Bytes)this.pos=this.readVarint()+this.pos;else if(t===x.Fixed32)this.pos+=4;else if(t===x.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+t)},writeTag:function(e,t){this.writeVarint(e<<3|t)},realloc:function(e){for(var t=this.length||16;t<this.pos+e;)t*=2;if(t!==this.length){var r=new Uint8Array(t);r.set(this.buf),this.buf=r,this.length=t}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(e){this.realloc(4),K(this.buf,e,this.pos),this.pos+=4},writeSFixed32:function(e){this.realloc(4),K(this.buf,e,this.pos),this.pos+=4},writeFixed64:function(e){this.realloc(8),K(this.buf,e&-1,this.pos),K(this.buf,Math.floor(e*Xt),this.pos+4),this.pos+=8},writeSFixed64:function(e){this.realloc(8),K(this.buf,e&-1,this.pos),K(this.buf,Math.floor(e*Xt),this.pos+4),this.pos+=8},writeVarint:function(e){if(e=+e||0,e>268435455||e<0){Kn(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))},writeSVarint:function(e){this.writeVarint(e<0?-e*2-1:e*2)},writeBoolean:function(e){this.writeVarint(Boolean(e))},writeString:function(e){e=String(e),this.realloc(e.length*4),this.pos++;var t=this.pos;this.pos=fo(this.buf,e,this.pos);var r=this.pos-t;r>=128&&Qt(t,r,this),this.pos=t-1,this.writeVarint(r),this.pos+=r},writeFloat:function(e){this.realloc(4),Ie.write(this.buf,e,this.pos,!0,23,4),this.pos+=4},writeDouble:function(e){this.realloc(8),Ie.write(this.buf,e,this.pos,!0,52,8),this.pos+=8},writeBytes:function(e){var t=e.length;this.writeVarint(t),this.realloc(t);for(var r=0;r<t;r++)this.buf[this.pos++]=e[r]},writeRawMessage:function(e,t){this.pos++;var r=this.pos;e(t,this);var n=this.pos-r;n>=128&&Qt(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(e,t,r){this.writeTag(e,x.Bytes),this.writeRawMessage(t,r)},writePackedVarint:function(e,t){t.length&&this.writeMessage(e,qn,t)},writePackedSVarint:function(e,t){t.length&&this.writeMessage(e,eo,t)},writePackedBoolean:function(e,t){t.length&&this.writeMessage(e,no,t)},writePackedFloat:function(e,t){t.length&&this.writeMessage(e,to,t)},writePackedDouble:function(e,t){t.length&&this.writeMessage(e,ro,t)},writePackedFixed32:function(e,t){t.length&&this.writeMessage(e,oo,t)},writePackedSFixed32:function(e,t){t.length&&this.writeMessage(e,io,t)},writePackedFixed64:function(e,t){t.length&&this.writeMessage(e,so,t)},writePackedSFixed64:function(e,t){t.length&&this.writeMessage(e,ao,t)},writeBytesField:function(e,t){this.writeTag(e,x.Bytes),this.writeBytes(t)},writeFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeFixed32(t)},writeSFixed32Field:function(e,t){this.writeTag(e,x.Fixed32),this.writeSFixed32(t)},writeFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeFixed64(t)},writeSFixed64Field:function(e,t){this.writeTag(e,x.Fixed64),this.writeSFixed64(t)},writeVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeVarint(t)},writeSVarintField:function(e,t){this.writeTag(e,x.Varint),this.writeSVarint(t)},writeStringField:function(e,t){this.writeTag(e,x.Bytes),this.writeString(t)},writeFloatField:function(e,t){this.writeTag(e,x.Fixed32),this.writeFloat(t)},writeDoubleField:function(e,t){this.writeTag(e,x.Fixed64),this.writeDouble(t)},writeBooleanField:function(e,t){this.writeVarintField(e,Boolean(t))}};function Yn(e,t,r){var n=r.buf,o,i;if(i=n[r.pos++],o=(i&112)>>4,i<128||(i=n[r.pos++],o|=(i&127)<<3,i<128)||(i=n[r.pos++],o|=(i&127)<<10,i<128)||(i=n[r.pos++],o|=(i&127)<<17,i<128)||(i=n[r.pos++],o|=(i&127)<<24,i<128)||(i=n[r.pos++],o|=(i&1)<<31,i<128))return Y(e,o,t);throw new Error("Expected varint not more than 10 bytes")}function L(e){return e.type===x.Bytes?e.readVarint()+e.pos:e.pos+1}function Y(e,t,r){return r?t*4294967296+(e>>>0):(t>>>0)*4294967296+(e>>>0)}function Kn(e,t){var r,n;if(e>=0?(r=e%4294967296|0,n=e/4294967296|0):(r=~(-e%4294967296),n=~(-e/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),e>=18446744073709552e3||e<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");t.realloc(10),Xn(r,n,t),Qn(n,t)}function Xn(e,t,r){r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos++]=e&127|128,e>>>=7,r.buf[r.pos]=e&127}function Qn(e,t){var r=(e&7)<<4;t.buf[t.pos++]|=r|((e>>>=3)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127|((e>>>=7)?128:0),e&&(t.buf[t.pos++]=e&127)))))}function Qt(e,t,r){var n=t<=16383?1:t<=2097151?2:t<=268435455?3:Math.floor(Math.log(t)/(Math.LN2*7));r.realloc(n);for(var o=r.pos-1;o>=e;o--)r.buf[o+n]=r.buf[o]}function qn(e,t){for(var r=0;r<e.length;r++)t.writeVarint(e[r])}function eo(e,t){for(var r=0;r<e.length;r++)t.writeSVarint(e[r])}function to(e,t){for(var r=0;r<e.length;r++)t.writeFloat(e[r])}function ro(e,t){for(var r=0;r<e.length;r++)t.writeDouble(e[r])}function no(e,t){for(var r=0;r<e.length;r++)t.writeBoolean(e[r])}function oo(e,t){for(var r=0;r<e.length;r++)t.writeFixed32(e[r])}function io(e,t){for(var r=0;r<e.length;r++)t.writeSFixed32(e[r])}function so(e,t){for(var r=0;r<e.length;r++)t.writeFixed64(e[r])}function ao(e,t){for(var r=0;r<e.length;r++)t.writeSFixed64(e[r])}function Se(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+e[t+3]*16777216}function K(e,t,r){e[r]=t,e[r+1]=t>>>8,e[r+2]=t>>>16,e[r+3]=t>>>24}function qt(e,t){return(e[t]|e[t+1]<<8|e[t+2]<<16)+(e[t+3]<<24)}function lo(e,t,r){for(var n="",o=t;o<r;){var i=e[o],s=null,a=i>239?4:i>223?3:i>191?2:1;if(o+a>r)break;var l,c,f;a===1?i<128&&(s=i):a===2?(l=e[o+1],(l&192)===128&&(s=(i&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=e[o+1],c=e[o+2],(l&192)===128&&(c&192)===128&&(s=(i&15)<<12|(l&63)<<6|c&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=e[o+1],c=e[o+2],f=e[o+3],(l&192)===128&&(c&192)===128&&(f&192)===128&&(s=(i&15)<<18|(l&63)<<12|(c&63)<<6|f&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),n+=String.fromCharCode(s),o+=a}return n}function co(e,t,r){return er.decode(e.subarray(t,r))}function fo(e,t,r){for(var n=0,o,i;n<t.length;n++){if(o=t.charCodeAt(n),o>55295&&o<57344)if(i)if(o<56320){e[r++]=239,e[r++]=191,e[r++]=189,i=o;continue}else o=i-55296<<10|o-56320|65536,i=null;else{o>56319||n+1===t.length?(e[r++]=239,e[r++]=191,e[r++]=189):i=o;continue}else i&&(e[r++]=239,e[r++]=191,e[r++]=189,i=null);o<128?e[r++]=o:(o<2048?e[r++]=o>>6|192:(o<65536?e[r++]=o>>12|224:(e[r++]=o>>18|240,e[r++]=o>>12&63|128),e[r++]=o>>6&63|128),e[r++]=o&63|128)}return r}});var he={};Nr(he,{MVTLoader:()=>_e,MVTSource:()=>at,MVTWorkerLoader:()=>et,TableTileSource:()=>dt,TileJSONLoader:()=>$});de(he,mt(yt(),1));function xt(e){let t=[];if(e.fields)for(let r of e.fields)t.push({name:r.name,type:Gr(r),metadata:jr(r)});return{metadata:Or(e),fields:t}}function Or(e){let t={};for(let[r,n]of Object.entries(e))r!=="fields"&&n&&(t[r]=JSON.stringify(n));return t}function Gr(e){switch(e.type.toLowerCase()){case"float32":return"float32";case"number":case"float64":return"float64";case"string":case"utf8":return"utf8";case"boolean":return"bool";default:return"null"}}function jr(e){let t={};for(let[r,n]of Object.entries(e))r!=="name"&&n&&(t[r]=JSON.stringify(n));return t}var bt=e=>e!==null&&typeof e=="object";function Oe(e,t){if(!e||!bt(e))return null;let r={name:e.name||"",description:e.description||""};if(typeof e.generator=="string"&&(r.generator=e.generator),typeof e.generator_options=="string"&&(r.generatorOptions=e.generator_options),r.boundingBox=wt(e.bounds)||wt(e.antimeridian_adjusted_bounds),r.center=Hr(e.center),r.maxZoom=Tt(e.maxzoom),r.minZoom=Tt(e.minzoom),typeof e?.json=="string")try{r.metaJson=JSON.parse(e.json)}catch(a){console.warn("Failed to parse tilejson.json field",a)}let n=e.tilestats||r.metaJson?.tilestats,o=zr(n,t),i=Ur(e.vector_layers),s=$r(i,o);return r={...r,layers:s},r.maxZoom===null&&s.length>0&&(r.maxZoom=s[0].maxZoom||null),r.minZoom===null&&s.length>0&&(r.minZoom=s[0].minZoom||null),r}function Ur(e){return Array.isArray(e)?e.map(t=>Rr(t)):[]}function Rr(e){let t=Object.entries(e.fields||[]).map(([n,o])=>({name:n,...vt(String(o))})),r={...e};return delete r.fields,{name:e.id||"",...r,fields:t}}function zr(e,t){return bt(e)&&Array.isArray(e.layers)?e.layers.map(r=>Wr(r,t)):[]}function Wr(e,t){let r=[],n={},o=e.attributes||[];for(let i of o){let s=i.attribute;if(typeof s=="string")if(s.split("|").length>1){let a=s.split("|")[0];n[a]=n[a]||[],n[a].push(i),console.warn("ignoring tilestats indexed field",a)}else r[s]||r.push(Zr(i,t))}return{name:e.layer||"",dominantGeometry:e.geometry,fields:r}}function $r(e,t){return e.map(r=>{let n=t.find(s=>s.name===r.name),o=n?.fields||r.fields||[],i={...r,...n,fields:o};return i.schema=xt(i),i})}function wt(e){let t=St(e);if(Array.isArray(t)&&t.length===4&&[t[0],t[2]].every(It)&&[t[1],t[3]].every(Pt))return[[t[0],t[1]],[t[2],t[3]]]}function Hr(e){let t=St(e);return Array.isArray(t)&&t.length===3&&It(t[0])&&Pt(t[1])&&Jr(t[2])?t:null}function Tt(e){let t=typeof e=="string"?parseFloat(e):typeof e=="number"?e:null;return t===null||isNaN(t)?null:t}function Pt(e){return Number.isFinite(e)&&e<=90&&e>=-90}function It(e){return Number.isFinite(e)&&e<=180&&e>=-180}function Jr(e){return Number.isFinite(e)&&e>=0&&e<=22}function St(e){return typeof e=="string"?e.split(",").map(parseFloat):Array.isArray(e)?e:null}var Ft={number:{type:"float32"},numeric:{type:"float32"},string:{type:"utf8"},vachar:{type:"utf8"},float:{type:"float32"},int:{type:"int32"},int4:{type:"int32"},boolean:{type:"boolean"},bool:{type:"boolean"}};function Zr(e={},t){let r=vt(e.type),n={name:e.attribute,...r};return typeof e.min=="number"&&(n.min=e.min),typeof e.max=="number"&&(n.max=e.max),typeof e.count=="number"&&(n.uniqueValueCount=e.count),e.values&&(n.values=e.values),n.values&&typeof t.maxValues=="number"&&(n.values=n.values?.slice(0,t.maxValues)),n}function vt(e){let t=e.toLowerCase();return!t||Ft[t],Ft[t]||{type:"string"}}var Yr="4.4.0-alpha.0",$={dataType:null,batchType:null,name:"TileJSON",id:"tilejson",module:"pmtiles",version:Yr,worker:!0,extensions:["json"],mimeTypes:["application/json"],text:!0,options:{tilejson:{maxValues:void 0}},parse:async(e,t)=>{let r=new TextDecoder().decode(e),n=JSON.parse(r),o={...$.options.tilejson,...t?.tilejson};return Oe(n,o)},parseTextSync:(e,t)=>{let r=JSON.parse(e),n={...$.options.tilejson,...t?.tilejson};return Oe(r,n)}};function me(e,t="float32"){return e instanceof Date?"date-millisecond":e instanceof Number?t:typeof e=="string"?"utf8":(e===null||e==="undefined","null")}function At(e){let t=Kr(e);return t!=="null"?{type:t,nullable:!1}:e.length>0?(t=me(e[0]),{type:t,nullable:!0}):{type:"null",nullable:!0}}function Kr(e){switch(e.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function Ge(e){switch(e.shape){case"array-row-table":case"object-row-table":return Qr(e.data);case"geojson-table":return qr(e.features);case"columnar-table":return Xr(e.data);case"arrow-table":default:throw new Error("Deduce schema")}}function Xr(e){let t=[];for(let[r,n]of Object.entries(e)){let o=en(n,r);t.push(o)}return{fields:t,metadata:{}}}function Qr(e){if(!e.length)throw new Error("deduce from empty table");let t=[],r=e[0];for(let[n,o]of Object.entries(r))t.push(_t(o,n));return{fields:t,metadata:{}}}function qr(e){if(!e.length)throw new Error("deduce from empty table");let t=[],r=e[0].properties||{};for(let[n,o]of Object.entries(r))t.push(_t(o,n));return{fields:t,metadata:{}}}function en(e,t){if(ArrayBuffer.isView(e)){let r=At(e);return{name:t,type:r.type||"null",nullable:r.nullable}}if(Array.isArray(e)&&e.length>0){let r=e[0],n=me(r);return{name:t,type:n,nullable:!0}}throw new Error("empty table")}function _t(e,t){let r=me(e);return{name:t,type:r,nullable:!0}}var q={x:0,y:1,z:2};function D(e,t={}){let{start:r=0,end:n=e.length,plane:o="xy"}=t,i=t.size||2,s=0,a=q[o[0]],l=q[o[1]];for(let c=r,f=n-i;c<n;c+=i)s+=(e[c+a]-e[f+a])*(e[c+l]+e[f+l]),f=c;return s/2}function Ue(e,t,r=2,n,o="xy"){let i=t&&t.length,s=i?t[0]*r:e.length,a=Et(e,0,s,r,!0,n&&n[0],o),l=[];if(!a||a.next===a.prev)return l;let c,f,u,h,p,d,y;if(i&&(a=ln(e,t,a,r,n,o)),e.length>80*r){h=f=e[0],p=u=e[1];for(let w=r;w<s;w+=r)d=e[w],y=e[w+1],d<h&&(h=d),y<p&&(p=y),d>f&&(f=d),y>u&&(u=y);c=Math.max(f-h,u-p),c=c!==0?32767/c:0}return ee(a,l,r,h,p,c,0),l}function Et(e,t,r,n,o,i,s){let a,l;i===void 0&&(i=D(e,{start:t,end:r,size:n,plane:s}));let c=q[s[0]],f=q[s[1]];if(o===i<0)for(a=t;a<r;a+=n)l=Bt(a,e[a+c],e[a+f],l);else for(a=r-n;a>=t;a-=n)l=Bt(a,e[a+c],e[a+f],l);return l&&xe(l,l.next)&&(re(l),l=l.next),l}function O(e,t){if(!e)return e;t||(t=e);let r=e,n;do if(n=!1,!r.steiner&&(xe(r,r.next)||T(r.prev,r,r.next)===0)){if(re(r),r=t=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==t);return t}function ee(e,t,r,n,o,i,s){if(!e)return;!s&&i&&pn(e,n,o,i);let a=e,l,c;for(;e.prev!==e.next;){if(l=e.prev,c=e.next,i?on(e,n,o,i):nn(e)){t.push(l.i/r|0),t.push(e.i/r|0),t.push(c.i/r|0),re(e),e=c.next,a=c.next;continue}if(e=c,e===a){s?s===1?(e=sn(O(e),t,r),ee(e,t,r,n,o,i,2)):s===2&&an(e,t,r,n,o,i):ee(O(e),t,r,n,o,i,1);break}}}function nn(e){let t=e.prev,r=e,n=e.next;if(T(t,r,n)>=0)return!1;let o=t.x,i=r.x,s=n.x,a=t.y,l=r.y,c=n.y,f=o<i?o<s?o:s:i<s?i:s,u=a<l?a<c?a:c:l<c?l:c,h=o>i?o>s?o:s:i>s?i:s,p=a>l?a>c?a:c:l>c?l:c,d=n.next;for(;d!==t;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&H(o,a,i,l,s,c,d.x,d.y)&&T(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function on(e,t,r,n){let o=e.prev,i=e,s=e.next;if(T(o,i,s)>=0)return!1;let a=o.x,l=i.x,c=s.x,f=o.y,u=i.y,h=s.y,p=a<l?a<c?a:c:l<c?l:c,d=f<u?f<h?f:h:u<h?u:h,y=a>l?a>c?a:c:l>c?l:c,w=f>u?f>h?f:h:u>h?u:h,S=je(p,d,t,r,n),v=je(y,w,t,r,n),m=e.prevZ,g=e.nextZ;for(;m&&m.z>=S&&g&&g.z<=v;){if(m.x>=p&&m.x<=y&&m.y>=d&&m.y<=w&&m!==o&&m!==s&&H(a,f,l,u,c,h,m.x,m.y)&&T(m.prev,m,m.next)>=0||(m=m.prevZ,g.x>=p&&g.x<=y&&g.y>=d&&g.y<=w&&g!==o&&g!==s&&H(a,f,l,u,c,h,g.x,g.y)&&T(g.prev,g,g.next)>=0))return!1;g=g.nextZ}for(;m&&m.z>=S;){if(m.x>=p&&m.x<=y&&m.y>=d&&m.y<=w&&m!==o&&m!==s&&H(a,f,l,u,c,h,m.x,m.y)&&T(m.prev,m,m.next)>=0)return!1;m=m.prevZ}for(;g&&g.z<=v;){if(g.x>=p&&g.x<=y&&g.y>=d&&g.y<=w&&g!==o&&g!==s&&H(a,f,l,u,c,h,g.x,g.y)&&T(g.prev,g,g.next)>=0)return!1;g=g.nextZ}return!0}function sn(e,t,r){let n=e;do{let o=n.prev,i=n.next.next;!xe(o,i)&&Mt(o,n,n.next,i)&&te(o,i)&&te(i,o)&&(t.push(o.i/r|0),t.push(n.i/r|0),t.push(i.i/r|0),re(n),re(n.next),n=e=i),n=n.next}while(n!==e);return O(n)}function an(e,t,r,n,o,i){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&gn(s,a)){let l=Ct(s,a);s=O(s,s.next),l=O(l,l.next),ee(s,t,r,n,o,i,0),ee(l,t,r,n,o,i,0);return}a=a.next}s=s.next}while(s!==e)}function ln(e,t,r,n,o,i){let s=[],a,l,c,f,u;for(a=0,l=t.length;a<l;a++)c=t[a]*n,f=a<l-1?t[a+1]*n:e.length,u=Et(e,c,f,n,!1,o&&o[a+1],i),u===u.next&&(u.steiner=!0),s.push(mn(u));for(s.sort(cn),a=0;a<s.length;a++)r=fn(s[a],r);return r}function cn(e,t){return e.x-t.x}function fn(e,t){let r=un(e,t);if(!r)return t;let n=Ct(r,e);return O(n,n.next),O(r,r.next)}function un(e,t){let r=t,n=e.x,o=e.y,i=-1/0,s;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>i&&(i=h,s=r.x<r.next.x?r:r.next,h===n))return s}r=r.next}while(r!==t);if(!s)return null;let a=s,l=s.x,c=s.y,f=1/0,u;r=s;do n>=r.x&&r.x>=l&&n!==r.x&&H(o<c?n:i,o,l,c,o<c?i:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),te(r,e)&&(u<f||u===f&&(r.x>s.x||r.x===s.x&&hn(s,r)))&&(s=r,f=u)),r=r.next;while(r!==a);return s}function hn(e,t){return T(e.prev,e,t.prev)<0&&T(t.next,e,e.next)<0}function pn(e,t,r,n){let o=e;do o.z===0&&(o.z=je(o.x,o.y,t,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,dn(o)}function dn(e){let t,r,n=1,o,i,s,a,l,c;do{for(i=e,e=null,c=null,o=0;i;){for(o++,a=i,s=0,r=0;r<n&&(s++,a=a.nextZ,!!a);r++);for(l=n;s>0||l>0&&a;)s!==0&&(l===0||!a||i.z<=a.z)?(t=i,i=i.nextZ,s--):(t=a,a=a.nextZ,l--),c?c.nextZ=t:e=t,t.prevZ=c,c=t;i=a}c.nextZ=null,n*=2}while(o>1);return e}function je(e,t,r,n,o){return e=(e-r)*o|0,t=(t-n)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function mn(e){let t=e,r=e;do(t.x<r.x||t.x===r.x&&t.y<r.y)&&(r=t),t=t.next;while(t!==e);return r}function H(e,t,r,n,o,i,s,a){return(o-s)*(t-a)>=(e-s)*(i-a)&&(e-s)*(n-a)>=(r-s)*(t-a)&&(r-s)*(i-a)>=(o-s)*(n-a)}function gn(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!yn(e,t)&&(te(e,t)&&te(t,e)&&xn(e,t)&&(T(e.prev,e,t.prev)||T(e,t.prev,t))||xe(e,t)&&T(e.prev,e,e.next)>0&&T(t.prev,t,t.next)>0)}function T(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function xe(e,t){return e.x===t.x&&e.y===t.y}function Mt(e,t,r,n){let o=ye(T(e,t,r)),i=ye(T(e,t,n)),s=ye(T(r,n,e)),a=ye(T(r,n,t));return!!(o!==i&&s!==a||o===0&&ge(e,r,t)||i===0&&ge(e,n,t)||s===0&&ge(r,e,n)||a===0&&ge(r,t,n))}function ge(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function ye(e){return e>0?1:e<0?-1:0}function yn(e,t){let r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&Mt(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function te(e,t){return T(e.prev,e,e.next)<0?T(e,t,e.next)>=0&&T(e,e.prev,t)>=0:T(e,t,e.prev)<0||T(e,e.next,t)<0}function xn(e,t){let r=e,n=!1,o=(e.x+t.x)/2,i=(e.y+t.y)/2;do r.y>i!=r.next.y>i&&r.next.y!==r.y&&o<(r.next.x-r.x)*(i-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==e);return n}function Ct(e,t){let r=new ne(e.i,e.x,e.y),n=new ne(t.i,t.x,t.y),o=e.next,i=t.prev;return e.next=t,t.prev=e,r.next=o,o.prev=r,n.next=r,r.prev=n,i.next=n,n.prev=i,n}function Bt(e,t,r,n){let o=new ne(e,t,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function re(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}var ne=class{constructor(t,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=t,this.x=r,this.y=n}};function we(e,t,r){let n=Pn(e),o=Object.keys(n).filter(i=>n[i]!==Array);return In(e,{propArrayTypes:n,...t},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function Pn(e){let t={};for(let r of e)if(r.properties)for(let n in r.properties){let o=r.properties[n];t[n]=En(o,t[n])}return t}function In(e,t,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:i,linePathsCount:s,lineFeaturesCount:a,polygonPositionsCount:l,polygonObjectsCount:c,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=t,{numericPropKeys:d=[],PositionDataType:y=Float32Array,triangulate:w=!0}=r,S=e[0]&&"id"in e[0],v=e.length>65535?Uint32Array:Uint16Array,m={type:"Point",positions:new y(n*p),globalFeatureIds:new v(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},g={type:"LineString",pathIndices:i>65535?new Uint32Array(s+1):new Uint16Array(s+1),positions:new y(i*p),globalFeatureIds:new v(i),featureIds:a>65535?new Uint32Array(i):new Uint16Array(i),numericProps:{},properties:[],fields:[]},P={type:"Polygon",polygonIndices:l>65535?new Uint32Array(c+1):new Uint16Array(c+1),primitivePolygonIndices:l>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new y(l*p),globalFeatureIds:new v(l),featureIds:u>65535?new Uint32Array(l):new Uint16Array(l),numericProps:{},properties:[],fields:[]};w&&(P.triangles=[]);for(let b of[m,g,P])for(let A of d){let _=h[A];b.numericProps[A]=new _(b.positions.length/p)}g.pathIndices[s]=i,P.polygonIndices[c]=l,P.primitivePolygonIndices[f]=l;let I={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let b of e){let A=b.geometry,_=b.properties||{};switch(A.type){case"Point":Sn(A,m,I,p,_),m.properties.push(ze(_,d)),S&&m.fields.push({id:b.id}),I.pointFeature++;break;case"LineString":vn(A,g,I,p,_),g.properties.push(ze(_,d)),S&&g.fields.push({id:b.id}),I.lineFeature++;break;case"Polygon":An(A,P,I,p,_),P.properties.push(ze(_,d)),S&&P.fields.push({id:b.id}),I.polygonFeature++;break;default:throw new Error("Invalid geometry type")}I.feature++}return Bn(m,g,P,p)}function Sn(e,t,r,n,o){t.positions.set(e.data,r.pointPosition*n);let i=e.data.length/n;We(t,o,r.pointPosition,i),t.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+i),t.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+i),r.pointPosition+=i}function vn(e,t,r,n,o){t.positions.set(e.data,r.linePosition*n);let i=e.data.length/n;We(t,o,r.linePosition,i),t.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+i),t.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+i);for(let s=0,a=e.indices.length;s<a;++s){let l=e.indices[s],c=s===a-1?e.data.length:e.indices[s+1];t.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(c-l)/n}}function An(e,t,r,n,o){t.positions.set(e.data,r.polygonPosition*n);let i=e.data.length/n;We(t,o,r.polygonPosition,i),t.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+i),t.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+i);for(let s=0,a=e.indices.length;s<a;++s){let l=r.polygonPosition;t.polygonIndices[r.polygonObject++]=l;let c=e.areas[s],f=e.indices[s],u=e.indices[s+1];for(let p=0,d=f.length;p<d;++p){let y=f[p],w=p===d-1?u===void 0?e.data.length:u[0]:f[p+1];t.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(w-y)/n}let h=r.polygonPosition;_n(t,c,f,{startPosition:l,endPosition:h,coordLength:n})}}function _n(e,t,r,{startPosition:n,endPosition:o,coordLength:i}){if(!e.triangles)return;let s=n*i,a=o*i,l=e.positions.subarray(s,a),c=r[0],f=r.slice(1).map(h=>(h-c)/i),u=Ue(l,f,i,t);for(let h=0,p=u.length;h<p;++h)e.triangles.push(n+u[h])}function Re(e,t){let r={};for(let n in e)r[n]={value:e[n],size:t};return r}function Bn(e,t,r,n){let o={shape:"binary-feature-collection",points:{...e,positions:{value:e.positions,size:n},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:Re(e.numericProps,1)},lines:{...t,positions:{value:t.positions,size:n},pathIndices:{value:t.pathIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:Re(t.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:Re(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function We(e,t,r,n){for(let o in e.numericProps)if(o in t){let i=t[o];e.numericProps[o].fill(i,r,r+n)}}function ze(e,t){let r={};for(let n in e)t.includes(n)||(r[n]=e[n]);return r}function En(e,t){return t===Array||!Number.isFinite(e)?Array:t===Float64Array||Math.fround(e)!==e?Float64Array:Float32Array}function oe(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var M={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},Mn=M.self||M.window||M.global||{},Cn=M.window||M.self||M.global||{},Ln=M.global||M.self||M.window||{},Vn=M.document||{};var $e=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var kt=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),kn=kt&&parseFloat(kt[1])||0;var Te=globalThis,Nn=globalThis.document||{},Fe=globalThis.process||{},Dn=globalThis.console,ns=globalThis.navigator||{};function Nt(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return Boolean(r&&r.indexOf("Electron")>=0)}function G(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Nt()}var He="4.0.7";function Gn(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var be=class{constructor(t,r,n="sessionStorage"){this.storage=Gn(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function Dt(e){let t;return e<10?t=`${e.toFixed(2)}ms`:e<100?t=`${e.toFixed(1)}ms`:e<1e3?t=`${e.toFixed(0)}ms`:t=`${(e/1e3).toFixed(2)}s`,t}function Ot(e,t=8){let r=Math.max(t-e.length,0);return`${" ".repeat(r)}${e}`}var Pe;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Pe||(Pe={}));var jn=10;function Gt(e){return typeof e!="string"?e:(e=e.toUpperCase(),Pe[e]||Pe.WHITE)}function jt(e,t,r){return!G&&typeof e=="string"&&(t&&(e=`\x1B[${Gt(t)}m${e}\x1B[39m`),r&&(e=`\x1B[${Gt(r)+jn}m${e}\x1B[49m`)),e}function Ut(e,t=["constructor"]){let r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),o=e;for(let i of n){let s=o[i];typeof s=="function"&&(t.find(a=>i===a)||(o[i]=s.bind(e)))}}function ie(e,t){if(!e)throw new Error(t||"Assertion failed")}function j(){let e;if(G()&&Te.performance)e=Te?.performance?.now?.();else if("hrtime"in Fe){let t=Fe?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var J={debug:G()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Un={enabled:!0,level:0};function Z(){}var Rt={},zt={once:!0},V=class{constructor({id:t}={id:""}){this.VERSION=He,this._startTs=j(),this._deltaTs=j(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new be(`__probe-${this.id}__`,Un),this.timeStamp(`${this.id} started`),Ut(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((j()-this._startTs).toPrecision(10))}getDelta(){return Number((j()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(t=!0){return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){if(!t)throw new Error(r||"Assertion failed")}warn(t){return this._getLogFunction(0,t,J.warn,arguments,zt)}error(t){return this._getLogFunction(0,t,J.error,arguments)}deprecated(t,r){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(t,r){return this.error(`\`${t}\` has been removed. Use \`${r}\` instead`)}probe(t,r){return this._getLogFunction(t,r,J.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,J.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,J.debug||J.info,arguments,zt)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||Z,n&&[n],{tag:zn(r)}):Z}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||Z)}group(t,r,n={collapsed:!1}){let o=Wt({logLevel:t,message:r,opts:n}),{collapsed:i}=n;return o.method=(i?console.groupCollapsed:console.group)||console.info,this._getLogFunction(o)}groupCollapsed(t,r,n={}){return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||Z)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=$t(t)}_getLogFunction(t,r,n,o,i){if(this._shouldLog(t)){i=Wt({logLevel:t,message:r,args:o,opts:i}),n=n||i.method,ie(n),i.total=this.getTotal(),i.delta=this.getDelta(),this._deltaTs=j();let s=i.tag||i.message;if(i.once&&s)if(!Rt[s])Rt[s]=j();else return Z;return r=Rn(this.id,i.message,i),n.bind(console,r,...i.args)}return Z}};V.VERSION=He;function $t(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return ie(Number.isFinite(t)&&t>=0),t}function Wt(e){let{logLevel:t,message:r}=e;e.logLevel=$t(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return ie(o==="string"||o==="object"),Object.assign(e,{args:n},e.opts)}function Rn(e,t,r){if(typeof t=="string"){let n=r.time?Ot(Dt(r.total)):"";t=r.time?`${e}: ${n} ${t}`:`${e}: ${t}`,t=jt(t,r.color,r.background)}return t}function zn(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}globalThis.probe={};var _s=new V({id:"@probe.gl/log"});var Je="4.4.0-alpha.0",Wn=Je[0]>="0"&&Je[0]<="9"?`v${Je}`:"";function $n(){let e=new V({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=e,globalThis.loaders.version=Wn,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=e,e}var F=$n();function Ht(e,t){return Jt(e||{},t)}function Jt(e,t,r=0){if(r>3)return t;let n={...e};for(let[o,i]of Object.entries(t))i&&typeof i=="object"&&!Array.isArray(i)?n[o]=Jt(n[o]||{},t[o],r+1):n[o]=t[o];return n}function se(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var B=class{constructor(t,r){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=se(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(se()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var U=class{constructor(t){this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t,r="count"){return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(t=[]){t.forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,o=this.stats[r];return o||(t instanceof B?o=t:o=new B(r,n),this.stats[r]=o),o}};var Hn="",Zt={};function Yt(e){for(let t in Zt)if(e.startsWith(t)){let r=Zt[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Hn}${e}`),e}var Ze=class{optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(t,r,n){n?this.options=Ht({...n,core:Ze.defaultOptions},r):this.options={...r},this.data=t,this.url=typeof t=="string"?Yt(t):"",this.loadOptions={...this.options.core?.loadOptions},this.fetch=Jn(this.loadOptions)}setProps(t){this.options=Object.assign(this.options,t),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(t=!0){let r=this._needsRefresh;return t&&(this._needsRefresh=!1),r}},k=Ze;W(k,"defaultOptions",{core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}});function Jn(e){let t=e?.fetch;if(t&&typeof t=="function")return(n,o)=>t(n,o);let r=e?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}var Qe=mt(rr(),1);function uo(e){let t=0;for(let r=0,n=e.length-1,o,i;r<e.length;n=r++)o=e[r],i=e[n],t+=(i[0]-o[0])*(o[1]+i[1]);return t}function ae(e,t){if(Array.isArray(e[0])){for(let n of e)ae(n,t);return}let r=e;r[0]/=t,r[1]/=t}function nr(e,t){for(let r=0;r<e.length;++r)e[r]/=t}function le(e,t,r){if(typeof e[0][0]!="number"){for(let s of e)le(s,t,r);return}let n=r*Math.pow(2,t.z),o=r*t.x,i=r*t.y;for(let s=0;s<e.length;s++){let a=e[s];a[0]=(a[0]+o)*360/n-180;let l=180-(a[1]+i)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(l*Math.PI/180))-90}}function or(e,t,r){let{x:n,y:o,z:i}=t,s=r*Math.pow(2,i),a=r*n,l=r*o;for(let c=0,f=e.length;c<f;c+=2){e[c]=(e[c]+a)*360/s-180;let u=180-(e[c+1]+l)*360/s;e[c+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function ir(e){let t=e.length;if(t<=1)return[e];let r=[],n,o;for(let i=0;i<t;i++){let s=uo(e[i]);s!==0&&(o===void 0&&(o=s<0),o===s<0?(n&&r.push(n),n=[e[i]]):n&&n.push(e[i]))}return n&&r.push(n),r}function sr(e){let t=e.indices.length,r="Polygon";if(t<=1)return{type:r,data:e.data,areas:[[D(e.data)]],indices:[e.indices]};let n=[],o=[],i=[],s=[],a,l=0;for(let c,f=0,u;f<t;f++){u=e.indices[f]-l,c=e.indices[f+1]-l||e.data.length;let h=e.data.slice(u,c),p=D(h);if(p===0){let d=e.data.slice(0,u),y=e.data.slice(c);e.data=d.concat(y),l+=c-u;continue}a===void 0&&(a=p<0),a===p<0?(s.length&&(n.push(i),o.push(s)),s=[u],i=[p]):(i.push(p),s.push(u))}return i&&n.push(i),s.length&&o.push(s),{type:r,areas:n,indices:o,data:e.data}}var R=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;constructor(t,r,n,o,i,s){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=o,this._values=i,this._geometryInfo=s,t.readFields(ho,this,r)}toGeoJSONFeature(t,r){let n=this.loadGeometry();switch(t){case"wgs84":return ar(this,n,o=>le(o,r,this.extent));default:return ar(this,n,ae)}}toBinaryFeature(t,r){let n=this.loadFlatGeometry();switch(t){case"wgs84":return this._toBinaryCoordinates(n,o=>or(o,r,this.extent));default:return this._toBinaryCoordinates(n,nr)}}bbox(){let t=this._pbf;t.pos=this._geometry;let r=t.readVarint()+t.pos,n=1,o=0,i=0,s=0,a=1/0,l=-1/0,c=1/0,f=-1/0;for(;t.pos<r;){if(o<=0){let u=t.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)i+=t.readSVarint(),s+=t.readSVarint(),i<a&&(a=i),i>l&&(l=i),s<c&&(c=s),s>f&&(f=s);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,c,l,f]}_toBinaryCoordinates(t,r){let n;r(t.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=t.indices.length,n={type:"Point",...t};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=t.indices.length,this._geometryInfo.linePositionsCount+=t.data.length/o,n={type:"LineString",...t};break;case 3:n=sr(t),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let s of n.indices)this._geometryInfo.polygonRingsCount+=s.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let i={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(i.id=this.id),i}loadGeometry(){let t=this._pbf;t.pos=this._geometry;let r=t.readVarint()+t.pos,n=1,o=0,i=0,s=0,a=[],l;for(;t.pos<r;){if(o<=0){let c=t.readVarint();n=c&7,o=c>>3}switch(o--,n){case 1:case 2:i+=t.readSVarint(),s+=t.readSVarint(),n===1&&(l&&a.push(l),l=[]),l&&l.push([i,s]);break;case 7:l&&l.push(l[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return l&&a.push(l),a}loadFlatGeometry(){let t=this._pbf;t.pos=this._geometry;let r=t.readVarint()+t.pos,n=1,o,i=0,s=0,a=0,l=0,c=[],f=[];for(;t.pos<r;)if(i<=0&&(o=t.readVarint(),n=o&7,i=o>>3),i--,n===1||n===2)s+=t.readSVarint(),a+=t.readSVarint(),n===1&&c.push(l),f.push(s,a),l+=2;else if(n===7){if(l>0){let u=c[c.length-1];f.push(f[u],f[u+1]),l+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:c}}};W(R,"types",["Unknown","Point","LineString","Polygon"]);function ar(e,t,r){let n=R.types[e.type],o,i,s;switch(e.type){case 1:let l=[];for(o=0;o<t.length;o++)l[o]=t[o][0];s=l,r(s,e.extent);break;case 2:for(s=t,o=0;o<s.length;o++)r(s[o],e.extent);break;case 3:for(s=ir(t),o=0;o<s.length;o++)for(i=0;i<s[o].length;i++)r(s[o][i],e.extent);break;default:throw new Error("illegal vector tile type")}s.length===1?s=s[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:s},properties:e.properties};return e.id!==null&&(a.properties||={},a.properties.id=e.id),a}function ho(e,t,r){t&&r&&(e===1?t.id=r.readVarint():e===2?po(r,t):e===3?t.type=r.readVarint():e===4&&(t._geometry=r.pos))}function po(e,t){let r=e.readVarint()+e.pos;for(;e.pos<r;){let n=t._keys[e.readVarint()],o=t._values[e.readVarint()];t.properties[n]=o}}var ve=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(t,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=t,this._keys=[],this._values=[],this._features=[],t.readFields(mo,this,r),this.length=this._features.length}getGeoJSONFeature(t){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let r=this._pbf.readVarint()+this._pbf.pos;return new R(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(t,r){if(t<0||t>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[t];let n=this._pbf.readVarint()+this._pbf.pos;return new R(this._pbf,n,this.extent,this._keys,this._values,r)}};function mo(e,t,r){t&&r&&(e===15?t.version=r.readVarint():e===1?t.name=r.readString():e===5?t.extent=r.readVarint():e===2?t._features.push(r.pos):e===3?t._keys.push(r.readString()):e===4&&t._values.push(go(r)))}function go(e){let t=null,r=e.readVarint()+e.pos;for(;e.pos<r;){let n=e.readVarint()>>3;t=n===1?e.readString():n===2?e.readFloat():n===3?e.readDouble():n===4?e.readVarint64():n===5?e.readVarint():n===6?e.readSVarint():n===7?e.readBoolean():null}return t}var ce=class{layers;constructor(t,r){this.layers=t.readFields(yo,{},r)}};function yo(e,t,r){if(e===3&&r){let n=new ve(r,r.readVarint()+r.pos);n.length&&t&&(t[n.name]=n)}}function qe(e,t){let r=wo(t),n=t?.gis?.format||t?.mvt?.shape||t?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:Xe(e,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:lr(e,r)};case"geojson":return lr(e,r);case"binary-geometry":return Xe(e,r);case"binary":return Xe(e,r);default:throw new Error(n||"undefined shape")}}function Xe(e,t){let[r,n]=xo(e,t),o=we(r,n);return o.byteLength=e.byteLength,o}function xo(e,t){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(e.byteLength<=0)return[r,n];let o=new ce(new Qe.default(e));return(t&&Array.isArray(t.layers)?t.layers:Object.keys(o.layers)).forEach(s=>{let a=o.layers[s];if(a)for(let l=0;l<a.length;l++){let c=a.getBinaryFeature(l,n),f=Fo(c,t,s);r.push(f)}}),[r,n]}function lr(e,t){if(e.byteLength<=0)return[];let r=[],n=new ce(new Qe.default(e));return(Array.isArray(t.layers)?t.layers:Object.keys(n.layers)).forEach(i=>{let s=n.layers[i];if(s)for(let a=0;a<s.length;a++){let l=s.getGeoJSONFeature(a),c=To(l,t,i);r.push(c)}}),r}function wo(e){if(!e?.mvt)throw new Error("mvt options required");if(e.mvt?.coordinates==="wgs84"&&!e.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return e.gis&&F.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),e.mvt}function To(e,t,r){let n=e.toGeoJSONFeature(t.coordinates||"local",t.tileIndex);return t.layerProperty&&(n.properties||={},n.properties[t.layerProperty]=r),n}function Fo(e,t,r){let n=e.toBinaryFeature(t.coordinates||"local",t.tileIndex);return t.layerProperty&&n.properties&&(n.properties[t.layerProperty]=r),n}var Ae={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var bo="4.4.0-alpha.0",et={...Ae,dataType:null,batchType:null,version:bo,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},_e={...et,parse:async(e,t)=>qe(e,t),parseSync:qe,binary:!0};var cr="4.4.0-alpha.0";var Po=globalThis.loaders?.parseImageNode,tt=typeof Image<"u",rt=typeof ImageBitmap<"u",Io=Boolean(Po),nt=$e?!0:Io;function fr(e){switch(e){case"auto":return rt||tt||nt;case"imagebitmap":return rt;case"image":return tt;case"data":return nt;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function ur(){if(rt)return"imagebitmap";if(tt)return"image";if(nt)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function So(e){let t=vo(e);if(!t)throw new Error("Not an image");return t}function hr(e){switch(So(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)throw new Error("getImageData");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function vo(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var Ao=/^data:image\/svg\+xml/,_o=/\.svg((\?|#).*)?$/;function Be(e){return e&&(Ao.test(e)||_o.test(e))}function pr(e,t){if(Be(t)){let n=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(i){throw new Error(i.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return ot(e,t)}function ot(e,t){if(Be(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function Ee(e,t,r){let n=pr(e,r),o=self.URL||self.webkitURL,i=typeof n!="string"&&o.createObjectURL(n);try{return await Bo(i||n,t)}finally{i&&o.revokeObjectURL(i)}}async function Bo(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,o)=>{try{r.onload=()=>n(r),r.onerror=i=>{let s=i instanceof Error?i.message:"error";o(new Error(s))}}catch(i){o(i)}})}var Eo={},dr=!0;async function mr(e,t,r){let n;Be(r)?n=await Ee(e,t,r):n=ot(e,r);let o=t&&t.imagebitmap;return await Mo(n,o)}async function Mo(e,t=null){if((Co(t)||!dr)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),dr=!1}return await createImageBitmap(e)}function Co(e){for(let t in e||Eo)return!1;return!0}function gr(e){return!No(e,"ftyp",4)||!(e[8]&96)?null:Lo(e)}function Lo(e){switch(Vo(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Vo(e,t,r){return String.fromCharCode(...e.slice(t,r))}function ko(e){return[...e].map(t=>t.charCodeAt(0))}function No(e,t,r=0){let n=ko(t);for(let o=0;o<n.length;++o)if(n[o]!==e[o+r])return!1;return!0}var C=!1,fe=!0;function z(e){let t=ue(e);return Oo(t)||Uo(t)||Go(t)||jo(t)||Do(t)}function Do(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=gr(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Oo(e){let t=ue(e);return t.byteLength>=24&&t.getUint32(0,C)===2303741511?{mimeType:"image/png",width:t.getUint32(16,C),height:t.getUint32(20,C)}:null}function Go(e){let t=ue(e);return t.byteLength>=10&&t.getUint32(0,C)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,fe),height:t.getUint16(8,fe)}:null}function jo(e){let t=ue(e);return t.byteLength>=14&&t.getUint16(0,C)===16973&&t.getUint32(2,fe)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,fe),height:t.getUint32(22,fe)}:null}function Uo(e){let t=ue(e);if(!(t.byteLength>=3&&t.getUint16(0,C)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=Ro(),i=2;for(;i+9<t.byteLength;){let s=t.getUint16(i,C);if(o.has(s))return{mimeType:"image/jpeg",height:t.getUint16(i+5,C),width:t.getUint16(i+7,C)};if(!n.has(s))return null;i+=2,i+=t.getUint16(i,C)}return null}function Ro(){let e=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)e.add(r);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function ue(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function yr(e,t){let{mimeType:r}=z(e)||{},n=globalThis.loaders?.parseImageNode;return oe(n),await n(e,r)}async function xr(e,t,r){t=t||{};let o=(t.image||{}).type||"auto",{url:i}=r||{},s=zo(o),a;switch(s){case"imagebitmap":a=await mr(e,t,i);break;case"image":a=await Ee(e,t,i);break;case"data":a=await yr(e,t);break;default:oe(!1)}return o==="data"&&(a=hr(a)),a}function zo(e){switch(e){case"auto":case"data":return ur();default:return fr(e),e}}var Wo=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],$o=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Ho={image:{type:"auto",decode:!0}},it={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:cr,mimeTypes:$o,extensions:Wo,parse:xr,tests:[e=>Boolean(z(new DataView(e)))],options:Ho};var at={...Ae,version:"0.0.0",type:"mvt",fromUrl:!0,fromBlob:!1,defaultOptions:{mvt:{}},testURL:e=>!0,createDataSource(e,t){return new st(e,t)}},st=class extends k{metadataUrl=null;schema="tms";metadata;extension;mimeType=null;constructor(t,r){super(t,r,at.defaultOptions),this.metadataUrl=r.mvt?.metadataUrl||`${this.url}/tilejson.json`,this.extension=r.mvt?.extension||".png",this.getTileData=this.getTileData.bind(this),this.metadata=this.getMetadata(),Jo(this.url)&&(this.schema="template")}async getMetadata(){if(!this.metadataUrl)return null;let t;try{t=await this.fetch(this.metadataUrl)}catch(o){return console.error(o.message),null}if(!t.ok)return console.error(t.statusText),null;let r=await t.text();return $.parseTextSync?.(r)||null}getTileMIMEType(){return this.mimeType}async getTile(t){let{x:r,y:n,z:o}=t,i=this.getTileURL(r,n,o),s=await this.fetch(i);return s.ok?await s.arrayBuffer():null}async getTileData(t){let{x:r,y:n,z:o}=t.index,i=await this.getTile({x:r,y:n,z:o,layers:[]});if(i===null)return null;let s=z(i);switch(this.mimeType=this.mimeType||s?.mimeType||"application/vnd.mapbox-vector-tile",this.mimeType){case"application/vnd.mapbox-vector-tile":return await this._parseVectorTile(i,{x:r,y:n,z:o,layers:[]});default:return await this._parseImageTile(i)}}async getImageTile(t){let r=await this.getTile(t);return r?this._parseImageTile(r):null}async _parseImageTile(t){return await it.parse(t,this.loadOptions)}async getVectorTile(t){let r=await this.getTile(t);return r?this._parseVectorTile(r,t):null}async _parseVectorTile(t,r){let n={shape:"geojson-table",mvt:{coordinates:"wgs84",tileIndex:{x:r.x,y:r.y,z:r.z},...this.loadOptions?.mvt},...this.loadOptions};return await _e.parse(t,n)}getMetadataUrl(){return this.metadataUrl}getTileURL(t,r,n){switch(this.schema){case"xyz":return`${this.url}/${t}/${r}/${n}${this.extension}`;case"tms":return`${this.url}/${n}/${t}/${r}${this.extension}`;case"template":return Xo(this.url,t,r,n,"0");default:throw new Error(this.schema)}}};function Jo(e){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))|(?=.*{x})(?=.*({y}|{-y})(?=.*{z}))/.test(e)}var Zo=new RegExp("{x}","g"),Yo=new RegExp("{y}","g"),Ko=new RegExp("{z}","g");function Xo(e,t,r,n,o="0"){if(Array.isArray(e)){let s=Qo(o)%e.length;e=e[s]}let i=e;return i=i.replace(Zo,String(t)),i=i.replace(Yo,String(r)),i=i.replace(Ko,String(n)),Number.isInteger(r)&&Number.isInteger(n)&&(i=i.replace(/\{-y\}/g,String(Math.pow(2,n)-r-1))),i}function Qo(e){return Math.abs(e.split("").reduce((t,r)=>(t<<5)-t+r.charCodeAt(0)|0,0))}function wr(e,t,r,n,o){let i=t===o.maxZoom?0:o.tolerance/((1<<t)*o.extent),s={protoFeatures:[],sourceFeatures:null,numPoints:0,numSimplified:0,numFeatures:e.length,x:r,y:n,z:t,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(let a of e)qo(s,a,i,o);return s}function qo(e,t,r,n){let o=t.geometry,i=t.type,s=[];e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY);let a;switch(i){case"Point":case"MultiPoint":a=1;for(let l=0;l<o.length;l+=3)s.push(o[l],o[l+1]),e.numPoints++,e.numSimplified++;break;case"LineString":a=2,Me(s,o,e,r,!1,!1);break;case"MultiLineString":a=2;for(let l=0;l<o.length;l++)Me(s,o[l],e,r,!1,l===0);break;case"Polygon":a=3;for(let l=0;l<o.length;l++)Me(s,o[l],e,r,!0,l===0);break;case"MultiPolygon":a=3;for(let l=0;l<o.length;l++){let c=o[l];for(let f=0;f<c.length;f++)Me(s,c[f],e,r,!0,f===0)}break;default:throw new Error(`Unknown geometry type: ${i}`)}if(s.length){let l=t.tags||null;if(i==="LineString"&&n.lineMetrics){l={};for(let f in t.tags)l[f]=t.tags[f];l.mapbox_clip_start=o.start/o.size,l.mapbox_clip_end=o.end/o.size}let c={geometry:s,simplifiedType:a,tags:l};t.id!==null&&(c.id=t.id),e.protoFeatures.push(c)}}function Me(e,t,r,n,o,i){let s=n*n;if(n>0&&t.size<(o?s:n)){r.numPoints+=t.length/3;return}let a=[];for(let l=0;l<t.length;l+=3)(n===0||t[l+2]>s)&&(r.numSimplified++,a.push(t[l],t[l+1])),r.numPoints++;o&&ei(a,i),e.push(a)}function ei(e,t){let r=0;for(let n=0,o=e.length-2;n<e.length;o=n,n+=2)r+=(e[n]-e[o])*(e[n+1]+e[o+1]);if(r>0===t)for(let n=0,o=e.length;n<o/2;n+=2){let i=e[n],s=e[n+1];e[n]=e[o-2-n],e[n+1]=e[o-1-n],e[o-2-n]=i,e[o-1-n]=s}}function lt(e,t){if(e.transformed)return e;let r=1<<e.z,n=e.x,o=e.y;for(let i of e.protoFeatures){let s=i.geometry,a=i.simplifiedType;if(i.geometry=[],a===1)for(let l=0;l<s.length;l+=2)i.geometry.push(Tr(s[l],s[l+1],t,r,n,o));else for(let l=0;l<s.length;l++){let c=[];for(let f=0;f<s[l].length;f+=2)c.push(Tr(s[l][f],s[l][f+1],t,r,n,o));i.geometry.push(c)}}return e.transformed=!0,e}function Tr(e,t,r,n,o,i){return[Math.round(r*(e*n-o)),Math.round(r*(t*n-i))]}function Fr(e,t){let r=[];for(let o of e.protoFeatures){if(!o||!o.geometry)continue;let i,s;switch(o.simplifiedType){case 1:o.geometry.length===1?(i="Point",s=o.geometry[0]):(i="MultiPoint",s=o.geometry);break;case 2:o.geometry.length===1?(i="LineString",s=o.geometry[0]):(i="MultiLineString",s=o.geometry);break;case 3:o.geometry.length>1?(i="MultiPolygon",s=[o.geometry]):(i="Polygon",s=o.geometry);break;default:throw new Error(`${o.simplifiedType}is not a valid simplified type`)}switch(t.coordinates){case"EPSG:4326":case"wgs84":le(s,t.tileIndex,t.extent);break;default:ae(s,t.extent);break}let a={type:"Feature",geometry:{type:i,coordinates:s},properties:o.tags||{},id:o.id};r.push(a)}return r.length===0?null:{shape:"geojson-table",type:"FeatureCollection",features:r}}function N(e,t,r,n){let o={id:e??null,type:t,simplifiedType:void 0,geometry:r,tags:n,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};switch(t){case"Point":case"MultiPoint":case"LineString":Ce(o,r);break;case"MultiLineString":for(let i of r)Ce(o,i);break;case"Polygon":Ce(o,r[0]);break;case"MultiPolygon":for(let i of r)Ce(o,i[0]);break;default:throw new Error(String(t))}return o}function Ce(e,t){for(let r=0;r<t.length;r+=3)e.minX=Math.min(e.minX,t[r]),e.minY=Math.min(e.minY,t[r+1]),e.maxX=Math.max(e.maxX,t[r]),e.maxY=Math.max(e.maxY,t[r+1])}function Le(e,t,r,n){let o=n,i=r-t>>1,s=r-t,a,l=e[t],c=e[t+1],f=e[r],u=e[r+1];for(let h=t+3;h<r;h+=3){let p=ti(e[h],e[h+1],l,c,f,u);if(p>o)a=h,o=p;else if(p===o){let d=Math.abs(h-i);d<s&&(a=h,s=d)}}o>n&&(a-t>3&&Le(e,t,a,n),e[a+2]=o,r-a>3&&Le(e,a,r,n))}function ti(e,t,r,n,o,i){let s=o-r,a=i-n;if(s!==0||a!==0){let l=((e-r)*s+(t-n)*a)/(s*s+a*a);l>1?(r=o,n=i):l>0&&(r+=s*l,n+=a*l)}return s=e-r,a=t-n,s*s+a*a}function Pr(e,t){let r=[];switch(e.type){case"FeatureCollection":let n=0;for(let o of e.features)r.push(Ve(o,t,n++));break;case"Feature":r.push(Ve(e,t));break;default:r.push(Ve({geometry:e},t))}return r}function Ve(e,t,r){if(!e.geometry)return;let n=e.geometry.coordinates,o=e.geometry.type,i=Math.pow(t.tolerance/((1<<t.maxZoom)*t.extent),2),s=[],a=e.id;switch(t.promoteId?a=e.properties[t.promoteId]:t.generateId&&(a=r||0),o){case"Point":br(n,s);break;case"MultiPoint":for(let l of n)br(l,s);break;case"LineString":ft(n,s,i,!1);break;case"MultiLineString":if(t.lineMetrics){for(let l of n)s=[],ft(l,s,i,!1),features.push(N(a,"LineString",s,e.properties));return}break;case"Polygon":ct(n,s,i,!0);break;case"MultiPolygon":for(let l of n){let c=[];ct(l,c,i,!0),s.push(c)}break;case"GeometryCollection":for(let l of e.geometry.geometries)Ve(features,{id:a,geometry:l,properties:e.properties},t,r);break;default:throw new Error("Input data is not a valid GeoJSON object.")}return N(a,o,s,e.properties)}function br(e,t){t.push(Ir(e[0]),Sr(e[1]),0)}function ft(e,t,r,n){let o,i,s=0;for(let l=0;l<e.length;l++){let c=Ir(e[l][0]),f=Sr(e[l][1]);t.push(c,f,0),l>0&&(n?s+=(o*f-c*i)/2:s+=Math.sqrt(Math.pow(c-o,2)+Math.pow(f-i,2))),o=c,i=f}let a=t.length-3;t[2]=1,Le(t,0,a,r),t[a+2]=1,t.size=Math.abs(s),t.start=0,t.end=t.size}function ct(e,t,r,n){for(let o=0;o<e.length;o++){let i=[];ft(e[o],i,r,n),t.push(i)}}function Ir(e){return e/360+.5}function Sr(e){let t=Math.sin(e*Math.PI/180),r=.5-.25*Math.log((1+t)/(1-t))/Math.PI;return r<0?0:r>1?1:r}function E(e,t,r,n,o,i,s,a){if(r/=t,n/=t,i>=r&&s<n)return e;if(s<r||i>=n)return null;let l=[];for(let c of e){let f=c.geometry,u=c.type,h=o===0?c.minX:c.minY,p=o===0?c.maxX:c.maxY;if(h>=r&&p<n){l.push(c);continue}else if(p<r||h>=n)continue;let d=[];if(u==="Point"||u==="MultiPoint")ri(f,d,r,n,o);else if(u==="LineString")Ar(f,d,r,n,o,!1,a.lineMetrics);else if(u==="MultiLineString")ut(f,d,r,n,o,!1);else if(u==="Polygon")ut(f,d,r,n,o,!0);else if(u==="MultiPolygon")for(let y of f){let w=[];ut(y,w,r,n,o,!0),w.length&&d.push(w)}if(d.length){if(a.lineMetrics&&u==="LineString"){for(let y of d)l.push(N(c.id,u,y,c.tags));continue}(u==="LineString"||u==="MultiLineString")&&(d.length===1?(u="LineString",d=d[0]):u="MultiLineString"),(u==="Point"||u==="MultiPoint")&&(u=d.length===3?"Point":"MultiPoint"),l.push(N(c.id,u,d,c.tags))}}return l.length?l:null}function ri(e,t,r,n,o){for(let i=0;i<e.length;i+=3){let s=e[i+o];s>=r&&s<=n&&X(t,e[i],e[i+1],e[i+2])}}function Ar(e,t,r,n,o,i,s){let a=vr(e),l=o===0?ni:oi,c=e.start,f,u;for(let S=0;S<e.length-3;S+=3){let v=e[S],m=e[S+1],g=e[S+2],P=e[S+3],I=e[S+4],b=o===0?v:m,A=o===0?P:I,_=!1;s&&(f=Math.sqrt(Math.pow(v-P,2)+Math.pow(m-I,2))),b<r?A>r&&(u=l(a,v,m,P,I,r),s&&(a.start=c+f*u)):b>n?A<n&&(u=l(a,v,m,P,I,n),s&&(a.start=c+f*u)):X(a,v,m,g),A<r&&b>=r&&(u=l(a,v,m,P,I,r),_=!0),A>n&&b<=n&&(u=l(a,v,m,P,I,n),_=!0),!i&&_&&(s&&(a.end=c+f*u),t.push(a),a=vr(e)),s&&(c+=f)}let h=e.length-3,p=e[h],d=e[h+1],y=e[h+2],w=o===0?p:d;w>=r&&w<=n&&X(a,p,d,y),h=a.length-3,i&&h>=3&&(a[h]!==a[0]||a[h+1]!==a[1])&&X(a,a[0],a[1],a[2]),a.length&&t.push(a)}function vr(e){let t=[];return t.size=e.size,t.start=e.start,t.end=e.end,t}function ut(e,t,r,n,o,i){for(let s of e)Ar(s,t,r,n,o,i,!1)}function X(e,t,r,n){e.push(t,r,n)}function ni(e,t,r,n,o,i){let s=(i-t)/(n-t);return X(e,i,r+(o-r)*s,1),s}function oi(e,t,r,n,o,i){let s=(i-r)/(o-r);return X(e,t+(n-t)*s,i,1),s}function Br(e,t){let r=t.buffer/t.extent,n=e,o=E(e,1,-1-r,r,0,-1,2,t),i=E(e,1,1-r,2+r,0,-1,2,t);return(o||i)&&(n=E(e,1,-r,1+r,0,-1,2,t)||[],o&&(n=_r(o,1).concat(n)),i&&(n=n.concat(_r(i,-1)))),n}function _r(e,t){let r=[];for(let n=0;n<e.length;n++){let o=e[n],i=o.type,s;switch(i){case"Point":case"MultiPoint":case"LineString":s=ht(o.geometry,t);break;case"MultiLineString":case"Polygon":s=[];for(let a of o.geometry)s.push(ht(a,t));break;case"MultiPolygon":s=[];for(let a of o.geometry){let l=[];for(let c of a)l.push(ht(c,t));s.push(l)}break;default:throw new Error(String(i))}r.push(N(o.id,i,s,o.tags))}return r}function ht(e,t){let r=[];r.size=e.size,e.start!==void 0&&(r.start=e.start,r.end=e.end);for(let n=0;n<e.length;n+=3)r.push(e[n]+t,e[n+1],e[n+2]);return r}var dt={name:"TableTiler",id:"table-tiler",module:"mvt",version:"0.0.0",extensions:["mvt"],mimeTypes:["application/octet-stream"],type:"table",fromUrl:!1,fromBlob:!1,defaultOptions:{table:{coordinates:"local",promoteId:void 0,maxZoom:14,indexMaxZoom:5,maxPointsPerTile:1e4,tolerance:3,extent:4096,buffer:64,generateId:void 0}},testURL:e=>e.endsWith(".geojson"),createDataSource(e,t){let r=typeof e=="string"||e instanceof Blob,n=t?.core?.loaders?.[0],o=r?ii(e,n):e;return new ke(o,t)}},Ne=class extends k{stats=new U({id:"table-tile-source",stats:[new B("tiles","count"),new B("features","count")]});mimeType="application/vnd.mapbox-vector-tile";localCoordinates=!0;tableOptions;schema=null;tiles={};tileCoords=[];ready;metadata;constructor(t,r){super(t,r,dt.defaultOptions),this.tableOptions=this.options.table,this.getTileData=this.getTileData.bind(this),this.ready=this.initializeTilesAsync(t),this.metadata=this.getMetadata()}async initializeTilesAsync(t){let r=await t;this.schema=Ge(r),this.createRootTiles(r)}async getMetadata(){return await this.ready,{schema:this.schema,minZoom:0,maxZoom:this.tableOptions.maxZoom}}async getSchema(){return await this.ready,this.schema}async getVectorTile(t){await this.ready;let r=this.getTileSync(t);return F.info(2,"getVectorTile",t,r)(),r}async getTile(t){return await this.ready,this.getTileSync(t)}async getTileData(t){let{x:r,y:n,z:o}=t.index;return(await this.getVectorTile({x:r,y:n,z:o}))?.features||[]}getTileSync(t){let r=this.getProtoTile(t);return r?Fr(r,{coordinates:this.tableOptions.coordinates,tileIndex:t,extent:this.tableOptions.extent}):null}createRootTiles(t){if(this.tableOptions.maxZoom<0||this.tableOptions.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(this.tableOptions.promoteId&&this.tableOptions.generateId)throw new Error("promoteId and generateId cannot be used together.");F.log(1,"TableVectorTileSource creating root tiles",this.tableOptions)(),F.time(1,"preprocess table")();let r=Pr(t,this.tableOptions);if(F.timeEnd(1,"preprocess table")(),F.time(1,"generate tiles")(),r=Br(r,this.tableOptions),r.length===0){F.log(1,"TableVectorTileSource: no features generated")();return}this.splitTile(r,0,0,0);let n=this.tiles[0];F.log(1,`root tile features: ${n.numFeatures}, points: ${n.numPoints}`)(),F.timeEnd(1,"generate tiles")(),F.log(1,`TableVectorTileSource: tiles generated: ${this.stats.get("total").count}`,this.stats)()}getProtoTile(t){let{z:r,y:n}=t,{x:o}=t,{extent:i}=this.tableOptions;if(r<0||r>24)return null;let s=1<<r;o=o+s&s-1;let a=pt(r,o,n);if(this.tiles[a])return lt(this.tiles[a],i);F.log(F,"drilling down to z%d-%d-%d",r,o,n)();let l=r,c=o,f=n,u;for(;!u&&l>0;)l--,c=c>>1,f=f>>1,u=this.tiles[pt(l,c,f)];return!u||!u.sourceFeatures?null:(F.log(1,"found parent tile z%d-%d-%d",l,c,f)(),F.time(1,"drilling down")(),this.splitTile(u.sourceFeatures,l,c,f,r,o,n),F.timeEnd(1,"drilling down")(),this.tiles[a]?lt(this.tiles[a],i):null)}splitTile(t,r,n,o,i,s,a){let l=[t,r,n,o];for(;l.length;){o=l.pop(),n=l.pop(),r=l.pop(),t=l.pop();let c=1<<r,f=pt(r,n,o),u=this.tiles[f];if(!u){F.time(2,"tile creation")(),u=this.tiles[f]=wr(t,r,n,o,this.tableOptions),this.tileCoords.push({z:r,x:n,y:o});let I=`z${r}`,b=this.stats.get(I,"count");b.incrementCount(),b=this.stats.get("total"),b.incrementCount(),b=Ne.stats.get(I,"count"),b.incrementCount(),b=Ne.stats.get("total"),b.incrementCount(),F.log(2,"tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",r,n,o,u.numFeatures,u.numPoints,u.numSimplified)(),F.timeEnd(2,"tile creation")()}if(u.sourceFeatures=t,i===void 0){if(r===this.tableOptions.indexMaxZoom||u.numPoints<=this.tableOptions.maxPointsPerTile)continue}else{if(r===this.tableOptions.maxZoom||r===i)continue;if(i!==void 0){let I=i-r;if(n!==s>>I||o!==a>>I)continue}}if(u.sourceFeatures=null,t.length===0)continue;F.time(2,"clipping tile")();let h=.5*this.tableOptions.buffer/this.tableOptions.extent,p=.5-h,d=.5+h,y=1+h,w=null,S=null,v=null,m=null,g=E(t,c,n-h,n+d,0,u.minX,u.maxX,this.tableOptions),P=E(t,c,n+p,n+y,0,u.minX,u.maxX,this.tableOptions);t=null,g&&(w=E(g,c,o-h,o+d,1,u.minY,u.maxY,this.tableOptions),S=E(g,c,o+p,o+y,1,u.minY,u.maxY,this.tableOptions),g=null),P&&(v=E(P,c,o-h,o+d,1,u.minY,u.maxY,this.tableOptions),m=E(P,c,o+p,o+y,1,u.minY,u.maxY,this.tableOptions),P=null),F.timeEnd(2,"clipping tile")(),l.push(w||[],r+1,n*2,o*2),l.push(S||[],r+1,n*2,o*2+1),l.push(v||[],r+1,n*2+1,o*2),l.push(m||[],r+1,n*2+1,o*2+1)}}},ke=Ne;W(ke,"stats",new U({id:"table-tile-source-all",stats:[new B("count","tiles"),new B("count","features")]}));function pt(e,t,r){return((1<<e)*r+t)*32+e}async function ii(e,t){if(typeof e=="string"){let o=await(await fetch(e)).arrayBuffer();return await t.parse(o)}let r=await e.arrayBuffer();return await t.parse(r)}return Dr(he);})();
8
8
  /*! Bundled license information:
9
9
 
10
10
  ieee754/index.js: