@arcgis/core 4.33.0-next.20250509 → 4.33.0-next.20250511

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 (67) hide show
  1. package/applications/SceneViewer/sceneViewerUtils.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/06eb4832b6c86744e52e.js +1 -0
  4. package/assets/esri/core/workers/chunks/170c346cf5a18adb25b0.js +1 -0
  5. package/assets/esri/core/workers/chunks/253bcc3cc7bc4c2dc6ea.js +1 -0
  6. package/assets/esri/core/workers/chunks/{d874d24568b1acedebc4.js → 297d2c0a9d3f1e978318.js} +1 -1
  7. package/assets/esri/core/workers/chunks/4bd5cbf6e0be2fc7e84d.js +1 -0
  8. package/assets/esri/core/workers/chunks/{b1035bf4a016b1199236.js → 83d6a1b3db7d364d156b.js} +1 -1
  9. package/assets/esri/core/workers/chunks/{7ed9a9c33a08ebba5570.js → 92cbe9af8a6c061bfb57.js} +1 -1
  10. package/assets/esri/core/workers/chunks/a1d697e2be1e892a666a.js +1 -0
  11. package/assets/esri/core/workers/chunks/{61c74a733718d667b071.js → d551f70560a2b1ef5696.js} +1 -1
  12. package/assets/esri/core/workers/chunks/f6a1fec33b0d81acce61.js +1 -0
  13. package/core/has.js +1 -1
  14. package/core/sql/StandardizedFunctions.js +1 -1
  15. package/core/sql/WhereGrammar.js +1 -1
  16. package/geometry/support/meshUtils/External.js +1 -1
  17. package/geometry/support/meshUtils/loadExternal.js +1 -1
  18. package/interfaces.d.ts +340 -14
  19. package/layers/SceneLayer.js +1 -1
  20. package/layers/VideoLayer.js +1 -1
  21. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  22. package/layers/graphics/sources/support/uploadAssets.js +1 -1
  23. package/layers/video/VideoController.js +1 -1
  24. package/package.json +1 -1
  25. package/rest/knowledgeGraph/wasmInterface/wasmToUpdateResponseFactories.js +1 -1
  26. package/rest/support/meshFeatureSet.js +1 -1
  27. package/smartMapping/renderers/size.js +1 -1
  28. package/smartMapping/renderers/support/spikeUtils.js +1 -1
  29. package/support/revision.js +1 -1
  30. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  31. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  32. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  33. package/views/2d/layers/features/layerAdapters/featureServiceUtils.js +1 -1
  34. package/views/2d/layers/features/sources/FeatureSource.js +1 -1
  35. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  36. package/views/3d/layers/I3SMeshView3D.js +1 -1
  37. package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
  38. package/views/3d/layers/SceneLayerView3D.js +1 -1
  39. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  40. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  41. package/views/3d/layers/graphics/LabelDeconflictor.js +1 -1
  42. package/views/3d/layers/i3s/I3SQueryEngine.js +1 -1
  43. package/views/3d/layers/i3s/I3SQueryFeatureAdapter.js +1 -1
  44. package/views/3d/layers/i3s/I3SQueryResultGeometry.js +5 -0
  45. package/views/3d/webgl/ManagedFBOResource.js +1 -1
  46. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  47. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  48. package/views/interactive/keybindings.js +1 -1
  49. package/webdoc/IPSInfo.js +1 -1
  50. package/webdoc/ips/AppleIPSProperties.d.ts +4 -0
  51. package/webdoc/ips/AppleIPSProperties.js +5 -0
  52. package/webdoc/ips/Configuration.d.ts +4 -0
  53. package/webdoc/ips/Configuration.js +5 -0
  54. package/webdoc/ips/GNSSProperties.d.ts +4 -0
  55. package/webdoc/ips/GNSSProperties.js +5 -0
  56. package/webdoc/ips/PathSnappingProperties.d.ts +4 -0
  57. package/webdoc/ips/PathSnappingProperties.js +5 -0
  58. package/webdoc/ips/SmoothingProperties.d.ts +4 -0
  59. package/webdoc/ips/SmoothingProperties.js +5 -0
  60. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  61. package/widgets/support/Selector2D/SelectionOperation.js +1 -1
  62. package/assets/esri/core/workers/chunks/46104db7f77952bb6c12.js +0 -1
  63. package/assets/esri/core/workers/chunks/47bbfc10c2a3b9e4bdd6.js +0 -1
  64. package/assets/esri/core/workers/chunks/49f0e53b3c9ba8451442.js +0 -1
  65. package/assets/esri/core/workers/chunks/5371df31553626528c69.js +0 -1
  66. package/assets/esri/core/workers/chunks/ad9bcd9dae45cdf90cbb.js +0 -1
  67. package/assets/esri/core/workers/chunks/c28d4717ed588c0d8bf1.js +0 -1
@@ -326,7 +326,7 @@ vec2 pixelSz = vec2(1.0) / widthHeight;
326
326
  vec2 ij = floor((xy + 0.5 * pixelSz) * widthHeight) * pixelSz;
327
327
  vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;
328
328
  return vec4(result, clipCoord.zw);
329
- }`)}},51624:(e,t,r)=>{r.d(t,{A:()=>u});var n,i,s=r(44208),a=r(69397),o=r(93687);(i=n||(n={}))[i.varint=0]="varint",i[i.fixed64=1]="fixed64",i[i.delimited=2]="delimited",i[i.fixed32=5]="fixed32",i[i.unknown=99]="unknown";const l=4294967296,c=new TextDecoder("utf-8"),d=(0,s.A)("safari")||(0,s.A)("ios")?6:(0,s.A)("ff")?12:32;class u{constructor(e,t,r=0,i=(e?e.byteLength:0)){this._tag=0,this._dataType=n.unknown,this._init(e,t,r,i)}_init(e,t,r,n){this._data=e,this._dataView=t,this._pos=r,this._end=n}get usedMemory(){return 64+(0,a.Qf)(this._data)}asUnsafe(){return this}clone(){return new u(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*l;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*l;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,n){const i=this.getMessage(),s=e(i,t,r,n);return i.release(),s}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=u.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){u.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case n.varint:this._decodeVarint();break;case n.fixed64:this._skip(8);break;case n.delimited:this._skip(this._getLength());break;case n.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,n=0;if(this._end-t>=10)do{if(n=e[t++],r|=127&n,!(128&n))break;if(n=e[t++],r|=(127&n)<<7,!(128&n))break;if(n=e[t++],r|=(127&n)<<14,!(128&n))break;if(n=e[t++],r|=(127&n)<<21,!(128&n))break;if(n=e[t++],r+=268435456*(127&n),!(128&n))break;if(n=e[t++],r+=34359738368*(127&n),!(128&n))break;if(n=e[t++],r+=4398046511104*(127&n),!(128&n))break;if(n=e[t++],r+=562949953421312*(127&n),!(128&n))break;if(n=e[t++],r+=72057594037927940*(127&n),!(128&n))break;if(n=e[t++],r+=0x8000000000000000*(127&n),!(128&n))break;throw new Error("Varint too long!")}while(0);else{let i=1;for(;t!==this._end&&(n=e[t],128&n);)++t,r+=(127&n)*i,i*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=n*i}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,n=0;const i=1&e[this._pos];if(n=e[this._pos++],r|=127&n,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<7,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<14,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<21,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=268435456*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=34359738368*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=4398046511104*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(t=BigInt(r),n=e[this._pos++],t+=0x2000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x100000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x8000000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==n.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>d){const n=e.subarray(t,r);return c.decode(n)}let n="",i="";for(let s=t;s<r;++s){const t=e[s];128&t?i+="%"+t.toString(16):(n+=decodeURIComponent(i)+String.fromCharCode(t),i="")}return i.length&&(n+=decodeURIComponent(i)),n}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}static{this.pool=new o.A(u,void 0,(e=>{e._data=null,e._dataView=null}))}}},53177:(e,t,r)=>{r.d(t,{A:()=>u});var n,i=r(90237),s=r(4718),a=r(10107),o=(r(44208),r(53966),r(93223)),l=r(40608),c=r(39357),d=r(76357);let u=class extends d.A{static{n=this}constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const r=String(e);this.codedValues.some((e=>(String(e.code)===r&&(t=e.name),!!t)))}return t}clone(){return new n({codedValues:(0,s.o8)(this.codedValues),name:this.name})}};(0,i._)([(0,a.MZ)({type:[c.H],json:{write:{isRequired:!0}}})],u.prototype,"codedValues",void 0),(0,i._)([(0,o.e)({codedValue:"coded-value"})],u.prototype,"type",void 0),u=n=(0,i._)([(0,l.$)("esri.layers.support.CodedValueDomain")],u)},53655:(e,t,r)=>{r.d(t,{SH:()=>O,ae:()=>S,cn:()=>_});var n=r(49186),i=r(51624),s=r(92722),a=r(69418);const o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function d(e){return e>=o.length?null:o[e]}function u(e){return e>=l.length?null:l[e]}function h(e){return e>=c.length?null:c[e]}function f(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function m(e,t,r){const n=e.asUnsafe(),i=t.createPointGeometry(r);for(;n.next();)switch(n.tag()){case 3:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addCoordinatePoint(i,n.getSInt64(),s++);break}default:n.skip()}return i}function p(e,t,r){const n=e.asUnsafe(),i=t.createGeometry(r),s=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;n.next();)switch(n.tag()){case 2:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addLength(i,n.getUInt32(),s++);break}case 3:{const e=n.getUInt32(),r=n.pos()+e;let a=0;for(t.allocateCoordinates(i);n.pos()<r;)t.addCoordinate(i,n.getSInt64(),a),a++,a===s&&(a=0);break}default:n.skip()}return i}function y(e){const t=e.asUnsafe(),r=new s.A;let n="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.coords.push(t.getSInt64());break}case 1:n=a.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:n}}function g(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function _(e){const t=e.asUnsafe(),r={type:d(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=d(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=u(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function b(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function v(e,t,r,n){const i=t.createFeature(r);let s=0;for(;e.next();)switch(e.tag()){case 1:{const t=n[s++].name;i.attributes[t]=e.processMessage(g);break}case 2:i.geometry=e.processMessageWithArgs(p,t,r);break;case 4:i.centroid=e.processMessageWithArgs(m,t,r);break;default:e.skip()}return i}function w(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function x(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function S(e){const t={originPosition:h(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=h(r.getEnum());break;case 2:t.scale=r.processMessage(w);break;case 3:t.translate=r.processMessage(x);break;default:r.skip()}return t}function T(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function C(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function I(e,t){const r=t.createFeatureResult(),n=e.asUnsafe();r.geometryType=f(t,0);let i=!1;for(;n.next();)switch(n.tag()){case 1:r.objectIdFieldName=n.getString();break;case 3:r.globalIdFieldName=n.getString();break;case 4:r.geohashFieldName=n.getString();break;case 5:r.geometryProperties=n.processMessage(T);break;case 7:r.geometryType=f(t,n.getEnum());break;case 8:r.spatialReference=n.processMessageWithArgs(C,t);break;case 10:r.hasZ=n.getBool();break;case 11:r.hasM=n.getBool();break;case 12:r.transform=n.processMessage(S);break;case 9:r.exceededTransferLimit=n.getBool();break;case 13:t.addField(r,n.processMessage(_));break;case 15:i||(t.prepareFeatures(r),i=!0),t.addFeature(r,n.processMessageWithArgs(v,t,r,r.fields));break;case 2:r.uniqueIdField=n.processMessage(b);break;default:n.skip()}return t.finishFeatureResult(r),r}function A(e,t){const r={};let n=null;for(;e.next();)switch(e.tag()){case 4:n=e.processMessageWithArgs(y);break;case 1:r.featureResult=e.processMessageWithArgs(I,t);break;default:e.skip()}return null!=n&&r.featureResult&&t.addQueryGeometry(r,n),r}function O(e,t){try{const r=2,n=new i.A(new Uint8Array(e),new DataView(e)),s={};for(;n.next();)n.tag()===r?s.queryResult=n.processMessageWithArgs(A,t):n.skip();return s}catch(e){throw new n.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},55674:(e,t,r)=>{r.d(t,{Ad:()=>f,Gj:()=>y,QY:()=>h,lL:()=>g,xR:()=>m});var n=r(66131),i=r(49186),s=(r(44208),r(44729)),a=r(15032),o=r(65864),l=r(95466),c=r(43668),d=r(98623);const u=["geometry","scale","timeProperties"];function h(e,t){if(null!=t)for(const r of u)t.hasArcadeDependency(r)&&e.add(r);return e}function f(e,t){return p.create(e,t,null,["$feature","$view"])}function m(e,t,r){return p.create(e,t,r,["$feature","$view","$config"])}class p{static async create(e,t,r,n){const{arcade:s,Dictionary:a}=await(0,c.l)();let o;try{o=s.parseScript(e)}catch(t){throw new i.A("arcade-bad-expression","Failed to parse arcade script",{script:e,error:t})}const l=s.scriptUsesGeometryEngine(o);l&&await s.enableGeometrySupport(),await s.loadDependentModules(new Set,o,null,!1,l);const d={vars:n.reduce(((e,t)=>({...e,[t]:null})),{}),spatialReference:t,useAsync:!1},u=s.compileScript(o,d);let h=null;null!=r&&(h=new a(r),h.immutable=!0);const f=new a;return f.immutable=!1,f.setField("scale",0),new p(e,s,o,u,t,f,h,a)}constructor(e,t,r,n,i,s,a,o){this.script=e,this._arcade=t,this._syntaxTree=r,this._compiled=n,this._spatialReference=i,this._viewDict=s,this._configDict=a,this._dictionaryCtor=o,this._dependencies=new Map,this._featureReader=new y,this._dependencies.set("geometry",t.scriptTouchesGeometry(this._syntaxTree)),this._dependencies.set("scale",this._arcade.referencesMember(this._syntaxTree,"scale")),this._dependencies.set("timeProperties",this._arcade.scriptUsesViewProperties(this._syntaxTree,["timeProperties"]))}evaluate(e,t){const r=t.$view?.timeZone;if(t.$view){let e;if(this._viewDict.setField("scale",t.$view.scale),null!=t.$view.timeProperties){const{currentStart:i,currentEnd:s}=t.$view.timeProperties;e=new this._dictionaryCtor({currentStart:null!=i?null!=r?n.lY.epochToArcadeDate(i,r):n.lY.unknownEpochToArcadeDate(i):void 0,currentEnd:null!=s?null!=r?n.lY.epochToArcadeDate(s,r):n.lY.unknownEpochToArcadeDate(s):void 0,startIncluded:!0,endIncluded:!0})}this._viewDict.setField("timeProperties",e)}return this._compiled({vars:{$view:this._viewDict,$config:this._configDict,$feature:e},spatialReference:this._spatialReference,timeZone:r})}repurposeFeature(e,t){return this._featureReader.bind(e,t,this._spatialReference),this._featureReader}references(e){return this._dependencies.get(e)??!1}}class y{constructor(){this._boundTarget=null,this._boundSchema={fields:null,fieldsIndex:null,spatialReference:null,get geometryType(){return null},get objectIdField(){return null}},this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}bind(e,t,r){const n=t??new l.A(g(e.attributes));this._boundTarget=e,this._boundSchema.fields=n.fields,this._boundSchema.fieldsIndex=n,this._boundSchema.spatialReference=r}_getField(e){return this._boundSchema.fieldsIndex.get(e)}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this._boundSchema.fieldsIndex.has(e)}geometry(){if("fromJSON"in this._boundTarget)return this._boundTarget.geometry;const e=(0,o.rS)(this._boundTarget.geometry);if(e){if(!this._boundSchema.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");e.spatialReference=this._boundSchema.spatialReference}return e}isUnknownDateTimeField(e){return this._boundSchema.fieldsIndex.getTimeZone(e)===d.L5}field(e,t=!0){const r=this._getField(e);if(r)switch(r.type){case"date-only":case"esriFieldTypeDateOnly":return s.n.fromReader(this._boundTarget.attributes[r.name]);case"time-only":case"esriFieldTypeTimeOnly":return a.k.fromReader(this._boundTarget.attributes[r.name]);case"esriFieldTypeTimestampOffset":case"timestamp-offset":return n.lY.fromReaderAsTimeStampOffset(this._boundTarget.attributes[r.name]);case"date":case"esriFieldTypeDate":{const t=this._boundTarget.attributes[r.name];return this.isUnknownDateTimeField(e)?n.lY.unknownEpochToArcadeDate(t):n.lY.epochToArcadeDate(t,this.contextTimeZone??d.qU)}default:return this._boundTarget.attributes[r.name]}if(t)throw new Error(`Field ${e} does not exist`);return null}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this._boundSchema.fieldsIndex.fields.map((e=>e.name))}castToText(e=!1){return JSON.stringify(this._boundTarget)}gdbVersion(){return null}fullSchema(){return this._boundSchema}castAsJson(e=null){return{attributes:this._boundTarget.attributes,geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}}function g(e){const t=[];for(const r in e)t.push({name:r,alias:r,type:"string"==typeof e[r]?"esriFieldTypeString":"esriFieldTypeDouble"});return t}},55728:(e,t,r)=>{r.r(t),r.d(t,{default:()=>pn});var n=r(90237),i=r(65529),s=r(74887),a=r(36708),o=r(10107),l=r(44208),c=(r(53966),r(87811),r(40608)),d=r(5443),u=r(80586),h=r(16930),f=r(68298),m=r(61956),p=r(65494);class y{constructor(e,t,r){this.renderCommandContext=e,this.renderCommandBuffer=t,this.pipelineStateCommands=r}append(e){this.appendRenderCommands(e.renderCommandBuffer),this.appendPipelineStateCommands(e.pipelineStateCommands)}appendRenderCommands(e){this.renderCommandBuffer.commands.push(...e.commands),this.renderCommandBuffer.transferList.push(...e.transferList)}appendPipelineStateCommand(e){this.pipelineStateCommands.push(e)}appendPipelineStateCommands(e){for(const t of e)this.appendPipelineStateCommand(t)}async execute(){for(const e of this.pipelineStateCommands)e();await this.renderCommandContext.dispatchRenderCommands(this.renderCommandBuffer)}static create(e,t=[]){return new y(e,e.createRenderCommandBuffer(),t)}}function g(e){return 0===e.length?null:e.reduce(((e,t)=>(e.append(t),e)))}var _=r(68197),b=r(18574),v=r(87403),w=r(28975);function x(){return new b.A({material:new w.N({color:new _.A("red")})})}var S=r(9093),T=r(51850),C=r(91829),I=r(6847),A=r(83047),O=r(58083),R=(r(87317),r(70328)),D=r(19419);r(12359),r(95108),r(27615),r(52106),r(4718),r(34275),r(65864);var P=r(37585),F=r(48163),M=r(34727),E=r(26857);new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const U=[];{const e=16;for(let t=0;t<360;t+=360/e)U.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}var L,V;(V=L||(L={}))[V.Left=0]="Left",V[V.Center=1]="Center",V[V.Right=2]="Right",Object.freeze({left:0,center:.5,right:1});const k=Object.freeze({"bottom-left":(0,F.fA)(0,0),bottom:(0,F.fA)(.5,0),"bottom-right":(0,F.fA)(1,0),left:(0,F.fA)(0,.5),center:(0,F.fA)(.5,.5),right:(0,F.fA)(1,.5),"top-left":(0,F.fA)(0,1),top:(0,F.fA)(.5,1),"top-right":(0,F.fA)(1,1)});var N=r(9762),z=r(27993);function B(e){const{featureCount:t}=e;if(0===t)return new Uint32Array;const r=new Uint32Array(t);return e.getObjectIdsArray(r),r}function j(e){const{featureCount:t}=e;if(0===t)return new Float64Array;const r=new Float64Array(3*t);return e.getCoordinatesArray(r),r}function q(e,t){const r=t.viewSpatialReference,n=t.renderSpatialReference,{extent:i}=e,s=(0,D.gX)(i),a=(0,T.vt)();return(0,z.F)([s[0],s[1],0],r,a,n),a}var H=r(97146);function G(e){const t=new Map;for(const[r,n]of e)t.set(r,{...n,indices:(0,H.Dg)(n.indices)});return t}var $=r(40804),Y=(r(48833),r(63907));const Z=(0,C.CN)(.25,.25,.75,.75);function J(e){return"cross"===e||"x"===e}function W(e,t=128,r=.5*t,n=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return te(e,K(r,r,t/2))}(t,r);case"square":return function(e,t){return X(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return Q(e,t,!1,r)}(t,r,n);case"x":return function(e,t,r=0){return Q(e,t,!0,r)}(t,r,n);case"kite":return function(e,t){return X(e,t,!0)}(t,r);case"triangle":return function(e,t){return te(e,ee(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,n=t/2,i=e/2,s=.8*r,a=K(i,(e-t)/2-s,Math.sqrt(s*s+n*n)),o=ee(i,r,n);return te(e,((e,t)=>Math.max(o(e,t),-a(e,t))))}(t,r)}}function X(e,t,r){return r&&(t/=Math.SQRT2),te(e,((n,i)=>{let s=n-.5*e+.25,a=.5*e-i-.75;if(r){const e=(s+a)/Math.SQRT2;a=(a-s)/Math.SQRT2,s=e}return Math.max(Math.abs(s),Math.abs(a))-.5*t}))}function Q(e,t,r,n=0){t-=n,r&&(t*=Math.SQRT2);const i=.5*t;return te(e,((t,s)=>{let a,o=t-.5*e,l=.5*e-s-1;if(r){const e=(o+l)/Math.SQRT2;l=(l-o)/Math.SQRT2,o=e}return o=Math.abs(o),l=Math.abs(l),a=o>l?o>i?Math.sqrt((o-i)*(o-i)+l*l):l:l>i?Math.sqrt(o*o+(l-i)*(l-i)):o,a-=n/2,a}))}function K(e,t,r){return(n,i)=>{const s=n-e,a=i-t;return Math.sqrt(s*s+a*a)-r}}function ee(e,t,r){const n=Math.sqrt(t*t+r*r);return(i,s)=>{const a=Math.abs(i-e)-r,o=s-e+t/2+.75,l=(t*a+r*o)/n,c=-o;return Math.max(l,c)}}function te(e,t){const r=new Uint8Array(4*e*e);for(let n=0;n<e;n++)for(let i=0;i<e;i++){const s=i+e*n;let a=t(i,n);a=a/e+.5,(0,$.U)(a,r,4*s)}return r}var re=r(46610),ne=r(46540);class ie{constructor(e,t){this._context=null,this._symbolLayer=null,this._draped=!1,this._loaded=!1,this._loadingPromise=null,this._iconTextureID=null,this._materialId=null,this._context=t,this._symbolLayer=e}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}_destroy(){this._iconTextureID=null}async _load(){const e=this._context.renderCommandContext,t=await e.getOrCreateSharedTexture("circle-icon",(()=>function(e,t=128,r=.5*t,n=0){return{data:W(e,t,r,n),parameters:{mipmap:!1,wrap:{s:Y.pF.CLAMP_TO_EDGE,t:Y.pF.CLAMP_TO_EDGE},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0}}}("circle")));this._iconTextureID=t;const r={anchorPosition:k.center,occlusionTest:!0,hasSlicePlane:!1,color:this._getFillColor(),outlineColor:this._getOutlineColor(),outlineSize:1,distanceFieldBoundingBox:Z,textureId:t,textureIsSignedDistanceField:!0,sampleSignedDistanceFieldTexelCenter:J("circle")};this._materialId=await e.createMaterial({type:"hud",parameters:r}),await e.createDirectRenderer(this._materialId),this._loaded=!0}async createAddCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r;if(null==t)throw new Error("expected material not to be null");const i=await this._createGeometry(e);if(null==i)return r.createPipelineCommand();const s=q(e,r);return r.createPipelineCommand(n.addDirectRendererGeometry(e.id,i,s))}async _createGeometry(e){const{_materialId:t,_context:r}=this,{mainThreadDelegate:n}=r,{featureCount:i}=e;if(0===i||null==t)return null;const s=B(e),a=j(e),o=function(e,t){const r=e.length/3,n=t.viewSpatialReference,i=t.renderSpatialReference,s=new Float64Array(3*r);if(!(0,N.projectBuffer)(e,n,0,s,i,0,r))throw new Error("Failed to project coordinates");return s}(await n.applyElevationAlignmentTo(a),r),l=new Float64Array([0,0,1]),c=new Float64Array([255,255,255,255]),d=new Float64Array([24,24]),u=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),f=new Float64Array([0]),m=new Uint32Array(i);for(let e=0;e<i;++e)m[e]=e;const p=new Uint32Array(i);for(let e=0;e<i;++e)p[e]=0;const y=new re.n(o,m,3,!0),g=new re.n(l,p,3,!0),_=new re.n(h,p,2,!0),b=new re.n(c,p,4,!0),v=new re.n(f,p,1,!0),w=new re.n(d,p,2,!0),x=new re.n(u,p,4,!0),T=[[ne.r.POSITION,y],[ne.r.NORMAL,g],[ne.r.UV0,_],[ne.r.COLOR,b],[ne.r.ROTATION,v],[ne.r.SIZE,w],[ne.r.CENTEROFFSETANDDISTANCE,x]],C=new Uint8Array(i);return e.getVisibilityArray(C),{attributes:G(T),objectAndLayerIdColor:void 0,transformation:(0,S.vt)(),materialId:t,objectIds:s,visibilities:C}}async createRemoveCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;return null==t?r.createPipelineCommand():r.createPipelineCommand(n.removeDirectRendererGeometryBuffer(t,e))}async createUpdateVisibilityCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_materialId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.updateMaterial({type:"hud",materialId:r,parameters:{color:this._getFillColor(),outlineColor:this._getOutlineColor()}}))}async createUpdateElevationCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r,{featureCount:i,id:s}=e;if(null==t||0===i)return r.createPipelineCommand();const a=await this._createGeometry(e);if(null==a)return r.createPipelineCommand();const o=q(e,r);return r.createPipelineCommand(n.updateDirectRendererGeometry(s,a,o))}async createDestroyCommand(){const{_iconTextureID:e,_context:t}=this,r=t.renderCommandContext;let n;return n=null!=e?await r.releaseSharedTexture("circle-icon"):y.create(r),n.appendPipelineStateCommand((()=>this._destroy())),n}_getOutlineColor(){const e=this._getLayerOpacity(),t=this._symbolLayer,r=t?.outline?.color;if(null!=r){const t=_.A.toUnitRGB(r),n=r.a*e;return[t[0],t[1],t[2],n]}return[0,0,0,0]}_getFillColor(){if(function(e){return null!=e&&("cross"===e||"x"===e)}(this._getPrimitive()))return ae;const e=null==this._getPrimitive(),t=this._symbolLayer?.material?.color;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}_getCombinedOpacity(e,t=se){const r=this._draped?1:this._getLayerOpacity();return e?r*e.a:t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(e,t=se){const r=this._getCombinedOpacity(e,t);return function(e,t,r=null){const n=(0,C.o8)(C.Un);return null!=e&&(n[0]=e[0],n[1]=e[1],n[2]=e[2]),null!=t?n[3]=t:null!=e&&e.length>3&&(n[3]=e[3]),r&&(n[0]*=r,n[1]*=r,n[2]*=r,n[3]*=r),n}(null!=e?_.A.toUnitRGB(e):T.Un,r)}_getPrimitive(){return e=this._symbolLayer,e.resource?.href?null:e.resource?.primitive??I.r;var e}}const se={hasIntrinsicColor:!1},ae=C.uY;class oe{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._context=null,this._symbol=null,this._symbolLayerRenderers=[],this._context=t,this._symbol=e}_destroy(){}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_context:e,_symbol:t,_symbolLayerRenderers:r}=this,n=[];for(const i of t.symbolLayers){const t=e.symbolRendererFactory.createSymbolRendererFromSymbolLayer(i);null!=t&&(n.push(t.load()),r.push(t))}await Promise.all(n),this._loaded=!0}async createDestroyCommand(){const{_context:e,_symbolLayerRenderers:t}=this,r=[];for(const e of t)r.push(e.createDestroyCommand());const n=e.joinPipelineCommands(await Promise.all(r));return n.appendPipelineStateCommand((()=>this._destroy())),n}async createAddCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createAddCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createRemoveCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createRemoveCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateVisibilityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateVisibilityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateLayerViewOpacityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateElevationCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateElevationCommand(e));return t.joinPipelineCommands(await Promise.all(n))}}class le{constructor(e,t){this._symbol=null,this._featureData=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_renderer:e,_context:t}=this;this._symbol=t.symbolRendererFactory.createSymbolRendererFromSymbol(e.symbol),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createAddCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.set(e.id,e))),n}async createRemoveCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createRemoveCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.delete(e))),n}async createUpdateVisibilityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateVisibilityCommand(e)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateLayerViewOpacityCommand(e)}async createUpdateElevationCommand(){const{_featureData:e,_context:t}=this,r=await this._provisionSymbol();if(null==r)return t.createPipelineCommand();const n=[];for(const t of e.values())n.push(r.createUpdateElevationCommand(t));const i=await Promise.all(n);return t.joinPipelineCommands(i)}async createDestroyCommand(){const{_symbol:e,_context:t,_featureData:r}=this;if(!e)return t.createPipelineCommand();const n=[];for(const e of r.keys())n.push(this.createRemoveCommand(e));n.push(e.createDestroyCommand());const i=await Promise.all(n);return t.joinPipelineCommands(i)}async _provisionSymbol(){const e=this._symbol;return e?(e.loaded||await e.load(),e):null}}var ce,de,ue=r(48353),he=r(30809),fe=r(8887),me=r(38954),pe=r(72385),ye=(r(4197),r(11868)),ge=r(240);r(71351),(de=ce||(ce={})).length=function(e,t){const r=e[t],n=e[t+1],i=e[t+2];return Math.sqrt(r*r+n*n+i*i)},de.normalize=function(e,t){const r=e[t],n=e[t+1],i=e[t+2],s=1/Math.sqrt(r*r+n*n+i*i);e[t]*=s,e[t+1]*=s,e[t+2]*=s},de.scale=function(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r},de.add=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]+r[n],i[s+1]=e[t+1]+r[n+1],i[s+2]=e[t+2]+r[n+2]},de.subtract=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]-r[n],i[s+1]=e[t+1]-r[n+1],i[s+2]=e[t+2]-r[n+2]},r(87170);var _e=r(620);r(75039);const be=ce,ve=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)ve[6*e+t]=e;const we=new Array(36);for(let e=0;e<6;e++)we[6*e]=0,we[6*e+1]=1,we[6*e+2]=2,we[6*e+3]=2,we[6*e+4]=3,we[6*e+5]=0;const xe=(0,pe.fA)(-.5,0,-.5),Se=(0,pe.fA)(.5,0,-.5),Te=(0,pe.fA)(0,0,.5),Ce=(0,pe.fA)(0,.5,0),Ie=(0,pe.vt)(),Ae=(0,pe.vt)(),Oe=(0,pe.vt)(),Re=(0,pe.vt)(),De=(0,pe.vt)();(0,me.d)(Ie,xe,Ce),(0,me.d)(Ae,xe,Se),(0,me.h)(Oe,Ie,Ae),(0,me.n)(Oe,Oe),(0,me.d)(Ie,Se,Ce),(0,me.d)(Ae,Se,Te),(0,me.h)(Re,Ie,Ae),(0,me.n)(Re,Re),(0,me.d)(Ie,Te,Ce),(0,me.d)(Ae,Te,xe),(0,me.h)(De,Ie,Ae),(0,me.n)(De,De),Oe[0],Oe[1],Oe[2],Re[0],Re[1],Re[2],De[0],De[1],De[2],(0,T.vt)();var Pe=r(4576),Fe=r(69397);r(62258),r(6867),r(29878),r(87582);var Me=r(57917);function Ee(e,t){const r=(e,r,n=!1)=>({levels:e.map((e=>{const i=G(r(e.tesselation));return n&&function(e){const t=e,r=t.get(ne.r.POSITION).data,n=t.get(ne.r.NORMAL).data;if(n){const t=Ue(e,ne.r.NORMAL).data;for(let e=0;e<n.length;e+=3){const r=n[e+1];t[e+1]=-n[e+2],t[e+2]=r}}if(r){const t=Ue(e,ne.r.POSITION).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}}(i),{components:[{attributes:i,objectAndLayerIdColor:void 0,transformation:null,materialId:t,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:e.minScreenSpaceRadius}}))});switch(e){case"cone":return r(Le,(e=>function(e,t,r,n,i=!0,s=!0){let a=0;const o=t,l=e;let c=(0,pe.fA)(0,a,0),d=(0,pe.fA)(0,a+l,0),u=(0,pe.fA)(0,-1,0),h=(0,pe.fA)(0,1,0);n&&(a=l,d=(0,pe.fA)(0,0,0),c=(0,pe.fA)(0,a,0),u=(0,pe.fA)(0,1,0),h=(0,pe.fA)(0,-1,0));const f=[d,c],m=[u,h],p=r+2,y=Math.sqrt(l*l+o*o);if(n)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),n=(0,pe.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,pe.fA)(l*Math.cos(t)/y,-o/y,l*Math.sin(t)/y);m.push(i)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),n=(0,pe.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,pe.fA)(l*Math.cos(t)/y,o/y,l*Math.sin(t)/y);m.push(i)}const g=new Array,_=new Array;if(i){for(let e=3;e<f.length;e++)g.push(1),g.push(e-1),g.push(e),_.push(0),_.push(0),_.push(0);g.push(f.length-1),g.push(2),g.push(1),_.push(0),_.push(0),_.push(0)}if(s){for(let e=3;e<f.length;e++)g.push(e),g.push(e-1),g.push(0),_.push(e),_.push(e-1),_.push(1);g.push(0),g.push(2),g.push(f.length-1),_.push(1),_.push(2),_.push(m.length-1)}const b=(0,ye.oe)(3*p);for(let e=0;e<p;e++)b[3*e]=f[e][0],b[3*e+1]=f[e][1],b[3*e+2]=f[e][2];const v=(0,ye.oe)(3*p);for(let e=0;e<p;e++)v[3*e]=m[e][0],v[3*e+1]=m[e][1],v[3*e+2]=m[e][2];return[[ne.r.POSITION,new re.n(b,g,3,!0)],[ne.r.NORMAL,new re.n(v,_,3,!0)]]}(1,.5,e,!1)),!0);case"sphere":return r([{tesselation:0,minScreenSpaceRadius:0},{tesselation:1,minScreenSpaceRadius:8},{tesselation:2,minScreenSpaceRadius:16},{tesselation:3,minScreenSpaceRadius:50},{tesselation:4,minScreenSpaceRadius:250}],(e=>function(e,t,r){const n=e;let i,s;if(r)i=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],s=[0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1];else{const e=n*(1+Math.sqrt(5))/2;i=[-n,e,0,n,e,0,-n,-e,0,n,-e,0,0,-n,e,0,n,e,0,-n,-e,0,n,-e,e,0,-n,e,0,n,-e,0,-n,-e,0,n],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]}for(let t=0;t<i.length;t+=3)be.scale(i,t,e/be.length(i,t));let a={};function o(t,r){t>r&&([t,r]=[r,t]);const n=t.toString()+"."+r.toString();if(a[n])return a[n];let s=i.length;return i.length+=3,be.add(i,3*t,i,3*r,i,s),be.scale(i,s,e/be.length(i,s)),s/=3,a[n]=s,s}for(let e=0;e<t;e++){const e=s.length,t=new Array(4*e);for(let r=0;r<e;r+=3){const e=s[r],n=s[r+1],i=s[r+2],a=o(e,n),l=o(n,i),c=o(i,e),d=4*r;t[d]=e,t[d+1]=a,t[d+2]=c,t[d+3]=n,t[d+4]=l,t[d+5]=a,t[d+6]=i,t[d+7]=c,t[d+8]=l,t[d+9]=a,t[d+10]=l,t[d+11]=c}s=t,a={}}const l=(0,ye.Wz)(i);for(let e=0;e<l.length;e+=3)be.normalize(l,e);return[[ne.r.POSITION,new re.n((0,ye.Wz)(i),s,3,!0)],[ne.r.NORMAL,new re.n(l,s,3,!0)]]}(.5,e,!0)));case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Ue(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,Me.S)(r.data)},e.set(t,r)),r}const Le=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];var Ve=r(89192),ke=r(51768),Ne=r(74810);class ze{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._primitiveMaterialId=null,this._lodRendererId=null,this._context=null,this._symbolLayer=null,this._primitive=null,this._context=t,this._symbolLayer=e}_destroy(){this._lodRendererId=null,this._primitiveMaterialId=null}get loaded(){return this._loaded}get _isPrimitive(){return null!=this._primitive}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t=this._getLayerOpacity();let r={usePBR:!0,isSchematic:!0,mrrFactors:Ne.Bt,ambient:T.Un,diffuse:T.Un,hasSlicePlane:!1,castShadows:!0,layerOpacity:t,offsetTransparentBackfaces:!1,screenSizePerspective:{}};if(r.externalColor=C.Un,r.isInstanced=!0,this._isPrimitive){const e=new ke.fs;e.layerOpacity=t,r={...r,cullFace:Be((0,ke.ty)(e))}}const n=await e.createMaterial({type:"default",parameters:r}),i=this._symbolLayer.resource;this._primitive=i&&function(e){switch(e){case"sphere":case"cube":case"diamond":case"cylinder":case"cone":case"inverted-cone":case"tetrahedron":return!0}return!1}(i?.primitive)?i.primitive:he.r;const s=Ee(this._primitive,n);this._lodRendererId=await e.createLodRenderer(s),this._primitiveMaterialId=n,this._loaded=!0}async createDestroyCommand(){const{_lodRendererId:e,_primitiveMaterialId:t,_context:r}=this,n=r.renderCommandContext,i=[];return null!=e&&i.push(n.destroyLodRenderer(e)),null!=t&&i.push(n.destroyMaterial(t)),new y(n,n.mergeRenderCommandBuffers(i),[()=>this._destroy()])}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:n}=t;if(null==this._lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:i}=e;if(0===i)return t.createPipelineCommand();const s=this._isPrimitive,a=this._primitive||he.r,o=(0,R.vt)((0,fe.Fq)(a)),l=(0,T.ci)((0,R.Ej)(o)),c=(0,T.ci)((0,fe.Bb)(l,{isPrimitive:s,width:100,depth:null,height:null})),d=new Float64Array(16*i),u=new Float64Array(16*i),h=j(e),f=await n.applyElevationAlignmentTo(h);for(let e=0;e<i;++e){const t=e,r=f[3*e+0],n=f[3*e+1],i=f[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,He),a=this._computeLocalTransform(c,l,qe);this._writeMatrixToTypedBuffer(d,t,a),this._writeMatrixToTypedBuffer(u,t,s)}const m=B(e),p=new Uint8Array(i);e.getVisibilityArray(p);const y={featureIds:new Uint32Array(m),visibility:p,localTransforms:d,globalTransforms:u};return t.createPipelineCommand(r.addLodInstances(this._lodRendererId,e.id,y))}async createRemoveCommand(e){const{_context:t,_lodRendererId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.removeLodInstances(r,e))}async createUpdateVisibilityCommand(e){const{_lodRendererId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t}=this,r=t.renderCommandContext,n=this._primitiveMaterialId;if(null==n)return t.createPipelineCommand();const i=this._getLayerOpacity();let s={layerOpacity:i};if(this._isPrimitive){const e=new ke.fs;e.layerOpacity=i,s={...s,cullFace:Be((0,ke.ty)(e))}}return t.createPipelineCommand(r.updateMaterial({type:"default",materialId:n,parameters:s}))}async createUpdateElevationCommand(e){const{_context:t,_lodRendererId:r}=this,{renderCommandContext:n,mainThreadDelegate:i}=t,{featureCount:s,id:a}=e;if(null==r||0===s)return t.createPipelineCommand();const o=new Float64Array(16*s),l=j(e),c=await i.applyElevationAlignmentTo(l);for(let e=0;e<s;++e){const t=e,r=c[3*e+0],n=c[3*e+1],i=c[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,He);this._writeMatrixToTypedBuffer(o,t,s)}return t.createPipelineCommand(n.updateLodInstancesData(r,a,o))}_writeMatrixToTypedBuffer(e,t,r){let n=16*t;for(let t=0;t<16;t++)e[n++]=r[t]}_computeGlobalTransform(e,t,r,n,i){return je[0]=e,je[1]=t,je[2]=r,(0,ue.l)(n,je,i,this._context.renderSpatialReference),i}_computeLocalTransform(e,t,r){return(0,O.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const n=function(e=T.Un,t,r,n=1){const i=new Array(3);if(null==t||null==r)i[0]=1,i[1]=1,i[2]=1;else{let n,s=0;for(let a=2;a>=0;a--){const o=e[a],l=null!=o,c=0===a&&!n&&!l,d=r[a];let u;"symbol-value"===o||c?u=0!==d?t[a]/d:1:l&&"proportional"!==o&&isFinite(o)&&(u=0!==d?o/d:1),null!=u&&(i[a]=u,n=u,s=Math.max(s,Math.abs(u)))}for(let e=2;e>=0;e--)null==i[e]?i[e]=n:0===i[e]&&(i[e]=.001*s)}for(let e=2;e>=0;e--)i[e]/=n;return(0,T.ci)(i)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===n[0]&&1===n[1]&&1===n[2]||(0,O.hs)(r,r,n)}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}}function Be(e){return e?Ve.s2.None:Ve.s2.Back}const je=(0,T.vt)(),qe=(0,S.vt)(),He=(0,S.vt)();class Ge{constructor(e,t){this._symbols=new Array,this._featureDataPartitioning=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){this._symbols[0]=new ie(x(),this._context),this._symbols[1]=new ze(new v.A,this._context),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=this._partition(e),n=await Promise.all(r.map((async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))}))),i=t.joinPipelineCommands(n);return i.appendPipelineStateCommand((()=>this._featureDataPartitioning.set(e.id,r))),i}async createRemoveCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e);if(null==i)return new y(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t.id))}))),a=r.joinPipelineCommands(s);return a.appendPipelineStateCommand((()=>t.delete(e))),a}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e.id);if(null==i)return new y(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateVisibilityCommand(t))})));return r.joinPipelineCommands(s)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=[];for(let t=0;t<this._symbols.length;++t){const n=this._symbols[t];null!=n&&n.loaded&&r.push(n.createUpdateLayerViewOpacityCommand(e))}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createUpdateElevationCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.values()){const e=t.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateElevationCommand(t))}));r.push(...e)}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createDestroyCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.keys())r.push(this.createRemoveCommand(t));for(const e of this._symbols)r.push(e.createDestroyCommand());const n=await Promise.all(r);return t.joinPipelineCommands(n)}async _provisionSymbol(e){if(null==e)return null;const t=this._symbols[e];return t?(t.loaded||await t.load(),t):null}_getLoadedSymbol(e){if(null==e)return null;const t=this._symbols[e];return null!=t&&t.loaded?t:null}_partition(e){const t=B(e);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,n=[[],[]];for(let e=0;e<r;++e)n[t[e]%2].push(e);return n.map(((t,r)=>new $e(r,e.subset(new Uint32Array(t))))).filter((e=>e.features.featureCount>0))}}class $e{constructor(e,t){this.index=e,this.features=t}}class Ye{constructor(e,t,r,n,i,s,a){this.viewSpatialReference=e,this.renderSpatialReference=t,this.mainThreadDelegate=r,this.renderCoordsHelper=n,this.renderCommandContext=i,this.layerInfo=s,this.layerViewInfo=a,this.symbolRendererFactory=new Ze(this)}createPipelineCommand(e=this.renderCommandContext.createRenderCommandBuffer(),t=[]){return new y(this.renderCommandContext,e,t)}joinPipelineCommands(e){return 0===e.length?this.createPipelineCommand():e.filter((e=>null!=e)).reduce(((e,t)=>(e.append(t),e)))}}class Ze{constructor(e){this.context=e}createSymbolRendererFromJSON(e){const t=(0,p.L)(e??Je)??void 0;if(!t)throw new Error("Failed to create renderer");const r=t.type;switch(r){case"simple":return new le(t,this.context);case"unique-value":return new Ge(t,this.context);default:return console.warn(`Unable to create symbolrenderer for renderer of ${r}`),this.createSymbolRendererFromJSON(Je)}}createSymbolRendererFromSymbol(e){const t=e?.type;switch(t){case"point-3d":return new oe(e,this.context);case"picture-marker":return new ie(x(),this.context);default:return console.warn(`Unable to create symbolrenderer for symbol of ${t}`),null}}createSymbolRendererFromSymbolLayer(e){const t=e.type;return"icon"===t?new ie(e,this.context):(console.warn(`Unable to create symbolrenderer for symbolLayer of ${t}`),null)}}const Je={type:"simple"};var We,Xe,Qe,Ke=r(69622),et=r(60999),tt=r(32587),rt=r(11932);class nt{constructor(e,t){this._joinCommands=e,this._createCommand=t,this._executing=new Set,this._nextEvents=new Map}async enqueueActions(e){const{_executing:t}=this;return e.every((e=>!t.has(e.tileId)))?await this._executeActions(e):await this._scheduleActions(e)}async _scheduleActions(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e.tileId))).filter(Pe.Ru));let n;if(0!==r.size){const i=new Array,s=new Array;for(const e of r)i.push(e.actions),s.push(e.resolver);i.push(e);for(const e of i)for(const r of e)t.delete(r.tileId);const a=i.reduce(at);n=new it(a),n.resolver.promise.then((()=>{for(const e of s)e.resolve()}),(e=>{for(const t of s)t.reject(e)}))}else n=new it(e);for(const e of n.actions)t.set(e.tileId,n);return this._validate(),await n.resolver.promise}async _executeActions(e){const t=e.map((e=>e.tileId)),{_executing:r}=this;for(const e of t)r.add(e);this._validate();try{const t=(await Promise.allSettled(e.map(this._createCommand))).map((e=>"fulfilled"===e.status?e.value:null)).filter(Pe.Ru);if(0===t.length)return;const r=this._joinCommands(t);await(r?.execute())}finally{for(const e of t)r.delete(e);this._executeTails(t)}}_executeTails(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e))).filter(Pe.Ru));if(0===r.size)return;const{_executing:n}=this;for(const e of r)if(!e.actions.some((e=>n.has(e.tileId)))){for(const r of e.actions)t.delete(r.tileId);this._executeActions(e.actions).then((()=>{e.resolver.resolve()}),(t=>{e.resolver.reject(t)}))}}_validate(){const{_nextEvents:e}=this,t=Array.from(new Set(e.values()));if(0!==t.length&&t.some((t=>t.actions.some((({tileId:r})=>e.get(r)!==t)))))throw new Error("Mismatch between map and event")}}class it{constructor(e){this.actions=e,this.resolver=(0,s.Tw)()}}class st{constructor(e,t,r){this.tileId=e,this.type=t,this.data=r}toString(){return`${this.tileId}: ${this.type}`}}function at(e,t){const r=new Array(e.length).fill(!0),n=new Array(t.length).fill(!0);e:for(let i=0;i<e.length;++i){const s=e[i];for(let e=0;e<t.length;++e)if(n[e])switch(ot(s,t[e])){case Xe.NONE:break;case Xe.OVERWRITE:r[i]=!1;continue e;case Xe.REDUNDANT:n[e]=!1;break;case Xe.ANNIHILATE:r[i]=!1,n[e]=!1;continue e}}const i=new Array;for(let t=0;t<e.length;++t)r[t]&&i.push(e[t]);for(let e=0;e<t.length;++e)n[e]&&i.push(t[e]);return i}function ot(e,t){if(e.tileId!==t.tileId)return Xe.NONE;if(e.type===We.ADD&&t.type===We.REMOVE)return Xe.ANNIHILATE;if(e.type===We.ADD&&t.type===We.UPDATE_VISIBILITY)return Xe.REDUNDANT;if(e.type===We.REMOVE&&t.type===We.ADD)return Xe.ANNIHILATE;if(e.type===We.UPDATE_VISIBILITY&&t.type===We.REMOVE)return Xe.OVERWRITE;if(e.type===We.UPDATE_VISIBILITY&&t.type===We.UPDATE_VISIBILITY)return Xe.OVERWRITE;throw new Error("Impossible sequence of actions")}(Qe=We||(We={})).ADD="ADD",Qe.REMOVE="REMOVE",Qe.UPDATE_VISIBILITY="UPDATE_VISIBILITY",function(e){e.NONE="NONE",e.ANNIHILATE="ANNIHILATE",e.OVERWRITE="OVERWRITE",e.REDUNDANT="REDUNDANT"}(Xe||(Xe={}));var lt=r(24326);function ct(e=""){return`${e}${(0,lt.c)()}`}r(37539),new Float64Array(3);class dt{constructor(e,t){this._parent=e,this._subsetIndices=t,this.id=ct(`featureDataSubset-${e.id}-`)}get extent(){return this._parent.extent}get featureCount(){return this._subsetIndices.length}get usedMemory(){return this._parent.usedMemory+Fe.qK+this._subsetIndices.byteLength}get isFullyEnabled(){for(const e of this._subsetIndices)if(!this._parent.getEnabled(e))return!1;return!0}getObjectId(e){return this._parent.getObjectId(this._subsetIndices[e])}getAttribute(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributeAsTimestamp(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributes(e){return this._parent.getAttributes(this._subsetIndices[e])}getCoordinates(e,t,r){return this._parent.getCoordinates(this._subsetIndices[e],t,r)}getOptimizedGeometry(e){return this._parent.getOptimizedGeometry(this._subsetIndices[e])}getCentroid(e,t){return this._parent.getCentroid(this._subsetIndices[e],t)}getBounds(e){return this._parent.getBounds(this._subsetIndices[e])}getBoundingBox(e){return this._parent.getBoundingBox(this._subsetIndices[e])}getObjectIdsArray(e,t,r){return this._parent.getObjectIdsArray(e,this._translatedIndices(t),r)}getCoordinatesArray(e,t,r){return this._parent.getCoordinatesArray(e,this._translatedIndices(t),r)}objectIds(e){return this._parent.objectIds(this._translatedIndices(e))}subset(e){const{_subsetIndices:t}=this,r=new Uint32Array(e.length);for(let n=0;n<r.length;++n)r[n]=t[e[n]];return new dt(this._parent,r)}disableObjectIds(e){if(0===e.size)return;const{featureCount:t}=this,r=new Array;for(let n=0;n<t;++n)this.getEnabled(n)&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)this.setEnabled(e,!1)}setEnabled(e,t){this._parent.setEnabled(this._subsetIndices[e],t)}getEnabled(e){return this._parent.getEnabled(this._subsetIndices[e])}enableAll(){const{_subsetIndices:e,_parent:t}=this;for(const r of e)t.setEnabled(r,!0)}getVisibilityArray(e,t,r){return this._parent.getVisibilityArray(e,this._translatedIndices(t),r)}enabledObjectIds(e){return this._parent.enabledObjectIds(this._translatedIndices(e))}*_translatedIndices(e){const{_subsetIndices:t}=this;if(null!=e)for(const r of e)yield t[r];else yield*t}}class ut{constructor(e){this._tile=e,this.id=ct(`featureData-${e.id}-`),this._enabled=new Array(e.featureCount).fill(!0)}get featureCount(){return this._tile.featureCount}get usedMemory(){return Fe.qK+(0,Fe.$B)(this.id)}get extent(){return this._tile.descriptor.extent}get isFullyEnabled(){return this._enabled.every((e=>e))}getObjectId(e){return this._tile.getObjectId(e)}getAttribute(e,t){return this._tile.getAttribute(e,t)}getAttributeAsTimestamp(e,t){return this._tile.getAttribute(e,t)}getAttributes(e){return this._tile.getAttributes(e)}getCoordinates(e,t,r){return this._tile.getCoordinates(e,t,r)}getOptimizedGeometry(e){return this._tile.getOptimizedGeometry(e)}getCentroid(e,t){return this._tile.getCentroid(e,t)}getBounds(e){return this._tile.getBounds(e)}getBoundingBox(e){return this._tile.getBoundingBox(e)}getObjectIdsArray(e,t,r){return this._tile.getObjectIdsArray(e,t,r)}getCoordinatesArray(e,t,r){return this._tile.getCoordinatesArray(e,t,r)}objectIds(e){return this._tile.objectIds(e)}subset(e){return new dt(this,e)}disableObjectIds(e){if(0===e.size)return;const{_enabled:t}=this,r=new Array;for(const n of this._allFeatureIndices())t[n]&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)t[e]=!1}setEnabled(e,t){this._enabled[e]=t}getEnabled(e){return this._enabled[e]}enableAll(){this._enabled.fill(!0)}getVisibilityArray(e,t=this._allFeatureIndices(),r=0){const{_enabled:n}=this;for(const i of t)e[r++]=Number(n[i]);return r}*enabledObjectIds(e=this._allFeatureIndices()){const{_enabled:t}=this;for(const r of e)t[r]&&(yield this.getObjectId(r))}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}}let ht=class extends Ke.A{constructor(e){super(e),this.extent=null,this._tileHandles=new tt.A,this._wanted=new tt.A,this._updateRequested=!1,this._synchronizationTask=null,this._requestedTiles=new Array}destroy(){this._tileHandles.clear(),this._wanted.clear()}get updating(){return this._updateRequested||!(this._synchronizationTask?.finished??1)}get _boundingRect(){const{extent:e}=this;return null==e?null:(0,D.VY)(e)}get _missingTiles(){const e=new Array,t=this._wanted,r=this._tileHandles;for(const n of t.values())null==r.get(n.id)?.featureData&&e.push(n);return e}onTileTreeChange({tiles:e}){this._requestedTiles=e,this._scheduleTilesSync()}_scheduleTilesSync(){if(this._updateRequested)return;this._updateRequested=!0;const e=this._synchronizationTask,t=(0,et.UT)((async()=>{try{await(0,a.C_)((()=>e?.finished??!0)),await(0,rt.NO)(),this._updateRequested=!1,await this._synchronizeTiles()}finally{this._synchronizationTask===t&&(this._synchronizationTask=null)}}));this._synchronizationTask=t}async _synchronizeTiles(){const e=this._requestedTiles,t=this._tileHandles,r=new Array;for(const n of e)t.has(n.id)||r.push(n);const n=new Array;for(const r of t.values()){const{id:t}=r;e.every((e=>e.id!==t))&&n.push(r.descriptor)}const i=this._tileHandles,{_boundingRect:s}=this,a=null!=s?r.filter((e=>(0,D.HY)(s,e.extent))):r,o=this._wanted,l=new Array;for(const{id:e}of n)o.delete(e);for(const e of a)o.set(e.id,e);const c=this._missingTiles;for(const e of n){const{id:t}=e;if(c.some((t=>ft(t,e)||ft(e,t))))continue;const r=i.get(t);null!=r&&l.push(this._removeTile(r))}for(const e of a)l.push(this._addTile(e));const d=await Promise.allSettled(l);for(const e of d)"rejected"===e.status&&console.error(e.reason)}forEachTile(e){for(const t of this._tileHandles.values()){const r=t.featureData;null!=r&&e(r)}}async _removeTile(e){e.loadTask.abort(),this._tileHandles.delete(e.id),this._validate();const{featureData:t}=e;null!=t&&await this.synchronizer.enqueueActions([new st(e.id,We.REMOVE,t)])}async _addTile(e){const{_tileHandles:t}=this,r=t.get(e.id);if(null!=r){if(!pt(r)||r.featureData.isFullyEnabled)return;return r.featureData.enableAll(),void await this._onTileLoad(r)}const n=new mt(e,(0,et.UT)((async t=>{const r=await this.loadTile(e,t);return(0,s.Te)(t),new ut(r)})));this._tileHandles.set(n.id,n);try{await n.loadTask.promise}catch(e){return void(0,s.jH)(e)}(function(e){if(!pt(e))throw new Error})(n),await this._onTileLoad(n)}async _onTileLoad(e){const{_wanted:t,_tileHandles:r,_missingTiles:n}=this,i=e.descriptor,s=new Array,a=new Set;for(const o of r.values()){if(o===e)continue;const{descriptor:l,id:c}=o;if(t.has(c)||n.some((e=>ft(e,l)||ft(l,e)))){if(pt(o)){if(ft(i,l)){const e=o.featureData;for(const t of e.objectIds())a.add(t)}if(ft(l,i)){const t=e.featureData,r=new Set(t.objectIds()),{featureData:n}=o;n.disableObjectIds(r),s.push(new st(c,We.UPDATE_VISIBILITY,n)),this._validateRemoval(n,r)}}}else{r.delete(c),o.loadTask.abort();const{featureData:e}=o;null!=e&&s.push(new st(c,We.REMOVE,e))}}a.size>0&&(e.featureData.disableObjectIds(a),this._validateRemoval(e.featureData,a)),this._validate(),s.push(new st(e.id,We.ADD,e.featureData)),await this.synchronizer.enqueueActions(s)}_validate(){if(!(0,l.A)("feature-pipeline-3d-test-validation"))return;const e=new Array;for(const t of this._tileHandles.values()){if(!pt(t))continue;const{featureData:r}=t;e.push({featureData:r,objectIds:new Set(r.enabledObjectIds())})}for(let t=0;t<e.length;++t){const{featureData:r,objectIds:n}=e[t];for(let i=t+1;i<e.length;++i){const{featureData:t,objectIds:s}=e[i];for(const e of s)if(n.has(e))throw new Error(`${r.id} and ${t.id} both contain ${e}.`)}}}_validateRemoval(e,t){if((0,l.A)("feature-pipeline-3d-test-validation"))for(const r of e.enabledObjectIds())if(t.has(r))throw new Error(`Failed to remove ${r} from ${e.id}!`)}};function ft({lij:[e,t,r]},{lij:[n,i,s]}){const a=n-e;return a>=0&&t===i>>a&&r===s>>a}(0,n._)([(0,o.MZ)()],ht.prototype,"updating",null),(0,n._)([(0,o.MZ)({constructOnly:!0})],ht.prototype,"loadTile",void 0),(0,n._)([(0,o.MZ)({constructOnly:!0})],ht.prototype,"synchronizer",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"extent",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"_boundingRect",null),(0,n._)([(0,o.MZ)()],ht.prototype,"_missingTiles",null),(0,n._)([(0,o.MZ)()],ht.prototype,"_updateRequested",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"_synchronizationTask",void 0),ht=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],ht);class mt{constructor(e,t){this.descriptor=e,this.loadTask=t}get id(){return this.descriptor.id}get featureData(){return this.loadTask.value}}function pt(e){return null!=e.featureData}var yt=r(75503),gt=r(27647),_t=r(92722);class bt{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return Fe.qK+Fe.RS}getObjectId(){return this._view.getObjectId(this._index)}getAttribute(e){return this._view.getAttribute(this._index,e)}getAttributeAsTimestamp(e){return this._view.getAttributeAsTimestamp(this._index,e)}getAttributes(){return this._view.getAttributes(this._index)}getOptimizedGeometry(){return this._view.getOptimizedGeometry(this._index)}getCentroid(e){return this._view.getCentroid(this._index,e)}getBounds(){return this._view.getBounds(this._index)}getBoundingBox(){return this._view.getBoundingBox(this._index)}cloneWithGeometry(e){return new vt(this._index,this._view,e)}}class vt extends bt{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,gt.Q)(new _t.A,this._geometryOverride,e.hasZ,e.hasM)}}class wt{constructor(e,t){this.featureData=e,this.bounds=t}}class xt{constructor(){this._tileBounds=new Map,this.events=new i.A,this.featureAdapter=St.shared}get usedMemory(){return Fe.qK+Fe.qK*this._tileBounds.size}addTile(e){const{featureCount:t}=e;if(0===t)return;const r=new yt.w(9,(t=>e.getBounds(t))),n=new Array;for(let e=0;e<t;++e)n[e]=e;r.load(n),this._tileBounds.set(e.id,new wt(e,r)),this.events.emit("changed")}removeTile(e){this._tileBounds.delete(e),this.events.emit("changed")}clear(){this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const{featureData:t,bounds:r}of this._tileBounds.values())r.all((r=>{t.getEnabled(r)&&e(new bt(r,t))}))}forEachInBounds(e,t){Tt.minX=e[0],Tt.minY=e[1],Tt.maxX=e[2],Tt.maxY=e[3];for(const{featureData:e,bounds:r}of this._tileBounds.values())r.search(Tt,(r=>{e.getEnabled(r)&&t(new bt(r,e))}))}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,n=-1/0,i=-1/0;for(const{bounds:e}of this._tileBounds.values()){const{minX:s,minY:a,maxX:o,maxY:l}=e.toJSON();t=Math.min(t,s),r=Math.min(r,a),n=Math.min(n,o),i=Math.min(i,l)}return{xmin:t,ymin:r,xmax:n,ymax:i,spatialReference:e}}}class St{static{this.shared=new St}getObjectId(e){return e.getObjectId()}getAttribute(e,t){return e.getAttribute(t)}getAttributeAsTimestamp(e,t){return e.getAttributeAsTimestamp(t)}getAttributes(e){return e.getAttributes()}getGeometry(e){return e.getOptimizedGeometry()}getCentroid(e,t){return e.getCentroid(t)}cloneWithGeometry(e,t){return e.cloneWithGeometry(t)}}const Tt=new yt.E;var Ct=r(80893);class It{constructor(e,t,r){this.descriptor=e,this._pages=t,this._pageSize=r;const n=Fe.ez+t.reduce(((e,{usedMemory:t})=>e+t),0),i=3*Fe.RS;this.usedMemory=Fe.qK+n+i,this.featureCount=t.reduce(((e,t)=>e+t.featureCount),0)}get id(){return this.descriptor.id}getObjectId(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getObjectId(r)}getAttribute(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttribute(n,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(n,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:n,featurePageIndex:i}=this._translateIndex(e);this._pages[n].getCoordinates(i,t,r)}getOptimizedGeometry(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getOptimizedGeometry(r)}getCentroid(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getCentroid(n,t)}getBounds(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBounds(r)}getBoundingBox(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBoundingBox(r)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getObjectIdsArray(e,i,n);return n}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getCoordinatesArray(e,i,n);return n}*objectIds(e=this._allFeatureIndices()){for(const{page:t,indices:r}of this._batchPageIndices(e))for(const e of t.objectIds(r))yield e}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}*_batchPageIndices(e){const t=new Array;{let r=0,n=new Array;for(const i of e){const{pageIndex:e,featurePageIndex:s}=this._translateIndex(i);r!==e&&(0!==n.length&&t.push({pageIndex:r,indices:n}),r=e,n=[]),n.push(s)}0!==n.length&&t.push({pageIndex:r,indices:n})}const{_pages:r}=this;for(const{pageIndex:e,indices:n}of t)yield{page:r[e],indices:n}}}var At=r(49186),Ot=r(51624),Rt=r(62577),Dt=r(95466),Pt=r(53655);class Ft{constructor(e){this._reader=new Ot.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return Mt(e.getMessage());e.skip()}Ut()}(this._reader)}get featureCount(){return this._index.featureIndices.length}get exceededTransferLimit(){return this._index.exceededTransferLimit}get usedMemory(){return this._reader.usedMemory}getObjectId(e){return this.getAttribute(e,this._index.objectIdFieldName)}getAttribute(e,t){const{_index:{fieldsIndex:r,attributeIndices:n}}=this,i=r.get(t)?.index;if(null==i)return;const s=n[e*r.fields.length+i],a=this._reader;return a.move(s),Lt(a)}getAttributeAsTimestamp(e,t){const r=this.getAttribute(e,t);return"string"==typeof r?new Date(r).getTime():"number"==typeof r||null==r?r:null}getAttributes(e){const{_index:{fieldsIndex:t,attributeIndices:r}}=this,n=e*t.fields.length,i=this._reader,s={};for(const e of t.fields){const t=r[n+e.index];i.move(t),s[e.name]=Lt(i)}return s}getCoordinates(e,t,r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;n.move(s[e]),this._readCoordinates(a,o,t,r)}getOptimizedGeometry(e){const t=(0,T.vt)();return this.getCoordinates(e,t),new _t.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,Vt);const[n,i,s]=Vt,a=[n,i];return t&&(a[3]=s),r&&(a[t?4:3]=0),new _t.A([],a)}getBounds(e){this.getCoordinates(e,Vt);const[t,r]=Vt,n=new yt.E;return n.minX=t,n.minY=r,n.maxX=t,n.maxY=r,n}getBoundingBox(e){this.getCoordinates(e,Vt);const[t,r,n]=Vt;return(0,R.fA)(t,r,n,t,r,n)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{objectIdFieldName:i,attributeIndices:s,fieldsIndex:a}=this._index,o=a.get(i).index,l=a.fields.length;for(const i of t){const t=s[i*l+o];n.move(t),e[r++]=Lt(n)}return r}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;for(const i of t){const t=s[i];n.move(t),r=this._readCoordinates(a,o,e,r)}return r}*objectIds(e=this._allFeatureIndices()){const t=this._reader,{objectIdFieldName:r,attributeIndices:n,fieldsIndex:i}=this._index,s=i.get(r).index,a=i.fields.length;for(const r of e){const e=n[r*a+s];t.move(e),yield Lt(t)}}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[n,i,s],a,o){const l=this._reader,c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)3===l.tag()?(l.getUInt32(),a[o++]=n+e*l.getSInt64(),a[o++]=i+t*l.getSInt64(),a[o++]=s+r*l.getSInt64()):l.skip();break}default:l.skip()}return o}}function Mt(e){for(;e.next();){if(1===e.tag())return Et(e.getMessage());e.skip()}Ut()}function Et(e){let t,r,n=!1,i=!1,s=0;const a=new Array,o=new Array,l=new Array;for(;e.next();)switch(e.tag()){case 1:r=e.getString();break;case 7:0!==e.getEnum()&&Ut();break;case 9:n=e.getBool()??!1;break;case 12:t=(0,Rt.Q1)(e.processMessage(Pt.ae));break;case 13:{const t=e.processMessage(Pt.cn);t.index=s++,a.push(t);break}case 15:{o.push(e.pos());const t=e.getUInt32(),r=e.pos()+t;for(;e.pos()<r&&e.next();)1===e.tag()?(l.push(e.pos()),e.skip()):e.skip();break}case 10:i=e.getBool()??!1;break;default:e.skip()}const c=new Dt.A(a);return null!=t&&i&&null!=r&&c.has(r)||Ut(),{transform:t,exceededTransferLimit:n,fieldsIndex:c,objectIdFieldName:r,featureIndices:o,attributeIndices:l}}function Ut(){const e=new At.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function Lt(e){const t=e.getLength(),r=e.pos()+t;for(;e.pos()<r&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}const Vt=(0,T.vt)();class kt{constructor(e,t,r,n,i){this.spatialReference=e,this.url=r,this.objectIdField=n,this.capabilities=i;const{supportsMaxRecordCountFactor:s,maxRecordCount:a}=this.capabilities.query,o=s?4:1,l=(a??8e3)*o;this._pageSize=Math.min(8e3,l);const c=t.clone();c.cacheHint=!0,c.resultType="tile",c.outSpatialReference=e,c.returnGeometry=!0,c.returnZ=!0,c.maxRecordCountFactor=o,c.num=this._pageSize,c.outFields=[n],this._baseQuery=c}async fetch(e,t){const{spatialReference:r,_pageSize:n}=this,i=(0,D.w1)(e.extent,r),a=this._baseQuery.clone();a.geometry=i;const o=new Array;let l=0,c=!1,d=1;for(;!c;){const e=[];for(let r=0;r<d;++r)e.push(this._fetchPage(a,l++,t));const r=await Promise.all(e);(0,s.Te)(t);for(const e of r){const t=0!==e.featureCount;c||=!e.exceededTransferLimit||!t,t&&o.push(e)}d=Math.min(d+1,4)}return new It(e,o,n)}async _fetchPage(e,t,r){const n=e.clone();n.start=t*this._pageSize;const i=(await(0,Ct.kS)(this.url,n,{signal:r})).data;return(0,s.Te)(r),new Ft(i)}}var Nt=r(24151),zt=r(29920),Bt=r(77690),jt=r(29242);var qt=r(13030),Ht=r(78662),Gt=r(1843),$t=r(49255),Yt=r(40268),Zt=r(16943),Jt=r(25634),Wt=r(11725),Xt=r(13464),Qt=r(77194);class Kt{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var er=r(59907),tr=r(43616),rr=r(13259),nr=r(97220),ir=r(98958),sr=r(59643),ar=r(33524),or=r(90644);class lr extends ir.w{constructor(e,t){super(e,t,new nr.$(rr.H,(()=>r.e(8241).then(r.bind(r,48241))))),this.primitiveType=t.occlusionPass?Y.WR.POINTS:Y.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:n,output:i,depthTestEnabled:s,occlusionPass:a}=e,o=t===sr.Y.NONE,l=t===sr.Y.ColorAlpha,c=i===$t.V.Highlight,d=s&&!n&&!l&&!a&&!c;return(0,or.Ey)({blending:(0,$t.RN)(i)?o?or.RC:(0,ar.ez)(t):null,depthTest:s&&!n?{func:Y.MT.LEQUAL}:null,depthWrite:d?or.Uy:null,drawBuffers:(0,ar.m6)(t,i),colorWrite:or.kn,polygonOffset:r?cr:null})}}const cr={factor:0,units:-4};var dr=r(53466),ur=r(22911),hr=r(51976),fr=r(35256);class mr extends fr.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.vvSize=!1,this.vvColor=!1,this.hasVerticalOffset=!1,this.hasScreenSizePerspective=!1,this.hasRotation=!1,this.debugDrawLabelBorder=!1,this.hasPolygonOffset=!1,this.depthTestEnabled=!0,this.pixelSnappingEnabled=!0,this.draped=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.occlusionPass=!1,this.occludedFragmentFade=!1,this.objectAndLayerIdColorInstanced=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.textureCoordinateType=dr.I.None,this.emissionSource=ur.ZX.None,this.discardInvisibleFragments=!0,this.hasVvInstancing=!1,this.snowCover=!1}}(0,n._)([(0,hr.W)()],mr.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occlusionTestEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"signedDistanceFieldEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"vvSize",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"vvColor",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasVerticalOffset",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasScreenSizePerspective",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasRotation",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"debugDrawLabelBorder",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasPolygonOffset",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"depthTestEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"pixelSnappingEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"draped",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"terrainDepthTest",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"cullAboveTerrain",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occlusionPass",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occludedFragmentFade",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"objectAndLayerIdColorInstanced",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"horizonCullingEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"isFocused",void 0);var pr=r(49788);class yr extends Wt.im{constructor(e,t){super(e,zr),this.produces=new Map([[Xt.N.HUD_MATERIAL,e=>(0,$t.Mb)(e)&&!this.parameters.drawAsLabel],[Xt.N.LABEL_MATERIAL,e=>(0,$t.Mb)(e)&&this.parameters.drawAsLabel],[Xt.N.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[Xt.N.DRAPED_MATERIAL,e=>this.parameters.draped&&(0,$t.Mb)(e)]]),this._visible=!0,this._configuration=new mr(t)}getConfiguration(e,t){const r=this.parameters.draped;return super.getConfiguration(e,t,this._configuration),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=r,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===Xt.N.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=!r&&this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===Xt.N.OCCLUSION_PIXELS,(0,$t.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!E.b.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,r,n,i,s){const{options:{selectionMode:a,hud:o,excludeLabels:l},point:c,camera:d}=r,{parameters:u}=this;if(!a||!o||l&&u.isLabel||!e.visible||!c||!d)return;const h=e.attributes.get(ne.r.FEATUREATTRIBUTE),f=null==h?null:(0,C.ci)(h.data,Er),{scaleX:m,scaleY:p}=Hr(f,u,d.pixelRatio);(0,Bt.z0)(Or,t),e.attributes.has(ne.r.FEATUREATTRIBUTE)&&function(e){const t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],d=1/Math.sqrt(t*t+r*r+n*n),u=1/Math.sqrt(i*i+s*s+a*a),h=1/Math.sqrt(o*o+l*l+c*c);e[0]=t*d,e[1]=r*d,e[2]=n*d,e[3]=i*u,e[4]=s*u,e[5]=a*u,e[6]=o*h,e[7]=l*h,e[8]=c*h}(Or);const y=e.attributes.get(ne.r.POSITION),g=e.attributes.get(ne.r.SIZE),_=e.attributes.get(ne.r.NORMAL),b=e.attributes.get(ne.r.ROTATION),v=e.attributes.get(ne.r.CENTEROFFSETANDDISTANCE);(0,_e.vA)(y.size>=3);const w=(0,rr.c)(u),x="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<y.data.length/y.size;e++){const n=e*y.size;(0,me.i)(wr,y.data[n],y.data[n+1],y.data[n+2]),(0,me.t)(wr,wr,t),(0,me.t)(wr,wr,d.viewMatrix);const i=e*v.size;if((0,me.i)(Fr,v.data[i],v.data[i+1],v.data[i+2]),!x&&(wr[0]+=Fr[0],wr[1]+=Fr[1],0!==Fr[2])){const e=Fr[2];(0,me.n)(Fr,wr),(0,me.d)(wr,wr,(0,me.g)(Fr,Fr,e))}const a=e*_.size;if((0,me.i)(xr,_.data[a],_.data[a+1],_.data[a+2]),_r(xr,Or,d,Ur),Gr(this.parameters,wr,Ur,d,vr),d.applyProjection(wr,Sr),Sr[0]>-1){x&&(Fr[0]||Fr[1])&&(Sr[0]+=Fr[0]*d.pixelRatio,0!==Fr[1]&&(Sr[1]+=(0,Qt.m0)(Fr[1],vr.factorAlignment)*d.pixelRatio),d.unapplyProjection(Sr,wr)),Sr[0]+=this.parameters.screenOffset[0]*d.pixelRatio,Sr[1]+=this.parameters.screenOffset[1]*d.pixelRatio,Sr[0]=Math.floor(Sr[0]),Sr[1]=Math.floor(Sr[1]);const t=e*g.size;kr[0]=g.data[t],kr[1]=g.data[t+1],(0,Qt.MD)(kr,vr.factor,kr);const n=Lr*d.pixelRatio;let i=0;u.textureIsSignedDistanceField&&(i=Math.min(u.outlineSize,.5*kr[0])*d.pixelRatio/2),kr[0]*=m,kr[1]*=p;const a=e*b.size,o=u.rotation+b.data[a];if(br(c,Sr[0],Sr[1],kr,n,i,o,u,w)){const e=r.ray;if((0,me.t)(Cr,wr,(0,O.B8)(Dr,d.viewMatrix)),Sr[0]=c[0],Sr[1]=c[1],d.unprojectFromRenderScreen(Sr,wr)){const t=(0,T.vt)();(0,me.c)(t,e.direction);const r=1/(0,me.l)(t);(0,me.g)(t,t,r),s((0,me.j)(e.origin,wr)*r,t,-1,Cr)}}}}}intersectDraped(e,t,r,n,i){const s=e.attributes.get(ne.r.POSITION),a=e.attributes.get(ne.r.SIZE),o=e.attributes.get(ne.r.ROTATION),l=this.parameters,c=(0,rr.c)(l),d=e.attributes.get(ne.r.FEATUREATTRIBUTE),u=null==d?null:(0,C.ci)(d.data,Er),{scaleX:h,scaleY:f}=Hr(u,l,e.screenToWorldRatio),m=Vr*e.screenToWorldRatio;for(let t=0;t<s.data.length/s.size;t++){const d=t*s.size,u=s.data[d],p=s.data[d+1],y=t*a.size;kr[0]=a.data[y],kr[1]=a.data[y+1];let g=0;l.textureIsSignedDistanceField&&(g=Math.min(l.outlineSize,.5*kr[0])*e.screenToWorldRatio/2),kr[0]*=h,kr[1]*=f;const _=t*o.size,b=l.rotation+o.data[_];br(r,u,p,kr,m,g,b,l,c)&&n(i.distance,i.normal,-1)}}createBufferWriter(){return new qr}applyShaderOffsetsView(e,t,r,n,i,s,a){const o=_r(t,r,i,Ur);return this._applyVerticalGroundOffsetView(e,o,i,a),Gr(this.parameters,a,o,i,s),this._applyPolygonOffsetView(a,o,n[3],i,a),this._applyCenterOffsetView(a,n,a),a}applyShaderOffsetsNDC(e,t,r,n,i){return this._applyCenterOffsetNDC(e,t,r,n),null!=i&&(0,me.c)(i,n),this._applyPolygonOffsetNDC(n,t,r,n),n}_applyPolygonOffsetView(e,t,r,n,i){const s=n.aboveGround?1:-1;let a=Math.sign(r);0===a&&(a=s);const o=s*a;if(this.parameters.shaderPolygonOffset<=0)return(0,me.c)(i,e);const l=(0,M.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/n.viewport[2];return(0,me.g)(i,e,o>0?c:1/c),i}_applyVerticalGroundOffsetView(e,t,r,n){const i=(0,me.l)(e),s=r.aboveGround?1:-1,a=r.computeRenderPixelSizeAtDist(i)*Yt.R,o=(0,me.g)(wr,t.normal,s*a);return(0,me.f)(n,e,o),n}_applyCenterOffsetView(e,t,r){const n="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,me.c)(r,e),n&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,me.n)(xr,r),(0,me.f)(r,r,(0,me.g)(xr,xr,t[2])))),r}_applyCenterOffsetNDC(e,t,r,n){const i="screen"!==this.parameters.centerOffsetUnits;return n!==e&&(0,me.c)(n,e),i||(n[0]+=t[0]/r.fullWidth*2,n[1]+=t[1]/r.fullHeight*2),n}_applyPolygonOffsetNDC(e,t,r,n){const i=this.parameters.shaderPolygonOffset;if(e!==n&&(0,me.c)(n,e),i){const e=r.aboveGround?1:-1,s=e*Math.sign(t[3]);n[2]-=(s||e)*i}return n}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,n=e[3]>=pr.Q||t>=pr.Q&&r[3]>=pr.Q;return this._visible&&n}createGLMaterial(e){return new gr(e)}calculateRelativeScreenBounds(e,t,r=(0,D.vt)()){return function(e,t,r,n){n[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,n[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*r}(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class gr extends Jt.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(lr,e)}}function _r(e,t,r,n){return function(e){return function(e){return e instanceof Float32Array&&e.length>=16}(e)||function(e){return Array.isArray(e)&&e.length>=16}(e)}(t)&&(t=(0,Bt.z0)(Rr,t)),(0,me.o)(n.normal,e,t),(0,me.t)(n.normal,n.normal,r.viewInverseTransposeMatrix),n.cosAngle=(0,me.e)(Tr,Nr),n}function br(e,t,r,n,i,s,a,o,l){let c=t-i-n[0]*l[0],d=c+n[0]+2*i,u=r-i-n[1]*l[1],h=u+n[1]+2*i;const f=o.distanceFieldBoundingBox;return o.textureIsSignedDistanceField&&null!=f&&(c+=n[0]*f[0],u+=n[1]*f[1],d-=n[0]*(1-f[2]),h-=n[1]*(1-f[3]),c-=s,d+=s,u-=s,h+=s),(0,P.hZ)(Ar,t,r),(0,P.e$)(Ir,e,Ar,(0,M.kU)(a)),Ir[0]>c&&Ir[0]<d&&Ir[1]>u&&Ir[1]<h}const vr=new class{constructor(){this.factor=new Kt,this.factorAlignment=new Kt}},wr=(0,T.vt)(),xr=(0,T.vt)(),Sr=(0,C.vt)(),Tr=(0,T.vt)(),Cr=(0,T.vt)(),Ir=(0,F.vt)(),Ar=(0,F.vt)(),Or=(0,jt.vt)(),Rr=(0,jt.vt)(),Dr=(0,S.vt)(),Pr=(0,C.vt)(),Fr=(0,T.vt)(),Mr=(0,T.vt)(),Er=(0,C.vt)(),Ur={normal:Tr,cosAngle:0},Lr=1,Vr=2,kr=(0,F.fA)(0,0),Nr=(0,T.fA)(0,0,1);class zr extends Jt.NV{constructor(){super(...arguments),this.renderOccluded=Wt.m$.Occlude,this.isDecoration=!1,this.color=(0,C.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,F.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,C.CN)(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=(0,C.vt)(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const Br=(0,Gt.BP)().vec3f(ne.r.POSITION).vec3f(ne.r.NORMAL).vec2i16(ne.r.UVI).vec4u8(ne.r.COLOR).vec2f(ne.r.SIZE).f32(ne.r.ROTATION).vec4f(ne.r.CENTEROFFSETANDDISTANCE).vec4f(ne.r.FEATUREATTRIBUTE),jr=Br.clone().vec4u8(ne.r.OLIDCOLOR);class qr{constructor(){this.vertexBufferLayout=(0,Zt.E)()?jr:Br}elementCount(e){return 6*e.get(ne.r.POSITION).indices.length}write(e,t,r,n,i,s){const{position:a,normal:o,uvi:l,color:c,size:d,rotation:u,centerOffsetAndDistance:h,featureAttribute:f}=i;(0,er.Hk)(r.get(ne.r.POSITION),e,a,s,6),(0,er.p1)(r.get(ne.r.NORMAL),t,o,s,6);const m=r.get(ne.r.UVI)?.data;let p=0,y=0,g=-1-rr.f,_=-1-rr.f;m&&m.length>=4&&(p=m[0],y=m[1],g=-1-m[2],_=-1-m[3]);let b=r.get(ne.r.POSITION).indices.length,v=s;for(let e=0;e<b;++e)l.set(v,0,p),l.set(v,1,y),v++,l.set(v,0,g),l.set(v,1,y),v++,l.set(v,0,g),l.set(v,1,_),v++,l.set(v,0,g),l.set(v,1,_),v++,l.set(v,0,p),l.set(v,1,_),v++,l.set(v,0,p),l.set(v,1,y),v++;(0,er.tb)(r.get(ne.r.COLOR),4,c,s,6);const{data:w,indices:x}=r.get(ne.r.SIZE);b=x.length,v=s;for(let e=0;e<b;++e){const t=w[2*x[e]],r=w[2*x[e]+1];for(let e=0;e<6;++e)d.set(v,0,t),d.set(v,1,r),v++}if((0,er.uO)(r.get(ne.r.ROTATION),u,s,6),r.get(ne.r.CENTEROFFSETANDDISTANCE)?(0,er.Ut)(r.get(ne.r.CENTEROFFSETANDDISTANCE),h,s,6):(0,er.Pq)(h,s,6*b),r.get(ne.r.FEATUREATTRIBUTE)?(0,er.Ut)(r.get(ne.r.FEATUREATTRIBUTE),f,s,6):(0,er.Pq)(f,s,6*b),null!=n){const e=r.get(ne.r.POSITION)?.indices;if(e){const t=e.length,r=i.getField(ne.r.OLIDCOLOR,qt.XP);(0,er.vx)(n,r,t,s,6)}}return{numVerticesPerItem:6,numItems:b}}intersect(e,t,r,n,i,s,a){const{options:{selectionMode:o,hud:l,excludeLabels:c},point:d,camera:u}=n;if(!o||!l||c&&t.isLabel||!d)return;const h=this.vertexBufferLayout.createView(e),f=h.getField(ne.r.POSITION,qt.xs),m=h.getField(ne.r.NORMAL,qt.xs),p=h.getField(ne.r.ROTATION,qt.Y$),y=h.getField(ne.r.SIZE,qt.gH),g=h.getField(ne.r.FEATUREATTRIBUTE,qt.Eq),_=h.getField(ne.r.CENTEROFFSETANDDISTANCE,qt.Eq),b="screen"===t.centerOffsetUnits,v=(0,rr.c)(t);if(null==f||null==m||null==p||null==y||null==_||null==u)return;const w=null==g?null:g.getVec(0,Er),{scaleX:x,scaleY:S}=Hr(w,t,u.pixelRatio),C=f.count/6;for(let e=0;e<C;e++){const i=6*e;if(f.getVec(i,wr),null!=r&&(0,me.f)(wr,wr,r),(0,me.t)(wr,wr,u.viewMatrix),_.getVec(i,Pr),(0,me.i)(Fr,Pr[0],Pr[1],Pr[2]),!b&&(wr[0]+=Fr[0],wr[1]+=Fr[1],0!==Fr[2])){const e=Fr[2];(0,me.n)(Fr,wr),(0,me.d)(wr,wr,(0,me.g)(Fr,Fr,e))}if(m.getVec(i,xr),_r(xr,Or,u,Ur),Gr(t,wr,Ur,u,vr),u.applyProjection(wr,Sr),Sr[0]>-1){b&&(Fr[0]||Fr[1])&&(Sr[0]+=Fr[0]*u.pixelRatio,0!==Fr[1]&&(Sr[1]+=(0,Qt.m0)(Fr[1],vr.factorAlignment)*u.pixelRatio),u.unapplyProjection(Sr,wr)),Sr[0]+=t.screenOffset[0]*u.pixelRatio,Sr[1]+=t.screenOffset[1]*u.pixelRatio,Sr[0]=Math.floor(Sr[0]),Sr[1]=Math.floor(Sr[1]),y.getVec(i,kr),(0,Qt.MD)(kr,vr.factor,kr);const r=Lr*u.pixelRatio;let s=0;t.textureIsSignedDistanceField&&(s=Math.min(t.outlineSize,.5*kr[0])*u.pixelRatio/2),kr[0]*=x,kr[1]*=S;const o=p.get(i),l=t.rotation+o;if(br(d,Sr[0],Sr[1],kr,r,s,l,t,v)){const t=n.ray;if((0,me.t)(Cr,wr,(0,O.B8)(Dr,u.viewMatrix)),Sr[0]=d[0],Sr[1]=d[1],u.unprojectFromRenderScreen(Sr,wr)){const r=(0,T.vt)();(0,me.c)(r,t.direction);const n=1/(0,me.l)(r);(0,me.g)(r,r,n),a((0,me.j)(t.origin,wr)*n,r,e,Cr)}}}}}}function Hr(e,t,r){return null==e||null==t.vvSize?{scaleX:r,scaleY:r}:((0,Ht.VC)(Mr,t,e),{scaleX:Mr[0]*r,scaleY:Mr[1]*r})}function Gr(e,t,r,n,i){if(!e.verticalOffset?.screenLength)return e.screenSizePerspective||e.screenSizePerspectiveAlignment?$r(e,i,(0,me.l)(t),r.cosAngle):(i.factor.scale=1,i.factorAlignment.scale=1),t;const s=(0,me.l)(t),a=e.screenSizePerspectiveAlignment??e.screenSizePerspective,o=(0,tr.kE)(n,s,e.verticalOffset,r.cosAngle,a);return $r(e,i,s,r.cosAngle),(0,me.g)(r.normal,r.normal,o),(0,me.f)(t,t,r.normal)}function $r(e,t,r,n){null!=e.screenSizePerspective?(0,Qt.cJ)(n,r,e.screenSizePerspective,t.factor):(t.factor.scale=1,t.factor.factor=0,t.factor.minScaleFactor=0),null!=e.screenSizePerspectiveAlignment?(0,Qt.cJ)(n,r,e.screenSizePerspectiveAlignment,t.factorAlignment):(t.factorAlignment.factor=t.factor.factor,t.factorAlignment.scale=t.factor.scale,t.factorAlignment.minScaleFactor=t.factor.minScaleFactor)}class Yr{constructor(e,t){this._mainThreadDelegate=t,this._bufferWriters=new Map,this._sharedTextures=new Map,this.globalViewingMode=e===Nt.RT.Global}createRenderCommandBuffer(e=[],t=[]){return{commands:e,transferList:t}}mergeRenderCommandBuffers(e){const t=this.createRenderCommandBuffer();for(const r of e)null!=r&&(t.commands.push(...r.commands),t.transferList.push(...r.transferList));return t}async getOrCreateSharedTexture(e,t){const{data:r,parameters:n}=t(),i=await this._mainThreadDelegate.createTexture(r,n);return this._sharedTextures.set(e,i),i}async releaseSharedTexture(e){const t=this._sharedTextures,r=t.get(e);if(null==r)return y.create(this);const n=this._destroyTexture(r);return new y(this,n,[()=>t.delete(e)])}_destroyTexture(e){return{commands:[{id:"destroy-texture",textureId:e}],transferList:[]}}async createMaterial(e){const{type:t,parameters:r}=e,n=ct("material");let i,s;switch(t){case"default":i=new ke.$U(e.parameters,{spherical:this.globalViewingMode}),s={type:t,materialId:n,parameters:e.parameters};break;case"hud":i=new yr(r,this.globalViewingMode),s={type:t,materialId:n,parameters:e.parameters}}return this._bufferWriters.set(n,i.createBufferWriter()),await this._mainThreadDelegate.createMaterial(s),n}destroyMaterial(e){return{commands:[{id:"destroy-material",materialId:e}],transferList:[]}}updateMaterial(e){return{commands:[{...e,id:"update-material"}],transferList:[]}}async createDirectRenderer(e){return await this._mainThreadDelegate.createDirectRenderer(e),e}async destroyDirectRenderer(e){await this._mainThreadDelegate.destroyDirectRenderer(e)}addDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.addDirectRendererGeometryBuffer(n,e,i,s,r)}updateDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.updateDirectRendererGeometryBuffer(n,e,i,s,r)}addDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"add-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}updateDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"update-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}removeDirectRendererGeometryBuffer(e,t){return{commands:[{id:"remove-direct-renderer-geometry-buffer",rendererId:e,groupId:t}],transferList:[]}}async createLodRenderer(e){const t=ct("lod-renderer"),r=new Set,n={levels:e.levels.map((e=>({components:e.components.map((e=>{const t=e.attributes.get(ne.r.POSITION);if(!t||0===t.indices.length)throw new Error("positions attribute expected");const n=(0,H.tM)(t.indices.length/3),i=new zt.j(n,3,t);if(null==this._bufferWriters.get(e.materialId))throw new Error("writer not found");const{renderGeometryBuffer:s}=this.createRenderGeometryBuffer(e,null);return r.add(s.data),{materialId:e.materialId,renderGeometryBuffer:s,boundingInfo:{bbMax:i.bbMax,bbMin:i.bbMin}}})),minScreenSpaceRadius:e.minScreenSpaceRadius})))};return await this._mainThreadDelegate.createLodRenderer(t,n,Array.from(r)),t}destroyLodRenderer(e){return{commands:[{id:"destroy-lod-renderer",rendererId:e}],transferList:[]}}addLodInstances(e,t,r){return{commands:[{id:"add-lod-instances",rendererId:e,groupId:t,data:r}],transferList:[r.featureIds.buffer,r.globalTransforms.buffer,r.localTransforms.buffer,r.visibility.buffer]}}removeLodInstances(e,t){return{commands:[{id:"remove-lod-instances",rendererId:e,groupId:t}],transferList:[]}}updateLodInstancesData(e,t,r){return{commands:[{id:"update-lod-instance-data",rendererId:e,groupId:t,globalTransforms:r}],transferList:[r.buffer]}}updateVisibility(e,t,r){return{commands:[{id:"update-visibility",rendererId:e,groupId:t,visibility:r}],transferList:[r.buffer]}}async dispatchRenderCommands(e){0!==e.commands.length&&await this._mainThreadDelegate.executeRenderCommands(e)}createRenderGeometryBuffer(e,t){const{materialId:r,visibilities:n,objectIds:i}=e,s=this._bufferWriters.get(r);if(null==s)throw new Error("no registered bufferWriter for material found");let a=null;if(e.transformation&&t)(0,O.C)(Zr,e.transformation),Zr[12]-=t[0],Zr[13]-=t[1],Zr[14]-=t[2],a=Zr;else{if(t)throw new Error("not implemented");e.transformation&&(a=e.transformation)}let o=null;a&&((0,O.B8)(Jr,Zr),(0,O.mg)(Jr,Jr),o=Jr);const l=e.attributes,c=s.elementCount(l),d=s.vertexBufferLayout.stride/4;c>Math.floor(Wr/d)&&console.warn("geometry with very large number of elements encountered");const u=s.vertexBufferLayout.createBuffer(c),h=s.write(a,o,l,e.objectAndLayerIdColor,u,0);if(null==h)throw new Error("Bufferwriter.write does not provide item information.");if(n.length!==h.numItems||i.length!==h.numItems)throw new Error("Unexpected mismatch between number of RenderGeometryBufferItems and provided objectIds/visibility flags.");return{renderGeometryBuffer:{data:u.buffer,elementCount:c},renderGeometryBufferItems:{objectIds:i,visibilities:n,ranges:{numVertices:h.numVerticesPerItem,numItems:h.numItems}}}}}const Zr=(0,S.vt)(),Jr=(0,S.vt)(),Wr=4194304;var Xr=r(73941),Qr=r(98764),Kr=r(65806);const en=(0,T.vt)();var tn=r(88582),rn=r(17352),nn=r(97937);function sn(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const an=2**50;function on(e,t,r,n){return e.operations.setAltitudeAt(e.value,t,r,n)}function ln(e,t,r){return e.operations.elevate(e.value,t,r.value)}const cn=(0,T.vt)();(0,T.vt)();var dn=r(44280),un=r(32114);function hn(e){return"point"===e.type}class fn{constructor(e,t,r,n){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=n,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(n),this.referenceEllipsoid=(0,Xr.tO)(t),this.sphericalPCPF=(0,Qr.lO)(t)}set extent(e){e&&function(e,t,r){e.operations.setExtent(e.value,t,r.value)}(this._coordinateSystem,e,this._coordinateSystem)}get extent(){return function(e,t){return e.operations.getExtent(e.value,t),t}(this._coordinateSystem,(0,D.vt)())}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return on(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){!function(e,t,r,n){t!==n&&(0,O.C)(n,t),(0,me.i)(cn,n[12],n[13],n[14]),on(e,cn,r,cn),n[12]=cn[0],n[13]=cn[1],n[14]=cn[2]}(this._coordinateSystem,t,e,t)}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,tn._.Z,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,n){return e.operations.axisAt(e.value,t,r,n)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,tn._.X,un.rq.get()),n=this.worldBasisAtPosition(e,tn._.Y,un.rq.get()),i=this.worldBasisAtPosition(e,tn._.Z,un.rq.get());return(0,O.hZ)(t,r[0],r[1],r[2],0,n[0],n[1],n[2],0,i[0],i[1],i[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,un.rq.get()),n=this.worldBasisAtPosition(e,tn._.Y,un.rq.get()),i=(0,dn.EJ)(t,n,r);return(0,M.KJ)(i)}intersectManifoldClosestSilhouette(e,t,r){return ln(this._coordinateSystem,t,this._tmpCoordinateSystem),function(e,t,r){e.operations.intersectRayClosestSilhouette(e.value,t,r)}(this._tmpCoordinateSystem,e,r),r}intersectManifold(e,t,r){ln(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=un.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,n)?(0,me.c)(r,n):null}intersectInfiniteManifold(e,t,r){if(this.viewingMode===Nt.RT.Global)return this.intersectManifold(e,t,r);ln(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=this._tmpCoordinateSystem.value,i=un.rq.get();return(0,ge.Ui)(n.plane,e,i)?(0,me.c)(r,i):null}toRenderCoords(e,t,r){return hn(e)?(0,Kr.g)(e,t,this.spatialReference):(0,z.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return hn(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,z.F)(e,t,en,r.spatialReference)&&(r.x=en[0],r.y=en[1],r.z=en[2],!0)}(e,this.spatialReference,t)?t:null):(0,z.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case Nt.RT.Local:return new fn(Nt.RT.Local,t,(0,A.GA)(t),sn(rn.b,(0,rn.f)([0,0,0],[an,0,0],[0,an,0])));case Nt.RT.Global:return new fn(Nt.RT.Global,t,1,function(e){return sn(nn.s,(0,nn.f)(0,0,0,(0,Xr.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,A.KX)(e)/(0,A.KX)(t)}}let mn=class extends i.A.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new xt,this._actionSynchronizer=new nt(g,(e=>this._createCommand(e))),this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderCommandContext=null,this._context=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,layerInfo:n,layerViewInfo:i}){const s=h.A.fromJSON(e);this._viewSpatialReference=s;const o=h.A.fromJSON(t);this._fetcher=new kt(this._viewSpatialReference,m.A.fromJSON(n.baseQuery),n.url,n.objectIdField,n.capabilities),this._queryEngine=new f.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:n.objectIdField,fieldsIndex:n.fieldIndex,availableFields:[n.objectIdField],spatialReference:e,featureStore:this._featureStore,timeInfo:n.timeInfo}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const n={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",n,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const l=fn.create(r,o),c=new Yr(r,this._mainThreadDelegate);this._renderCommandContext=c;const p=new Ye(s,o,this._mainThreadDelegate,l,c,n,i);this._context=p,this._renderer=p.symbolRendererFactory.createSymbolRendererFromJSON(n.renderer),this._defaultQueryJSON=new m.A({outSpatialReference:s}).toJSON();let y=null;if(null!=n.fullExtent){const e=d.A.fromJSON(n.fullExtent);await(0,u.initializeProjection)(e.spatialReference,s),y=(0,u.project)(e,s)}return this._tileManager=new ht({loadTile:(e,t)=>this._fetcher.fetch(e,t),synchronizer:this._actionSynchronizer,extent:y}),this.addHandles((0,a.wB)((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),a.Vh),null!=this._renderer&&await this._renderer.load(),yn}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}onTileTreeChange(e){return this._tileManager.onTileTreeChange(e),Promise.resolve(yn)}async onElevationChange(e){return yn}async onLayerViewOpacityChange(e){const{_context:t,_renderer:r}=this;if(t.layerViewInfo.fullOpacity=e,null==r)return yn;const n=await r.createUpdateLayerViewOpacityCommand(e);return await n.execute(),yn}async onRendererChange(e){const{_context:t}=this,r=await this._createDestroyRendererCommand();await r.execute();const n=t.symbolRendererFactory.createSymbolRendererFromJSON(e);this._renderer=n,await this._renderer.load();const i=[];this._tileManager.forEachTile((e=>{i.push(n.createAddCommand(e))}));const s=await Promise.all(i),a=t.joinPipelineCommands(s);return await a.execute(),yn}async _createDestroyRendererCommand(){const e=this._renderer;if(null==e)return y.create(this._renderCommandContext);const t=await e.createDestroyCommand();return t.appendPipelineStateCommand((()=>{(0,_e.vA)(this._renderer===e),this._renderer=null})),t}async _createAddFeatureDataCommand(e,t){const r=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):y.create(this._renderCommandContext),(0,s.Te)(t),i.appendPipelineStateCommand((()=>{r.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let n;return n=null!=r?await r.createRemoveCommand(e):y.create(this._renderCommandContext),n.appendPipelineStateCommand((()=>{t.removeTile(e)})),n}async _createUpdateFeatureDataVisibilityCommand(e,t){const r=this._renderer;let n;return n=null!=r?await r.createUpdateVisibilityCommand(e):y.create(this._renderCommandContext),(0,s.Te)(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}async _createCommand(e){switch(e.type){case We.ADD:return await this._createAddFeatureDataCommand(e.data);case We.REMOVE:return await this._createRemoveFeatureDataCommand(e.data.id);case We.UPDATE_VISIBILITY:return await this._createUpdateFeatureDataVisibilityCommand(e.data)}}};(0,n._)([(0,o.MZ)()],mn.prototype,"updating",null),mn=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],mn);const pn=mn,yn={result:void 0}},58501:(e,t,r)=>{r.d(t,{q:()=>i});var n=r(62815);function i(e,t,r){if(!r?.features||!r.hasZ)return;const i=(0,n.N)(r.geometryType,t,e.outSpatialReference);if(null!=i)for(const e of r.features)i(e.geometry)}},60999:(e,t,r)=>{r.d(t,{DZ:()=>m,Ke:()=>f,Tj:()=>d,UT:()=>p,jJ:()=>c});var n=r(90237),i=r(69622),s=r(97768),a=r(74887),o=r(10107),l=r(40608);function c(e,t,r){return(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))}async function d(e,t,r){return(await(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))).map((e=>e.value))}function u(e){return{ok:!0,value:e}}function h(e){return{ok:!1,error:e}}async function f(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return u(await e)}catch(e){return h(e)}}async function m(e){try{return u(await e)}catch(e){return(0,a.QP)(e),h(e)}}function p(e,t){return new y(e,t)}let y=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=u(e),this._cleanup()}),(e=>{this._result=h(e),this._cleanup()})),this._abortHandle=(0,a.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,n._)([(0,o.MZ)()],y.prototype,"value",null),(0,n._)([(0,o.MZ)()],y.prototype,"error",null),(0,n._)([(0,o.MZ)()],y.prototype,"finished",null),(0,n._)([(0,o.MZ)()],y.prototype,"promise",void 0),(0,n._)([(0,o.MZ)()],y.prototype,"_result",void 0),y=(0,n._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],y)},62258:(e,t,r)=>{var n,i;(i=n||(n={}))[i.MIN=0]="MIN",i[i.MINMAX=1]="MINMAX",i[i.ALL=2]="ALL"},63578:(e,t,r)=>{r.d(t,{I:()=>a});var n=r(47522),i=r(96598),s=r(31821);function a(e,t){const{vertex:r,fragment:a}=e;e.include(i.Z,t),r.include(n.K),r.main.add(s.H`vec4 posProjCenter;
329
+ }`)}},51624:(e,t,r)=>{r.d(t,{A:()=>u});var n,i,s=r(44208),a=r(69397),o=r(93687);(i=n||(n={}))[i.varint=0]="varint",i[i.fixed64=1]="fixed64",i[i.delimited=2]="delimited",i[i.fixed32=5]="fixed32",i[i.unknown=99]="unknown";const l=4294967296,c=new TextDecoder("utf-8"),d=(0,s.A)("safari")||(0,s.A)("ios")?6:(0,s.A)("ff")?12:32;class u{constructor(e,t,r=0,i=(e?e.byteLength:0)){this._tag=0,this._dataType=n.unknown,this._init(e,t,r,i)}_init(e,t,r,n){this._data=e,this._dataView=t,this._pos=r,this._end=n}get usedMemory(){return 64+(0,a.Qf)(this._data)}asUnsafe(){return this}clone(){return new u(this._data,this._dataView,this._pos,this._end)}pos(){return this._pos}move(e){this._pos=e}nextTag(e){for(;;){if(this._pos===this._end)return!1;const t=this._decodeVarint();if(this._tag=t>>3,this._dataType=7&t,!e||e===this._tag)break;this.skip()}return!0}next(){if(this._pos===this._end)return!1;const e=this._decodeVarint();return this._tag=e>>3,this._dataType=7&e,!0}empty(){return this._pos>=this._end}tag(){return this._tag}getInt32(){return this._decodeVarint()}getInt64(){return this._decodeVarint()}getUInt32(){let e=4294967295;if(e=(127&this._data[this._pos])>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<7)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<14)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(127&this._data[this._pos])<<21)>>>0,this._data[this._pos++]<128)return e;if(e=(e|(15&this._data[this._pos])<<28)>>>0,this._data[this._pos++]<128)return e;throw new Error("Varint overflow")}getUInt64(){return this._decodeVarint()}getSInt32(){const e=this.getUInt32();return e>>>1^-(1&e)}getSInt64(){return this._decodeSVarint()}getBool(){const e=0!==this._data[this._pos];return this._skip(1),e}getEnum(){return this._decodeVarint()}getFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getUint32(t+4,!0)*l;return this._skip(8),r}getSFixed64(){const e=this._dataView,t=this._pos,r=e.getUint32(t,!0)+e.getInt32(t+4,!0)*l;return this._skip(8),r}getDouble(){const e=this._dataView.getFloat64(this._pos,!0);return this._skip(8),e}getFixed32(){const e=this._dataView.getUint32(this._pos,!0);return this._skip(4),e}getSFixed32(){const e=this._dataView.getInt32(this._pos,!0);return this._skip(4),e}getFloat(){const e=this._dataView.getFloat32(this._pos,!0);return this._skip(4),e}getString(){const e=this._getLength(),t=this._pos,r=this._toString(this._data,t,t+e);return this._skip(e),r}getBytes(){const e=this._getLength(),t=this._pos,r=this._toBytes(this._data,t,t+e);return this._skip(e),r}getLength(){return this._getLengthUnsafe()}processMessageWithArgs(e,t,r,n){const i=this.getMessage(),s=e(i,t,r,n);return i.release(),s}processMessage(e){const t=this.getMessage(),r=e(t);return t.release(),r}getMessage(){const e=this._getLength(),t=u.pool.acquire();return t._init(this._data,this._dataView,this._pos,this._pos+e),this._skip(e),t}release(){u.pool.release(this)}dataType(){return this._dataType}skip(){switch(this._dataType){case n.varint:this._decodeVarint();break;case n.fixed64:this._skip(8);break;case n.delimited:this._skip(this._getLength());break;case n.fixed32:this._skip(4);break;default:throw new Error("Invalid data type!")}}skipLen(e){this._skip(e)}_skip(e){if(this._pos+e>this._end)throw new Error("Attempt to skip past the end of buffer!");this._pos+=e}_decodeVarint(){const e=this._data;let t=this._pos,r=0,n=0;if(this._end-t>=10)do{if(n=e[t++],r|=127&n,!(128&n))break;if(n=e[t++],r|=(127&n)<<7,!(128&n))break;if(n=e[t++],r|=(127&n)<<14,!(128&n))break;if(n=e[t++],r|=(127&n)<<21,!(128&n))break;if(n=e[t++],r+=268435456*(127&n),!(128&n))break;if(n=e[t++],r+=34359738368*(127&n),!(128&n))break;if(n=e[t++],r+=4398046511104*(127&n),!(128&n))break;if(n=e[t++],r+=562949953421312*(127&n),!(128&n))break;if(n=e[t++],r+=72057594037927940*(127&n),!(128&n))break;if(n=e[t++],r+=0x8000000000000000*(127&n),!(128&n))break;throw new Error("Varint too long!")}while(0);else{let i=1;for(;t!==this._end&&(n=e[t],128&n);)++t,r+=(127&n)*i,i*=128;if(t===this._end)throw new Error("Varint overrun!");++t,r+=n*i}return this._pos=t,r}_decodeSVarint(){const e=this._data;let t,r=0,n=0;const i=1&e[this._pos];if(n=e[this._pos++],r|=127&n,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<7,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<14,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r|=(127&n)<<21,!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=268435456*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=34359738368*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(n=e[this._pos++],r+=4398046511104*(127&n),!(128&n))return i?-(r+1)/2:r/2;if(t=BigInt(r),n=e[this._pos++],t+=0x2000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x100000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);if(n=e[this._pos++],t+=0x8000000000000000n*BigInt(127&n),!(128&n))return Number(i?-(t+1n)/2n:t/2n);throw new Error("Varint too long!")}_getLength(){if(this._dataType!==n.delimited)throw new Error("Not a delimited data type!");return this._decodeVarint()}_getLengthUnsafe(){return this.getUInt32()}_toString(e,t,r){if((r=Math.min(this._end,r))-t>d){const n=e.subarray(t,r);return c.decode(n)}let n="",i="";for(let s=t;s<r;++s){const t=e[s];128&t?i+="%"+t.toString(16):(n+=decodeURIComponent(i)+String.fromCharCode(t),i="")}return i.length&&(n+=decodeURIComponent(i)),n}_toBytes(e,t,r){return r=Math.min(this._end,r),new Uint8Array(e.buffer,t,r-t)}static{this.pool=new o.A(u,void 0,(e=>{e._data=null,e._dataView=null}))}}},53177:(e,t,r)=>{r.d(t,{A:()=>u});var n,i=r(90237),s=r(4718),a=r(10107),o=(r(44208),r(53966),r(93223)),l=r(40608),c=r(39357),d=r(76357);let u=class extends d.A{static{n=this}constructor(e){super(e),this.codedValues=null,this.type="coded-value"}getName(e){let t=null;if(this.codedValues){const r=String(e);this.codedValues.some((e=>(String(e.code)===r&&(t=e.name),!!t)))}return t}clone(){return new n({codedValues:(0,s.o8)(this.codedValues),name:this.name})}};(0,i._)([(0,a.MZ)({type:[c.H],json:{write:{isRequired:!0}}})],u.prototype,"codedValues",void 0),(0,i._)([(0,o.e)({codedValue:"coded-value"})],u.prototype,"type",void 0),u=n=(0,i._)([(0,l.$)("esri.layers.support.CodedValueDomain")],u)},53655:(e,t,r)=>{r.d(t,{SH:()=>O,ae:()=>S,cn:()=>_});var n=r(49186),i=r(51624),s=r(92722),a=r(69418);const o=["esriFieldTypeSmallInteger","esriFieldTypeInteger","esriFieldTypeSingle","esriFieldTypeDouble","esriFieldTypeString","esriFieldTypeDate","esriFieldTypeOID","esriFieldTypeGeometry","esriFieldTypeBlob","esriFieldTypeRaster","esriFieldTypeGUID","esriFieldTypeGlobalID","esriFieldTypeXML","esriFieldTypeBigInteger","esriFieldTypeDateOnly","esriFieldTypeTimeOnly","esriFieldTypeTimestampOffset"],l=["sqlTypeBigInt","sqlTypeBinary","sqlTypeBit","sqlTypeChar","sqlTypeDate","sqlTypeDecimal","sqlTypeDouble","sqlTypeFloat","sqlTypeGeometry","sqlTypeGUID","sqlTypeInteger","sqlTypeLongNVarchar","sqlTypeLongVarbinary","sqlTypeLongVarchar","sqlTypeNChar","sqlTypeNVarchar","sqlTypeOther","sqlTypeReal","sqlTypeSmallInt","sqlTypeSqlXml","sqlTypeTime","sqlTypeTimestamp","sqlTypeTimestamp2","sqlTypeTinyInt","sqlTypeVarbinary","sqlTypeVarchar"],c=["upperLeft","lowerLeft"];function d(e){return e>=o.length?null:o[e]}function u(e){return e>=l.length?null:l[e]}function h(e){return e>=c.length?null:c[e]}function f(e,t){return t>=e.geometryTypes.length?null:e.geometryTypes[t]}function m(e,t,r){const n=e.asUnsafe(),i=t.createPointGeometry(r);for(;n.next();)switch(n.tag()){case 3:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addCoordinatePoint(i,n.getSInt64(),s++);break}default:n.skip()}return i}function p(e,t,r){const n=e.asUnsafe(),i=t.createGeometry(r),s=2+(r.hasZ?1:0)+(r.hasM?1:0);for(;n.next();)switch(n.tag()){case 2:{const e=n.getUInt32(),r=n.pos()+e;let s=0;for(;n.pos()<r;)t.addLength(i,n.getUInt32(),s++);break}case 3:{const e=n.getUInt32(),r=n.pos()+e;let a=0;for(t.allocateCoordinates(i);n.pos()<r;)t.addCoordinate(i,n.getSInt64(),a),a++,a===s&&(a=0);break}default:n.skip()}return i}function y(e){const t=e.asUnsafe(),r=new s.A;let n="esriGeometryPoint";for(;t.next();)switch(t.tag()){case 2:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.lengths.push(t.getUInt32());break}case 3:{const e=t.getUInt32(),n=t.pos()+e;for(;t.pos()<n;)r.coords.push(t.getSInt64());break}case 1:n=a.z[t.getEnum()];break;default:t.skip()}return{queryGeometry:r,queryGeometryType:n}}function g(e){const t=e.asUnsafe();for(;t.next();)switch(t.tag()){case 1:return t.getString();case 2:return t.getFloat();case 3:return t.getDouble();case 4:return t.getSInt32();case 5:return t.getUInt32();case 6:return t.getInt64();case 7:return t.getUInt64();case 8:return t.getSInt64();case 9:return t.getBool();default:return t.skip(),null}return null}function _(e){const t=e.asUnsafe(),r={type:d(0)};for(;t.next();)switch(t.tag()){case 1:r.name=t.getString();break;case 2:r.type=d(t.getEnum());break;case 3:r.alias=t.getString();break;case 4:r.sqlType=u(t.getEnum());break;case 5:default:t.skip();break;case 6:r.defaultValue=t.getString()}return r}function b(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.name=r.getString();break;case 2:t.isSystemMaintained=r.getBool();break;default:r.skip()}return t}function v(e,t,r,n){const i=t.createFeature(r);let s=0;for(;e.next();)switch(e.tag()){case 1:{const t=n[s++].name;i.attributes[t]=e.processMessage(g);break}case 2:i.geometry=e.processMessageWithArgs(p,t,r);break;case 4:i.centroid=e.processMessageWithArgs(m,t,r);break;default:e.skip()}return i}function w(e){const t=[1,1,1,1],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function x(e){const t=[0,0,0,0],r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t[0]=r.getDouble();break;case 2:t[1]=r.getDouble();break;case 4:t[2]=r.getDouble();break;case 3:t[3]=r.getDouble();break;default:r.skip()}return t}function S(e){const t={originPosition:h(0)},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.originPosition=h(r.getEnum());break;case 2:t.scale=r.processMessage(w);break;case 3:t.translate=r.processMessage(x);break;default:r.skip()}return t}function T(e){const t={},r=e.asUnsafe();for(;r.next();)switch(r.tag()){case 1:t.shapeAreaFieldName=r.getString();break;case 2:t.shapeLengthFieldName=r.getString();break;case 3:t.units=r.getString();break;default:r.skip()}return t}function C(e,t){const r=t.createSpatialReference();for(;e.next();)switch(e.tag()){case 1:r.wkid=e.getUInt32();break;case 5:r.wkt=e.getString();break;case 2:r.latestWkid=e.getUInt32();break;case 3:r.vcsWkid=e.getUInt32();break;case 4:r.latestVcsWkid=e.getUInt32();break;default:e.skip()}return r}function I(e,t){const r=t.createFeatureResult(),n=e.asUnsafe();r.geometryType=f(t,0);let i=!1;for(;n.next();)switch(n.tag()){case 1:r.objectIdFieldName=n.getString();break;case 3:r.globalIdFieldName=n.getString();break;case 4:r.geohashFieldName=n.getString();break;case 5:r.geometryProperties=n.processMessage(T);break;case 7:r.geometryType=f(t,n.getEnum());break;case 8:r.spatialReference=n.processMessageWithArgs(C,t);break;case 10:r.hasZ=n.getBool();break;case 11:r.hasM=n.getBool();break;case 12:r.transform=n.processMessage(S);break;case 9:r.exceededTransferLimit=n.getBool();break;case 13:t.addField(r,n.processMessage(_));break;case 15:i||(t.prepareFeatures(r),i=!0),t.addFeature(r,n.processMessageWithArgs(v,t,r,r.fields));break;case 2:r.uniqueIdField=n.processMessage(b);break;default:n.skip()}return t.finishFeatureResult(r),r}function A(e,t){const r={};let n=null;for(;e.next();)switch(e.tag()){case 4:n=e.processMessageWithArgs(y);break;case 1:r.featureResult=e.processMessageWithArgs(I,t);break;default:e.skip()}return null!=n&&r.featureResult&&t.addQueryGeometry(r,n),r}function O(e,t){try{const r=2,n=new i.A(new Uint8Array(e),new DataView(e)),s={};for(;n.next();)n.tag()===r?s.queryResult=n.processMessageWithArgs(A,t):n.skip();return s}catch(e){throw new n.A("query:parsing-pbf","Error while parsing FeatureSet PBF payload",{error:e})}}},55674:(e,t,r)=>{r.d(t,{Ad:()=>f,Gj:()=>y,QY:()=>h,lL:()=>g,xR:()=>m});var n=r(66131),i=r(49186),s=(r(44208),r(44729)),a=r(15032),o=r(65864),l=r(95466),c=r(43668),d=r(98623);const u=["geometry","scale","timeProperties"];function h(e,t){if(null!=t)for(const r of u)t.hasArcadeDependency(r)&&e.add(r);return e}function f(e,t){return p.create(e,t,null,["$feature","$view"])}function m(e,t,r){return p.create(e,t,r,["$feature","$view","$config"])}class p{static async create(e,t,r,n){const{arcade:s,Dictionary:a}=await(0,c.l)();let o;try{o=s.parseScript(e)}catch(t){throw new i.A("arcade-bad-expression","Failed to parse arcade script",{script:e,error:t})}const l=s.scriptUsesGeometryEngine(o);l&&await s.enableGeometrySupport(),await s.loadDependentModules(new Set,o,null,!1,l);const d={vars:n.reduce(((e,t)=>({...e,[t]:null})),{}),spatialReference:t,useAsync:!1},u=s.compileScript(o,d);let h=null;null!=r&&(h=new a(r),h.immutable=!0);const f=new a;return f.immutable=!1,f.setField("scale",0),new p(e,s,o,u,t,f,h,a)}constructor(e,t,r,n,i,s,a,o){this.script=e,this._arcade=t,this._syntaxTree=r,this._compiled=n,this._spatialReference=i,this._viewDict=s,this._configDict=a,this._dictionaryCtor=o,this._dependencies=new Map,this._featureReader=new y,this._dependencies.set("geometry",t.scriptTouchesGeometry(this._syntaxTree)),this._dependencies.set("scale",this._arcade.referencesMember(this._syntaxTree,"scale")),this._dependencies.set("timeProperties",this._arcade.scriptUsesViewProperties(this._syntaxTree,["timeProperties"]))}evaluate(e,t){const r=t.$view?.timeZone;if(t.$view){let e;if(this._viewDict.setField("scale",t.$view.scale),null!=t.$view.timeProperties){const{currentStart:i,currentEnd:s}=t.$view.timeProperties;e=new this._dictionaryCtor({currentStart:null!=i?null!=r?n.lY.epochToArcadeDate(i,r):n.lY.unknownEpochToArcadeDate(i):void 0,currentEnd:null!=s?null!=r?n.lY.epochToArcadeDate(s,r):n.lY.unknownEpochToArcadeDate(s):void 0,startIncluded:!0,endIncluded:!0})}this._viewDict.setField("timeProperties",e)}return this._compiled({vars:{$view:this._viewDict,$config:this._configDict,$feature:e},spatialReference:this._spatialReference,timeZone:r})}repurposeFeature(e,t){return this._featureReader.bind(e,t,this._spatialReference),this._featureReader}references(e){return this._dependencies.get(e)??!1}}class y{constructor(){this._boundTarget=null,this._boundSchema={fields:null,fieldsIndex:null,spatialReference:null,get geometryType(){return null},get objectIdField(){return null}},this.arcadeDeclaredClass="esri.arcade.Feature",this._contextTimeZone=null}bind(e,t,r){const n=t??new l.A(g(e.attributes));this._boundTarget=e,this._boundSchema.fields=n.fields,this._boundSchema.fieldsIndex=n,this._boundSchema.spatialReference=r}_getField(e){return this._boundSchema.fieldsIndex.get(e)}get contextTimeZone(){return this._contextTimeZone}set contextTimeZone(e){this._contextTimeZone=e}readArcadeFeature(){return this}hasField(e){return this._boundSchema.fieldsIndex.has(e)}geometry(){if("fromJSON"in this._boundTarget)return this._boundTarget.geometry;const e=(0,o.rS)(this._boundTarget.geometry);if(e){if(!this._boundSchema.spatialReference)throw new Error("InternalError: Expected spatial reference to be defined");e.spatialReference=this._boundSchema.spatialReference}return e}isUnknownDateTimeField(e){return this._boundSchema.fieldsIndex.getTimeZone(e)===d.L5}field(e,t=!0){const r=this._getField(e);if(r)switch(r.type){case"date-only":case"esriFieldTypeDateOnly":return s.n.fromReader(this._boundTarget.attributes[r.name]);case"time-only":case"esriFieldTypeTimeOnly":return a.k.fromReader(this._boundTarget.attributes[r.name]);case"esriFieldTypeTimestampOffset":case"timestamp-offset":return n.lY.fromReaderAsTimeStampOffset(this._boundTarget.attributes[r.name]);case"date":case"esriFieldTypeDate":{const t=this._boundTarget.attributes[r.name];return this.isUnknownDateTimeField(e)?n.lY.unknownEpochToArcadeDate(t):n.lY.epochToArcadeDate(t,this.contextTimeZone??d.qU)}default:return this._boundTarget.attributes[r.name]}if(t)throw new Error(`Field ${e} does not exist`);return null}setField(e,t){throw new Error("Unable to update feature attribute values, feature is readonly")}keys(){return this._boundSchema.fieldsIndex.fields.map((e=>e.name))}castToText(e=!1){return JSON.stringify(this._boundTarget)}gdbVersion(){return null}fullSchema(){return this._boundSchema}castAsJson(e=null){return{attributes:this._boundTarget.attributes,geometry:!0===e?.keepGeometryType?this.geometry():this.geometry()?.toJSON()??null}}castAsJsonAsync(e=null,t=null){return Promise.resolve(this.castAsJson(t))}}function g(e){const t=[];for(const r in e)t.push({name:r,alias:r,type:"string"==typeof e[r]?"esriFieldTypeString":"esriFieldTypeDouble"});return t}},55728:(e,t,r)=>{r.r(t),r.d(t,{default:()=>pn});var n=r(90237),i=r(65529),s=r(74887),a=r(36708),o=r(10107),l=r(44208),c=(r(53966),r(87811),r(40608)),d=r(5443),u=r(80586),h=r(16930),f=r(68298),m=r(61956),p=r(65494);class y{constructor(e,t,r){this.renderCommandContext=e,this.renderCommandBuffer=t,this.pipelineStateCommands=r}append(e){this.appendRenderCommands(e.renderCommandBuffer),this.appendPipelineStateCommands(e.pipelineStateCommands)}appendRenderCommands(e){this.renderCommandBuffer.commands.push(...e.commands),this.renderCommandBuffer.transferList.push(...e.transferList)}appendPipelineStateCommand(e){this.pipelineStateCommands.push(e)}appendPipelineStateCommands(e){for(const t of e)this.appendPipelineStateCommand(t)}async execute(){for(const e of this.pipelineStateCommands)e();await this.renderCommandContext.dispatchRenderCommands(this.renderCommandBuffer)}static create(e,t=[]){return new y(e,e.createRenderCommandBuffer(),t)}}function g(e){return 0===e.length?null:e.reduce(((e,t)=>(e.append(t),e)))}var _=r(68197),b=r(18574),v=r(87403),w=r(28975);function x(){return new b.A({material:new w.N({color:new _.A("red")})})}var S=r(9093),T=r(51850),C=r(91829),I=r(6847),A=r(83047),O=r(58083),R=(r(87317),r(70328)),D=r(19419);r(12359),r(95108),r(27615),r(52106),r(4718),r(34275),r(65864);var P=r(37585),F=r(48163),M=r(34727),E=r(26857);new Map,(()=>{let e="";for(let t=32;t<127;t++)e+=String.fromCharCode(t)})();const U=[];{const e=16;for(let t=0;t<360;t+=360/e)U.push([Math.cos(Math.PI*t/180),Math.sin(Math.PI*t/180)])}var L,V;(V=L||(L={}))[V.Left=0]="Left",V[V.Center=1]="Center",V[V.Right=2]="Right",Object.freeze({left:0,center:.5,right:1});const k=Object.freeze({"bottom-left":(0,F.fA)(0,0),bottom:(0,F.fA)(.5,0),"bottom-right":(0,F.fA)(1,0),left:(0,F.fA)(0,.5),center:(0,F.fA)(.5,.5),right:(0,F.fA)(1,.5),"top-left":(0,F.fA)(0,1),top:(0,F.fA)(.5,1),"top-right":(0,F.fA)(1,1)});var N=r(9762),z=r(27993);function B(e){const{featureCount:t}=e;if(0===t)return new Uint32Array;const r=new Uint32Array(t);return e.getObjectIdsArray(r),r}function j(e){const{featureCount:t}=e;if(0===t)return new Float64Array;const r=new Float64Array(3*t);return e.getCoordinatesArray(r),r}function q(e,t){const r=t.viewSpatialReference,n=t.renderSpatialReference,{extent:i}=e,s=(0,D.gX)(i),a=(0,T.vt)();return(0,z.F)([s[0],s[1],0],r,a,n),a}var H=r(97146);function G(e){const t=new Map;for(const[r,n]of e)t.set(r,{...n,indices:(0,H.Dg)(n.indices)});return t}var $=r(40804),Y=(r(48833),r(63907));const Z=(0,C.CN)(.25,.25,.75,.75);function J(e){return"cross"===e||"x"===e}function W(e,t=128,r=.5*t,n=0){switch(e){case"circle":default:return function(e,t){const r=e/2-.5;return te(e,K(r,r,t/2))}(t,r);case"square":return function(e,t){return X(e,t,!1)}(t,r);case"cross":return function(e,t,r=0){return Q(e,t,!1,r)}(t,r,n);case"x":return function(e,t,r=0){return Q(e,t,!0,r)}(t,r,n);case"kite":return function(e,t){return X(e,t,!0)}(t,r);case"triangle":return function(e,t){return te(e,ee(e/2,t,t/2))}(t,r);case"arrow":return function(e,t){const r=t,n=t/2,i=e/2,s=.8*r,a=K(i,(e-t)/2-s,Math.sqrt(s*s+n*n)),o=ee(i,r,n);return te(e,((e,t)=>Math.max(o(e,t),-a(e,t))))}(t,r)}}function X(e,t,r){return r&&(t/=Math.SQRT2),te(e,((n,i)=>{let s=n-.5*e+.25,a=.5*e-i-.75;if(r){const e=(s+a)/Math.SQRT2;a=(a-s)/Math.SQRT2,s=e}return Math.max(Math.abs(s),Math.abs(a))-.5*t}))}function Q(e,t,r,n=0){t-=n,r&&(t*=Math.SQRT2);const i=.5*t;return te(e,((t,s)=>{let a,o=t-.5*e,l=.5*e-s-1;if(r){const e=(o+l)/Math.SQRT2;l=(l-o)/Math.SQRT2,o=e}return o=Math.abs(o),l=Math.abs(l),a=o>l?o>i?Math.sqrt((o-i)*(o-i)+l*l):l:l>i?Math.sqrt(o*o+(l-i)*(l-i)):o,a-=n/2,a}))}function K(e,t,r){return(n,i)=>{const s=n-e,a=i-t;return Math.sqrt(s*s+a*a)-r}}function ee(e,t,r){const n=Math.sqrt(t*t+r*r);return(i,s)=>{const a=Math.abs(i-e)-r,o=s-e+t/2+.75,l=(t*a+r*o)/n,c=-o;return Math.max(l,c)}}function te(e,t){const r=new Uint8Array(4*e*e);for(let n=0;n<e;n++)for(let i=0;i<e;i++){const s=i+e*n;let a=t(i,n);a=a/e+.5,(0,$.U)(a,r,4*s)}return r}var re=r(46610),ne=r(46540);class ie{constructor(e,t){this._context=null,this._symbolLayer=null,this._draped=!1,this._loaded=!1,this._loadingPromise=null,this._iconTextureID=null,this._materialId=null,this._context=t,this._symbolLayer=e}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}_destroy(){this._iconTextureID=null}async _load(){const e=this._context.renderCommandContext,t=await e.getOrCreateSharedTexture("circle-icon",(()=>function(e,t=128,r=.5*t,n=0){return{data:W(e,t,r,n),parameters:{mipmap:!1,wrap:{s:Y.pF.CLAMP_TO_EDGE,t:Y.pF.CLAMP_TO_EDGE},width:t,height:t,components:4,noUnpackFlip:!0,reloadable:!0}}}("circle")));this._iconTextureID=t;const r={anchorPosition:k.center,occlusionTest:!0,hasSlicePlane:!1,color:this._getFillColor(),outlineColor:this._getOutlineColor(),outlineSize:1,distanceFieldBoundingBox:Z,textureId:t,textureIsSignedDistanceField:!0,sampleSignedDistanceFieldTexelCenter:J("circle")};this._materialId=await e.createMaterial({type:"hud",parameters:r}),await e.createDirectRenderer(this._materialId),this._loaded=!0}async createAddCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r;if(null==t)throw new Error("expected material not to be null");const i=await this._createGeometry(e);if(null==i)return r.createPipelineCommand();const s=q(e,r);return r.createPipelineCommand(n.addDirectRendererGeometry(e.id,i,s))}async _createGeometry(e){const{_materialId:t,_context:r}=this,{mainThreadDelegate:n}=r,{featureCount:i}=e;if(0===i||null==t)return null;const s=B(e),a=j(e),o=function(e,t){const r=e.length/3,n=t.viewSpatialReference,i=t.renderSpatialReference,s=new Float64Array(3*r);if(!(0,N.projectBuffer)(e,n,0,s,i,0,r))throw new Error("Failed to project coordinates");return s}(await n.applyElevationAlignmentTo(a),r),l=new Float64Array([0,0,1]),c=new Float64Array([255,255,255,255]),d=new Float64Array([24,24]),u=new Float64Array([0,0,0,1]),h=new Float64Array([0,0]),f=new Float64Array([0]),m=new Uint32Array(i);for(let e=0;e<i;++e)m[e]=e;const p=new Uint32Array(i);for(let e=0;e<i;++e)p[e]=0;const y=new re.n(o,m,3,!0),g=new re.n(l,p,3,!0),_=new re.n(h,p,2,!0),b=new re.n(c,p,4,!0),v=new re.n(f,p,1,!0),w=new re.n(d,p,2,!0),x=new re.n(u,p,4,!0),T=[[ne.r.POSITION,y],[ne.r.NORMAL,g],[ne.r.UV0,_],[ne.r.COLOR,b],[ne.r.ROTATION,v],[ne.r.SIZE,w],[ne.r.CENTEROFFSETANDDISTANCE,x]],C=new Uint8Array(i);return e.getVisibilityArray(C),{attributes:G(T),objectAndLayerIdColor:void 0,transformation:(0,S.vt)(),materialId:t,objectIds:s,visibilities:C}}async createRemoveCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;return null==t?r.createPipelineCommand():r.createPipelineCommand(n.removeDirectRendererGeometryBuffer(t,e))}async createUpdateVisibilityCommand(e){const{_materialId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_materialId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.updateMaterial({type:"hud",materialId:r,parameters:{color:this._getFillColor(),outlineColor:this._getOutlineColor()}}))}async createUpdateElevationCommand(e){const{_materialId:t,_context:r}=this,{renderCommandContext:n}=r,{featureCount:i,id:s}=e;if(null==t||0===i)return r.createPipelineCommand();const a=await this._createGeometry(e);if(null==a)return r.createPipelineCommand();const o=q(e,r);return r.createPipelineCommand(n.updateDirectRendererGeometry(s,a,o))}async createDestroyCommand(){const{_iconTextureID:e,_context:t}=this,r=t.renderCommandContext;let n;return n=null!=e?await r.releaseSharedTexture("circle-icon"):y.create(r),n.appendPipelineStateCommand((()=>this._destroy())),n}_getOutlineColor(){const e=this._getLayerOpacity(),t=this._symbolLayer,r=t?.outline?.color;if(null!=r){const t=_.A.toUnitRGB(r),n=r.a*e;return[t[0],t[1],t[2],n]}return[0,0,0,0]}_getFillColor(){if(function(e){return null!=e&&("cross"===e||"x"===e)}(this._getPrimitive()))return ae;const e=null==this._getPrimitive(),t=this._symbolLayer?.material?.color;return this._getCombinedOpacityAndColor(t,{hasIntrinsicColor:e})}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}_getCombinedOpacity(e,t=se){const r=this._draped?1:this._getLayerOpacity();return e?r*e.a:t.hasIntrinsicColor?r:0}_getCombinedOpacityAndColor(e,t=se){const r=this._getCombinedOpacity(e,t);return function(e,t,r=null){const n=(0,C.o8)(C.Un);return null!=e&&(n[0]=e[0],n[1]=e[1],n[2]=e[2]),null!=t?n[3]=t:null!=e&&e.length>3&&(n[3]=e[3]),r&&(n[0]*=r,n[1]*=r,n[2]*=r,n[3]*=r),n}(null!=e?_.A.toUnitRGB(e):T.Un,r)}_getPrimitive(){return e=this._symbolLayer,e.resource?.href?null:e.resource?.primitive??I.r;var e}}const se={hasIntrinsicColor:!1},ae=C.uY;class oe{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._context=null,this._symbol=null,this._symbolLayerRenderers=[],this._context=t,this._symbol=e}_destroy(){}get loaded(){return this._loaded}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_context:e,_symbol:t,_symbolLayerRenderers:r}=this,n=[];for(const i of t.symbolLayers){const t=e.symbolRendererFactory.createSymbolRendererFromSymbolLayer(i);null!=t&&(n.push(t.load()),r.push(t))}await Promise.all(n),this._loaded=!0}async createDestroyCommand(){const{_context:e,_symbolLayerRenderers:t}=this,r=[];for(const e of t)r.push(e.createDestroyCommand());const n=e.joinPipelineCommands(await Promise.all(r));return n.appendPipelineStateCommand((()=>this._destroy())),n}async createAddCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createAddCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createRemoveCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createRemoveCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateVisibilityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateVisibilityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateLayerViewOpacityCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateLayerViewOpacityCommand(e));return t.joinPipelineCommands(await Promise.all(n))}async createUpdateElevationCommand(e){const{_context:t,_symbolLayerRenderers:r}=this,n=[];for(const t of r)n.push(t.createUpdateElevationCommand(e));return t.joinPipelineCommands(await Promise.all(n))}}class le{constructor(e,t){this._symbol=null,this._featureData=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const{_renderer:e,_context:t}=this;this._symbol=t.symbolRendererFactory.createSymbolRendererFromSymbol(e.symbol),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createAddCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.set(e.id,e))),n}async createRemoveCommand(e){const t=this._context,r=await this._provisionSymbol(),n=null==r?t.createPipelineCommand():await r.createRemoveCommand(e);return n.appendPipelineStateCommand((()=>this._featureData.delete(e))),n}async createUpdateVisibilityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateVisibilityCommand(e)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=await this._provisionSymbol();return null==r?t.createPipelineCommand():await r.createUpdateLayerViewOpacityCommand(e)}async createUpdateElevationCommand(){const{_featureData:e,_context:t}=this,r=await this._provisionSymbol();if(null==r)return t.createPipelineCommand();const n=[];for(const t of e.values())n.push(r.createUpdateElevationCommand(t));const i=await Promise.all(n);return t.joinPipelineCommands(i)}async createDestroyCommand(){const{_symbol:e,_context:t,_featureData:r}=this;if(!e)return t.createPipelineCommand();const n=[];for(const e of r.keys())n.push(this.createRemoveCommand(e));n.push(e.createDestroyCommand());const i=await Promise.all(n);return t.joinPipelineCommands(i)}async _provisionSymbol(){const e=this._symbol;return e?(e.loaded||await e.load(),e):null}}var ce,de,ue=r(48353),he=r(30809),fe=r(8887),me=r(38954),pe=r(72385),ye=(r(4197),r(11868)),ge=r(240);r(71351),(de=ce||(ce={})).length=function(e,t){const r=e[t],n=e[t+1],i=e[t+2];return Math.sqrt(r*r+n*n+i*i)},de.normalize=function(e,t){const r=e[t],n=e[t+1],i=e[t+2],s=1/Math.sqrt(r*r+n*n+i*i);e[t]*=s,e[t+1]*=s,e[t+2]*=s},de.scale=function(e,t,r){e[t]*=r,e[t+1]*=r,e[t+2]*=r},de.add=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]+r[n],i[s+1]=e[t+1]+r[n+1],i[s+2]=e[t+2]+r[n+2]},de.subtract=function(e,t,r,n,i,s=t){(i=i||e)[s]=e[t]-r[n],i[s+1]=e[t+1]-r[n+1],i[s+2]=e[t+2]-r[n+2]},r(87170);var _e=r(620);r(75039);const be=ce,ve=new Array(36);for(let e=0;e<6;e++)for(let t=0;t<6;t++)ve[6*e+t]=e;const we=new Array(36);for(let e=0;e<6;e++)we[6*e]=0,we[6*e+1]=1,we[6*e+2]=2,we[6*e+3]=2,we[6*e+4]=3,we[6*e+5]=0;const xe=(0,pe.fA)(-.5,0,-.5),Se=(0,pe.fA)(.5,0,-.5),Te=(0,pe.fA)(0,0,.5),Ce=(0,pe.fA)(0,.5,0),Ie=(0,pe.vt)(),Ae=(0,pe.vt)(),Oe=(0,pe.vt)(),Re=(0,pe.vt)(),De=(0,pe.vt)();(0,me.d)(Ie,xe,Ce),(0,me.d)(Ae,xe,Se),(0,me.h)(Oe,Ie,Ae),(0,me.n)(Oe,Oe),(0,me.d)(Ie,Se,Ce),(0,me.d)(Ae,Se,Te),(0,me.h)(Re,Ie,Ae),(0,me.n)(Re,Re),(0,me.d)(Ie,Te,Ce),(0,me.d)(Ae,Te,xe),(0,me.h)(De,Ie,Ae),(0,me.n)(De,De),Oe[0],Oe[1],Oe[2],Re[0],Re[1],Re[2],De[0],De[1],De[2],(0,T.vt)();var Pe=r(4576),Fe=r(69397);r(62258),r(6867),r(29878),r(87582);var Me=r(57917);function Ee(e,t){const r=(e,r,n=!1)=>({levels:e.map((e=>{const i=G(r(e.tesselation));return n&&function(e){const t=e,r=t.get(ne.r.POSITION).data,n=t.get(ne.r.NORMAL).data;if(n){const t=Ue(e,ne.r.NORMAL).data;for(let e=0;e<n.length;e+=3){const r=n[e+1];t[e+1]=-n[e+2],t[e+2]=r}}if(r){const t=Ue(e,ne.r.POSITION).data;for(let e=0;e<r.length;e+=3){const n=r[e+1];t[e+1]=-r[e+2],t[e+2]=n}}}(i),{components:[{attributes:i,objectAndLayerIdColor:void 0,transformation:null,materialId:t,visibilities:new Uint8Array([1]),objectIds:new Uint32Array([-1])}],minScreenSpaceRadius:e.minScreenSpaceRadius}}))});switch(e){case"cone":return r(Le,(e=>function(e,t,r,n,i=!0,s=!0){let a=0;const o=t,l=e;let c=(0,pe.fA)(0,a,0),d=(0,pe.fA)(0,a+l,0),u=(0,pe.fA)(0,-1,0),h=(0,pe.fA)(0,1,0);n&&(a=l,d=(0,pe.fA)(0,0,0),c=(0,pe.fA)(0,a,0),u=(0,pe.fA)(0,1,0),h=(0,pe.fA)(0,-1,0));const f=[d,c],m=[u,h],p=r+2,y=Math.sqrt(l*l+o*o);if(n)for(let e=r-1;e>=0;e--){const t=e*(2*Math.PI/r),n=(0,pe.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,pe.fA)(l*Math.cos(t)/y,-o/y,l*Math.sin(t)/y);m.push(i)}else for(let e=0;e<r;e++){const t=e*(2*Math.PI/r),n=(0,pe.fA)(Math.cos(t)*o,a,Math.sin(t)*o);f.push(n);const i=(0,pe.fA)(l*Math.cos(t)/y,o/y,l*Math.sin(t)/y);m.push(i)}const g=new Array,_=new Array;if(i){for(let e=3;e<f.length;e++)g.push(1),g.push(e-1),g.push(e),_.push(0),_.push(0),_.push(0);g.push(f.length-1),g.push(2),g.push(1),_.push(0),_.push(0),_.push(0)}if(s){for(let e=3;e<f.length;e++)g.push(e),g.push(e-1),g.push(0),_.push(e),_.push(e-1),_.push(1);g.push(0),g.push(2),g.push(f.length-1),_.push(1),_.push(2),_.push(m.length-1)}const b=(0,ye.oe)(3*p);for(let e=0;e<p;e++)b[3*e]=f[e][0],b[3*e+1]=f[e][1],b[3*e+2]=f[e][2];const v=(0,ye.oe)(3*p);for(let e=0;e<p;e++)v[3*e]=m[e][0],v[3*e+1]=m[e][1],v[3*e+2]=m[e][2];return[[ne.r.POSITION,new re.n(b,g,3,!0)],[ne.r.NORMAL,new re.n(v,_,3,!0)]]}(1,.5,e,!1)),!0);case"sphere":return r([{tesselation:0,minScreenSpaceRadius:0},{tesselation:1,minScreenSpaceRadius:8},{tesselation:2,minScreenSpaceRadius:16},{tesselation:3,minScreenSpaceRadius:50},{tesselation:4,minScreenSpaceRadius:250}],(e=>function(e,t,r){const n=e;let i,s;if(r)i=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],s=[0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1];else{const e=n*(1+Math.sqrt(5))/2;i=[-n,e,0,n,e,0,-n,-e,0,n,-e,0,0,-n,e,0,n,e,0,-n,-e,0,n,-e,e,0,-n,e,0,n,-e,0,-n,-e,0,n],s=[0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1]}for(let t=0;t<i.length;t+=3)be.scale(i,t,e/be.length(i,t));let a={};function o(t,r){t>r&&([t,r]=[r,t]);const n=t.toString()+"."+r.toString();if(a[n])return a[n];let s=i.length;return i.length+=3,be.add(i,3*t,i,3*r,i,s),be.scale(i,s,e/be.length(i,s)),s/=3,a[n]=s,s}for(let e=0;e<t;e++){const e=s.length,t=new Array(4*e);for(let r=0;r<e;r+=3){const e=s[r],n=s[r+1],i=s[r+2],a=o(e,n),l=o(n,i),c=o(i,e),d=4*r;t[d]=e,t[d+1]=a,t[d+2]=c,t[d+3]=n,t[d+4]=l,t[d+5]=a,t[d+6]=i,t[d+7]=c,t[d+8]=l,t[d+9]=a,t[d+10]=l,t[d+11]=c}s=t,a={}}const l=(0,ye.Wz)(i);for(let e=0;e<l.length;e+=3)be.normalize(l,e);return[[ne.r.POSITION,new re.n((0,ye.Wz)(i),s,3,!0)],[ne.r.NORMAL,new re.n(l,s,3,!0)]]}(.5,e,!0)));case"cube":case"inverted-cone":case"cylinder":case"tetrahedron":case"diamond":throw new Error("not implemented");default:return}}function Ue(e,t){let r=e.get(t);return r&&!r.exclusive&&(r={...r,exclusive:!0,data:(0,Me.S)(r.data)},e.set(t,r)),r}const Le=[{tesselation:6,minScreenSpaceRadius:0},{tesselation:18,minScreenSpaceRadius:7},{tesselation:64,minScreenSpaceRadius:65}];var Ve=r(89192),ke=r(51768),Ne=r(74810);class ze{constructor(e,t){this._loaded=!1,this._loadingPromise=null,this._primitiveMaterialId=null,this._lodRendererId=null,this._context=null,this._symbolLayer=null,this._primitive=null,this._context=t,this._symbolLayer=e}_destroy(){this._lodRendererId=null,this._primitiveMaterialId=null}get loaded(){return this._loaded}get _isPrimitive(){return null!=this._primitive}load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){const e=this._context.renderCommandContext,t=this._getLayerOpacity();let r={usePBR:!0,isSchematic:!0,mrrFactors:Ne.Bt,ambient:T.Un,diffuse:T.Un,hasSlicePlane:!1,castShadows:!0,layerOpacity:t,offsetTransparentBackfaces:!1,screenSizePerspective:{}};if(r.externalColor=C.Un,r.isInstanced=!0,this._isPrimitive){const e=new ke.fs;e.layerOpacity=t,r={...r,cullFace:Be((0,ke.ty)(e))}}const n=await e.createMaterial({type:"default",parameters:r}),i=this._symbolLayer.resource;this._primitive=i&&function(e){switch(e){case"sphere":case"cube":case"diamond":case"cylinder":case"cone":case"inverted-cone":case"tetrahedron":return!0}return!1}(i?.primitive)?i.primitive:he.r;const s=Ee(this._primitive,n);this._lodRendererId=await e.createLodRenderer(s),this._primitiveMaterialId=n,this._loaded=!0}async createDestroyCommand(){const{_lodRendererId:e,_primitiveMaterialId:t,_context:r}=this,n=r.renderCommandContext,i=[];return null!=e&&i.push(n.destroyLodRenderer(e)),null!=t&&i.push(n.destroyMaterial(t)),new y(n,n.mergeRenderCommandBuffers(i),[()=>this._destroy()])}async createAddCommand(e){const t=this._context,{renderCommandContext:r,mainThreadDelegate:n}=t;if(null==this._lodRendererId)throw new Error("expected lod renderer id to not be null");const{featureCount:i}=e;if(0===i)return t.createPipelineCommand();const s=this._isPrimitive,a=this._primitive||he.r,o=(0,R.vt)((0,fe.Fq)(a)),l=(0,T.ci)((0,R.Ej)(o)),c=(0,T.ci)((0,fe.Bb)(l,{isPrimitive:s,width:100,depth:null,height:null})),d=new Float64Array(16*i),u=new Float64Array(16*i),h=j(e),f=await n.applyElevationAlignmentTo(h);for(let e=0;e<i;++e){const t=e,r=f[3*e+0],n=f[3*e+1],i=f[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,He),a=this._computeLocalTransform(c,l,qe);this._writeMatrixToTypedBuffer(d,t,a),this._writeMatrixToTypedBuffer(u,t,s)}const m=B(e),p=new Uint8Array(i);e.getVisibilityArray(p);const y={featureIds:new Uint32Array(m),visibility:p,localTransforms:d,globalTransforms:u};return t.createPipelineCommand(r.addLodInstances(this._lodRendererId,e.id,y))}async createRemoveCommand(e){const{_context:t,_lodRendererId:r}=this,n=t.renderCommandContext;return null==r?t.createPipelineCommand():t.createPipelineCommand(n.removeLodInstances(r,e))}async createUpdateVisibilityCommand(e){const{_lodRendererId:t,_context:r}=this,n=r.renderCommandContext;if(null==t)return r.createPipelineCommand();const i=new Uint8Array(e.featureCount);return e.getVisibilityArray(i),r.createPipelineCommand(n.updateVisibility(t,e.id,i))}async createUpdateLayerViewOpacityCommand(e){const{_context:t}=this,r=t.renderCommandContext,n=this._primitiveMaterialId;if(null==n)return t.createPipelineCommand();const i=this._getLayerOpacity();let s={layerOpacity:i};if(this._isPrimitive){const e=new ke.fs;e.layerOpacity=i,s={...s,cullFace:Be((0,ke.ty)(e))}}return t.createPipelineCommand(r.updateMaterial({type:"default",materialId:n,parameters:s}))}async createUpdateElevationCommand(e){const{_context:t,_lodRendererId:r}=this,{renderCommandContext:n,mainThreadDelegate:i}=t,{featureCount:s,id:a}=e;if(null==r||0===s)return t.createPipelineCommand();const o=new Float64Array(16*s),l=j(e),c=await i.applyElevationAlignmentTo(l);for(let e=0;e<s;++e){const t=e,r=c[3*e+0],n=c[3*e+1],i=c[3*e+2],s=this._computeGlobalTransform(r,n,i,this._context.viewSpatialReference,He);this._writeMatrixToTypedBuffer(o,t,s)}return t.createPipelineCommand(n.updateLodInstancesData(r,a,o))}_writeMatrixToTypedBuffer(e,t,r){let n=16*t;for(let t=0;t<16;t++)e[n++]=r[t]}_computeGlobalTransform(e,t,r,n,i){return je[0]=e,je[1]=t,je[2]=r,(0,ue.l)(n,je,i,this._context.renderSpatialReference),i}_computeLocalTransform(e,t,r){return(0,O.D_)(r),this._applyObjectScale(e,t,r),r}_applyObjectScale(e,t,r){const n=function(e=T.Un,t,r,n=1){const i=new Array(3);if(null==t||null==r)i[0]=1,i[1]=1,i[2]=1;else{let n,s=0;for(let a=2;a>=0;a--){const o=e[a],l=null!=o,c=0===a&&!n&&!l,d=r[a];let u;"symbol-value"===o||c?u=0!==d?t[a]/d:1:l&&"proportional"!==o&&isFinite(o)&&(u=0!==d?o/d:1),null!=u&&(i[a]=u,n=u,s=Math.max(s,Math.abs(u)))}for(let e=2;e>=0;e--)null==i[e]?i[e]=n:0===i[e]&&(i[e]=.001*s)}for(let e=2;e>=0;e--)i[e]/=n;return(0,T.ci)(i)}(e,e,t,this._context.renderCoordsHelper.unitInMeters);1===n[0]&&1===n[1]&&1===n[2]||(0,O.hs)(r,r,n)}_getLayerOpacity(){return this._context.layerViewInfo.fullOpacity}}function Be(e){return e?Ve.s2.None:Ve.s2.Back}const je=(0,T.vt)(),qe=(0,S.vt)(),He=(0,S.vt)();class Ge{constructor(e,t){this._symbols=new Array,this._featureDataPartitioning=new Map,this._loaded=!1,this._loadingPromise=null,this._renderer=null,this._context=t,this._renderer=e}async load(){return null==this._loadingPromise&&(this._loadingPromise=this._load()),this._loadingPromise}async _load(){this._symbols[0]=new ie(x(),this._context),this._symbols[1]=new ze(new v.A,this._context),this._loaded=!0}get loaded(){return this._loaded}async createAddCommand(e){const t=this._context,r=this._partition(e),n=await Promise.all(r.map((async({index:e,features:t})=>{const r=await this._provisionSymbol(e);return await(r?.createAddCommand(t))}))),i=t.joinPipelineCommands(n);return i.appendPipelineStateCommand((()=>this._featureDataPartitioning.set(e.id,r))),i}async createRemoveCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e);if(null==i)return new y(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createRemoveCommand(t.id))}))),a=r.joinPipelineCommands(s);return a.appendPipelineStateCommand((()=>t.delete(e))),a}async createUpdateVisibilityCommand(e){const{_featureDataPartitioning:t,_context:r}=this,n=r.renderCommandContext,i=t.get(e.id);if(null==i)return new y(n,n.createRenderCommandBuffer(),[]);const s=await Promise.all(i.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateVisibilityCommand(t))})));return r.joinPipelineCommands(s)}async createUpdateLayerViewOpacityCommand(e){const t=this._context,r=[];for(let t=0;t<this._symbols.length;++t){const n=this._symbols[t];null!=n&&n.loaded&&r.push(n.createUpdateLayerViewOpacityCommand(e))}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createUpdateElevationCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.values()){const e=t.map((async({index:e,features:t})=>{const r=this._getLoadedSymbol(e);return await(r?.createUpdateElevationCommand(t))}));r.push(...e)}const n=await Promise.all(r);return t.joinPipelineCommands(n)}async createDestroyCommand(){const{_featureDataPartitioning:e,_context:t}=this,r=[];for(const t of e.keys())r.push(this.createRemoveCommand(t));for(const e of this._symbols)r.push(e.createDestroyCommand());const n=await Promise.all(r);return t.joinPipelineCommands(n)}async _provisionSymbol(e){if(null==e)return null;const t=this._symbols[e];return t?(t.loaded||await t.load(),t):null}_getLoadedSymbol(e){if(null==e)return null;const t=this._symbols[e];return null!=t&&t.loaded?t:null}_partition(e){const t=B(e);if(null==t)throw new Error("unable to fetch objectIds");const{featureCount:r}=e,n=[[],[]];for(let e=0;e<r;++e)n[t[e]%2].push(e);return n.map(((t,r)=>new $e(r,e.subset(new Uint32Array(t))))).filter((e=>e.features.featureCount>0))}}class $e{constructor(e,t){this.index=e,this.features=t}}class Ye{constructor(e,t,r,n,i,s,a){this.viewSpatialReference=e,this.renderSpatialReference=t,this.mainThreadDelegate=r,this.renderCoordsHelper=n,this.renderCommandContext=i,this.layerInfo=s,this.layerViewInfo=a,this.symbolRendererFactory=new Ze(this)}createPipelineCommand(e=this.renderCommandContext.createRenderCommandBuffer(),t=[]){return new y(this.renderCommandContext,e,t)}joinPipelineCommands(e){return 0===e.length?this.createPipelineCommand():e.filter((e=>null!=e)).reduce(((e,t)=>(e.append(t),e)))}}class Ze{constructor(e){this.context=e}createSymbolRendererFromJSON(e){const t=(0,p.L)(e??Je)??void 0;if(!t)throw new Error("Failed to create renderer");const r=t.type;switch(r){case"simple":return new le(t,this.context);case"unique-value":return new Ge(t,this.context);default:return console.warn(`Unable to create symbolrenderer for renderer of ${r}`),this.createSymbolRendererFromJSON(Je)}}createSymbolRendererFromSymbol(e){const t=e?.type;switch(t){case"point-3d":return new oe(e,this.context);case"picture-marker":return new ie(x(),this.context);default:return console.warn(`Unable to create symbolrenderer for symbol of ${t}`),null}}createSymbolRendererFromSymbolLayer(e){const t=e.type;return"icon"===t?new ie(e,this.context):(console.warn(`Unable to create symbolrenderer for symbolLayer of ${t}`),null)}}const Je={type:"simple"};var We,Xe,Qe,Ke=r(69622),et=r(60999),tt=r(32587),rt=r(11932);class nt{constructor(e,t){this._joinCommands=e,this._createCommand=t,this._executing=new Set,this._nextEvents=new Map}async enqueueActions(e){const{_executing:t}=this;return e.every((e=>!t.has(e.tileId)))?await this._executeActions(e):await this._scheduleActions(e)}async _scheduleActions(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e.tileId))).filter(Pe.Ru));let n;if(0!==r.size){const i=new Array,s=new Array;for(const e of r)i.push(e.actions),s.push(e.resolver);i.push(e);for(const e of i)for(const r of e)t.delete(r.tileId);const a=i.reduce(at);n=new it(a),n.resolver.promise.then((()=>{for(const e of s)e.resolve()}),(e=>{for(const t of s)t.reject(e)}))}else n=new it(e);for(const e of n.actions)t.set(e.tileId,n);return this._validate(),await n.resolver.promise}async _executeActions(e){const t=e.map((e=>e.tileId)),{_executing:r}=this;for(const e of t)r.add(e);this._validate();try{const t=(await Promise.allSettled(e.map(this._createCommand))).map((e=>"fulfilled"===e.status?e.value:null)).filter(Pe.Ru);if(0===t.length)return;const r=this._joinCommands(t);await(r?.execute())}finally{for(const e of t)r.delete(e);this._executeTails(t)}}_executeTails(e){const{_nextEvents:t}=this,r=new Set(e.map((e=>t.get(e))).filter(Pe.Ru));if(0===r.size)return;const{_executing:n}=this;for(const e of r)if(!e.actions.some((e=>n.has(e.tileId)))){for(const r of e.actions)t.delete(r.tileId);this._executeActions(e.actions).then((()=>{e.resolver.resolve()}),(t=>{e.resolver.reject(t)}))}}_validate(){const{_nextEvents:e}=this,t=Array.from(new Set(e.values()));if(0!==t.length&&t.some((t=>t.actions.some((({tileId:r})=>e.get(r)!==t)))))throw new Error("Mismatch between map and event")}}class it{constructor(e){this.actions=e,this.resolver=(0,s.Tw)()}}class st{constructor(e,t,r){this.tileId=e,this.type=t,this.data=r}toString(){return`${this.tileId}: ${this.type}`}}function at(e,t){const r=new Array(e.length).fill(!0),n=new Array(t.length).fill(!0);e:for(let i=0;i<e.length;++i){const s=e[i];for(let e=0;e<t.length;++e)if(n[e])switch(ot(s,t[e])){case Xe.NONE:break;case Xe.OVERWRITE:r[i]=!1;continue e;case Xe.REDUNDANT:n[e]=!1;break;case Xe.ANNIHILATE:r[i]=!1,n[e]=!1;continue e}}const i=new Array;for(let t=0;t<e.length;++t)r[t]&&i.push(e[t]);for(let e=0;e<t.length;++e)n[e]&&i.push(t[e]);return i}function ot(e,t){if(e.tileId!==t.tileId)return Xe.NONE;if(e.type===We.ADD&&t.type===We.REMOVE)return Xe.ANNIHILATE;if(e.type===We.ADD&&t.type===We.UPDATE_VISIBILITY)return Xe.REDUNDANT;if(e.type===We.REMOVE&&t.type===We.ADD)return Xe.ANNIHILATE;if(e.type===We.UPDATE_VISIBILITY&&t.type===We.REMOVE)return Xe.OVERWRITE;if(e.type===We.UPDATE_VISIBILITY&&t.type===We.UPDATE_VISIBILITY)return Xe.OVERWRITE;throw new Error("Impossible sequence of actions")}(Qe=We||(We={})).ADD="ADD",Qe.REMOVE="REMOVE",Qe.UPDATE_VISIBILITY="UPDATE_VISIBILITY",function(e){e.NONE="NONE",e.ANNIHILATE="ANNIHILATE",e.OVERWRITE="OVERWRITE",e.REDUNDANT="REDUNDANT"}(Xe||(Xe={}));var lt=r(24326);function ct(e=""){return`${e}${(0,lt.c)()}`}r(37539),new Float64Array(3);class dt{constructor(e,t){this._parent=e,this._subsetIndices=t,this.id=ct(`featureDataSubset-${e.id}-`)}get extent(){return this._parent.extent}get featureCount(){return this._subsetIndices.length}get usedMemory(){return this._parent.usedMemory+Fe.qK+this._subsetIndices.byteLength}get isFullyEnabled(){for(const e of this._subsetIndices)if(!this._parent.getEnabled(e))return!1;return!0}getObjectId(e){return this._parent.getObjectId(this._subsetIndices[e])}getAttribute(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributeAsTimestamp(e,t){return this._parent.getAttribute(this._subsetIndices[e],t)}getAttributes(e){return this._parent.getAttributes(this._subsetIndices[e])}getCoordinates(e,t,r){return this._parent.getCoordinates(this._subsetIndices[e],t,r)}getOptimizedGeometry(e){return this._parent.getOptimizedGeometry(this._subsetIndices[e])}getCentroid(e,t){return this._parent.getCentroid(this._subsetIndices[e],t)}getBounds(e){return this._parent.getBounds(this._subsetIndices[e])}getBoundingBox(e){return this._parent.getBoundingBox(this._subsetIndices[e])}getObjectIdsArray(e,t,r){return this._parent.getObjectIdsArray(e,this._translatedIndices(t),r)}getCoordinatesArray(e,t,r){return this._parent.getCoordinatesArray(e,this._translatedIndices(t),r)}objectIds(e){return this._parent.objectIds(this._translatedIndices(e))}subset(e){const{_subsetIndices:t}=this,r=new Uint32Array(e.length);for(let n=0;n<r.length;++n)r[n]=t[e[n]];return new dt(this._parent,r)}disableObjectIds(e){if(0===e.size)return;const{featureCount:t}=this,r=new Array;for(let n=0;n<t;++n)this.getEnabled(n)&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)this.setEnabled(e,!1)}setEnabled(e,t){this._parent.setEnabled(this._subsetIndices[e],t)}getEnabled(e){return this._parent.getEnabled(this._subsetIndices[e])}enableAll(){const{_subsetIndices:e,_parent:t}=this;for(const r of e)t.setEnabled(r,!0)}getVisibilityArray(e,t,r){return this._parent.getVisibilityArray(e,this._translatedIndices(t),r)}enabledObjectIds(e){return this._parent.enabledObjectIds(this._translatedIndices(e))}*_translatedIndices(e){const{_subsetIndices:t}=this;if(null!=e)for(const r of e)yield t[r];else yield*t}}class ut{constructor(e){this._tile=e,this.id=ct(`featureData-${e.id}-`),this._enabled=new Array(e.featureCount).fill(!0)}get featureCount(){return this._tile.featureCount}get usedMemory(){return Fe.qK+(0,Fe.$B)(this.id)}get extent(){return this._tile.descriptor.extent}get isFullyEnabled(){return this._enabled.every((e=>e))}getObjectId(e){return this._tile.getObjectId(e)}getAttribute(e,t){return this._tile.getAttribute(e,t)}getAttributeAsTimestamp(e,t){return this._tile.getAttribute(e,t)}getAttributes(e){return this._tile.getAttributes(e)}getCoordinates(e,t,r){return this._tile.getCoordinates(e,t,r)}getOptimizedGeometry(e){return this._tile.getOptimizedGeometry(e)}getCentroid(e,t){return this._tile.getCentroid(e,t)}getBounds(e){return this._tile.getBounds(e)}getBoundingBox(e){return this._tile.getBoundingBox(e)}getObjectIdsArray(e,t,r){return this._tile.getObjectIdsArray(e,t,r)}getCoordinatesArray(e,t,r){return this._tile.getCoordinatesArray(e,t,r)}objectIds(e){return this._tile.objectIds(e)}subset(e){return new dt(this,e)}disableObjectIds(e){if(0===e.size)return;const{_enabled:t}=this,r=new Array;for(const n of this._allFeatureIndices())t[n]&&e.has(this.getObjectId(n))&&r.push(n);if(0!==r.length)for(const e of r)t[e]=!1}setEnabled(e,t){this._enabled[e]=t}getEnabled(e){return this._enabled[e]}enableAll(){this._enabled.fill(!0)}getVisibilityArray(e,t=this._allFeatureIndices(),r=0){const{_enabled:n}=this;for(const i of t)e[r++]=Number(n[i]);return r}*enabledObjectIds(e=this._allFeatureIndices()){const{_enabled:t}=this;for(const r of e)t[r]&&(yield this.getObjectId(r))}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}}let ht=class extends Ke.A{constructor(e){super(e),this.extent=null,this._tileHandles=new tt.A,this._wanted=new tt.A,this._updateRequested=!1,this._synchronizationTask=null,this._requestedTiles=new Array}destroy(){this._tileHandles.clear(),this._wanted.clear()}get updating(){return this._updateRequested||!(this._synchronizationTask?.finished??1)}get _boundingRect(){const{extent:e}=this;return null==e?null:(0,D.VY)(e)}get _missingTiles(){const e=new Array,t=this._wanted,r=this._tileHandles;for(const n of t.values())null==r.get(n.id)?.featureData&&e.push(n);return e}onTileTreeChange({tiles:e}){this._requestedTiles=e,this._scheduleTilesSync()}_scheduleTilesSync(){if(this._updateRequested)return;this._updateRequested=!0;const e=this._synchronizationTask,t=(0,et.UT)((async()=>{try{await(0,a.C_)((()=>e?.finished??!0)),await(0,rt.NO)(),this._updateRequested=!1,await this._synchronizeTiles()}finally{this._synchronizationTask===t&&(this._synchronizationTask=null)}}));this._synchronizationTask=t}async _synchronizeTiles(){const e=this._requestedTiles,t=this._tileHandles,r=new Array;for(const n of e)t.has(n.id)||r.push(n);const n=new Array;for(const r of t.values()){const{id:t}=r;e.every((e=>e.id!==t))&&n.push(r.descriptor)}const i=this._tileHandles,{_boundingRect:s}=this,a=null!=s?r.filter((e=>(0,D.HY)(s,e.extent))):r,o=this._wanted,l=new Array;for(const{id:e}of n)o.delete(e);for(const e of a)o.set(e.id,e);const c=this._missingTiles;for(const e of n){const{id:t}=e;if(c.some((t=>ft(t,e)||ft(e,t))))continue;const r=i.get(t);null!=r&&l.push(this._removeTile(r))}for(const e of a)l.push(this._addTile(e));const d=await Promise.allSettled(l);for(const e of d)"rejected"===e.status&&console.error(e.reason)}forEachTile(e){for(const t of this._tileHandles.values()){const r=t.featureData;null!=r&&e(r)}}async _removeTile(e){e.loadTask.abort(),this._tileHandles.delete(e.id),this._validate();const{featureData:t}=e;null!=t&&await this.synchronizer.enqueueActions([new st(e.id,We.REMOVE,t)])}async _addTile(e){const{_tileHandles:t}=this,r=t.get(e.id);if(null!=r){if(!pt(r)||r.featureData.isFullyEnabled)return;return r.featureData.enableAll(),void await this._onTileLoad(r)}const n=new mt(e,(0,et.UT)((async t=>{const r=await this.loadTile(e,t);return(0,s.Te)(t),new ut(r)})));this._tileHandles.set(n.id,n);try{await n.loadTask.promise}catch(e){return void(0,s.jH)(e)}(function(e){if(!pt(e))throw new Error})(n),await this._onTileLoad(n)}async _onTileLoad(e){const{_wanted:t,_tileHandles:r,_missingTiles:n}=this,i=e.descriptor,s=new Array,a=new Set;for(const o of r.values()){if(o===e)continue;const{descriptor:l,id:c}=o;if(t.has(c)||n.some((e=>ft(e,l)||ft(l,e)))){if(pt(o)){if(ft(i,l)){const e=o.featureData;for(const t of e.objectIds())a.add(t)}if(ft(l,i)){const t=e.featureData,r=new Set(t.objectIds()),{featureData:n}=o;n.disableObjectIds(r),s.push(new st(c,We.UPDATE_VISIBILITY,n)),this._validateRemoval(n,r)}}}else{r.delete(c),o.loadTask.abort();const{featureData:e}=o;null!=e&&s.push(new st(c,We.REMOVE,e))}}a.size>0&&(e.featureData.disableObjectIds(a),this._validateRemoval(e.featureData,a)),this._validate(),s.push(new st(e.id,We.ADD,e.featureData)),await this.synchronizer.enqueueActions(s)}_validate(){if(!(0,l.A)("feature-pipeline-3d-test-validation"))return;const e=new Array;for(const t of this._tileHandles.values()){if(!pt(t))continue;const{featureData:r}=t;e.push({featureData:r,objectIds:new Set(r.enabledObjectIds())})}for(let t=0;t<e.length;++t){const{featureData:r,objectIds:n}=e[t];for(let i=t+1;i<e.length;++i){const{featureData:t,objectIds:s}=e[i];for(const e of s)if(n.has(e))throw new Error(`${r.id} and ${t.id} both contain ${e}.`)}}}_validateRemoval(e,t){if((0,l.A)("feature-pipeline-3d-test-validation"))for(const r of e.enabledObjectIds())if(t.has(r))throw new Error(`Failed to remove ${r} from ${e.id}!`)}};function ft({lij:[e,t,r]},{lij:[n,i,s]}){const a=n-e;return a>=0&&t===i>>a&&r===s>>a}(0,n._)([(0,o.MZ)()],ht.prototype,"updating",null),(0,n._)([(0,o.MZ)({constructOnly:!0})],ht.prototype,"loadTile",void 0),(0,n._)([(0,o.MZ)({constructOnly:!0})],ht.prototype,"synchronizer",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"extent",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"_boundingRect",null),(0,n._)([(0,o.MZ)()],ht.prototype,"_missingTiles",null),(0,n._)([(0,o.MZ)()],ht.prototype,"_updateRequested",void 0),(0,n._)([(0,o.MZ)()],ht.prototype,"_synchronizationTask",void 0),ht=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Tile3DManager")],ht);class mt{constructor(e,t){this.descriptor=e,this.loadTask=t}get id(){return this.descriptor.id}get featureData(){return this.loadTask.value}}function pt(e){return null!=e.featureData}var yt=r(75503),gt=r(27647),_t=r(92722);class bt{constructor(e,t){this._index=e,this._view=t}get usedMemory(){return Fe.qK+Fe.RS}getObjectId(){return this._view.getObjectId(this._index)}getAttribute(e){return this._view.getAttribute(this._index,e)}getAttributeAsTimestamp(e){return this._view.getAttributeAsTimestamp(this._index,e)}getAttributes(){return this._view.getAttributes(this._index)}getOptimizedGeometry(){return this._view.getOptimizedGeometry(this._index)}getCentroid(e){return this._view.getCentroid(this._index,e)}getBounds(){return this._view.getBounds(this._index)}getBoundingBox(){return this._view.getBoundingBox(this._index)}cloneWithGeometry(e){return new vt(this._index,this._view,e)}}class vt extends bt{constructor(e,t,r){super(e,t),this._geometryOverride=r}getOptimizedGeometry(){return this._geometryOverride}getCentroid(e){return(0,gt.Q)(new _t.A,this._geometryOverride,e.hasZ,e.hasM)}}class wt{constructor(e,t){this.featureData=e,this.bounds=t}}class xt{constructor(){this._tileBounds=new Map,this.events=new i.A,this.featureAdapter=St.shared}get usedMemory(){return Fe.qK+Fe.qK*this._tileBounds.size}addTile(e){const{featureCount:t}=e;if(0===t)return;const r=new yt.w(9,(t=>e.getBounds(t))),n=new Array;for(let e=0;e<t;++e)n[e]=e;r.load(n),this._tileBounds.set(e.id,new wt(e,r)),this.events.emit("changed")}removeTile(e){this._tileBounds.delete(e),this.events.emit("changed")}clear(){this._tileBounds.clear(),this.events.emit("changed")}forEach(e){for(const{featureData:t,bounds:r}of this._tileBounds.values())r.all((r=>{t.getEnabled(r)&&e(new bt(r,t))}))}forEachInBounds(e,t){Tt.minX=e[0],Tt.minY=e[1],Tt.maxX=e[2],Tt.maxY=e[3];for(const{featureData:e,bounds:r}of this._tileBounds.values())r.search(Tt,(r=>{e.getEnabled(r)&&t(new bt(r,e))}))}forEachBounds(e,t){for(const r of e)t(r.getBoundingBox())}getFullExtent(e){let t=1/0,r=1/0,n=-1/0,i=-1/0;for(const{bounds:e}of this._tileBounds.values()){const{minX:s,minY:a,maxX:o,maxY:l}=e.toJSON();t=Math.min(t,s),r=Math.min(r,a),n=Math.min(n,o),i=Math.min(i,l)}return{xmin:t,ymin:r,xmax:n,ymax:i,spatialReference:e}}}class St{static{this.shared=new St}getObjectId(e){return e.getObjectId()}getAttribute(e,t){return e.getAttribute(t)}getAttributeAsTimestamp(e,t){return e.getAttributeAsTimestamp(t)}getAttributes(e){return e.getAttributes()}getGeometry(e){return e.getOptimizedGeometry()}getCentroid(e,t){return e.getCentroid(t)}cloneWithGeometry(e,t){return e.cloneWithGeometry(t)}}const Tt=new yt.E;var Ct=r(80893);class It{constructor(e,t,r){this.descriptor=e,this._pages=t,this._pageSize=r;const n=Fe.ez+t.reduce(((e,{usedMemory:t})=>e+t),0),i=3*Fe.RS;this.usedMemory=Fe.qK+n+i,this.featureCount=t.reduce(((e,t)=>e+t.featureCount),0)}get id(){return this.descriptor.id}getObjectId(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getObjectId(r)}getAttribute(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttribute(n,t)}getAttributeAsTimestamp(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getAttributeAsTimestamp(n,t)}getAttributes(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getAttributes(r)}getCoordinates(e,t,r){const{pageIndex:n,featurePageIndex:i}=this._translateIndex(e);this._pages[n].getCoordinates(i,t,r)}getOptimizedGeometry(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getOptimizedGeometry(r)}getCentroid(e,t){const{pageIndex:r,featurePageIndex:n}=this._translateIndex(e);return this._pages[r].getCentroid(n,t)}getBounds(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBounds(r)}getBoundingBox(e){const{pageIndex:t,featurePageIndex:r}=this._translateIndex(e);return this._pages[t].getBoundingBox(r)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getObjectIdsArray(e,i,n);return n}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){let n=r;for(const{page:r,indices:i}of this._batchPageIndices(t))n=r.getCoordinatesArray(e,i,n);return n}*objectIds(e=this._allFeatureIndices()){for(const{page:t,indices:r}of this._batchPageIndices(e))for(const e of t.objectIds(r))yield e}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_translateIndex(e){const{_pageSize:t}=this;return{pageIndex:Math.floor(e/t),featurePageIndex:e%t}}*_batchPageIndices(e){const t=new Array;{let r=0,n=new Array;for(const i of e){const{pageIndex:e,featurePageIndex:s}=this._translateIndex(i);r!==e&&(0!==n.length&&t.push({pageIndex:r,indices:n}),r=e,n=[]),n.push(s)}0!==n.length&&t.push({pageIndex:r,indices:n})}const{_pages:r}=this;for(const{pageIndex:e,indices:n}of t)yield{page:r[e],indices:n}}}var At=r(49186),Ot=r(51624),Rt=r(62577),Dt=r(95466),Pt=r(53655);class Ft{constructor(e){this._reader=new Ot.A(new Uint8Array(e),new DataView(e)),this._index=function(e){for(;e.next();){if(2===e.tag())return Mt(e.getMessage());e.skip()}Ut()}(this._reader)}get featureCount(){return this._index.featureIndices.length}get exceededTransferLimit(){return this._index.exceededTransferLimit}get usedMemory(){return this._reader.usedMemory}getObjectId(e){return this.getAttribute(e,this._index.objectIdFieldName)}getAttribute(e,t){const{_index:{fieldsIndex:r,attributeIndices:n}}=this,i=r.get(t)?.index;if(null==i)return;const s=n[e*r.fields.length+i],a=this._reader;return a.move(s),Lt(a)}getAttributeAsTimestamp(e,t){const r=this.getAttribute(e,t);return"string"==typeof r?new Date(r).getTime():"number"==typeof r||null==r?r:null}getAttributes(e){const{_index:{fieldsIndex:t,attributeIndices:r}}=this,n=e*t.fields.length,i=this._reader,s={};for(const e of t.fields){const t=r[n+e.index];i.move(t),s[e.name]=Lt(i)}return s}getCoordinates(e,t,r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;n.move(s[e]),this._readCoordinates(a,o,t,r)}getOptimizedGeometry(e){const t=(0,T.vt)();return this.getCoordinates(e,t),new _t.A([],t)}getCentroid(e,{hasZ:t,hasM:r}){this.getCoordinates(e,Vt);const[n,i,s]=Vt,a=[n,i];return t&&(a[3]=s),r&&(a[t?4:3]=0),new _t.A([],a)}getBounds(e){this.getCoordinates(e,Vt);const[t,r]=Vt,n=new yt.E;return n.minX=t,n.minY=r,n.maxX=t,n.maxY=r,n}getBoundingBox(e){this.getCoordinates(e,Vt);const[t,r,n]=Vt;return(0,R.fA)(t,r,n,t,r,n)}getObjectIdsArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{objectIdFieldName:i,attributeIndices:s,fieldsIndex:a}=this._index,o=a.get(i).index,l=a.fields.length;for(const i of t){const t=s[i*l+o];n.move(t),e[r++]=Lt(n)}return r}getCoordinatesArray(e,t=this._allFeatureIndices(),r=0){const n=this._reader,{transform:i,featureIndices:s}=this._index,{scale:a,translate:o}=i;for(const i of t){const t=s[i];n.move(t),r=this._readCoordinates(a,o,e,r)}return r}*objectIds(e=this._allFeatureIndices()){const t=this._reader,{objectIdFieldName:r,attributeIndices:n,fieldsIndex:i}=this._index,s=i.get(r).index,a=i.fields.length;for(const r of e){const e=n[r*a+s];t.move(e),yield Lt(t)}}*_allFeatureIndices(){const{featureCount:e}=this;for(let t=0;t<e;++t)yield t}_readCoordinates([e,t,r],[n,i,s],a,o){const l=this._reader,c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)switch(l.tag()){case 2:{const c=l.getLength(),d=l.pos()+c;for(;l.pos()<d&&l.next();)3===l.tag()?(l.getUInt32(),a[o++]=n+e*l.getSInt64(),a[o++]=i+t*l.getSInt64(),a[o++]=s+r*l.getSInt64()):l.skip();break}default:l.skip()}return o}}function Mt(e){for(;e.next();){if(1===e.tag())return Et(e.getMessage());e.skip()}Ut()}function Et(e){let t,r,n=!1,i=!1,s=0;const a=new Array,o=new Array,l=new Array;for(;e.next();)switch(e.tag()){case 1:r=e.getString();break;case 7:0!==e.getEnum()&&Ut();break;case 9:n=e.getBool()??!1;break;case 12:t=(0,Rt.Q1)(e.processMessage(Pt.ae));break;case 13:{const t=e.processMessage(Pt.cn);t.index=s++,a.push(t);break}case 15:{o.push(e.pos());const t=e.getUInt32(),r=e.pos()+t;for(;e.pos()<r&&e.next();)1===e.tag()?(l.push(e.pos()),e.skip()):e.skip();break}case 10:i=e.getBool()??!1;break;default:e.skip()}const c=new Dt.A(a);return null!=t&&i&&null!=r&&c.has(r)||Ut(),{transform:t,exceededTransferLimit:n,fieldsIndex:c,objectIdFieldName:r,featureIndices:o,attributeIndices:l}}function Ut(){const e=new At.A("pbf-parsing-failed","Error while parsing PBF",new Error);throw console.error(e),e}function Lt(e){const t=e.getLength(),r=e.pos()+t;for(;e.pos()<r&&e.next();)switch(e.tag()){case 1:return e.getString();case 2:return e.getFloat();case 3:return e.getDouble();case 4:return e.getSInt32();case 5:return e.getUInt32();case 6:return e.getInt64();case 7:return e.getUInt64();case 8:return e.getSInt64();case 9:return e.getBool();default:return e.skip(),null}return null}const Vt=(0,T.vt)();class kt{constructor(e,t,r,n,i){this.spatialReference=e,this.url=r,this.objectIdField=n,this.capabilities=i;const{supportsMaxRecordCountFactor:s,maxRecordCount:a}=this.capabilities.query,o=s?4:1,l=(a??8e3)*o;this._pageSize=Math.min(8e3,l);const c=t.clone();c.cacheHint=!0,c.resultType="tile",c.outSpatialReference=e,c.returnGeometry=!0,c.returnZ=!0,c.maxRecordCountFactor=o,c.num=this._pageSize,c.outFields=[n],this._baseQuery=c}async fetch(e,t){const{spatialReference:r,_pageSize:n}=this,i=(0,D.w1)(e.extent,r),a=this._baseQuery.clone();a.geometry=i;const o=new Array;let l=0,c=!1,d=1;for(;!c;){const e=[];for(let r=0;r<d;++r)e.push(this._fetchPage(a,l++,t));const r=await Promise.all(e);(0,s.Te)(t);for(const e of r){const t=0!==e.featureCount;c||=!e.exceededTransferLimit||!t,t&&o.push(e)}d=Math.min(d+1,4)}return new It(e,o,n)}async _fetchPage(e,t,r){const n=e.clone();n.start=t*this._pageSize;const i=(await(0,Ct.kS)(this.url,n,{signal:r})).data;return(0,s.Te)(r),new Ft(i)}}var Nt=r(24151),zt=r(29920),Bt=r(77690),jt=r(29242);var qt=r(13030),Ht=r(78662),Gt=r(1843),$t=r(49255),Yt=r(40268),Zt=r(16943),Jt=r(25634),Wt=r(11725),Xt=r(13464),Qt=r(77194);class Kt{constructor(){this.scale=0,this.factor=0,this.minScaleFactor=0}}var er=r(59907),tr=r(43616),rr=r(13259),nr=r(97220),ir=r(98958),sr=r(59643),ar=r(33524),or=r(90644);class lr extends ir.w{constructor(e,t){super(e,t,new nr.$(rr.H,(()=>r.e(8241).then(r.bind(r,48241))))),this.primitiveType=t.occlusionPass?Y.WR.POINTS:Y.WR.TRIANGLES}initializePipeline(e){const{oitPass:t,hasPolygonOffset:r,draped:n,output:i,depthTestEnabled:s,occlusionPass:a}=e,o=t===sr.Y.NONE,l=t===sr.Y.ColorAlpha,c=i===$t.V.Highlight,d=s&&!n&&!l&&!a&&!c;return(0,or.Ey)({blending:(0,$t.RN)(i)?o?or.RC:(0,ar.ez)(t):null,depthTest:s&&!n?{func:Y.MT.LEQUAL}:null,depthWrite:d?or.Uy:null,drawBuffers:(0,ar.m6)(t,i),colorWrite:or.kn,polygonOffset:r?cr:null})}}const cr={factor:0,units:-4};var dr=r(53466),ur=r(22911),hr=r(51976),fr=r(35256);class mr extends fr.E{constructor(e){super(),this.spherical=e,this.screenCenterOffsetUnitsEnabled=!1,this.occlusionTestEnabled=!0,this.signedDistanceFieldEnabled=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.vvSize=!1,this.vvColor=!1,this.hasVerticalOffset=!1,this.hasScreenSizePerspective=!1,this.hasRotation=!1,this.debugDrawLabelBorder=!1,this.hasPolygonOffset=!1,this.depthTestEnabled=!0,this.pixelSnappingEnabled=!0,this.draped=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.occlusionPass=!1,this.occludedFragmentFade=!1,this.objectAndLayerIdColorInstanced=!1,this.horizonCullingEnabled=!0,this.isFocused=!0,this.textureCoordinateType=dr.I.None,this.emissionSource=ur.ZX.None,this.discardInvisibleFragments=!0,this.hasVvInstancing=!1,this.snowCover=!1}}(0,n._)([(0,hr.W)()],mr.prototype,"screenCenterOffsetUnitsEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occlusionTestEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"signedDistanceFieldEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"sampleSignedDistanceFieldTexelCenter",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"vvSize",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"vvColor",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasVerticalOffset",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasScreenSizePerspective",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasRotation",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"debugDrawLabelBorder",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"hasPolygonOffset",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"depthTestEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"pixelSnappingEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"draped",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"terrainDepthTest",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"cullAboveTerrain",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occlusionPass",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"occludedFragmentFade",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"objectAndLayerIdColorInstanced",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"horizonCullingEnabled",void 0),(0,n._)([(0,hr.W)()],mr.prototype,"isFocused",void 0);var pr=r(49788);class yr extends Wt.im{constructor(e,t){super(e,zr),this.produces=new Map([[Xt.N.HUD_MATERIAL,e=>(0,$t.Mb)(e)&&!this.parameters.drawAsLabel],[Xt.N.LABEL_MATERIAL,e=>(0,$t.Mb)(e)&&this.parameters.drawAsLabel],[Xt.N.OCCLUSION_PIXELS,()=>this.parameters.occlusionTest],[Xt.N.DRAPED_MATERIAL,e=>this.parameters.draped&&(0,$t.Mb)(e)]]),this._visible=!0,this._configuration=new mr(t)}getConfiguration(e,t){const r=this.parameters.draped;return super.getConfiguration(e,t,this._configuration),this._configuration.hasSlicePlane=this.parameters.hasSlicePlane,this._configuration.hasVerticalOffset=!!this.parameters.verticalOffset,this._configuration.hasScreenSizePerspective=!!this.parameters.screenSizePerspective,this._configuration.screenCenterOffsetUnitsEnabled="screen"===this.parameters.centerOffsetUnits,this._configuration.hasPolygonOffset=this.parameters.polygonOffset,this._configuration.draped=r,this._configuration.occlusionTestEnabled=this.parameters.occlusionTest,this._configuration.pixelSnappingEnabled=this.parameters.pixelSnappingEnabled,this._configuration.signedDistanceFieldEnabled=this.parameters.textureIsSignedDistanceField,this._configuration.sampleSignedDistanceFieldTexelCenter=this.parameters.sampleSignedDistanceFieldTexelCenter,this._configuration.hasRotation=this.parameters.hasRotation,this._configuration.vvSize=!!this.parameters.vvSize,this._configuration.vvColor=!!this.parameters.vvColor,this._configuration.occlusionPass=t.slot===Xt.N.OCCLUSION_PIXELS,this._configuration.occludedFragmentFade=!r&&this.parameters.occludedFragmentFade,this._configuration.horizonCullingEnabled=this.parameters.horizonCullingEnabled,this._configuration.isFocused=this.parameters.isFocused,this._configuration.depthTestEnabled=this.parameters.depthEnabled||t.slot===Xt.N.OCCLUSION_PIXELS,(0,$t.RN)(e)&&(this._configuration.debugDrawLabelBorder=!!E.b.LABELS_SHOW_BORDER),this._configuration.oitPass=t.oitPass,this._configuration.terrainDepthTest=t.terrainDepthTest,this._configuration.cullAboveTerrain=t.cullAboveTerrain,this._configuration}intersect(e,t,r,n,i,s){const{options:{selectionMode:a,hud:o,excludeLabels:l},point:c,camera:d}=r,{parameters:u}=this;if(!a||!o||l&&u.isLabel||!e.visible||!c||!d)return;const h=e.attributes.get(ne.r.FEATUREATTRIBUTE),f=null==h?null:(0,C.ci)(h.data,Er),{scaleX:m,scaleY:p}=Hr(f,u,d.pixelRatio);(0,Bt.z0)(Or,t),e.attributes.has(ne.r.FEATUREATTRIBUTE)&&function(e){const t=e[0],r=e[1],n=e[2],i=e[3],s=e[4],a=e[5],o=e[6],l=e[7],c=e[8],d=1/Math.sqrt(t*t+r*r+n*n),u=1/Math.sqrt(i*i+s*s+a*a),h=1/Math.sqrt(o*o+l*l+c*c);e[0]=t*d,e[1]=r*d,e[2]=n*d,e[3]=i*u,e[4]=s*u,e[5]=a*u,e[6]=o*h,e[7]=l*h,e[8]=c*h}(Or);const y=e.attributes.get(ne.r.POSITION),g=e.attributes.get(ne.r.SIZE),_=e.attributes.get(ne.r.NORMAL),b=e.attributes.get(ne.r.ROTATION),v=e.attributes.get(ne.r.CENTEROFFSETANDDISTANCE);(0,_e.vA)(y.size>=3);const w=(0,rr.c)(u),x="screen"===this.parameters.centerOffsetUnits;for(let e=0;e<y.data.length/y.size;e++){const n=e*y.size;(0,me.i)(wr,y.data[n],y.data[n+1],y.data[n+2]),(0,me.t)(wr,wr,t),(0,me.t)(wr,wr,d.viewMatrix);const i=e*v.size;if((0,me.i)(Fr,v.data[i],v.data[i+1],v.data[i+2]),!x&&(wr[0]+=Fr[0],wr[1]+=Fr[1],0!==Fr[2])){const e=Fr[2];(0,me.n)(Fr,wr),(0,me.d)(wr,wr,(0,me.g)(Fr,Fr,e))}const a=e*_.size;if((0,me.i)(xr,_.data[a],_.data[a+1],_.data[a+2]),_r(xr,Or,d,Ur),Gr(this.parameters,wr,Ur,d,vr),d.applyProjection(wr,Sr),Sr[0]>-1){x&&(Fr[0]||Fr[1])&&(Sr[0]+=Fr[0]*d.pixelRatio,0!==Fr[1]&&(Sr[1]+=(0,Qt.m0)(Fr[1],vr.factorAlignment)*d.pixelRatio),d.unapplyProjection(Sr,wr)),Sr[0]+=this.parameters.screenOffset[0]*d.pixelRatio,Sr[1]+=this.parameters.screenOffset[1]*d.pixelRatio,Sr[0]=Math.floor(Sr[0]),Sr[1]=Math.floor(Sr[1]);const t=e*g.size;kr[0]=g.data[t],kr[1]=g.data[t+1],(0,Qt.MD)(kr,vr.factor,kr);const n=Lr*d.pixelRatio;let i=0;u.textureIsSignedDistanceField&&(i=Math.min(u.outlineSize,.5*kr[0])*d.pixelRatio/2),kr[0]*=m,kr[1]*=p;const a=e*b.size,o=u.rotation+b.data[a];if(br(c,Sr[0],Sr[1],kr,n,i,o,u,w)){const e=r.ray;if((0,me.t)(Cr,wr,(0,O.B8)(Dr,d.viewMatrix)),Sr[0]=c[0],Sr[1]=c[1],d.unprojectFromRenderScreen(Sr,wr)){const t=(0,T.vt)();(0,me.c)(t,e.direction);const r=1/(0,me.l)(t);(0,me.g)(t,t,r),s((0,me.j)(e.origin,wr)*r,t,-1,Cr)}}}}}intersectDraped(e,t,r,n,i){const s=e.attributes.get(ne.r.POSITION),a=e.attributes.get(ne.r.SIZE),o=e.attributes.get(ne.r.ROTATION),l=this.parameters,c=(0,rr.c)(l),d=e.attributes.get(ne.r.FEATUREATTRIBUTE),u=null==d?null:(0,C.ci)(d.data,Er),{scaleX:h,scaleY:f}=Hr(u,l,e.screenToWorldRatio),m=Vr*e.screenToWorldRatio;for(let t=0;t<s.data.length/s.size;t++){const d=t*s.size,u=s.data[d],p=s.data[d+1],y=t*a.size;kr[0]=a.data[y],kr[1]=a.data[y+1];let g=0;l.textureIsSignedDistanceField&&(g=Math.min(l.outlineSize,.5*kr[0])*e.screenToWorldRatio/2),kr[0]*=h,kr[1]*=f;const _=t*o.size,b=l.rotation+o.data[_];br(r,u,p,kr,m,g,b,l,c)&&n(i.distance,i.normal,-1)}}createBufferWriter(){return new qr}applyShaderOffsetsView(e,t,r,n,i,s,a){const o=_r(t,r,i,Ur);return this._applyVerticalGroundOffsetView(e,o,i,a),Gr(this.parameters,a,o,i,s),this._applyPolygonOffsetView(a,o,n[3],i,a),this._applyCenterOffsetView(a,n,a),a}applyShaderOffsetsNDC(e,t,r,n,i){return this._applyCenterOffsetNDC(e,t,r,n),null!=i&&(0,me.c)(i,n),this._applyPolygonOffsetNDC(n,t,r,n),n}_applyPolygonOffsetView(e,t,r,n,i){const s=n.aboveGround?1:-1;let a=Math.sign(r);0===a&&(a=s);const o=s*a;if(this.parameters.shaderPolygonOffset<=0)return(0,me.c)(i,e);const l=(0,M.qE)(Math.abs(t.cosAngle),.01,1),c=1-Math.sqrt(1-l*l)/l/n.viewport[2];return(0,me.g)(i,e,o>0?c:1/c),i}_applyVerticalGroundOffsetView(e,t,r,n){const i=(0,me.l)(e),s=r.aboveGround?1:-1,a=r.computeRenderPixelSizeAtDist(i)*Yt.R,o=(0,me.g)(wr,t.normal,s*a);return(0,me.f)(n,e,o),n}_applyCenterOffsetView(e,t,r){const n="screen"!==this.parameters.centerOffsetUnits;return r!==e&&(0,me.c)(r,e),n&&(r[0]+=t[0],r[1]+=t[1],t[2]&&((0,me.n)(xr,r),(0,me.a)(r,r,(0,me.g)(xr,xr,t[2])))),r}_applyCenterOffsetNDC(e,t,r,n){const i="screen"!==this.parameters.centerOffsetUnits;return n!==e&&(0,me.c)(n,e),i||(n[0]+=t[0]/r.fullWidth*2,n[1]+=t[1]/r.fullHeight*2),n}_applyPolygonOffsetNDC(e,t,r,n){const i=this.parameters.shaderPolygonOffset;if(e!==n&&(0,me.c)(n,e),i){const e=r.aboveGround?1:-1,s=e*Math.sign(t[3]);n[2]-=(s||e)*i}return n}set visible(e){this._visible=e}get visible(){const{color:e,outlineSize:t,outlineColor:r}=this.parameters,n=e[3]>=pr.Q||t>=pr.Q&&r[3]>=pr.Q;return this._visible&&n}createGLMaterial(e){return new gr(e)}calculateRelativeScreenBounds(e,t,r=(0,D.vt)()){return function(e,t,r,n){n[0]=e.anchorPosition[0]*-t[0]+e.screenOffset[0]*r,n[1]=e.anchorPosition[1]*-t[1]+e.screenOffset[1]*r}(this.parameters,e,t,r),r[2]=r[0]+e[0],r[3]=r[1]+e[1],r}}class gr extends Jt.m8{constructor(e){super({...e,...e.material.parameters})}beginSlot(e){return this.updateTexture(this._material.parameters.textureId),this._material.setParameters(this.textureBindParameters),this.getTechnique(lr,e)}}function _r(e,t,r,n){return function(e){return function(e){return e instanceof Float32Array&&e.length>=16}(e)||function(e){return Array.isArray(e)&&e.length>=16}(e)}(t)&&(t=(0,Bt.z0)(Rr,t)),(0,me.o)(n.normal,e,t),(0,me.t)(n.normal,n.normal,r.viewInverseTransposeMatrix),n.cosAngle=(0,me.e)(Tr,Nr),n}function br(e,t,r,n,i,s,a,o,l){let c=t-i-n[0]*l[0],d=c+n[0]+2*i,u=r-i-n[1]*l[1],h=u+n[1]+2*i;const f=o.distanceFieldBoundingBox;return o.textureIsSignedDistanceField&&null!=f&&(c+=n[0]*f[0],u+=n[1]*f[1],d-=n[0]*(1-f[2]),h-=n[1]*(1-f[3]),c-=s,d+=s,u-=s,h+=s),(0,P.hZ)(Ar,t,r),(0,P.e$)(Ir,e,Ar,(0,M.kU)(a)),Ir[0]>c&&Ir[0]<d&&Ir[1]>u&&Ir[1]<h}const vr=new class{constructor(){this.factor=new Kt,this.factorAlignment=new Kt}},wr=(0,T.vt)(),xr=(0,T.vt)(),Sr=(0,C.vt)(),Tr=(0,T.vt)(),Cr=(0,T.vt)(),Ir=(0,F.vt)(),Ar=(0,F.vt)(),Or=(0,jt.vt)(),Rr=(0,jt.vt)(),Dr=(0,S.vt)(),Pr=(0,C.vt)(),Fr=(0,T.vt)(),Mr=(0,T.vt)(),Er=(0,C.vt)(),Ur={normal:Tr,cosAngle:0},Lr=1,Vr=2,kr=(0,F.fA)(0,0),Nr=(0,T.fA)(0,0,1);class zr extends Jt.NV{constructor(){super(...arguments),this.renderOccluded=Wt.m$.Occlude,this.isDecoration=!1,this.color=(0,C.CN)(1,1,1,1),this.polygonOffset=!1,this.anchorPosition=(0,F.fA)(.5,.5),this.screenOffset=[0,0],this.shaderPolygonOffset=1e-5,this.textureIsSignedDistanceField=!1,this.sampleSignedDistanceFieldTexelCenter=!1,this.outlineColor=(0,C.CN)(1,1,1,1),this.outlineSize=0,this.distanceFieldBoundingBox=(0,C.vt)(),this.rotation=0,this.hasRotation=!1,this.vvSizeEnabled=!1,this.vvSize=null,this.vvColor=null,this.vvOpacity=null,this.vvSymbolAnchor=null,this.vvSymbolRotationMatrix=null,this.hasSlicePlane=!1,this.pixelSnappingEnabled=!0,this.occlusionTest=!0,this.occludedFragmentFade=!1,this.horizonCullingEnabled=!1,this.centerOffsetUnits="world",this.drawAsLabel=!1,this.depthEnabled=!0,this.isFocused=!0,this.focusEffect="none",this.draped=!1,this.isLabel=!1}}const Br=(0,Gt.BP)().vec3f(ne.r.POSITION).vec3f(ne.r.NORMAL).vec2i16(ne.r.UVI).vec4u8(ne.r.COLOR).vec2f(ne.r.SIZE).f32(ne.r.ROTATION).vec4f(ne.r.CENTEROFFSETANDDISTANCE).vec4f(ne.r.FEATUREATTRIBUTE),jr=Br.clone().vec4u8(ne.r.OLIDCOLOR);class qr{constructor(){this.vertexBufferLayout=(0,Zt.E)()?jr:Br}elementCount(e){return 6*e.get(ne.r.POSITION).indices.length}write(e,t,r,n,i,s){const{position:a,normal:o,uvi:l,color:c,size:d,rotation:u,centerOffsetAndDistance:h,featureAttribute:f}=i;(0,er.Hk)(r.get(ne.r.POSITION),e,a,s,6),(0,er.p1)(r.get(ne.r.NORMAL),t,o,s,6);const m=r.get(ne.r.UVI)?.data;let p=0,y=0,g=-1-rr.f,_=-1-rr.f;m&&m.length>=4&&(p=m[0],y=m[1],g=-1-m[2],_=-1-m[3]);let b=r.get(ne.r.POSITION).indices.length,v=s;for(let e=0;e<b;++e)l.set(v,0,p),l.set(v,1,y),v++,l.set(v,0,g),l.set(v,1,y),v++,l.set(v,0,g),l.set(v,1,_),v++,l.set(v,0,g),l.set(v,1,_),v++,l.set(v,0,p),l.set(v,1,_),v++,l.set(v,0,p),l.set(v,1,y),v++;(0,er.tb)(r.get(ne.r.COLOR),4,c,s,6);const{data:w,indices:x}=r.get(ne.r.SIZE);b=x.length,v=s;for(let e=0;e<b;++e){const t=w[2*x[e]],r=w[2*x[e]+1];for(let e=0;e<6;++e)d.set(v,0,t),d.set(v,1,r),v++}if((0,er.uO)(r.get(ne.r.ROTATION),u,s,6),r.get(ne.r.CENTEROFFSETANDDISTANCE)?(0,er.Ut)(r.get(ne.r.CENTEROFFSETANDDISTANCE),h,s,6):(0,er.Pq)(h,s,6*b),r.get(ne.r.FEATUREATTRIBUTE)?(0,er.Ut)(r.get(ne.r.FEATUREATTRIBUTE),f,s,6):(0,er.Pq)(f,s,6*b),null!=n){const e=r.get(ne.r.POSITION)?.indices;if(e){const t=e.length,r=i.getField(ne.r.OLIDCOLOR,qt.XP);(0,er.vx)(n,r,t,s,6)}}return{numVerticesPerItem:6,numItems:b}}intersect(e,t,r,n,i,s,a){const{options:{selectionMode:o,hud:l,excludeLabels:c},point:d,camera:u}=n;if(!o||!l||c&&t.isLabel||!d)return;const h=this.vertexBufferLayout.createView(e),f=h.getField(ne.r.POSITION,qt.xs),m=h.getField(ne.r.NORMAL,qt.xs),p=h.getField(ne.r.ROTATION,qt.Y$),y=h.getField(ne.r.SIZE,qt.gH),g=h.getField(ne.r.FEATUREATTRIBUTE,qt.Eq),_=h.getField(ne.r.CENTEROFFSETANDDISTANCE,qt.Eq),b="screen"===t.centerOffsetUnits,v=(0,rr.c)(t);if(null==f||null==m||null==p||null==y||null==_||null==u)return;const w=null==g?null:g.getVec(0,Er),{scaleX:x,scaleY:S}=Hr(w,t,u.pixelRatio),C=f.count/6;for(let e=0;e<C;e++){const i=6*e;if(f.getVec(i,wr),null!=r&&(0,me.f)(wr,wr,r),(0,me.t)(wr,wr,u.viewMatrix),_.getVec(i,Pr),(0,me.i)(Fr,Pr[0],Pr[1],Pr[2]),!b&&(wr[0]+=Fr[0],wr[1]+=Fr[1],0!==Fr[2])){const e=Fr[2];(0,me.n)(Fr,wr),(0,me.d)(wr,wr,(0,me.g)(Fr,Fr,e))}if(m.getVec(i,xr),_r(xr,Or,u,Ur),Gr(t,wr,Ur,u,vr),u.applyProjection(wr,Sr),Sr[0]>-1){b&&(Fr[0]||Fr[1])&&(Sr[0]+=Fr[0]*u.pixelRatio,0!==Fr[1]&&(Sr[1]+=(0,Qt.m0)(Fr[1],vr.factorAlignment)*u.pixelRatio),u.unapplyProjection(Sr,wr)),Sr[0]+=t.screenOffset[0]*u.pixelRatio,Sr[1]+=t.screenOffset[1]*u.pixelRatio,Sr[0]=Math.floor(Sr[0]),Sr[1]=Math.floor(Sr[1]),y.getVec(i,kr),(0,Qt.MD)(kr,vr.factor,kr);const r=Lr*u.pixelRatio;let s=0;t.textureIsSignedDistanceField&&(s=Math.min(t.outlineSize,.5*kr[0])*u.pixelRatio/2),kr[0]*=x,kr[1]*=S;const o=p.get(i),l=t.rotation+o;if(br(d,Sr[0],Sr[1],kr,r,s,l,t,v)){const t=n.ray;if((0,me.t)(Cr,wr,(0,O.B8)(Dr,u.viewMatrix)),Sr[0]=d[0],Sr[1]=d[1],u.unprojectFromRenderScreen(Sr,wr)){const r=(0,T.vt)();(0,me.c)(r,t.direction);const n=1/(0,me.l)(r);(0,me.g)(r,r,n),a((0,me.j)(t.origin,wr)*n,r,e,Cr)}}}}}}function Hr(e,t,r){return null==e||null==t.vvSize?{scaleX:r,scaleY:r}:((0,Ht.VC)(Mr,t,e),{scaleX:Mr[0]*r,scaleY:Mr[1]*r})}function Gr(e,t,r,n,i){if(!e.verticalOffset?.screenLength)return e.screenSizePerspective||e.screenSizePerspectiveAlignment?$r(e,i,(0,me.l)(t),r.cosAngle):(i.factor.scale=1,i.factorAlignment.scale=1),t;const s=(0,me.l)(t),a=e.screenSizePerspectiveAlignment??e.screenSizePerspective,o=(0,tr.kE)(n,s,e.verticalOffset,r.cosAngle,a);return $r(e,i,s,r.cosAngle),(0,me.g)(r.normal,r.normal,o),(0,me.f)(t,t,r.normal)}function $r(e,t,r,n){null!=e.screenSizePerspective?(0,Qt.cJ)(n,r,e.screenSizePerspective,t.factor):(t.factor.scale=1,t.factor.factor=0,t.factor.minScaleFactor=0),null!=e.screenSizePerspectiveAlignment?(0,Qt.cJ)(n,r,e.screenSizePerspectiveAlignment,t.factorAlignment):(t.factorAlignment.factor=t.factor.factor,t.factorAlignment.scale=t.factor.scale,t.factorAlignment.minScaleFactor=t.factor.minScaleFactor)}class Yr{constructor(e,t){this._mainThreadDelegate=t,this._bufferWriters=new Map,this._sharedTextures=new Map,this.globalViewingMode=e===Nt.RT.Global}createRenderCommandBuffer(e=[],t=[]){return{commands:e,transferList:t}}mergeRenderCommandBuffers(e){const t=this.createRenderCommandBuffer();for(const r of e)null!=r&&(t.commands.push(...r.commands),t.transferList.push(...r.transferList));return t}async getOrCreateSharedTexture(e,t){const{data:r,parameters:n}=t(),i=await this._mainThreadDelegate.createTexture(r,n);return this._sharedTextures.set(e,i),i}async releaseSharedTexture(e){const t=this._sharedTextures,r=t.get(e);if(null==r)return y.create(this);const n=this._destroyTexture(r);return new y(this,n,[()=>t.delete(e)])}_destroyTexture(e){return{commands:[{id:"destroy-texture",textureId:e}],transferList:[]}}async createMaterial(e){const{type:t,parameters:r}=e,n=ct("material");let i,s;switch(t){case"default":i=new ke.$U(e.parameters,{spherical:this.globalViewingMode}),s={type:t,materialId:n,parameters:e.parameters};break;case"hud":i=new yr(r,this.globalViewingMode),s={type:t,materialId:n,parameters:e.parameters}}return this._bufferWriters.set(n,i.createBufferWriter()),await this._mainThreadDelegate.createMaterial(s),n}destroyMaterial(e){return{commands:[{id:"destroy-material",materialId:e}],transferList:[]}}updateMaterial(e){return{commands:[{...e,id:"update-material"}],transferList:[]}}async createDirectRenderer(e){return await this._mainThreadDelegate.createDirectRenderer(e),e}async destroyDirectRenderer(e){await this._mainThreadDelegate.destroyDirectRenderer(e)}addDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.addDirectRendererGeometryBuffer(n,e,i,s,r)}updateDirectRendererGeometry(e,t,r){const{materialId:n}=t;if(null==this._bufferWriters.get(n))throw new Error(`no bufferwriter found for material ${n}`);const{renderGeometryBuffer:i,renderGeometryBufferItems:s}=this.createRenderGeometryBuffer(t,r);return this.updateDirectRendererGeometryBuffer(n,e,i,s,r)}addDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"add-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}updateDirectRendererGeometryBuffer(e,t,r,n,i){const{objectIds:s,visibilities:a}=n;return{commands:[{id:"update-direct-renderer-geometry-buffer",rendererId:e,groupId:t,renderGeometryBuffer:r,renderGeometryBufferItems:n,localOrigin:i}],transferList:[r.data,s.buffer,a.buffer]}}removeDirectRendererGeometryBuffer(e,t){return{commands:[{id:"remove-direct-renderer-geometry-buffer",rendererId:e,groupId:t}],transferList:[]}}async createLodRenderer(e){const t=ct("lod-renderer"),r=new Set,n={levels:e.levels.map((e=>({components:e.components.map((e=>{const t=e.attributes.get(ne.r.POSITION);if(!t||0===t.indices.length)throw new Error("positions attribute expected");const n=(0,H.tM)(t.indices.length/3),i=new zt.j(n,3,t);if(null==this._bufferWriters.get(e.materialId))throw new Error("writer not found");const{renderGeometryBuffer:s}=this.createRenderGeometryBuffer(e,null);return r.add(s.data),{materialId:e.materialId,renderGeometryBuffer:s,boundingInfo:{bbMax:i.bbMax,bbMin:i.bbMin}}})),minScreenSpaceRadius:e.minScreenSpaceRadius})))};return await this._mainThreadDelegate.createLodRenderer(t,n,Array.from(r)),t}destroyLodRenderer(e){return{commands:[{id:"destroy-lod-renderer",rendererId:e}],transferList:[]}}addLodInstances(e,t,r){return{commands:[{id:"add-lod-instances",rendererId:e,groupId:t,data:r}],transferList:[r.featureIds.buffer,r.globalTransforms.buffer,r.localTransforms.buffer,r.visibility.buffer]}}removeLodInstances(e,t){return{commands:[{id:"remove-lod-instances",rendererId:e,groupId:t}],transferList:[]}}updateLodInstancesData(e,t,r){return{commands:[{id:"update-lod-instance-data",rendererId:e,groupId:t,globalTransforms:r}],transferList:[r.buffer]}}updateVisibility(e,t,r){return{commands:[{id:"update-visibility",rendererId:e,groupId:t,visibility:r}],transferList:[r.buffer]}}async dispatchRenderCommands(e){0!==e.commands.length&&await this._mainThreadDelegate.executeRenderCommands(e)}createRenderGeometryBuffer(e,t){const{materialId:r,visibilities:n,objectIds:i}=e,s=this._bufferWriters.get(r);if(null==s)throw new Error("no registered bufferWriter for material found");let a=null;if(e.transformation&&t)(0,O.C)(Zr,e.transformation),Zr[12]-=t[0],Zr[13]-=t[1],Zr[14]-=t[2],a=Zr;else{if(t)throw new Error("not implemented");e.transformation&&(a=e.transformation)}let o=null;a&&((0,O.B8)(Jr,Zr),(0,O.mg)(Jr,Jr),o=Jr);const l=e.attributes,c=s.elementCount(l),d=s.vertexBufferLayout.stride/4;c>Math.floor(Wr/d)&&console.warn("geometry with very large number of elements encountered");const u=s.vertexBufferLayout.createBuffer(c),h=s.write(a,o,l,e.objectAndLayerIdColor,u,0);if(null==h)throw new Error("Bufferwriter.write does not provide item information.");if(n.length!==h.numItems||i.length!==h.numItems)throw new Error("Unexpected mismatch between number of RenderGeometryBufferItems and provided objectIds/visibility flags.");return{renderGeometryBuffer:{data:u.buffer,elementCount:c},renderGeometryBufferItems:{objectIds:i,visibilities:n,ranges:{numVertices:h.numVerticesPerItem,numItems:h.numItems}}}}}const Zr=(0,S.vt)(),Jr=(0,S.vt)(),Wr=4194304;var Xr=r(73941),Qr=r(98764),Kr=r(65806);const en=(0,T.vt)();var tn=r(88582),rn=r(17352),nn=r(97937);function sn(e,t,r=function(e){return{operations:e,value:e.create()}}(e)){return r.operations=e,e.copy(t,r.value),r}const an=2**50;function on(e,t,r,n){return e.operations.setAltitudeAt(e.value,t,r,n)}function ln(e,t,r){return e.operations.elevate(e.value,t,r.value)}const cn=(0,T.vt)();(0,T.vt)();var dn=r(44280),un=r(32114);function hn(e){return"point"===e.type}class fn{constructor(e,t,r,n){this.viewingMode=e,this.spatialReference=t,this.unitInMeters=r,this._coordinateSystem=n,this._tmpCoordinateSystem=function(e){const{value:t,operations:r}=e;return{operations:r,value:r.create(t)}}(n),this.referenceEllipsoid=(0,Xr.tO)(t),this.sphericalPCPF=(0,Qr.lO)(t)}set extent(e){e&&function(e,t,r){e.operations.setExtent(e.value,t,r.value)}(this._coordinateSystem,e,this._coordinateSystem)}get extent(){return function(e,t){return e.operations.getExtent(e.value,t),t}(this._coordinateSystem,(0,D.vt)())}getAltitude(e){return function(e,t){return e.operations.altitudeAt(e.value,t)}(this._coordinateSystem,e)}setAltitude(e,t,r=e){return on(this._coordinateSystem,r,t,e)}setAltitudeOfTransformation(e,t){!function(e,t,r,n){t!==n&&(0,O.C)(n,t),(0,me.i)(cn,n[12],n[13],n[14]),on(e,cn,r,cn),n[12]=cn[0],n[13]=cn[1],n[14]=cn[2]}(this._coordinateSystem,t,e,t)}worldUpAtPosition(e,t){return function(e,t,r){return e.operations.axisAt(e.value,t,tn._.Z,r)}(this._coordinateSystem,e,t)}worldBasisAtPosition(e,t,r){return function(e,t,r,n){return e.operations.axisAt(e.value,t,r,n)}(this._coordinateSystem,e,t,r)}basisMatrixAtPosition(e,t){const r=this.worldBasisAtPosition(e,tn._.X,un.rq.get()),n=this.worldBasisAtPosition(e,tn._.Y,un.rq.get()),i=this.worldBasisAtPosition(e,tn._.Z,un.rq.get());return(0,O.hZ)(t,r[0],r[1],r[2],0,n[0],n[1],n[2],0,i[0],i[1],i[2],0,0,0,0,1),t}headingAtPosition(e,t){const r=this.worldUpAtPosition(e,un.rq.get()),n=this.worldBasisAtPosition(e,tn._.Y,un.rq.get()),i=(0,dn.EJ)(t,n,r);return(0,M.KJ)(i)}intersectManifoldClosestSilhouette(e,t,r){return ln(this._coordinateSystem,t,this._tmpCoordinateSystem),function(e,t,r){e.operations.intersectRayClosestSilhouette(e.value,t,r)}(this._tmpCoordinateSystem,e,r),r}intersectManifold(e,t,r){ln(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=un.rq.get();return function(e,t,r){return e.operations.intersectRay(e.value,t,r)}(this._tmpCoordinateSystem,e,n)?(0,me.c)(r,n):null}intersectInfiniteManifold(e,t,r){if(this.viewingMode===Nt.RT.Global)return this.intersectManifold(e,t,r);ln(this._coordinateSystem,t,this._tmpCoordinateSystem);const n=this._tmpCoordinateSystem.value,i=un.rq.get();return(0,ge.Ui)(n.plane,e,i)?(0,me.c)(r,i):null}toRenderCoords(e,t,r){return hn(e)?(0,Kr.g)(e,t,this.spatialReference):(0,z.F)(e,t,r,this.spatialReference)}fromRenderCoords(e,t,r=null){return hn(t)?(null!=r&&(t.spatialReference=r),function(e,t,r){return!!(0,z.F)(e,t,en,r.spatialReference)&&(r.x=en[0],r.y=en[1],r.z=en[2],!0)}(e,this.spatialReference,t)?t:null):(0,z.F)(e,this.spatialReference,t,r)?t:null}static create(e,t){switch(e){case Nt.RT.Local:return new fn(Nt.RT.Local,t,(0,A.GA)(t),sn(rn.b,(0,rn.f)([0,0,0],[an,0,0],[0,an,0])));case Nt.RT.Global:return new fn(Nt.RT.Global,t,1,function(e){return sn(nn.s,(0,nn.f)(0,0,0,(0,Xr.tO)(e).radius))}(t))}}static renderUnitScaleFactor(e,t){return(0,A.KX)(e)/(0,A.KX)(t)}}let mn=class extends i.A.EventedAccessor{constructor(){super(...arguments),this.remoteClient=null,this._featureStore=new xt,this._actionSynchronizer=new nt(g,(e=>this._createCommand(e))),this._tileManager=null,this._renderer=null,this._fetcher=null,this._queryEngine=null,this._defaultQueryJSON=null,this._mainThreadDelegate=null,this._viewSpatialReference=null,this._renderCommandContext=null,this._context=null}get updating(){return this._tileManager.updating}destroy(){this._featureStore.clear(),this._tileManager?.destroy()}async setup({viewSpatialReference:e,renderSpatialReference:t,viewingMode:r,layerInfo:n,layerViewInfo:i}){const s=h.A.fromJSON(e);this._viewSpatialReference=s;const o=h.A.fromJSON(t);this._fetcher=new kt(this._viewSpatialReference,m.A.fromJSON(n.baseQuery),n.url,n.objectIdField,n.capabilities),this._queryEngine=new f.do({hasZ:!0,hasM:!1,geometryType:"esriGeometryPoint",objectIdField:n.objectIdField,fieldsIndex:n.fieldIndex,availableFields:[n.objectIdField],spatialReference:e,featureStore:this._featureStore,timeInfo:n.timeInfo}),this._mainThreadDelegate={createTexture:async(e,t)=>{const r={data:e,parameters:t};return await this.remoteClient.invoke("createTexture",r,{transferList:[e.buffer]})},releaseTexture:async e=>{const t={uid:e};await this.remoteClient.invoke("releaseTexture",t)},createMaterial:async e=>{const t={materialJSON:e};await this.remoteClient.invoke("createMaterial",t)},destroyMaterial:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyMaterial",t)},createDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("createDirectRenderer",t)},destroyDirectRenderer:async e=>{const t={materialId:e};await this.remoteClient.invoke("destroyDirectRenderer",t)},createLodRenderer:async(e,t,r)=>{const n={rendererId:e,lodRenderGeometry:t};await this.remoteClient.invoke("createLoDRenderer",n,{transferList:r})},destroyLodRenderer:async e=>{const t={rendererId:e};await this.remoteClient.invoke("destroyLoDRenderer",t)},executeRenderCommands:async e=>{const t={commands:e.commands};await this.remoteClient.invoke("dispatchRenderCommands",t,{transferList:e.transferList})},applyElevationAlignmentTo:async e=>{const t={mapPoints:e};return await this.remoteClient.invoke("applyElevationAlignment",t,{transferList:[e.buffer]})}};const l=fn.create(r,o),c=new Yr(r,this._mainThreadDelegate);this._renderCommandContext=c;const p=new Ye(s,o,this._mainThreadDelegate,l,c,n,i);this._context=p,this._renderer=p.symbolRendererFactory.createSymbolRendererFromJSON(n.renderer),this._defaultQueryJSON=new m.A({outSpatialReference:s}).toJSON();let y=null;if(null!=n.fullExtent){const e=d.A.fromJSON(n.fullExtent);await(0,u.initializeProjection)(e.spatialReference,s),y=(0,u.project)(e,s)}return this._tileManager=new ht({loadTile:(e,t)=>this._fetcher.fetch(e,t),synchronizer:this._actionSynchronizer,extent:y}),this.addHandles((0,a.wB)((()=>this.updating),(e=>{this.emit("notify-updating",{updating:e})})),a.Vh),null!=this._renderer&&await this._renderer.load(),yn}async executeQuery(e,t){return{result:await this._queryEngine.executeQuery(this._ensureQuery(e),t)}}async executeQueryForIds(e,t){const r=await this._queryEngine.executeQueryForIdSet(this._ensureQuery(e),t);return{result:Array.from(r)}}async executeQueryForCount(e,t){return{result:await this._queryEngine.executeQueryForCount(this._ensureQuery(e),t)}}async executeQueryForExtent(e,t){return{result:await this._queryEngine.executeQueryForExtent(this._ensureQuery(e),t)}}async executeQueryForLatestObservations(e,t){return{result:await this._queryEngine.executeQueryForLatestObservations(this._ensureQuery(e),t)}}onTileTreeChange(e){return this._tileManager.onTileTreeChange(e),Promise.resolve(yn)}async onElevationChange(e){return yn}async onLayerViewOpacityChange(e){const{_context:t,_renderer:r}=this;if(t.layerViewInfo.fullOpacity=e,null==r)return yn;const n=await r.createUpdateLayerViewOpacityCommand(e);return await n.execute(),yn}async onRendererChange(e){const{_context:t}=this,r=await this._createDestroyRendererCommand();await r.execute();const n=t.symbolRendererFactory.createSymbolRendererFromJSON(e);this._renderer=n,await this._renderer.load();const i=[];this._tileManager.forEachTile((e=>{i.push(n.createAddCommand(e))}));const s=await Promise.all(i),a=t.joinPipelineCommands(s);return await a.execute(),yn}async _createDestroyRendererCommand(){const e=this._renderer;if(null==e)return y.create(this._renderCommandContext);const t=await e.createDestroyCommand();return t.appendPipelineStateCommand((()=>{(0,_e.vA)(this._renderer===e),this._renderer=null})),t}async _createAddFeatureDataCommand(e,t){const r=this._featureStore,n=this._renderer;let i;return i=null!=n?await n.createAddCommand(e):y.create(this._renderCommandContext),(0,s.Te)(t),i.appendPipelineStateCommand((()=>{r.addTile(e)})),i}async _createRemoveFeatureDataCommand(e){const t=this._featureStore,r=this._renderer;let n;return n=null!=r?await r.createRemoveCommand(e):y.create(this._renderCommandContext),n.appendPipelineStateCommand((()=>{t.removeTile(e)})),n}async _createUpdateFeatureDataVisibilityCommand(e,t){const r=this._renderer;let n;return n=null!=r?await r.createUpdateVisibilityCommand(e):y.create(this._renderCommandContext),(0,s.Te)(t),n}_ensureQuery(e){return e??this._defaultQueryJSON}async _createCommand(e){switch(e.type){case We.ADD:return await this._createAddFeatureDataCommand(e.data);case We.REMOVE:return await this._createRemoveFeatureDataCommand(e.data.id);case We.UPDATE_VISIBILITY:return await this._createUpdateFeatureDataVisibilityCommand(e.data)}}};(0,n._)([(0,o.MZ)()],mn.prototype,"updating",null),mn=(0,n._)([(0,c.$)("esri.views.3d.layers.graphics.pipeline.Feature3DPipelineWorker")],mn);const pn=mn,yn={result:void 0}},58501:(e,t,r)=>{r.d(t,{q:()=>i});var n=r(62815);function i(e,t,r){if(!r?.features||!r.hasZ)return;const i=(0,n.N)(r.geometryType,t,e.outSpatialReference);if(null!=i)for(const e of r.features)i(e.geometry)}},60999:(e,t,r)=>{r.d(t,{DZ:()=>m,Ke:()=>f,Tj:()=>d,UT:()=>p,jJ:()=>c});var n=r(90237),i=r(69622),s=r(97768),a=r(74887),o=r(10107),l=r(40608);function c(e,t,r){return(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))}async function d(e,t,r){return(await(0,a.Lx)(e.map(((e,n)=>t.apply(r,[e,n]))))).map((e=>e.value))}function u(e){return{ok:!0,value:e}}function h(e){return{ok:!1,error:e}}async function f(e){if(null==e)return{ok:!1,error:new Error("no promise provided")};try{return u(await e)}catch(e){return h(e)}}async function m(e){try{return u(await e)}catch(e){return(0,a.QP)(e),h(e)}}function p(e,t){return new y(e,t)}let y=class extends i.A{get value(){return null!=(e=this._result)&&!0===e.ok?e.value:null;var e}get error(){return null!=(e=this._result)&&!1===e.ok?e.error:null;var e}get finished(){return null!=this._result}constructor(e,t){super({}),this._result=null,this._abortHandle=null,this.abort=()=>{this._abortController=(0,s.DC)(this._abortController)},this.remove=this.abort,this._abortController=new AbortController;const{signal:r}=this._abortController;this.promise=e(r),this.promise.then((e=>{this._result=u(e),this._cleanup()}),(e=>{this._result=h(e),this._cleanup()})),this._abortHandle=(0,a.u7)(t,this.abort)}normalizeCtorArgs(){return{}}destroy(){this.abort()}_cleanup(){this._abortHandle=(0,s.xt)(this._abortHandle),this._abortController=null}};(0,n._)([(0,o.MZ)()],y.prototype,"value",null),(0,n._)([(0,o.MZ)()],y.prototype,"error",null),(0,n._)([(0,o.MZ)()],y.prototype,"finished",null),(0,n._)([(0,o.MZ)()],y.prototype,"promise",void 0),(0,n._)([(0,o.MZ)()],y.prototype,"_result",void 0),y=(0,n._)([(0,l.$)("esri.core.asyncUtils.ReactiveTask")],y)},62258:(e,t,r)=>{var n,i;(i=n||(n={}))[i.MIN=0]="MIN",i[i.MINMAX=1]="MINMAX",i[i.ALL=2]="ALL"},63578:(e,t,r)=>{r.d(t,{I:()=>a});var n=r(47522),i=r(96598),s=r(31821);function a(e,t){const{vertex:r,fragment:a}=e;e.include(i.Z,t),r.include(n.K),r.main.add(s.H`vec4 posProjCenter;
330
330
  if (dot(position, position) > 0.0) {
331
331
  ProjectHUDAux projectAux;
332
332
  vec4 posProj = projectPositionHUD(projectAux);