PageSourceSearch

https://app.citylogix.com/assets/VectorTileLayerView2D-0295af9b.js

js citylogix.com collected 2026-10-10 00:49:13 UTC 46,600 bytes, 1 lines download raw bytes

1import{aF as j}from"./index-ec743896.js";import{H as me,a8 as we,cZ as N,fE as be,z as ve,w as Q,ab as G,bq as Te,aF as L,gg as Se,ar as Ie,u as R,ah as xe,l as z,U as Ce,_ as Pe,j as De,k as Re}from"./projectors-89580c2c.js";import{y as Me,p as ke}from"./diffUtils-b5347bb0.js";import{p as Le}from"./workers-dcb5a3b8.js";import{t as x}from"./Rect-ea14f53a.js";import{h as pe,A as _e}from"./Texture-12c48ff4.js";import{n as B}from"./pbf-a4c8b2f7.js";import{u as He}from"./rasterizingUtils-0a47cdf7.js";import{e as C}from"./TileKey-a9913e43.js";import{e as Fe}from"./LRUCache-2a3be9c8.js";import{o as D,t as M,c as Ue}from"./constants-cf7964f9.js";import{j as ye,h as $e,p as X}from"./Tile-177ac237.js";import{n as Ae,a as ze,y as qe}from"./SymbolFader-fc9d470f.js";import{z as ge}from"./TileInfo-3c4aa26a.js";import{d as Y}from"./MapView-dc83c12e.js";import{b as Ve}from"./WGLContainer-5a1d0962.js";import{n as Qe}from"./TileContainer-face4c34.js";import{_ as Z}from"./Graphic-b38a95b0.js";import{s as Be}from"./PooledRBush-40c70706.js";import{s as Ee,o as Oe}from"./GraphicOrigin-a72a4e38.js";import{t as J,a as ee}from"./SourceLayerData-b3186074.js";import{d as Ke}from"./GeometryUtils-d806ae25.js";import{D as We,l as te}from"./StyleRepository-21da92b1.js";import{b as je}from"./LayerView2D-fc9b817c.js";import{d as Ne}from"./LayerView-36837ce5.js";import{i as Ge}from"./RefreshableLayerView-b6b1333b.js";import{f as se}from"./Scheduler-b837355d.js";import"./Queue-875ec290.js";import"./intl-ad646b03.js";import"./Cyclical-976bf4bf.js";import"./enums-f9b09dbc.js";import"./memoryEstimations-e39a3b7f.js";import"./defaultCIMValues-eec8d472.js";import"./definitions-c9d1325d.js";import"./ReactiveMap-7d651aa2.js";import"./signal-c6bff383.js";import"./Query-855c25fd.js";import"./jsonUtils-87334bc8.js";import"./typeUtils-c530565a.js";import"./Field-545bfca1.js";import"./fieldType-d07b5726.js";import"./layerUtils-e17c9ca4.js";import"./arcadeUtils-ff917068.js";import"./quickselect-b7b34c34.js";import"./config-1337d16e.js";import"./BufferObject-f9badb60.js";import"./VertexArrayObject-bc224e72.js";import"./VertexAttributeLocations-5351167d.js";import"./VertexBuffer-f34939b0.js";import"./TileKey-4739c75b.js";import"./CollectionFlattener-05fbfd0e.js";import"./GraphicsCollection-ad48d5fc.js";import"./projectionUtils-65ca48fc.js";import"./jsxFactory-f9f03aee.js";import"./uuid-409b6a0c.js";import"./sanitizerUtils-8778e332.js";import"./UpdatingHandles-2cbd8cdf.js";import"./asyncUtils-c128580c.js";import"./screenUtils-c9e101bc.js";import"./Map-d496c183.js";import"./Basemap-ed0c857e.js";import"./loadAll-49a2a2f4.js";import"./PortalItem-c1e0ac6b.js";import"./isBasemap-a44d5d0f.js";import"./writeUtils-9d1c4624.js";import"./persistable-061755af.js";import"./MD5-715f37cd.js";import"./multiOriginJSONSupportUtils-c978f4c3.js";import"./resourceExtension-296c26fa.js";import"./PolygonCollection-12c34299.js";import"./mat4f32-176526a0.js";import"./mat4-6eafcee1.js";import"./TablesMixin-b62f11eb.js";import"./HeightModelInfo-b60513ff.js";import"./timeZoneUtils-48a51224.js";import"./vec2f64-1f37f5b9.js";import"./normalizeUtils-13dbdedd.js";import"./normalizeUtilsCommon-305fa5aa.js";import"./utils-9bb59dea.js";import"./utils-89e1adff.js";import"./vec32-cc67dc50.js";import"./unitBezier-0bb0dc5d.js";import"./imageUtils-8d625b3a.js";import"./capabilities-2af38b34.js";import"./Version-ddbf928d.js";import"./Utils-9f79cbf3.js";import"./BoundingBox-f89c8d18.js";import"./VertexElementDescriptor-2925c6af.js";import"./ProgramTemplate-46761392.js";import"./vec3f32-5edf24fc.js";import"./Container-3833bb6a.js";import"./EffectView-c733d290.js";import"./parser-e8753ad4.js";import"./earcut-5a6c70eb.js";import"./featureConversionUtils-824de5e1.js";import"./aaBoundingBox-320413aa.js";import"./DoubleArray-eaf5f7f5.js";import"./mat4f64-78ff2589.js";import"./OptimizedFeature-12739fdd.js";import"./OptimizedGeometry-0f89db72.js";import"./OptimizedFeatureSet-5dc8ee29.js";import"./createFeatureId-0ffcb182.js";import"./getPopupProvider-997a7607.js";import"./fieldUtils-415e03cd.js";import"./typeUtils-24903583.js";import"./SimpleMarkerSymbol-561835ce.js";import"./TextSymbol-57f1eab9.js";import"./PictureMarkerSymbol-ff7b77f8.js";import"./colorUtils-e66bf786.js";import"./vec42-42452832.js";import"./vec4f64-c1b9eff9.js";
1import"./utils-959993e6.js";import"./layerViewUtils-caa119a9.js";const fe=Symbol("isVectorTileGraphicOrigin");function ie(n){return!!n&&fe in n}class k{constructor(e,t){this._width=0,this._height=0,this._free=[],this._width=e,this._height=t,this._free.push(new x(0,0,e,t))}get width(){return this._width}get height(){return this._height}allocate(e,t){if(e>this._width||t>this._height)return new x;let s=null,r=-1;for(let i=0;i<this._free.length;++i){const a=this._free[i];e<=a.width&&t<=a.height&&(s===null||a.y<=s.y&&a.x<=s.x)&&(s=a,r=i)}return s===null?new x:(this._free.splice(r,1),s.width<s.height?(s.width>e&&this._free.push(new x(s.x+e,s.y,s.width-e,t)),s.height>t&&this._free.push(new x(s.x,s.y+t,s.width,s.height-t))):(s.width>e&&this._free.push(new x(s.x+e,s.y,s.width-e,s.height)),s.height>t&&this._free.push(new x(s.x,s.y+t,e,s.height-t))),new x(s.x,s.y,e,t))}release(e){for(let t=0;t<this._free.length;++t){const s=this._free[t];if(s.y===e.y&&s.height===e.height&&s.x+s.width===e.x)s.width+=e.width;else if(s.x===e.x&&s.width===e.width&&s.y+s.height===e.y)s.height+=e.height;else if(e.y===s.y&&e.height===s.height&&e.x+e.width===s.x)s.x=e.x,s.width+=e.width;else{if(e.x!==s.x||e.width!==s.width||e.y+e.height!==s.y)continue;s.y=e.y,s.height+=e.height}this._free.splice(t,1),this.release(e)}this._free.push(e)}}let re=class{constructor(e,t,s){this.width=0,this.height=0,this._dirties=[],this._glyphData=[],this._currentPage=0,this._glyphIndex={},this._textures=[],this._rangePromises=new Map,this.width=e,this.height=t,this._glyphSource=s,this._binPack=new k(e-4,t-4),this._glyphData.push(new Uint8Array(e*t)),this._dirties.push(!0),this._textures.push(void 0)}getGlyphItems(e,t){const s=[],r=this._glyphSource,i=new Set,a=1/256;for(const o of t){const h=Math.floor(o*a);i.add(h)}const l=[];return i.forEach(o=>{const h=e+o;if(this._rangePromises.has(h))l.push(this._rangePromises.get(h));else{const c=r.getRange(e,o).then(()=>{this._rangePromises.delete(h)},()=>{this._rangePromises.delete(h)});this._rangePromises.set(h,c),l.push(c)}}),Promise.all(l).then(()=>{let o=this._glyphIndex[e];o||(o={},this._glyphIndex[e]=o);for(const h of t){const c=o[h];if(c){s[h]={sdf:!0,rect:c.rect,metrics:c.metrics,page:c.page,code:h};continue}const d=r.getGlyph(e,h);if(!(d!=null&&d.metrics))continue;const u=d.metrics;let p;if(u.width===0)p=new x(0,0,0,0);else{const _=u.width+6,f=u.height+2*3;let g=_%4?4-_%4:4,T=f%4?4-f%4:4;g===1&&(g=5),T===1&&(T=5),p=this._binPack.allocate(_+g,f+T),p.isEmpty&&(this._dirties[this._currentPage]||(this._glyphData[this._currentPage]=null),this._currentPage=this._glyphData.length,this._glyphData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(void 0),this._binPack=new k(this.width-4,this.height-4),p=this._binPack.allocate(_+g,f+T));const w=this._glyphData[this._currentPage],b=d.bitmap;let P,m;if(b)for(let S=0;S<f;S++){P=_*S,m=this.width*(p.y+S+1)+p.x;for(let I=0;I<_;I++)w[m+I+1]=b.at(P+I)}}o[h]={rect:p,metrics:u,tileIDs:null,page:this._currentPage},s[h]={sdf:!0,rect:p,metrics:u,page:this._currentPage,code:h},this._dirties[this._currentPage]=!0}return s})}removeGlyphs(e){for(const t in this._glyphIndex){const s=this._glyphIndex[t];if(!s)continue;let r;for(const i in s)if(r=s[i],r.tileIDs.delete(e),r.tileIDs.size===0){const a=this._glyphData[r.page],l=r.rect;let o,h;for(let c=0;c<l.height;c++)for(o=this.width*(l.y+c)+l.x,h=0;h<l.width;h++)a[o+h]=0;delete s[i],this._dirties[r.page]=!0}}}bind(e,t,s,r=0){if(!this._textures[s]){const a=new pe(this.width,this.height);a.pixelFormat=6406,a.wrapMode=33071,this._textures[s]=new _e(e,a,new Uint8Array(this.width*this.height))}const i=this._textures[s];i.setSamplingMode(t),this._dirties[s]&&i.setData(this._glyphData[s]),e.bindTexture(i,r),this._dirties[s]=!1}destroy(){this.dispose()}dispose(){this._glyphData.length=0,this._binPack=null;for(const e of this._textures)e&&e.dispose();this._textures.length=0}},q=class{constructor(e){if(this._metrics=[],!e)return void(this._allBitmaps=null);const t=new Map;let s=0;for(;e.next();)switch(e.tag()){case 1:{const a=e.getMessage();for(;a.next();)switch(a.tag()){case 3:{const l=a.getMessage();let o,h,c,d,u,p,y;for(;l.next();)switch(l.tag()){case 1:o=l.getUInt32();break;case 2:h=l.getBytes();break;case 3:c=l.getUInt32();break;case 4:d=l.getUInt32();break;case 5:u=l.getSInt32();break;case 6:p=l.getSInt32();break;case 7:y=l.getUInt32();break;default:l.skip()}if(l.release(),o){const _=(h==null?void 0:h.length)??0;this._metrics[o]={width:c,height:d,left:u,top:p,advance:y,startOffset:s,length:_},t.set(o,h),s+=_}break}default:a.skip()}a.release();break}default:e.skip()}
1const r=new Uint8Array(s),i=this._metrics;for(const[a,l]of t){const{startOffset:o,length:h}=i[a];if(l)for(let c=0;c<h;++c)r[o+c]=l[c]}this._allBitmaps=r}getMetrics(e){return this._metrics[e]}getBitmap(e){if(!this._allBitmaps)return;const t=this._metrics[e];if(t===void 0)return;const{startOffset:s,length:r}=t;return r!==0?new Ye(this._allBitmaps,s,r):void 0}},Xe=class{constructor(){this._ranges=[]}get ranges(){return this._ranges}getRange(e){return this._ranges[e]}addRange(e,t){this._ranges[e]=t}},ae=class{constructor(e){this._glyphInfo={},this._baseURL=e}getRange(e,t){const s=this._getFontStack(e);if(s.getRange(t))return Promise.resolve();const r=256*t,i=r+255;if(this._baseURL){const a=this._baseURL.replace("{fontstack}",e).replace("{range}",r+"-"+i);return me(a,{responseType:"array-buffer"}).then(l=>{s.addRange(t,new q(new B(new Uint8Array(l.data),new DataView(l.data))))}).catch(()=>{s.addRange(t,new q)})}return s.addRange(t,new q),Promise.resolve()}getGlyph(e,t){const s=this._getFontStack(e);if(!s)return;const r=Math.floor(t/256),i=s.getRange(r);return i?{metrics:i.getMetrics(t),bitmap:i.getBitmap(t)}:void 0}_getFontStack(e){let t=this._glyphInfo[e];return t||(t=this._glyphInfo[e]=new Xe),t}},Ye=class{constructor(e,t,s){this._array=e,this._start=t,this.length=s}at(e){return 0<=e&&e<this.length?this._array[this._start+e]:void 0}};const Ze="dasharray-";class ${constructor(e,t,s=0){this._size=[],this._mosaicsData=[],this._textures=[],this._dirties=[],this._maxItemSize=0,this._currentPage=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},this.pixelRatio=1,t<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=e,this._pageHeight=t,s>0&&(this._maxItemSize=s),this._binPack=new k(e-4,t-4)}destroy(){this.dispose()}dispose(){this._binPack=null,this._mosaicsData.length=0,this._mosaicRects={};for(const e of this._textures)e&&e.dispose();this._textures.length=0}getWidth(e){return e>=this._size.length?-1:this._size[e][0]}getHeight(e){return e>=this._size.length?-1:this._size[e][1]}getPageSize(e){return e>=this._size.length?null:this._size[e]}setSpriteSource(e){if(this.dispose(),this.pixelRatio=e.devicePixelRatio,this._mosaicsData.length===0){this._binPack=new k(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth),s=Math.floor(this._pageHeight),r=new Uint32Array(t*s);this._mosaicsData[0]=r,this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0)}this._sprites=e}getSpriteItem(e,t=!1){let s,r,i=this._mosaicRects[e];if(i)return i;if(!this._sprites||this._sprites.loadStatus!=="loaded"||(e&&e.startsWith(Ze)?([s,r]=this._rasterizeDash(e),t=!0):s=this._sprites.getSpriteInfo(e),!(s!=null&&s.width)||!s.height||s.width<0||s.height<0))return null;const a=s.width,l=s.height,[o,h,c]=this._allocateImage(a,l);return o.width<=0?null:(this._copy(o,s,h,c,t,r),i={type:"sprite",rect:o,width:a,height:l,sdf:s.sdf,simplePattern:!1,rasterizationScale:s.pixelRatio??1,samplingMode:"Linear",page:h},this._mosaicRects[e]=i,i)}getSpriteItems(e){const t={};for(const s of e)t[s.name]=this.getSpriteItem(s.name,s.repeat);return t}getMosaicItemPosition(e,t){const s=this.getSpriteItem(e,t),r=s==null?void 0:s.rect;if(!r)return null;r.width=s.width,r.height=s.height;const i=s.width,a=s.height,l=2;return{tl:[r.x+l,r.y+l],br:[r.x+l+i,r.y+l+a],page:s.page}}bind(e,t,s=0,r=0){if(s>=this._size.length||s>=this._mosaicsData.length)return;if(!this._textures[s]){const a=new pe(this._size[s][0],this._size[s][1]);a.wrapMode=33071,this._textures[s]=new _e(e,a,new Uint8Array(this._mosaicsData[s].buffer))}const i=this._textures[s];i.setSamplingMode(t),this._dirties[s]&&i.setData(new Uint8Array(this._mosaicsData[s].buffer)),e.bindTexture(i,r),this._dirties[s]=!1}static _copyBits(e,t,s,r,i,a,l,o,h,c,d){let u=r*t+s,p=o*a+l;if(d){p-=a;for(let y=-1;y<=c;y++,u=((y+c)%c+r)*t+s,p+=a)for(let _=-1;_<=h;_++)i[p+_]=e[u+(_+h)%h]}else for(let y=0;y<c;y++){for(let _=0;_<h;_++)i[p+_]=e[u+_];u+=t,p+=a}}_copy(e,t,s,r,i,a){if(!this._sprites||this._sprites.loadStatus!=="loaded"||s>=this._mosaicsData.length)return;const l=new Uint32Array(a?a.buffer:this._sprites.image.buffer),o=this._mosaicsData[s],h=2,c=a?t.width:this._sprites.width;$._copyBits(l,c,t.x,t.y,o,r[0],e.x+h,e.y+h,t.width,t.height,i),this._dirties[s]=!0}_allocateImage(e,t){e+=2,t+=2;const s=Math.max(e,t);if(this._maxItemSize&&this._maxItemSize<s){const l=new x(0,0,e,t);return this._mosaicsData.push(new Uint32Array(e*t)),this._dirties.push(!0),this._size.push([e,t]),this._textures.push(void 0),[l,this._mosaicsData.length-1,[e,t]]}let r=e%4?4-e%4:4,i=t%4?4-t%4:4;r===1&&(r=5),i===1&&(i=5);const a=this._binPack.allocate(e+r,t+i);return a.width<=0?(this._dirties[this._currentPage]||(this._mosaicsData[this._currentPage]=null),this._currentPage=this._mosaicsData.length,this._mosaicsData.push(new Uint32Array(this._pageWidth*this._pageHeight)),this._dirties.push(!0),this._size.push([this._pageWidth,this._pageHeight]),this._textures.push(void 0),this._binPack=new k(this._pageWidth-4,this._pageHeight-4),this._allocateImage(e,t)):[a,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(e){const t=/\[(.*?)\]/,s=e.match(t);if(!s)return null;const r=s[1].split(",").map(Number),i=e.slice(e.lastIndexOf("-")+1),[a,l,o]=He(r,i);return[{x:0,y:0,width:l,height:o,sdf:!0,pixelRatio:1},new Uint8Array(a.buffer)]}}let Je=class{constructor(e,t,s,r){this._layer=e,this._styleRepository=t,this.devicePixelRatio=s,this._sourceDataMaxLOD=r,this._spriteMosaic=null,this._glyphMosaic=null,this._connection=null,this._spriteSourceAbortController=null,this._startOptionsInputSignal=null,this._inputSignalEventListener=null}destroy(){var e,t,s;(e=this._connection)==null||e.close(),this._connection=null,this._styleRepository=null,this._layer=null,(t=this._spriteMosaic)==null||t.destroy(),this._spriteMosaic=null,this._glyphMosaic=null,this._spriteSourceAbortController=we(this._spriteSourceAbortController),this._spriteSourcePromise=null,this._inputSignalEventListener&&((s=this._startOptionsInputSignal)==null||s.removeEventListener("abort",this._inputSignalEventListener)),this._startOptionsInputSignal=null,this._inputSignalEventListener=null}get spriteMosaic(){return this._spriteSourcePromise.then(()=>this._spriteMosaic)}get glyphMosaic(){return this._glyphMosaic}async start(e){this._requestSprite(e);
1const t=this._layer.currentStyleInfo.glyphsUrl,s=new ae(t?N(t,{...this._layer.customParameters,token:this._layer.apiKey}):null);this._glyphMosaic=new re(1024,1024,s),this._broadcastPromise=Le("WorkerTileHandler",{client:this,schedule:e.schedule,signal:e.signal}).then(r=>{var i;if(this._layer&&((i=this._connection)==null||i.close(),this._connection=r,this._layer&&!this._connection.closed)){const a=r.broadcast("setStyle",{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD},e);Promise.all(a).catch(l=>be(l))}})}_requestSprite(e){var a,l;(a=this._spriteSourceAbortController)==null||a.abort();const t=new AbortController;this._spriteSourceAbortController=t;const s=e==null?void 0:e.signal;this._inputSignalEventListener&&((l=this._startOptionsInputSignal)==null||l.removeEventListener("abort",this._inputSignalEventListener)),this._startOptionsInputSignal=null,s&&(this._inputSignalEventListener=et(t),s.addEventListener("abort",this._inputSignalEventListener,{once:!0}));const{signal:r}=t,i={...e,signal:r};this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,i),this._spriteSourcePromise.then(o=>{ve(r),this._spriteMosaic=new $(1024,1024,250),this._spriteMosaic.setSpriteSource(o)})}async updateStyle(e){const t=[];for(const s of e)s.type===4?t.push({type:4,data:{spriteSource:null}}):t.push(s);return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast("updateStyle",t)),this._broadcastPromise}setSpriteSource(e){const t=new $(1024,1024,250);return t.setSpriteSource(e),this._spriteMosaic=t,this._spriteSourcePromise=Promise.resolve(e),this._spriteSourceAbortController=null,t}async setStyle(e,t,s){await this._broadcastPromise,this._styleRepository=e,this._sourceDataMaxLOD=s,this._requestSprite();const r=new ae(this._layer.currentStyleInfo.glyphsUrl?N(this._layer.currentStyleInfo.glyphsUrl,{...this._layer.customParameters,token:this._layer.apiKey}):null);return this._glyphMosaic=new re(1024,1024,r),this._broadcastPromise=Promise.all(this._connection.broadcast("setStyle",{style:t,sourceDataMaxLOD:this._sourceDataMaxLOD})),this._broadcastPromise}async fetchTileData(e,t){const s=await this._getRefKeys(e,t);return this._getSourcesData(Object.keys(this._layer.sourceNameToSource),s,t)}async fetchTilePBFs(e){const t=Object.keys(this._layer.sourceNameToSource),s={},r=await this._getRefKeys(e,s),i=[],a=[];for(let l=0;l<r.length;l++)if(r[l].value==null||t[l]==null)a.push(null);else{const o=r[l].value,h=this._getTilePayload(o,t[l],s);h.then(c=>{i.push({...c,key:o})}),a.push(h)}return Promise.all(a).then(()=>i)}async parseTileData(e,t){const s=e&&e.data;if(!s)return null;const{sourceName2DataAndRefKey:r,transferList:i}=s;return Object.keys(r).length===0?null:this._broadcastPromise.then(()=>this._connection.invoke("createTileAndParse",{key:e.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:e.styleLayerUIDs},{...t,transferList:i}))}async getSprites(e){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(e)}getGlyphs(e){return this._glyphMosaic.getGlyphItems(e.font,e.codePoints)}async _getTilePayload(e,t,s){const r=C.pool.acquire(e.id),i=this._layer.sourceNameToSource[t],{level:a,row:l,col:o}=r;C.pool.release(r);try{return{protobuff:await i.requestTile(a,l,o,s),sourceName:t}}catch(h){if(Q(h))throw h;return{protobuff:null,sourceName:t}}}async _getRefKeys(e,t){const s=this._layer.sourceNameToSource,r=new Array;for(const i in s){const a=s[i].getRefKey(e,t);r.push(a)}return G(r)}_getSourcesData(e,t,s){const r=[];for(let i=0;i<t.length;i++)if(t[i].value==null||e[i]==null)r.push(null);else{const a=t[i].value,l=this._getTilePayload(a,e[i],s);r.push(l)}return G(r).then(i=>{const a={},l=[];for(let o=0;o<i.length;o++){const h=i[o].value;if(h&&h.protobuff&&h.protobuff.byteLength>0){const c=t[o].value.id;a[h.sourceName]={refKey:c,protobuff:h.protobuff},l.push(h.protobuff)}}return{sourceName2DataAndRefKey:a,transferList:l}})}};function et(n){return()=>n.abort()}const tt=1e-6,st=(n,e)=>n+1/(1<<2*e);let le=class{constructor(e,t){this._tiles=new Map,this._tileCache=new Fe(40,s=>s.dispose()),this._viewSize=[0,0],this._visibleTiles=new Map,this.acquireTile=e.acquireTile,this.releaseTile=e.releaseTile,this.tileInfoView=e.tileInfoView,this._container=t}
1destroy(){for(const e of this._tiles.values())e.dispose();this._tiles=null,this._tileCache.clear(),this._tileCache=null}update(e){this._updateCacheSize(e);const t=this.tileInfoView,s=t.getTileCoverage(e.state,0,!0,"smallest");if(!s)return!0;const{spans:r,lodInfo:i}=s,{level:a}=i,l=this._tiles,o=new Set,h=new Set;for(const{row:d,colFrom:u,colTo:p}of r)for(let y=u;y<=p;y++){const _=C.getId(a,d,i.normalizeCol(y),i.getWorldForColumn(y)),f=this._getOrAcquireTile(_);o.add(_),f.processed()?this._addToContainer(f):h.add(new C(_))}for(const[d,u]of l)u.isCoverage=o.has(d);for(const d of h)this._findPlaceholdersForMissingTiles(d,o);let c=!1;for(const[d,u]of l)u.neededForCoverage=o.has(d),u.neededForCoverage||u.isHoldingForFade&&t.intersects(s,u.key)&&o.add(d),u.isFading&&(c=!0);for(const d of this._tiles.keys())o.has(d)||this._releaseTile(d);return ye.pool.release(s),!c}clear(){this._tiles.clear(),this._tileCache.clear(),this._visibleTiles.clear()}clearCache(){this._tileCache.clear()}getIntersectingTiles(e,t,s,r,i){const a=[0,0],l=[0,0];r.toMap(a,e-s,t+s),r.toMap(l,e+s,t-s);const o=Math.min(a[0],l[0]),h=Math.min(a[1],l[1]),c=Math.max(a[0],l[0]),d=Math.max(a[1],l[1]),u=Te(o,h,c,d),p=L(),y=[];for(const _ of this._visibleTiles.values())this.tileInfoView.getTileBounds(p,_.key),Se(u,p)&&y.push(_);if(i!=null&&i.length>0){const _=new Set(y.map(g=>g.id)),f=i.filter(g=>!_.has(g.tileKey.id)).map(g=>this._visibleTiles.get(g.tileKey.id)).filter(g=>g!==void 0);y.push(...f)}return y}_findPlaceholdersForMissingTiles(e,t){const s=[];for(const i of this._tiles.values())this._addPlaceholderChild(s,i,e,t);const r=s.reduce(st,0);Math.abs(1-r)<tt||this._addPlaceholderParent(e.id,t)}_addPlaceholderChild(e,t,s,r){t.key.level<=s.level||!t.hasData()||rt(s,t.key)&&(this._addToContainer(t),r.add(t.id),e.push(t.key.level-s.level))}_addPlaceholderParent(e,t){const s=this._tiles;let r=e;for(;;){if(r=it(r),!r||t.has(r))return;const i=s.get(r);if(i!=null&&i.hasData())return this._addToContainer(i),void t.add(i.id)}}_getOrAcquireTile(e){let t=this._tiles.get(e);return t||(t=this._tileCache.pop(e),t||(t=this.acquireTile(new C(e))),this._tiles.set(e,t),t)}_releaseTile(e){const t=this._tiles.get(e);this.releaseTile(t),this._removeFromContainer(t),this._tiles.delete(e),t.hasData()?this._tileCache.put(e,t,1):t.dispose()}_addToContainer(e){let t;const s=[],r=this._container;if(r.contains(e))return;const i=this._visibleTiles;for(const a of i.values())this._canConnectDirectly(e,a)&&s.push(a),t==null&&this._canConnectDirectly(a,e)&&(t=a);if(t!=null){for(const a of s)t.childrenTiles.delete(a),e.childrenTiles.add(a),a.parentTile=e;t.childrenTiles.add(e),e.parentTile=t}else for(const a of s)e.childrenTiles.add(a),a.parentTile=e;i.set(e.id,e),r.addChild(e)}_removeFromContainer(e){if(this._visibleTiles.delete(e.id),this._container.removeChild(e),e.parentTile!=null){e.parentTile.childrenTiles.delete(e);for(const t of e.childrenTiles)e.parentTile!=null&&e.parentTile.childrenTiles.add(t)}for(const t of e.childrenTiles)t.parentTile=e.parentTile;e.parentTile=null,e.childrenTiles.clear()}_canConnectDirectly(e,t){const s=e.key;let{level:r,row:i,col:a,world:l}=t.key;const o=this._visibleTiles;for(;r>0;){if(r--,i>>=1,a>>=1,s.level===r&&s.row===i&&s.col===a&&s.world===l)return!0;if(o.has(`${r}/${i}/${a}/${l}`))return!1}return!1}_updateCacheSize(e){const t=e.state.size;if(t[0]===this._viewSize[0]&&t[1]===this._viewSize[1])return;const s=Math.ceil(t[0]/D)+1,r=Math.ceil(t[1]/D)+1;this._viewSize[0]=t[0],this._viewSize[1]=t[1],this._tileCache.maxSize=5*s*r}};function it(n){const[e,t,s,r]=n.split("/"),i=parseInt(e,10);return i===0?null:`${i-1}/${parseInt(t,10)>>1}/${parseInt(s,10)>>1}/${parseInt(r,10)}`}function rt(n,e){const t=e.level-n.level;return n.row===e.row>>t&&n.col===e.col>>t&&n.world===e.world}let at=class extends Ve{_createTransforms(){return{displayViewScreenMat3:Y(),tileMat3:Y()}}};const A=1e-6;function ne(n,e){if(n){const t=n.getLayoutProperty("visibility");if(!t||t.getValue()!==1&&(n.minzoom===void 0||n.minzoom<e+A)&&(n.maxzoom===void 0||n.maxzoom>=e-A))return!0}return!1}class lt extends Qe{constructor(e){super(e),this._backgroundTiles=[],this._computeDisplayInfoView(e)}destroy(){var e,t;super.destroy(),this.removeAllChildren(),(e=this._spriteMosaic)==null||e.dispose(),this._spriteMosaic=null,(t=this._glyphMosaic)==null||t.dis
1pose(),this._glyphMosaic=null,this._symbolFader!=null&&(this._symbolFader.clear(),this._symbolFader=null),this._styleRepository=null,this._backgroundTiles=[]}get fading(){var e;return((e=this._symbolFader)==null?void 0:e.fading)??!1}get symbolFader(){return this._symbolFader}get symbolRepository(){var e;return(e=this._symbolFader)==null?void 0:e.symbolRepository}setStyleResources(e,t,s,r){if(this._spriteMosaic=e,this._glyphMosaic=t,this._styleRepository=s,this.tileInfoView=r,this._computeDisplayInfoView(r),this._symbolFader==null){const i=(a,l)=>{a.allSymbolsFadingOut=!0,a.lastOpacityUpdate=l,ze(a,l,!0),a.decluttered=!0,a.requestRender()};this._symbolFader=new Ae("vector-tile",this._styleRepository,i,this.children,M)}this._symbolFader.styleRepository=s}setSpriteMosaic(e){var t;(t=this._spriteMosaic)==null||t.dispose(),this._spriteMosaic=e}deleteStyleLayers(e){this._symbolFader!=null&&this._symbolFader.deleteStyleLayers(e)}createRenderParams(e){return{...super.createRenderParams(e),renderPass:null,styleLayer:null,styleLayerUID:-1,glyphMosaic:this._glyphMosaic,spriteMosaic:this._spriteMosaic,hasClipping:!!this._clippingInfos}}doRender(e){!this.visible||e.drawPhase!==1&&e.drawPhase!==64||this._spriteMosaic===void 0||super.doRender(e)}addChild(e){return super.addChild(e),this._symbolFader!=null?this._symbolFader.addTile(e):e.decluttered=!0,this.requestRender(),e}removeChild(e){return this._symbolFader!=null&&this._symbolFader.removeTile(e),this.requestRender(),super.removeChild(e)}renderChildren(e){const{drawPhase:t}=e;t!==64?this._doRender(e):super.renderChildren(e)}removeAllChildren(){for(let e=0;e<this.children.length;e++){const t=this.children[e];this._symbolFader!=null&&this._symbolFader.removeTile(t),t.dispose()}super.removeAllChildren()}getStencilTarget(){return this.children.filter(e=>e.neededForCoverage&&e.hasData())}restartDeclutter(){this._symbolFader!=null&&this._symbolFader.restartDeclutter()}_doRender(e){const{context:t,state:s}=e,r=this._styleRepository;if(!r)return;const i=r.layers,a=this._displayInfo.scaleToZoom(s.scale);r.backgroundBucketIds.length>0&&(e.renderPass="background",this._renderBackgroundLayers(e,r.backgroundBucketIds,a)),super.renderChildren(e),e.drawPhase===1&&this._fade(a,s);const l=this.children.filter(o=>o.visible&&o.hasData());if(!l||l.length===0)return t.bindVAO(null),t.setStencilTestEnabled(!0),void t.setBlendingEnabled(!0);for(const o of l)o.triangleCount=0;t.setStencilWriteMask(0),t.setColorMask(!0,!0,!0,!0),t.setStencilOp(7680,7680,7681),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setDepthTestEnabled(!0),t.setDepthWriteEnabled(!0),t.setDepthFunction(515),t.setClearDepth(1),t.clear(256),e.renderPass="opaque";for(let o=i.length-1;o>=0;o--)this._renderStyleLayer(i[o],e,l);t.setDepthWriteEnabled(!1),t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(1,771,1,771),e.renderPass="translucent";for(let o=0;o<i.length;o++)this._renderStyleLayer(i[o],e,l);t.bindVAO(null),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!0);for(const o of l)o.debugInfo.display.triangleCount=o.triangleCount}_fade(e,t){this._symbolFader!=null&&(this._symbolFader.update(e,t)||this.requestRender())}_renderStyleLayer(e,t,s){const{displayLevel:r,painter:i,renderPass:a}=t;if(e===void 0)return;const l=e.getLayoutProperty("visibility");if(l&&l.getValue()===1)return;let o;switch(e.type){case 0:return;case 1:if(a!=="opaque"&&t.renderPass!=="translucent")return;o="vtlFill";break;case 2:if(a!=="translucent")return;o="vtlLine";break;case 4:if(a!=="translucent")return;o="vtlCircle";break;case 3:if(a!=="translucent")return;o="vtlSymbol"}if(s=e.type===3?s.filter(c=>c.decluttered):s.filter(c=>c.neededForCoverage),o!=="vtlSymbol"&&(s.length===0||e.minzoom!==void 0&&e.minzoom>=r+A||e.maxzoom!==void 0&&e.maxzoom<r-A))return;const h=e.uid;t.styleLayerUID=h,t.styleLayer=e;for(const c of s)if(c.layerData.has(h)){i.renderObjects(t,s,o);break}}_renderBackgroundLayers(e,t,s){const{context:r,painter:i,state:a}=e,l=this._styleRepository;let o=!1;for(const w of t)if(l.getLayerById(w).type===0&&ne(l.getLayerById(w),s)){o=!0;break}if(!o)return;const h=this.tileInfoView,c=h.getTileCoverage(e.state,0,!0,"smallest"),{spans:d,lodInfo:u}=c,{level:p}=u,y=L(),_=[];
1if(this._renderPasses){const w=this._renderPasses[0];this._clippingInfos!=null&&(w.brushes[0].prepareState(e),w.brushes[0].drawMany(e,this._clippingInfos))}const f=this._backgroundTiles;let g,T=0;for(const{row:w,colFrom:b,colTo:P}of d)for(let m=b;m<=P;m++){if(T<f.length)g=f[T],g.key.set(p,w,u.normalizeCol(m),u.getWorldForColumn(m)),h.getTileBounds(y,g.key,!1),g.x=y[0],g.y=y[3],g.resolution=h.getTileResolution(p);else{const S=new C(p,w,u.normalizeCol(m),u.getWorldForColumn(m)),I=h.getTileBounds(L(),S),H=h.getTileResolution(p);g=new at(S,H,I[0],I[3],D,D,M,M),f.push(g)}g.setTransform(a),_.push(g),T++}r.setStencilWriteMask(0),r.setColorMask(!0,!0,!0,!0),r.setStencilOp(7680,7680,7681),r.setStencilFunction(514,0,255),r.setStencilTestEnabled(!0);for(const w of t){const b=l.getLayerById(w);b.type===0&&ne(b,s)&&(e.styleLayerUID=b.uid,e.styleLayer=b,i.renderObjects(e,_,"vtlBackground"))}ye.pool.release(c)}_computeDisplayInfoView(e){let t=e.tileInfo.lods[0].scale;const s=Math.max(25,e.tileInfo.lods.length),r=[];for(let i=0;i<=s;i++)r.push(t),t/=2;this._displayInfo=ge.create({scales:r,size:D,spatialReference:e.spatialReference,numLODs:s})}}var oe;class he extends Ee{get[(oe=fe,Oe)](){return this.layer}constructor(e,t,s){super(),this[oe]=!0,this.type="vector-tile",this.layer=e,this.layerId=t,this.layerIndex=s}get id(){return`${this.layer.id}:__${this.layerId}__:__${this.layerIndex}__`}}const nt=(n,e)=>{const t=n.vtlSymbol.sourceTile,s=e.vtlSymbol.sourceTile;return t.level!==s.level?t.level-s.level:t.row!==s.row?t.row-s.row:t.col!==s.col?t.col-s.col:n.styleLayerUID-e.styleLayerUID};class E{constructor(e,t,s,r,i){this.tileKey=e,this._tileLayerData=t,this._styleRepository=s,this._tileHandler=r,this._parentLayer=i,this._index=null,this._tileKeyToPBF=new Map}static create(e,t,s,r,i){return new E(e,t,s,r,i)}clear(){var e;(e=this._index)==null||e.clear(),this._tileKeyToPBF.clear()}async queryAttributes(e,t,s,r,i){if(this._tileLayerData.size===0||!this._styleRepository||!this._tileHandler)return[];this._index===null&&(this._index=new Be(100,ot),await this._indexLayers());const a=[];return this._queryIndex(a,e,t,s,this.tileKey.level,r),i&&(i==null?void 0:i.length)>0&&await this._getSymbolsAttributes(a,i),a}async _indexLayers(){const e=this.tileKey,t=this._styleRepository.layers,s=await this._getTilePayload(e);for(const[r,i]of this._tileLayerData){const a=t[r],l=s.find(c=>c.sourceName===a.source);if(!l)continue;const{protobuff:o,key:h}=l;if(i.type!==3){const c=1<<e.level-h.level,d=e.row-h.row*c,u=e.col-h.col*c;this._indexLayer(a,o,e.level,c,d,u)}}}_indexLayer(e,t,s,r,i,a){const l=e.sourceLayer,o=e.getFeatureFilter(),h=s,c=s+1,d=Ke(h),u=new B(new Uint8Array(t),new DataView(t));for(;u.next();)switch(u.tag()){case 3:{const p=u.getMessage(),y=new J(p);if(p.release(),y.name!==l)continue;const _=y.getData(),f=y.extent/r,g=f*a-d,T=f*i-d,w=g+f+2*d,b=T+f+2*d,P=f/D,m=M/f,S=f*a,I=f*i;for(;_.nextTag(2);){const H=_.getMessage(),F=new ee(H,y);if(H.release(),o&&!o.filter(F,s))continue;const O=F.values||{},K=O._minzoom,W=O._maxzoom;if(K&&K>=10*c||W&&W<=10*h)continue;const v=e.getFeatureInflatedBounds(F,h,y.extent,P);v==null||v[0]>w||v[1]>b||v[2]<g||v[3]<T||(v[0]=(v[0]-S)*m,v[1]=(v[1]-I)*m,v[2]=(v[2]-S)*m,v[3]=(v[3]-I)*m,this._index.insert(new We(e,F,v,m,S,I)))}break}default:u.skip()}u.release()}async _getSymbolsAttributes(e,t){if(!t||t.length===0)return e;const s=[];if(t.sort(nt),t.length>0){let i=0,{styleLayerUID:a}=t[0];for(let o=1;o<t.length;o++){const{styleLayerUID:h}=t[o];h!==a&&(s.push({from:i,to:o,styleLayerUID:a,sourceTileKey:t[o-1].vtlSymbol.sourceTile}),i=o,a=h)}const l=t.length-1;s.push({from:i,to:t.length,styleLayerUID:a,sourceTileKey:t[l].vtlSymbol.sourceTile})}const r=this._styleRepository.layers;for(const i of s){const a=await this._getTilePayload(i.sourceTileKey),l=r[i.styleLayerUID],o=!!l&&a.find(h=>h.sourceName===l.source);o&&this._addSymbolsAttributes(e,t.slice(i.from,i.to).map(h=>h.vtlSymbol.featureIndex),i.styleLayerUID,o)}return e}_addSymbolsAttributes(e,t,s,r){const i=this._styleRepository.layers,a=r.key,l=this.tileKey,o=1<<l.level-a.level,h=l.row-a.row*o,c=l.col-a.col*o;
1this._getSymbolAttributes(r.protobuff,t,s,o,h,c).forEach(d=>{const{attributes:u,tilePoint:p}=d;e.push({layerId:i[s].id,layerIndex:s,graphic:new Z({attributes:u,origin:new he(this._parentLayer,i[s].id,s)}),tilePoint:p})})}_getSymbolAttributes(e,t,s,r,i,a){const l=[],o=this._styleRepository.layers;let h=0;t.sort((d,u)=>d-u);const c=new B(new Uint8Array(e),new DataView(e));for(;c.next();)switch(c.tag()){case 3:{const d=c.getMessage(),u=new J(d);if(d.release(),u.name!==o[s].sourceLayer)continue;const p=u.getData(),y=u.extent/r,_=M/y,f=y*a,g=y*i;let T=0;for(;p.nextTag(2);){const w=p.getMessage();if(T++===t[h]){const b=new ee(w,u),P=b.values,m=b.getGeometry(),S=m!=null?[_*(m[0][0].x-f),_*(m[0][0].y-g)]:null;l.push({attributes:P,tilePoint:S}),h++}if(w.release(),h===t.length)return l}break}default:c.skip()}return c.release(),l}_queryIndex(e,t,s,r,i,a){var o;const l=Ue*r*(window.devicePixelRatio||1);return(o=this._index)==null||o.search({minX:t-l,minY:s-l,maxX:t+l,maxY:s+l},h=>{const{layer:c,feature:d}=h;c.isIntersectingFeature(t,s,r,d,i,a,h)&&e.push({layerId:c.id,layerIndex:c.uid,tilePoint:null,graphic:new Z({attributes:d.values,origin:new he(this._parentLayer,h.layer.id,h.layer.uid)})})}),e}
1async _getTilePayload(e){return Ie(this._tileKeyToPBF,e.id,()=>this._tileHandler.fetchTilePBFs(e)).then(t=>t)}}const ot=n=>({minX:n.bounds[0],minY:n.bounds[1],maxX:n.bounds[2],maxY:n.bounds[3]});class ce extends $e{constructor(){super(...arguments),this._fullCacheLodInfos=null,this._levelByScale={}}getTileParentId(e){const t=C.pool.acquire(e),s=t.level===0?null:C.getId(t.level-1,t.row>>1,t.col>>1,t.world);return C.pool.release(t),s}getTileCoverage(e,t,s=!0,r){const i=super.getTileCoverage(e,t,s,r);if(!i)return i;const a=1<<i.lodInfo.level;return i.spans=i.spans.filter(l=>l.row>=0&&l.row<a),i}scaleToLevel(e){if(this._fullCacheLodInfos||this._initializeFullCacheLODs(this._lodInfos),this._levelByScale[e])return this._levelByScale[e];{const t=this._fullCacheLodInfos;if(e>t[0].scale)return t[0].level;let s,r;for(let i=0;i<t.length-1;i++)if(r=t[i+1],e>r.scale)return s=t[i],s.level+(s.scale-e)/(s.scale-r.scale);return t[t.length-1].level}}_initializeFullCacheLODs(e){let t;if(e[0].level===0)t=e.map(s=>({level:s.level,resolution:s.resolution,scale:s.scale}));else{const s=this.tileInfo.size[0],r=this.tileInfo.spatialReference;t=ge.create({size:s,spatialReference:r}).lods.map(i=>({level:i.level,resolution:i.resolution,scale:i.scale}))}for(let s=0;s<t.length;s++)this._levelByScale[t[s].scale]=t[s].level;this._fullCacheLodInfos=t}}const V=2,ue=8,de=512;let U=class extends Ge(je(Ne)){constructor(){super(...arguments),this._styleChanges=[],this._fetchQueue=null,this._parseQueue=null,this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._styeChanged=!1,this._spriteSourceChanged=!1}get fading(){var n;return((n=this._vectorTileContainer)==null?void 0:n.fading)??!1}get hasVisibleFeatures(){const n=this._vectorTileContainer.children;for(const e of n)if(e.hasFeatures())return!0;return!1}get spriteSourceChanged(){return this._spriteSourceChanged}get styleChanged(){return this._styeChanged}async hitTest(n,e){var c,d;const t=this._tileHandlerPromise,s=(c=this._vectorTileContainer)==null?void 0:c.symbolFader;if(!t||!this._isTileHandlerReady||!s)return;await t;let r=null;const i=(d=this._vectorTileContainer)==null?void 0:d.symbolRepository;i&&(r=i.querySymbols(e,V,s.decluttererOffset,{}));const a=this.view.state,l=this._tileManager.getIntersectingTiles(e.x,e.y,V,a,r);if((!l||l.length===0)&&(r==null?void 0:r.length)===0)return null;n=n.clone().normalize();const o=[],h=[];for(const u of l)o.push(this._queryTile(h,n,V,this.view.state.rotation,u,r==null?void 0:r.filter(p=>p.tileKey.id===u.id)));return await Promise.all(o),h}update(n){if(this._tileHandlerPromise&&this._isTileHandlerReady)return n.pixelRatio!==this._tileHandler.devicePixelRatio?(this._tileHandler.devicePixelRatio=n.pixelRatio,void this._loadStyle()):void(this._styleChanges.length>0?this._tileHandlerPromise=this._applyStyleChanges():(this._pauseQueues(),this._fetchQueue.state=n.state,this._parseQueue.state=n.state,this._tileManager.update(n)||this.requestUpdate(),this._resumeQueues()))}attach(){const{style:n}=this.layer.currentStyleInfo;this._styleRepository=new te(n),this._tileInfoView=new ce(this.layer.tileInfo,this.layer.fullExtent),this._vectorTileContainer=new lt(this._tileInfoView),this._tileHandler=new Je(this.layer,this._styleRepository,window.devicePixelRatio||1,this.layer.tileInfo.lods.length-1),this.container.addChild(this._vectorTileContainer),this._start(),this.addAttachHandles([this.layer.on("paint-change",e=>{var t,s;if(this._styeChanged=!0,e.isDataDriven)this._styleChanges.push({type:0,data:e}),this.requestUpdate();else{const r=this._styleRepository,i=r.getLayerById(e.layer);if(!i)return;const a=i.type===3;r.setPaintProperties(e.layer,e.paint),a&&((t=this._vectorTileContainer)==null||t.restartDeclutter()),(s=this._vectorTileContainer)==null||s.requestRender()}}),this.layer.on("layout-change",e=>{var i,a;const t=this._styleRepository,s=t.getLayerById(e.layer);if(!s)return;this._styeChanged=!0;const r=Me(s.layout,e.layout);if(r!=null){if(ke(r,"visibility")&&ht(r)===1)return t.setLayoutProperties(e.layer,e.layout),s.type===3&&((i=this._vectorTileContainer)==null||i.restartDeclutter()),void((a=this._vectorTileContainer)==null?void 0:a.requestRender());this._styleChanges.push({type:1,data:e}),this.requestUpdate()}}
1),this.layer.on("style-layer-visibility-change",e=>{var r,i;const t=this._styleRepository,s=t.getLayerById(e.layer);s&&(this._styeChanged=!0,t.setStyleLayerVisibility(e.layer,e.visibility),s.type===3&&((r=this._vectorTileContainer)==null||r.restartDeclutter()),(i=this._vectorTileContainer)==null||i.requestRender())}),this.layer.on("style-layer-change",e=>{this._styleChanges.push({type:2,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("delete-style-layer",e=>{this._styleChanges.push({type:3,data:e}),this._styeChanged=!0,this.requestUpdate()}),this.layer.on("load-style",()=>this._loadStyle()),this.layer.on("spriteSource-change",e=>{this._spriteSourceChanged=!0,this._styleChanges.push({type:4,data:e});const t=this._styleRepository.layers;for(const s of t)switch(s.type){case 3:s.getLayoutProperty("icon-image")&&this._styleChanges.push({type:1,data:{layer:s.id,layout:s.layout}});break;case 2:s.getPaintProperty("line-pattern")&&this._styleChanges.push({type:0,data:{layer:s.id,paint:s.paint,isDataDriven:s.isPainterDataDriven()}});break;case 1:s.getLayoutProperty("fill-pattern")&&this._styleChanges.push({type:0,data:{layer:s.id,paint:s.paint,isDataDriven:s.isPainterDataDriven()}})}this.requestUpdate()})])}detach(){this._stop(),this.container.removeAllChildren(),this._vectorTileContainer=R(this._vectorTileContainer),this._tileHandler=R(this._tileHandler)}viewChange(){this.requestUpdate()}moveEnd(){this.requestUpdate()}supportsSpatialReference(n){var e;return xe((e=this.layer.tileInfo)==null?void 0:e.spatialReference,n)}canResume(){let n=super.canResume();const{currentStyleInfo:e}=this.layer;if(n&&(e!=null&&e.layerDefinition)){const t=this.view.scale,{minScale:s,maxScale:r}=e.layerDefinition;e!=null&&e.layerDefinition&&(s&&s<t&&(n=!1),r&&r>t&&(n=!1))}return n}isUpdating(){return this.fading}acquireTile(n){const e=this._createVectorTile(n);return this._updatingHandles.addPromise(this._fetchQueue.push(e.key).then(t=>this._parseQueue.push({key:e.key,data:t})).then(t=>{e.once("attach",()=>this.requestUpdate()),e.setData(t),this.requestUpdate()}).catch(t=>{Q(t)||z.getLogger(this).error(t)})),e}releaseTile(n){const e=n.key.id;this._fetchQueue.abort(e),this._parseQueue.abort(e),this.requestUpdate()}async doRefresh(){if(!this.attached)return;if(this.suspended)return this._tileManager.clear(),void this.requestUpdate();this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache(),this._resumeQueues();const n=this._vectorTileContainer.children,e=[];try{for(const t of n){const s=this._updatingHandles.addPromise(this._fetchQueue.push(t.key).then(r=>this._parseQueue.push({key:t.key,data:r})).then(r=>t.setData(r)).finally(()=>t.featureIndex=null));e.push(s)}await Promise.all(e)}catch(t){z.getLogger(this).error("error refreshing vector-tiles layer-view",t),this._resumeQueues(),this._isTileHandlerReady=!0}this._isTileHandlerReady=!0,this.requestUpdate()}_start(){if(this._stop(),this._tileManager=new le({acquireTile:t=>this.acquireTile(t),releaseTile:t=>this.releaseTile(t),tileInfoView:this._tileInfoView},this._vectorTileContainer),!this.layer.currentStyleInfo)return;const n=new AbortController,e=this._tileHandler.start({signal:n.signal}).then(()=>{this._fetchQueue=new X({tileInfoView:this._tileInfoView,process:(t,s)=>this._getTileData(t,s),concurrency:15,scheduler:this.scheduler,priority:se.MAPVIEW_FETCH_QUEUE}),this._parseQueue=new X({tileInfoView:this._tileInfoView,process:(t,s)=>this._parseTileData(t,s),concurrency:8,scheduler:this.scheduler,priority:se.MAPVIEW_VECTOR_TILE_PARSING_QUEUE}),this.requestUpdate(),this._isTileHandlerReady=!0});this._tileHandler.spriteMosaic.then(t=>{this._vectorTileContainer.setStyleResources(t,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this.requestUpdate()}),this._tileHandlerAbortController=n,this._tileHandlerPromise=e}_stop(){if(!this._tileHandlerAbortController||!this._vectorTileContainer)return;const n=this._tileHandlerAbortController;n&&n.abort(),this._tileHandlerPromise=null,this._isTileHandlerReady=!1,this._fetchQueue=R(this._fetchQueue),this._parseQueue=R(this._parseQueue),this._tileManager=R(this._tileManager),this._vectorTileContainer.removeAllChildren()}async _getTileData(n,e){return this._tileHandler.fetchTileData(n,e)}async _parseTileData(n,e){return this._tileHandler.parseTileData(n,e)}async _applyStyleChanges(){this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._tileManager.clearCache();const n=this._styleChanges;try{await this._tileHandler.updateStyle(n)}catch(i){z.getLogger(this).error("error applying vector-tiles style update",i.message),this._resumeQueues(),this._isTileHandlerReady=!0}const e=this._styleRepository,t=new Set;
1n.forEach(i=>{if(i.type!==3)return;const a=i.data,l=e.getLayerById(a.layer);l&&t.add(l.uid)});const s=new Set;n.forEach(i=>{let a;switch(i.type){case 0:e.setPaintProperties(i.data.layer,i.data.paint),a=i.data.layer;break;case 1:e.setLayoutProperties(i.data.layer,i.data.layout),a=i.data.layer;break;case 3:return void e.deleteStyleLayer(i.data.layer);case 2:e.setStyleLayer(i.data.layer,i.data.index),a=i.data.layer.id;break;case 4:this._vectorTileContainer.setSpriteMosaic(this._tileHandler.setSpriteSource(i.data.spriteSource))}if(a){const l=e.getLayerById(a);l&&s.add(l.uid)}});const r=this._vectorTileContainer.children;if(t.size>0){const i=Array.from(t);this._vectorTileContainer.deleteStyleLayers(i);for(const a of r)a.deleteLayerData(i)}if(this._resumeQueues(),s.size>0){const i=Array.from(s),a=[];for(const l of r){const o=this._updatingHandles.addPromise(this._fetchQueue.push(l.key).then(h=>this._parseQueue.push({key:l.key,data:h,styleLayerUIDs:i})).then(h=>l.setData(h)).finally(()=>l.featureIndex=null));a.push(o)}await Promise.all(a)}this._styleChanges=[],this._isTileHandlerReady=!0,this.requestUpdate()}async _loadStyle(){const{style:n}=this.layer.currentStyleInfo,e=Ce(n);this._isTileHandlerReady=!1,this._pauseQueues(),this._clearQueues(),this._styleRepository=new te(e),this._vectorTileContainer.destroy(),this._tileManager.clear(),this._tileHandlerAbortController.abort(),this._tileHandlerAbortController=new AbortController;const{signal:t}=this._tileHandlerAbortController;try{this._tileHandlerPromise=this._tileHandler.setStyle(this._styleRepository,e,this.layer.tileInfo.lods.length-1),await this._tileHandlerPromise}catch(i){if(!Q(i))throw i}if(t.aborted)return this._resumeQueues(),this._isTileHandlerReady=!0,this._styeChanged=!1,this._spriteSourceChanged=!1,void this.requestUpdate();const s=await this._tileHandler.spriteMosaic,r=this._vectorTileContainer;this._tileInfoView=new ce(this.layer.tileInfo,this.layer.fullExtent),r.setStyleResources(s,this._tileHandler.glyphMosaic,this._styleRepository,this._tileInfoView),this._tileManager=new le({acquireTile:i=>this.acquireTile(i),releaseTile:i=>this.releaseTile(i),tileInfoView:this._tileInfoView},this._vectorTileContainer),this._resumeQueues(),this._isTileHandlerReady=!0,this.requestUpdate(),this._styeChanged=!1,this._spriteSourceChanged=!1}_createVectorTile(n){const e=this._tileInfoView.getTileBounds(L(),n),t=this._tileInfoView.getTileResolution(n.level);return new qe(n,t,e[0],e[3],512,512,this._styleRepository)}async _queryTile(n,e,t,s,r,i){if(r.layerData.size===0)return;const a=this._ensureTileIndex(r),l=this._tileInfoView.getTileBounds(L(),r.key,!0),o=ue*de*((e.x-l[0])/(l[2]-l[0])),h=ue*de*(1-(e.y-l[1])/(l[3]-l[1])),c=await a.queryAttributes(o,h,t,s,i);for(const d of c)d.graphic.geometry=this._tileToMapPoint(d.tilePoint,r.transforms.tileUnitsToPixels),n.push({type:"graphic",layer:this.layer,graphic:d.graphic,mapPoint:e.clone()});n.sort((d,u)=>(ie(u.graphic.origin)?u.graphic.origin.layerIndex:0)-(ie(d.graphic.origin)?d.graphic.origin.layerIndex:0))}_tileToMapPoint(n,e){if(!n)return null;const t=n[0]*e[0]+n[1]*e[3]+e[6],s=n[0]*e[1]+n[1]*e[4]+e[7],r=this.view.state,i=[0,0];return r.toMap(i,[t,s]),new Pe({x:i[0],y:i[1],spatialReference:r.spatialReference})}_ensureTileIndex(n){let e=n.featureIndex;return e||(e=E.create(n.key,n.layerData,this._styleRepository,this._tileHandler,this.layer),n.featureIndex=e),e}_pauseQueues(){this._fetchQueue.pause(),this._parseQueue.pause()}_resumeQueues(){this._fetchQueue.resume(),this._parseQueue.resume()}_clearQueues(){this._fetchQueue.clear(),this._parseQueue.clear()}};function ht(n){if(n==null)return 0;switch(n.type){case"partial":return Object.keys(n.diff).length;case"complete":return Math.max(Object.keys(n.oldValue).length,Object.keys(n.newValue).length);case"collection":return Object.keys(n.added).length+Object.keys(n.changed).length+Object.keys(n.removed).length}}j([De()],U.prototype,"_isTileHandlerReady",void 0),U=j([Re("esri.views.2d.layers.VectorTileLayerView2D")],U);const Si=U;export{Si as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.