@arcgis/core 5.0.0-next.29 → 5.0.0-next.30

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 (37) hide show
  1. package/WebScene.js +1 -1
  2. package/assets/esri/core/workers/RemoteClient.js +1 -1
  3. package/assets/esri/core/workers/chunks/{1fc31fab7c4dd18a76e1.js → 11bb437437272d8f3e2c.js} +1 -1
  4. package/assets/esri/core/workers/chunks/{66853ecdebfc2aa68ce7.js → 5f2cf73fb2944f82661d.js} +10 -10
  5. package/assets/esri/core/workers/chunks/8d9e622cec13f5cea726.js +1 -0
  6. package/assets/esri/core/workers/chunks/{a0529423f2039e7d9d08.js → 94dc8b0fa129f1e168c4.js} +1 -1
  7. package/chunks/Terrain.glsl.js +27 -27
  8. package/config.js +1 -1
  9. package/kernel.js +1 -1
  10. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  11. package/layers/graphics/sources/ParquetSource.js +1 -1
  12. package/layers/support/parquetUtils.js +1 -1
  13. package/package.json +1 -1
  14. package/portal/schemas/definitions.js +1 -1
  15. package/rest/networks/support/TraceLocation.js +1 -1
  16. package/support/revision.js +1 -1
  17. package/views/3d/layers/FlowSubView3D.js +1 -1
  18. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  19. package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
  20. package/views/3d/layers/support/FlowTileTree3DDebugger.js +1 -1
  21. package/views/3d/support/debugFlags.js +1 -1
  22. package/views/3d/support/flow/FlowSubViewTiles3D.js +1 -1
  23. package/views/3d/support/flow/FlowWorker.js +1 -1
  24. package/views/3d/support/flow/constants.js +1 -1
  25. package/views/3d/support/flow/loadUtils.js +1 -1
  26. package/views/3d/terrain/SplitLimits.js +1 -1
  27. package/views/3d/terrain/TerrainSurface.js +1 -1
  28. package/views/3d/terrain/Tile.js +1 -1
  29. package/views/3d/terrain/tileUtils.js +1 -1
  30. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  31. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +9 -9
  32. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +6 -6
  33. package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
  34. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  35. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  36. package/widgets/Legend/support/colorRampUtils.js +1 -1
  37. package/assets/esri/core/workers/chunks/a5305cfc36fabecfd358.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[8720],{54625:(e,t,s)=>{s.d(t,{i_:()=>r});var i=s(30524);function r(e,t,s){t=(0,i.rS)(t)?.toLowerCase(),s=(0,i.rS)(s)?.toLowerCase();const r=e.map(e=>e.toLowerCase()),a=t?e[r.indexOf(t)]:null,u=s?e[r.indexOf(s)]:null;return{longitudeFieldName:a||e[r.indexOf(n.find(e=>r.includes(e)))],latitudeFieldName:u||e[r.indexOf(o.find(e=>r.includes(e)))]}}const o=["lat","lat83","latitude","latitude83","latdecdeg","lat_dd","y","ycenter","point_y"],n=["lon","lng","lng83","long","long83","longitude","longitude83","longdecdeg","long_dd","x","xcenter","point_x"]},66344:(e,t,s)=>{s.d(t,{q:()=>a});const i=!!(0,s(44208).A)("esri-tests-disable-gpu-memory-measurements");Symbol.iterator;class r{get size(){return this._size}constructor(e=10485760){this._maxSize=e,this._db=new Map,this._size=0,this._hit=0,this._miss=0,this._users=new Map,this._sizeLimits=new Map}destroy(){this.clearAll(),this._sizeLimits.clear(),this._users.clear(),this._db.clear()}register(e){this._users.set(e.id.slice(0,-1),e)}deregister(e){this.clear(e),this._sizeLimits.delete(e),this._users.delete(e.id.slice(0,-1))}get maxSize(){return this._maxSize}set maxSize(e){this._maxSize=Math.max(e,-1),this._checkSize()}getSize(e,t){const s=this._db.get(e.id+t);return s?.size??0}put(e,t,s,r,n){t=e.id+t;const a=this._db.get(t);if(a&&(this._size-=a.size,e.size-=a.size,this._db.delete(t),a.entry!==s&&this._notifyRemove(t,a.entry,a.size,0)),r>this._maxSize)return void this._notifyRemove(t,s,r,0);if(void 0===s)return void console.warn("Refusing to cache undefined entry ");if(!r||r<0)return i||console.warn(`Refusing to cache entry with size ${r} for key ${t}`),void this._notifyRemove(t,s,0,0);const u=1+Math.max(n,-4)- -3;this._db.set(t,new o(s,r,u)),this._size+=r,e.size+=r,this._checkSize()}updateSize(e,t){t=e.id+t;const s=this._db.get(t);if(!s)return;this._size-=s.size,e.size-=s.size;let i=s.entry.usedMemory;for(;i>this._maxSize;){const e=this._notifyRemove(t,s.entry,i,1);if(!(null!=e&&e>0))return void this._db.delete(t);i=e}s.size=i,this._size+=i,e.size+=i,this._checkSize()}pop(e,t){t=e.id+t;const s=this._db.get(t);if(s)return this._size-=s.size,e.size-=s.size,this._db.delete(t),++this._hit,s.entry;++this._miss}get(e,t){t=e.id+t;const s=this._db.get(t);if(void 0!==s)return this._db.delete(t),s.lives=s.lifetime,this._db.set(t,s),++this._hit,s.entry;++this._miss}peek(e,t){const s=this._db.get(e.id+t);return s?++this._hit:++this._miss,s?.entry}get performanceInfo(){const e={Size:Math.round(this._size/1048576)+"/"+Math.round(this._maxSize/1048576)+"MB","Hit rate":Math.round(100*this._getHitRate())+"%",Entries:this._db.size.toString()},t={},s=new Array;this._db.forEach((e,i)=>{const r=e.lifetime;s[r]=(s[r]||0)+e.size,this._users.forEach(s=>{const{id:r,name:o}=s;if(i.startsWith(r)){const s=t[o]||0;t[o]=s+e.size}})});const i={};this._users.forEach(e=>{const s=e.name;if("hitRate"in e&&"number"==typeof e.hitRate&&!isNaN(e.hitRate)&&e.hitRate>0){const r=t[s]||0;t[s]=r,i[s]=Math.round(100*e.hitRate)+"%"}else i[s]="0%"});const r=Object.keys(t);r.sort((e,s)=>t[s]-t[e]),r.forEach(s=>e[s]=Math.round(t[s]/2**20)+"MB / "+i[s]);for(let t=s.length-1;t>=0;--t){const i=s[t];i&&(e["Priority "+(t+-3-1)]=Math.round(i/this._size*100)+"%")}return e}resetStats(){this._hit=this._miss=0,this._users.forEach(e=>e.resetHitRate())}clear(e){const t=e.id;this._db.forEach((e,s)=>{s.startsWith(t)&&(this._size-=e.size,this._db.delete(s),this._notifyRemove(s,e.entry,e.size,0))}),e.size=0}clearAll(){this._db.forEach((e,t)=>this._notifyRemove(t,e.entry,e.size,0)),this._users.forEach(e=>e.size=0),this._size=0,this._db.clear()}*values(e){for(const[t,s]of this._db)t.startsWith(e.id)&&(yield s.entry)}_getHitRate(){return this._hit/(this._hit+this._miss)}_notifyRemove(e,t,s,i){const r=this._users.get(e.split(n)[0])?.removeFunc,o=r?.(t,i,s);return"number"==typeof o?o:null}_checkSize(){this._sizeLimits.forEach((e,t)=>this._checkSizeLimits(e,t)),this._checkSizeLimits(this.maxSize)}setMaxSize(e,t){null==t||t<=0?this._sizeLimits.delete(e):this._sizeLimits.set(e,t)}_checkSizeLimits(e,t){const s=t??this;if(s.size<=e)return;const i=t?.id;let r=!0;for(;r;){r=!1;for(const[o,a]of this._db)if(0===a.lifetime&&(!i||o.startsWith(i))){const i=t??this._users.get(o.split(n)[0]);if(this._purgeItem(o,a,i),s.size<=.9*e)return;r||=this._db.has(o)}}for(const[r,o]of this._db)if(!i||r.startsWith(i)){const i=t??this._users.get(r.split(n)[0]);if(this._purgeItem(r,o,i),s.size<=.9*e)return}}_purgeItem(e,t,s){if(this._db.delete(e),t.lives<=1){this._size-=t.size,s&&(s.size-=t.size);const i=this._notifyRemove(e,t.entry,t.size,1);null!=i&&i>0&&(this._size+=i,s&&(s.size+=i),t.lives=t.lifetime,t.size=i,this._db.set(e,t))}else--t.lives,this._db.set(e,t)}}new r(0);class o{constructor(e,t,s){this.entry=e,this.size=t,this.lifetime=s,this.lives=s}}const n=":";class a{constructor(e,t){this.removeFunc=t,this._storage=new r,this.id="",this.name="",this.size=0,this._storage.maxSize=e,this._storage.register(this)}destroy(){this._storage.deregister(this),this._storage.destroy(),this._storage=null}put(e,t,s=1){this._storage.put(this,e,t,s,1)}pop(e){return this._storage.pop(this,e)}get(e){return this._storage.get(this,e)}clear(){this._storage.clearAll()}get maxSize(){return this._storage.maxSize}set maxSize(e){this._storage.maxSize=e}resetHitRate(){}}},68716:(e,t,s)=>{s.r(t),s.d(t,{default:()=>G});var i=s(31635),r=s(7762),o=s(21818),n=s(49186),a=s(44208),u=s(53966),l=s(563),c=s(16930),p=s(70328),d=s(56390),f=s(8384),h=s(64714),y=s(20437),m=s(95466),g=s(30524),_=s(25482),S=s(91429);let w=class extends _.o{constructor(e){super(e),this.type="location",this.latitudeFieldName=null,this.longitudeFieldName=null}};(0,i.Cg)([(0,S.MZ)({type:["location"],readOnly:!0,json:{write:!0}})],w.prototype,"type",void 0),(0,i.Cg)([(0,S.MZ)({json:{write:!0}})],w.prototype,"latitudeFieldName",void 0),(0,i.Cg)([(0,S.MZ)({json:{write:!0}})],w.prototype,"longitudeFieldName",void 0),w=(0,i.Cg)([(0,S.$K)("esri.layers.support.ParquetEncodingLocation")],w);let z=class extends _.o{constructor(e){super(e),this.type="wkb",this.primaryFieldName=null}};function b(e){switch(e.type){case"wkb":return z.fromJSON(e);case"location":return w.fromJSON(e)}}(0,i.Cg)([(0,S.MZ)({type:["wkb"],readOnly:!0,json:{write:!0}})],z.prototype,"type",void 0),(0,i.Cg)([(0,S.MZ)({json:{write:!0}})],z.prototype,"orientation",void 0),(0,i.Cg)([(0,S.MZ)({json:{write:!0}})],z.prototype,"primaryFieldName",void 0),z=(0,i.Cg)([(0,S.$K)("esri.layers.support.ParquetEncodingWkb")],z);var x=s(66552),R=s(54625),I=s(70581);const v=new x.J({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function F(e){return v.toJSON(e)}function C(e){return v.fromJSON(e)}function A(e){switch(e){case"Point":return"point";case"Polygon":case"MultiPolygon":return"polygon";case"LineString":return"polyline";case"MultiPoint":return"multipoint";default:return null}}var O=s(30661),q=s(28923),M=s(44320),P=s(35258),k=s(16630);const N=new O.Z,E=8e3,T="__OBJECTID";class G{constructor(){this._fileInfos=new Map,this._queue=new l.QueueProcessor({concurrency:4,process:(e,t)=>this._executeQuery(e,t)})}async load(e){const t=e.spatialReference?c.A.fromJSON(e.spatialReference):void 0;if(t&&!t.isWGS84&&!t.isWebMercator)throw new n.A("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");const s=await async function(e,t={}){if(e.geometryType&&e.spatialReference&&e.encoding&&e.fields)return e;if(e.urls.length<1)throw new n.A("parquet:bad-input","At least one url must be specified",e);const s=await(0,I.DV)(e.urls.getItemAt(0),{getCustomParameters:()=>t.customParameters}),i=(0,I.hD)(s),r={...e,file:s};null==r.fields&&(r.fields=s.fields().map(e=>y.A.fromJSON({name:e.name,type:e.type}))),null==r.encoding&&(r.encoding=function(e,t){if(null!=e){const t=e.primary_column,s=e.columns[t];return new z({primaryFieldName:t,orientation:s.orientation??null})}const s=(0,R.i_)(t.map(e=>e.name));return s.latitudeFieldName&&s.longitudeFieldName?new w({latitudeFieldName:s.latitudeFieldName,longitudeFieldName:s.longitudeFieldName}):null}(i,r.fields));const o=(0,I.Hj)(s);if(o)switch(o.mode){case"z":r.displayOptimization={mode:"z"};break;case"xz":{const e=o.multiscale;if(!e)throw new n.A("bad-format","XZ display optimization requires multiscale geometries");r.displayOptimization={mode:"xz",multiscale:e};break}}if(!r.encoding)return r;switch(r.encoding.type){case"location":null==r.spatialReference&&(r.spatialReference=c.A.WGS84),null==r.geometryType&&(r.geometryType="point");break;case"wkb":{if(!i)return r;const e=i.primary_column,t=i.columns[e];if(r.geometryType||(r.geometryType=function(e){const{geometry_types:t}=e,s=new Set;for(const e of t){const t=A(e);t&&s.add(t)}if(s.size>1)throw new n.A("unsupported","Parquet mixed geometry types are not support",{geometryTypes:s});return 1===s.size?s.values().next().value:void 0}(t)),r.spatialReference||(r.spatialReference=function(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?new c.A({wkid:t}):void 0}(t)),r.fields)for(const e of Object.keys(i.columns))r.fields=r.fields.filter(t=>t.name!==e)}}return r}({urls:new r.A(e.urls),fields:e.fields?.map(e=>y.A.fromJSON(e)),encoding:e.encoding?b(e.encoding):e.encoding,geometryType:e.geometryType?C(e.geometryType):null,spatialReference:t},{customParameters:e.customParameters});let o;if(s.geometryType&&s.encoding){if(!s.spatialReference)throw new n.A("parquet:unsupported","SpatialReference must be defined");if(!s.spatialReference.isGeographic&&!s.spatialReference.isWebMercator)throw new n.A("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");s.spatialReference.isGeographic&&!s.spatialReference.isWGS84&&(u.A.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:s.spatialReference}),s.spatialReference=c.A.WGS84),o={geometryType:F(s.geometryType),spatialReference:s.spatialReference.toJSON(),encoding:s.encoding.toJSON(),displayOptimization:s.displayOptimization}}this.setCustomParameters(e.customParameters),this._geometryInfo=o;const a=e.urls;for(const e of a){const t=await(0,I.DV)(e,{geometryInfo:o,outSpatialReference:null,getCustomParameters:()=>this._customParameters});this._fileInfos.set(e,{index:this._fileInfos.size,file:t})}this._capabilities=B(await this.getFileStatistics());const l=this._fileInfos.values().next().value?.file;if(!l)return{layerDefinition:{},capabilities:B(null)};const{fields:d}=s;if(null==d)throw new n.A("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",d);d.push(new y.A({name:T,type:"oid",alias:T}));const f={fields:d.map(e=>({...e.toJSON(),column:l.columnForFieldName(e.name)})),timeZoneByFieldName:null},g=m.A.fromJSON(f);this._fieldsIndex=g;const _=F(s.geometryType??"point");if(this._metadata=P.i.createFeature({fieldsIndex:f,geometryType:_,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:s.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:o?.geometryType??"esriGeometryPoint",featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:o?.spatialReference??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},s.spatialReference&&(this._fullExtent=function(e,t){const s=(0,p.hZ)((0,p.vt)(),p.qv);for(const t of e){const e=(0,I.hD)(t.file);if(!e)return null;const i=e.columns[e.primary_column];if(!i.bbox)return null;const r=j(i.bbox);(0,p.RF)(s,r)}return{xmin:s[0],ymin:s[1],xmax:s[3],ymax:s[4],spatialReference:t}}(this._fileInfos.values(),s.spatialReference.toJSON())),null==this._fullExtent&&"location"===s.encoding?.type){const{latitudeFieldName:e,longitudeFieldName:t}=s.encoding,r=this._fieldsIndex.get(e)?.column,o=this._fieldsIndex.get(t)?.column,n=(0,p.hZ)((0,p.vt)(),p.qv);for(const e of this._fileInfos.values())for(const t of e.file.rowGroups()){const e={stack:[],error:void 0,hasError:!1};try{const s=(0,i.mS)(e,t.columnDescriptorForAttribute(r),!1),a=(0,i.mS)(e,t.columnDescriptorForAttribute(o),!1),u=[a.minValue(),s.minValue(),a.maxValue(),s.maxValue()];(0,p.DC)(n,u),t.free()}catch(t){e.error=t,e.hasError=!0}finally{(0,i.hk)(e)}}this._fullExtent={xmin:n[0],ymin:n[1],xmax:n[3],ymax:n[4],spatialReference:s.spatialReference?.toJSON()}}return{capabilities:this._capabilities,layerDefinition:{fields:s.fields?.map(e=>e.toJSON()),drawingInfo:(0,h.F0)(_),extent:this._fullExtent??void 0,geometryType:_,encoding:s.encoding?.toJSON(),displayOptimization:s.displayOptimization}}}destroy(){for(const e of this._fileInfos.values())e.file.free();this._fileInfos.clear(),this._queue.destroy()}setCustomParameters(e){this._customParameters=e}getFileStatistics(){if(!this._fileInfos.size)return null;const e=Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.byteLength(),0);return{featureCount:this._getFeatureCount(),byteLength:e}}async updateFiles(e){const t=new Set(e);for(const[e,s]of this._fileInfos.entries())t.has(e)?t.delete(e):(s.file.free(),this._fileInfos.delete(e));for(const e of t){const t=await(0,I.DV)(e,{geometryInfo:this._geometryInfo,outSpatialReference:null,getCustomParameters:()=>this._customParameters});this._fileInfos.set(e,{index:this._fileInfos.size,file:t})}}async queryFeatures(e,t){return this._validateQuery(e),function(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&delete e.returnGeometry,(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){return this._validateQuery(e),Q(e)?(delete e.outFields,delete e.returnGeometry,(await this._enqueueQuery(e,t)).createQueryResponseForCount()):this._getFeatureCount()}async queryObjectIds(e,t){return this._validateQuery(e),Q(e)?(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0,delete e.returnGeometry,delete e.outFields,(await this._enqueueQuery(e,t)).items.map(e=>e.getObjectId())):Array.from({length:this._getFeatureCount()},(e,t)=>t)}async queryExtent(e,t){if(this._validateQuery(e),this._fullExtent&&!Q(e))return{count:this._getFeatureCount(),extent:this._fullExtent};const s=(0,o.zI)(this._metadata.spatialReference);e.returnGeometry=!0,delete e.outFields;const i=(0,p.hZ)((0,p.vt)(),p.qv),r=(0,p.vt)(),n=await this._enqueueQuery(e,t);let a=0;for(const e of n.items)e.getBounds(r)&&((0,p.RF)(i,r),a+=1);return{count:a,extent:(0,d.Wc)(i,s,e.outSR?(0,o.zI)(e.outSR):s,s,!1)}}_getFeatureCount(){return Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.numRows(),0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new n.A("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new n.A("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new n.A("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async*_fetchChunks(e,t){for(const s of this._fileInfos.values()){const i=s.file.numRows(),r=Math.ceil(i/E);for(let i=0;i<r;i++){const r=i*E,o=await s.file.readChunk(r,E,e.fields,e.returnGeometry,t);for(const e of o){const t=new k.s(this._metadata,this._fieldsIndex,e,0,s.index),i=D([new q.j(t,null,0,!1)],this._queryEngineParams);yield i}}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const s=await this._getReadParams(e);if(e.objectIds?.length)for(const i of this._fileInfos.values()){const r=[],o=D((await i.file.readChunksByRowId(new Uint32Array(e.objectIds),s.fields,s.returnGeometry,t)).map((e,t)=>new k.s(this._metadata,this._fieldsIndex,e,t,i.index)).map((e,t)=>new q.j(e,null,t,!1)),this._queryEngineParams),n=await o.executeQueryForOpaqueFeatures(e,t);for(const e of n)r.push(e);return new f.G(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:N})}let i=e.resultRecordCount??this._getFeatureCount(),r=e.resultOffset??0;delete e.resultRecordCount,delete e.resultOffset;const o=[];for await(const n of this._fetchChunks(s,t)){const s=await n.executeQueryForOpaqueFeatures(e,t);if(s.length>r){const t=s.slice(r,Math.min(r+i,s.length));for(const e of t)o.push(e);if(r=0,i-=t.length,0===i)return new f.G(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:N})}else r-=s.length}return new f.G(o,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:N})}async _getReadParams(e){const t=new Set;if(e.where&&await(0,g.hz)(t,this._fieldsIndex,e.where),e.outStatistics)for(const s of e.outStatistics)null!=s.onStatisticField&&t.add(s.onStatisticField);if(e.outFields)for(const s of e.outFields)t.add(s);return{fields:this._getAttributeIds(Array.from(t)),returnGeometry:!!e.returnGeometry||!!e.geometry}}_getAttributeIds(e){if(null==e)return new Uint32Array;if(e.includes("*"))return new Uint32Array(this._fieldsIndex.fields.map(e=>e.column).filter(e=>null!=e));const t=[];for(const s of e){const e=this._fieldsIndex.get(s);if(null==e)throw new n.A("unknown-field",`Field ${s} does not exist`);null==e.column||t.push(e.column)}return new Uint32Array(t)}}function Q(e){return Object.keys(e).some(e=>function(e){switch(e){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"where":case"objectIds":case"historicMoment":return!0;default:return!1}}(e))}function D(e,t){const s=new M.I;for(const t of e)s.insert(t);return new d.do({...t,featureStore:s})}function j(e){switch(e.length){case 4:return(0,p.Jt)((0,p.vt)(),e);case 6:return e;default:throw new n.A("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{bbox:e})}}function B(e){const t=e?.featureCount;let s=!1;return null!=t&&t<(0,a.A)("parquetlayer-full-query-feature-count")&&(s=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportsAttachment:!1,supportsM:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:8e3,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,standardMaxRecordCount:void 0,supportsCacheHint:!1,supportsCentroid:!0,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsDistinct:s,supportsExtent:!1,supportsFormatPBF:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:s,supportsPagination:!0,supportsPaginationOnAggregatedQueries:!1,supportsPercentileStatistics:!1,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:s,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,supportsTrueCurve:!1,tileMaxRecordCount:void 0},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}},69540:(e,t,s)=>{s.d(t,{OU:()=>c,Pw:()=>p});var i=s(31635),r=s(69622),o=(s(44208),s(4718)),n=(s(53966),s(97768)),a=s(88620),u=s(64108);const l=Symbol("ClonableMixin"),c=e=>{var t;const s=e;let r=class extends s{constructor(){super(...arguments),this[t]=!0}static{t=l}clone(e){const t=(0,a.oY)(this);(0,n.Lw)(t,"unable to clone instance of non-accessor class");const s=t.metadata,i=t.store,r={},u=new Map;for(const t in s){const n=s[t],a=i?.originOf(t),l=n.clonable;if(n.readOnly||!1===l||7!==a&&0!==a&&5!==a&&4!==a)continue;const c=this[t];let p=null;if("function"==typeof l)p=l(c,e);else if("reference"===l)p=c;else if(p=(0,o.TU)(c,e),null!=c&&null==p)continue;0===a?u.set(t,p):r[t]=p}const l=new(0,Object.getPrototypeOf(this).constructor)(r);if(u.size){const e=(0,a.oY)(l)?.store;if(e)for(const[t,s]of u)e.set(t,s,0)}return l}};return r=(0,i.Cg)([(0,u.$)("esri.core.Clonable")],r),r},p=c(r.A)},93470:(e,t,s)=>{s.d(t,{Cb:()=>o,HW:()=>c,JR:()=>r,JZ:()=>u,WR:()=>a,b6:()=>p,fT:()=>i,nC:()=>l,yM:()=>n});const i=[252,146,31,255],r=[153,153,153,255],o={type:"esriSMS",style:"esriSMSCircle",size:6,color:i,outline:{type:"esriSLS",style:"esriSLSSolid",width:.75,color:[153,153,153,255]}},n={type:"esriSLS",style:"esriSLSSolid",width:.75,color:i},a={type:"esriSFS",style:"esriSFSSolid",color:[252,146,31,196],outline:{type:"esriSLS",style:"esriSLSSolid",width:.75,color:[255,255,255,191]}},u={type:"esriTS",color:[255,255,255,255],font:{family:"arial-unicode-ms",size:10,weight:"bold"},horizontalAlignment:"center",kerning:!0,haloColor:[0,0,0,255],haloSize:1,rotated:!1,text:"",xoffset:0,yoffset:0,angle:0},l={type:"esriSMS",style:"esriSMSCircle",color:[0,0,0,255],outline:null,size:10.5},c={type:"esriSLS",style:"esriSLSSolid",color:[0,0,0,255],width:1.5},p={type:"esriSFS",style:"esriSFSSolid",color:[0,0,0,255],outline:null}}}]);
@@ -1 +1 @@
1
- "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[5007],{4095:(t,e,n)=>{n.d(e,{CW:()=>u,DE:()=>f,S1:()=>p});var r=n(44208),o=n(53966),s=n(34727),i=n(74887),l=n(87811);n(5443),n(21325);const a=()=>o.A.getLogger("esri.views.2d.engine.flow.dataUtils"),c=10;async function u(t,e,n,o){const s=performance.now(),u=f(e,n),h=performance.now(),d=p(e,u,n.width,n.height),m=performance.now(),w=function(t){const e=new l.A,n=t.reduce((t,e)=>t+e.vertices.length,0),r=new Float32Array(4*n),o=new Array(t.length);let s=0,i=0;for(const{vertices:n}of t){const t=s;for(const t of n)r[4*s]=t.x,r[4*s+1]=t.y,r[4*s+2]=t.t,r[4*s+3]=t.speed,s++;o[i++]={startVertex:t,numberOfVertices:n.length,totalTime:n[n.length-1].t,timeSeed:e.getFloat()}}return{lineVertices:r,lineDescriptors:o}}(d),g=performance.now(),y="Streamlines"===t?function(t,e){const{lineVertices:n,lineDescriptors:r}=t;let o=0,s=0;for(const t of r)o+=2*t.numberOfVertices,s+=6*(t.numberOfVertices-1);const i=new Float32Array(9*o),l=new Uint32Array(s);let a=0,c=0;function u(){l[c++]=a-2,l[c++]=a,l[c++]=a-1,l[c++]=a,l[c++]=a+1,l[c++]=a-1}function f(t,e,n,r,o,s,l,c){const u=9*a;let f=0;i[u+f++]=t,i[u+f++]=e,i[u+f++]=1,i[u+f++]=n,i[u+f++]=s,i[u+f++]=l,i[u+f++]=r/2,i[u+f++]=o/2,i[u+f++]=c,a++,i[u+f++]=t,i[u+f++]=e,i[u+f++]=-1,i[u+f++]=n,i[u+f++]=s,i[u+f++]=l,i[u+f++]=-r/2,i[u+f++]=-o/2,i[u+f++]=c,a++}for(const t of r){const{totalTime:r,timeSeed:o}=t;let s=null,i=null,l=null,a=null,c=null,h=null;for(let d=0;d<t.numberOfVertices;d++){const p=n[4*(t.startVertex+d)],m=n[4*(t.startVertex+d)+1],w=n[4*(t.startVertex+d)+2],g=n[4*(t.startVertex+d)+3];let y=null,M=null,v=null,x=null;if(d>0){y=p-s,M=m-i;const t=Math.sqrt(y*y+M*M);if(y/=t,M/=t,d>1){let t=y+c,n=M+h;const r=Math.sqrt(t*t+n*n);t/=r,n/=r;const o=Math.min(1/(t*y+n*M),e);t*=o,n*=o,v=-n,x=t}else v=-M,x=y;null!==v&&null!==x&&(f(s,i,l,v,x,r,o,g),u())}s=p,i=m,l=w,c=y,h=M,a=g}f(s,i,l,-h,c,r,o,a)}return{vertexData:i,indexData:l}}(w,c):function(t){const{lineVertices:e,lineDescriptors:n}=t;let r=0,o=0;for(const t of n){const e=t.numberOfVertices-1;r+=4*e*2,o+=6*e*2}const s=new Float32Array(16*r),i=new Uint32Array(o);let l,a,c,u,f,h,d,p,m,w,g,y,M,v,x=0,S=0;function b(){i[S++]=x-8,i[S++]=x-7,i[S++]=x-6,i[S++]=x-7,i[S++]=x-5,i[S++]=x-6,i[S++]=x-4,i[S++]=x-3,i[S++]=x-2,i[S++]=x-3,i[S++]=x-1,i[S++]=x-2}function D(t,e,n,r,o,i,l,a,c,u,f,h,d,p){const m=16*x;let w=0;for(const g of[1,2])for(const y of[1,2,3,4])s[m+w++]=t,s[m+w++]=e,s[m+w++]=n,s[m+w++]=r,s[m+w++]=l,s[m+w++]=a,s[m+w++]=c,s[m+w++]=u,s[m+w++]=g,s[m+w++]=y,s[m+w++]=d,s[m+w++]=p,s[m+w++]=o/2,s[m+w++]=i/2,s[m+w++]=f/2,s[m+w++]=h/2,x++}function A(t,e){let n=m+g,r=w+y;const o=Math.sqrt(n*n+r*r);n/=o,r/=o;const s=m*n+w*r;n/=s,r/=s;let i=g+M,x=y+v;const S=Math.sqrt(i*i+x*x);i/=S,x/=S;const A=g*i+y*x;i/=A,x/=A,D(l,a,c,u,-r,n,f,h,d,p,-x,i,t,e),b()}function E(t,e,n,r,o,s){if(m=g,w=y,g=M,y=v,null==m&&null==w&&(m=g,w=y),null!=f&&null!=h){M=t-f,v=e-h;const n=Math.sqrt(M*M+v*v);M/=n,v/=n}null!=m&&null!=w&&A(o,s),l=f,a=h,c=d,u=p,f=t,h=e,d=n,p=r}function F(t,e){m=g,w=y,g=M,y=v,null==m&&null==w&&(m=g,w=y),null!=m&&null!=w&&A(t,e)}for(const t of n){l=null,a=null,c=null,u=null,f=null,h=null,d=null,p=null,m=null,w=null,g=null,y=null,M=null,v=null;const{totalTime:n,timeSeed:r}=t;for(let o=0;o<t.numberOfVertices;o++)E(e[4*(t.startVertex+o)],e[4*(t.startVertex+o)+1],e[4*(t.startVertex+o)+2],e[4*(t.startVertex+o)+3],n,r);F(n,r)}return{vertexData:s,indexData:i}}(w),M=performance.now();return(0,r.A)("esri-2d-profiler")&&(a().info("I.1","_createFlowFieldFromData (ms)",Math.round(h-s)),a().info("I.2","_getStreamlines (ms)",Math.round(m-h)),a().info("I.3","createAnimatedLinesData (ms)",Math.round(g-m)),a().info("I.4","create{Streamlines|Particles}Mesh (ms)",Math.round(M-g)),a().info("I.5","createFlowMesh (ms)",Math.round(M-s)),a().info("I.6","Mesh size (bytes)",y.vertexData.buffer.byteLength+y.indexData.buffer.byteLength)),await Promise.resolve(),(0,i.Te)(o),y}function f(t,e){const n=function(t,e,n,r){if(0===r)return t;const o=Math.round(3*r),s=new Array(2*o+1);let i=0;for(let t=-o;t<=o;t++){const e=Math.exp(-t*t/(r*r));s[t+o]=e,i+=e}for(let t=-o;t<=o;t++)s[t+o]/=i;const l=new Float32Array(t.length);for(let r=0;r<n;r++)for(let n=0;n<e;n++){let i=0,a=0;for(let l=-o;l<=o;l++){if(n+l<0||n+l>=e)continue;const c=s[l+o];i+=c*t[2*(r*e+(n+l))],a+=c*t[2*(r*e+(n+l))+1]}l[2*(r*e+n)]=i,l[2*(r*e+n)+1]=a}const a=new Float32Array(t.length);for(let t=0;t<e;t++)for(let r=0;r<n;r++){let i=0,c=0;for(let a=-o;a<=o;a++){if(r+a<0||r+a>=n)continue;const u=s[a+o];i+=u*l[2*((r+a)*e+t)],c+=u*l[2*((r+a)*e+t)+1]}a[2*(r*e+t)]=i,a[2*(r*e+t)+1]=c}return a}(e.data,e.width,e.height,t.smoothing);return t.interpolate?(t,r)=>{const o=Math.floor(t),s=Math.floor(r);if(o<0||o>=e.width)return[0,0];if(s<0||s>=e.height)return[0,0];const i=t-o,l=r-s,a=o,c=s,u=o<e.width-1?o+1:o,f=s<e.height-1?s+1:s,h=n[2*(c*e.width+a)],d=n[2*(c*e.width+u)],p=n[2*(f*e.width+a)],m=n[2*(f*e.width+u)],w=n[2*(c*e.width+a)+1],g=n[2*(c*e.width+u)+1];return[(h*(1-l)+p*l)*(1-i)+(d*(1-l)+m*l)*i,(w*(1-l)+n[2*(f*e.width+a)+1]*l)*(1-i)+(g*(1-l)+n[2*(f*e.width+u)+1]*l)*i]}:(t,r)=>{const o=Math.round(t),s=Math.round(r);return o<0||o>=e.width||s<0||s>=e.height?[0,0]:[n[2*(s*e.width+o)],n[2*(s*e.width+o)+1]]}}function h(t,e,n,r,o,i,l,a){const c=[],{raster:u,width:f,height:h,resolutionFactor:d}=a;let p=r,m=o,w=0,[g,y]=n(p,m);g*=e.velocityScale,y*=e.velocityScale;const M=Math.sqrt(g*g+y*y);let v,x;c.push({x:p,y:m,t:w,speed:M});for(let r=0;r<e.verticesPerLine;r++){let[r,o]=n(p,m);r*=e.velocityScale,o*=e.velocityScale;const a=Math.sqrt(r*r+o*o);if(a<e.minSpeedThreshold)return c;const g=t*r/a,y=t*o/a;if(p+=g*e.segmentLength,m+=y*e.segmentLength,e.wrapAround&&(p=(0,s.OS)(p,i[0])),w+=t*e.segmentLength/a,Math.acos(g*v+y*x)>e.maxTurnAngle)return c;if(e.collisions){let t=Math.round(p*d);const n=Math.round(m*d);if(e.wrapAround&&(t=(0,s.OS)(t,f)),t<0||t>f-1||n<0||n>h-1)return c;const r=u[n*f+t];if(-1!==r&&r!==l)return c;u[n*f+t]=l}c.push({x:p,y:m,t:w,speed:a}),v=g,x=y}return c}function d(t,e,n,r,o,s,i,l){const a=Math.round((.2+.6*i.getFloat())*t.verticesPerLine),c=t.verticesPerLine-a,u=h(-1,{...t,verticesPerLine:c},e,n,r,o,s,l),f=h(1,{...t,verticesPerLine:a},e,n,r,o,s,l),d=u.reverse();return d.splice(-1,1),d.concat(f)}function p(t,e,n,r,o={positions:[]}){if(t.density<=0)return[];const{positions:s}=o,i=[],a=new l.A,c=1/Math.max(t.lineCollisionWidth,1),u=Math.round(n*c),f=Math.round(r*c),p=new Int32Array(u*f);for(let t=0;t<p.length;t++)p[t]=-1;const m={raster:p,width:u,height:f,resolutionFactor:c},w={},g=t.lineSpacing/Math.sqrt(t.density),y=Math.floor(r/g),M=Math.floor(n/g);for(let t=0;t<y;t++){const e=t*g;for(let n=0;n<M;n++){const r=n*g;w[`${n}-${t}`]={x:r,y:e,positions:[]}}}for(const{x:t,y:e}of s){const n=w[`${Math.floor(t/g)}-${Math.floor(e/g)}`];n&&n.positions.push([t,e])}const v=[];for(const t in w){const e=w[t];if(0===e.positions.length)v.push({x:e.x+g/2,y:e.y+g/2,sort:.66+.33*a.getFloat(),stage:0});else{const[t]=e.positions.splice(0,1);v.push({x:t[0],y:t[1],sort:.33*a.getFloat(),stage:1});for(const[t,n]of e.positions)v.push({x:t,y:n,sort:.33+.33*a.getFloat(),stage:2})}}v.sort((t,e)=>t.sort-e.sort);for(const{x:o,y:s,stage:l}of v){const c=t.onlyForwardTracing?h(1,t,e,o,s,[n,r],i.length,m):d(t,e,o,s,[n,r],i.length,a,m);c.length<2||i.push({stage:l,vertices:c})}return i}},31635:(t,e,n)=>{function r(t,e,n,r){var o,s=arguments.length,i=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,r);else for(var l=t.length-1;l>=0;l--)(o=t[l])&&(i=(s<3?o(i):s>3?o(e,n,i):o(e,n))||i);return s>3&&i&&Object.defineProperty(e,n,i),i}function o(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var r,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],n&&(o=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");o&&(r=function(){try{o.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:r,async:n})}else n&&t.stack.push({async:!0});return e}n.d(e,{Cg:()=>r,hk:()=>i,mS:()=>o}),Object.create,Object.create;var s="function"==typeof SuppressedError?SuppressedError:function(t,e,n){var r=new Error(n);return r.name="SuppressedError",r.error=t,r.suppressed=e,r};function i(t){function e(e){t.error=t.hasError?new s(e,t.error,"An error was suppressed during disposal."):e,t.hasError=!0}var n,r=0;return function o(){for(;n=t.stack.pop();)try{if(!n.async&&1===r)return r=0,t.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(s).then(o,function(t){return e(t),o()})}else r|=1}catch(t){e(t)}if(1===r)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}()}},35007:(t,e,n)=>{n.r(e),n.d(e,{default:()=>c});var r=n(31635),o=n(91429),s=n(4095),i=n(19419);n(73941);var l=n(69052);n(21325);let a=class{constructor(){this._tileData=new Map}async generateStreamlines(t){const{flowData:e,flowExtentInfo:n,needsMagnitude:r,simulationSettings:o,startPositions:i}=t,l=u((0,s.DE)(o,e),o,n.modelSize,r,i);return{result:{streamlines:l},transferList:l?.map(t=>t.vertices.buffer)}}async generateTiledStreamlines(t){const{flowDataTiles:e,flowExtentInfo:n,needsMagnitude:r,reset:o,simulationSettings:a,startPositions:c}=t;this._updateTileData(e,o);const f=u(function(t,e,n){const[r,o]=n.modelSize;let a=null;const c=new Map;e.forEach(e=>{c.set(e.lij,(0,s.DE)(t,e))});const u=(t,e,n)=>(0,i.Rj)(t.extent,e,n);return(s,f)=>{const h=Math.round(s),d=Math.round(f);if(!t.wrapAround&&(h<0||h>=r||d<0||d>=o))return[0,0];const[p,m]=function(t,e,n,r){const{extent:o,modelSize:s,valid:a}=t,[c,u,f]=o,h=function(t,e,n){if(null!=n&&t>e){const[r,o]=n;return o-t+(e-r)}return e-t}(c,f,a);let d=e/s[0]*h+c;return null!=a&&r&&(d=new l.hr(a[0],a[1]).normalize(d)),[d,(s[1]-n)/s[1]*(0,i.uJ)(o)+u]}(n,s,f,!0);if(!function(t,e,n){const{extent:r,valid:o}=t,[s,i,l,a]=r;return!(n<i||n>a)&&(null!=o&&s>l?e>=l||e<=s:e>=s&&e<=l)}(n,p,m))return[0,0];if(null==a||!u(a,p,m)){a=null;for(const[t,n]of e)if(u(n,p,m)){a=n;break}}if(null==a?.data)return[0,0];const w=c.get(a.lij);if(null==w)return[0,0];const{width:g,height:y,extent:M}=a;return w((p-M[0])/(0,i.VL)(M)*g,y-(m-M[1])/(0,i.uJ)(M)*y)}}(a,this._tileData,n),a,n.modelSize,r,c);return{result:{streamlines:f},transferList:f?.map(t=>t.vertices.buffer)??[]}}_updateTileData(t,e){e&&this._tileData.forEach((e,n)=>{null==t.get(n)&&this._tileData.delete(n)}),t.forEach((t,e)=>{"delete"===t.type?this._tileData.delete(e):"on-worker"!==t.type&&"waiting"!==t.type&&this._tileData.set(e,t.data)})}};a=(0,r.Cg)([(0,o.$K)("esri.views.3d.support.flow.FlowWorker")],a);const c=a;function u(t,e,n,r,o){if(null==t)return;const i=(0,s.S1)(e,t,n[0],n[1],{positions:o}),l=[],a=function(t){return t?4:3}(r);for(const{vertices:t,stage:e}of i){const n=new Float32Array(t.length*a);for(let e=0;e<t.length;e++)n[e*a]=t[e].x,n[e*a+1]=t[e].y,n[e*a+2]=t[e].t,r&&(n[e*a+3]=t[e].speed);l.push({vertices:n,stage:e,hasMagnitude:r})}return l}},69052:(t,e,n)=>{n.d(e,{hr:()=>o,ie:()=>a,uC:()=>l});var r=n(34727);class o{constructor(t,e){this.min=t,this.max=e,this.range=e-t}normalize(t,e=0,n=!1){return s(this.range,this.min,this.max,t,e,n)}clamp(t,e=0){return(0,r.qE)(t-e,this.min,this.max)+e}monotonic(t,e,n){return t<e?e:e+i(this.range,t-e,n)}minimalMonotonic(t,e,n){return s(this.range,t,t+this.range,e,n)}center(t,e,n){return e=this.monotonic(t,e,n),this.normalize((t+e)/2,n)}diff(t,e,n){return this.monotonic(t,e,n)-t}shortestSignedDiff(t,e){t=this.normalize(t);const n=(e=this.normalize(e))-t,r=e<t?this.minimalMonotonic(t,e)-t:e-this.minimalMonotonic(e,t);return Math.abs(n)<Math.abs(r)?n:r}contains(t,e,n){return e=this.minimalMonotonic(t,e),(n=this.minimalMonotonic(t,n))>t&&n<e}}function s(t,e,n,r,o=0,s=!1){return(r-=o)<e?r+=i(t,e-r):r>n&&(r-=i(t,r-n)),s&&r===n&&(r=e),r+o}function i(t,e,n=0){return Math.ceil((e-n)/t)*t+n}const l=new o(0,2*Math.PI),a=(new o(-Math.PI,Math.PI),new o(0,360))}}]);
1
+ "use strict";(self.webpackChunkRemoteClient=self.webpackChunkRemoteClient||[]).push([[9616],{4095:(t,e,n)=>{n.d(e,{CW:()=>u,DE:()=>f,S1:()=>p});var r=n(44208),o=n(53966),s=n(34727),i=n(74887),l=n(87811);n(5443),n(21325);const a=()=>o.A.getLogger("esri.views.2d.engine.flow.dataUtils"),c=10;async function u(t,e,n,o){const s=performance.now(),u=f(e,n),h=performance.now(),d=p(e,u,n.width,n.height),m=performance.now(),w=function(t){const e=new l.A,n=t.reduce((t,e)=>t+e.vertices.length,0),r=new Float32Array(4*n),o=new Array(t.length);let s=0,i=0;for(const{vertices:n}of t){const t=s;for(const t of n)r[4*s]=t.x,r[4*s+1]=t.y,r[4*s+2]=t.t,r[4*s+3]=t.speed,s++;o[i++]={startVertex:t,numberOfVertices:n.length,totalTime:n[n.length-1].t,timeSeed:e.getFloat()}}return{lineVertices:r,lineDescriptors:o}}(d),g=performance.now(),y="Streamlines"===t?function(t,e){const{lineVertices:n,lineDescriptors:r}=t;let o=0,s=0;for(const t of r)o+=2*t.numberOfVertices,s+=6*(t.numberOfVertices-1);const i=new Float32Array(9*o),l=new Uint32Array(s);let a=0,c=0;function u(){l[c++]=a-2,l[c++]=a,l[c++]=a-1,l[c++]=a,l[c++]=a+1,l[c++]=a-1}function f(t,e,n,r,o,s,l,c){const u=9*a;let f=0;i[u+f++]=t,i[u+f++]=e,i[u+f++]=1,i[u+f++]=n,i[u+f++]=s,i[u+f++]=l,i[u+f++]=r/2,i[u+f++]=o/2,i[u+f++]=c,a++,i[u+f++]=t,i[u+f++]=e,i[u+f++]=-1,i[u+f++]=n,i[u+f++]=s,i[u+f++]=l,i[u+f++]=-r/2,i[u+f++]=-o/2,i[u+f++]=c,a++}for(const t of r){const{totalTime:r,timeSeed:o}=t;let s=null,i=null,l=null,a=null,c=null,h=null;for(let d=0;d<t.numberOfVertices;d++){const p=n[4*(t.startVertex+d)],m=n[4*(t.startVertex+d)+1],w=n[4*(t.startVertex+d)+2],g=n[4*(t.startVertex+d)+3];let y=null,M=null,v=null,x=null;if(d>0){y=p-s,M=m-i;const t=Math.sqrt(y*y+M*M);if(y/=t,M/=t,d>1){let t=y+c,n=M+h;const r=Math.sqrt(t*t+n*n);t/=r,n/=r;const o=Math.min(1/(t*y+n*M),e);t*=o,n*=o,v=-n,x=t}else v=-M,x=y;null!==v&&null!==x&&(f(s,i,l,v,x,r,o,g),u())}s=p,i=m,l=w,c=y,h=M,a=g}f(s,i,l,-h,c,r,o,a)}return{vertexData:i,indexData:l}}(w,c):function(t){const{lineVertices:e,lineDescriptors:n}=t;let r=0,o=0;for(const t of n){const e=t.numberOfVertices-1;r+=4*e*2,o+=6*e*2}const s=new Float32Array(16*r),i=new Uint32Array(o);let l,a,c,u,f,h,d,p,m,w,g,y,M,v,x=0,S=0;function b(){i[S++]=x-8,i[S++]=x-7,i[S++]=x-6,i[S++]=x-7,i[S++]=x-5,i[S++]=x-6,i[S++]=x-4,i[S++]=x-3,i[S++]=x-2,i[S++]=x-3,i[S++]=x-1,i[S++]=x-2}function D(t,e,n,r,o,i,l,a,c,u,f,h,d,p){const m=16*x;let w=0;for(const g of[1,2])for(const y of[1,2,3,4])s[m+w++]=t,s[m+w++]=e,s[m+w++]=n,s[m+w++]=r,s[m+w++]=l,s[m+w++]=a,s[m+w++]=c,s[m+w++]=u,s[m+w++]=g,s[m+w++]=y,s[m+w++]=d,s[m+w++]=p,s[m+w++]=o/2,s[m+w++]=i/2,s[m+w++]=f/2,s[m+w++]=h/2,x++}function A(t,e){let n=m+g,r=w+y;const o=Math.sqrt(n*n+r*r);n/=o,r/=o;const s=m*n+w*r;n/=s,r/=s;let i=g+M,x=y+v;const S=Math.sqrt(i*i+x*x);i/=S,x/=S;const A=g*i+y*x;i/=A,x/=A,D(l,a,c,u,-r,n,f,h,d,p,-x,i,t,e),b()}function E(t,e,n,r,o,s){if(m=g,w=y,g=M,y=v,null==m&&null==w&&(m=g,w=y),null!=f&&null!=h){M=t-f,v=e-h;const n=Math.sqrt(M*M+v*v);M/=n,v/=n}null!=m&&null!=w&&A(o,s),l=f,a=h,c=d,u=p,f=t,h=e,d=n,p=r}function F(t,e){m=g,w=y,g=M,y=v,null==m&&null==w&&(m=g,w=y),null!=m&&null!=w&&A(t,e)}for(const t of n){l=null,a=null,c=null,u=null,f=null,h=null,d=null,p=null,m=null,w=null,g=null,y=null,M=null,v=null;const{totalTime:n,timeSeed:r}=t;for(let o=0;o<t.numberOfVertices;o++)E(e[4*(t.startVertex+o)],e[4*(t.startVertex+o)+1],e[4*(t.startVertex+o)+2],e[4*(t.startVertex+o)+3],n,r);F(n,r)}return{vertexData:s,indexData:i}}(w),M=performance.now();return(0,r.A)("esri-2d-profiler")&&(a().info("I.1","_createFlowFieldFromData (ms)",Math.round(h-s)),a().info("I.2","_getStreamlines (ms)",Math.round(m-h)),a().info("I.3","createAnimatedLinesData (ms)",Math.round(g-m)),a().info("I.4","create{Streamlines|Particles}Mesh (ms)",Math.round(M-g)),a().info("I.5","createFlowMesh (ms)",Math.round(M-s)),a().info("I.6","Mesh size (bytes)",y.vertexData.buffer.byteLength+y.indexData.buffer.byteLength)),await Promise.resolve(),(0,i.Te)(o),y}function f(t,e){const n=function(t,e,n,r){if(0===r)return t;const o=Math.round(3*r),s=new Array(2*o+1);let i=0;for(let t=-o;t<=o;t++){const e=Math.exp(-t*t/(r*r));s[t+o]=e,i+=e}for(let t=-o;t<=o;t++)s[t+o]/=i;const l=new Float32Array(t.length);for(let r=0;r<n;r++)for(let n=0;n<e;n++){let i=0,a=0;for(let l=-o;l<=o;l++){if(n+l<0||n+l>=e)continue;const c=s[l+o];i+=c*t[2*(r*e+(n+l))],a+=c*t[2*(r*e+(n+l))+1]}l[2*(r*e+n)]=i,l[2*(r*e+n)+1]=a}const a=new Float32Array(t.length);for(let t=0;t<e;t++)for(let r=0;r<n;r++){let i=0,c=0;for(let a=-o;a<=o;a++){if(r+a<0||r+a>=n)continue;const u=s[a+o];i+=u*l[2*((r+a)*e+t)],c+=u*l[2*((r+a)*e+t)+1]}a[2*(r*e+t)]=i,a[2*(r*e+t)+1]=c}return a}(e.data,e.width,e.height,t.smoothing);return t.interpolate?(t,r)=>{const o=Math.floor(t),s=Math.floor(r);if(o<0||o>=e.width)return[0,0];if(s<0||s>=e.height)return[0,0];const i=t-o,l=r-s,a=o,c=s,u=o<e.width-1?o+1:o,f=s<e.height-1?s+1:s,h=n[2*(c*e.width+a)],d=n[2*(c*e.width+u)],p=n[2*(f*e.width+a)],m=n[2*(f*e.width+u)],w=n[2*(c*e.width+a)+1],g=n[2*(c*e.width+u)+1];return[(h*(1-l)+p*l)*(1-i)+(d*(1-l)+m*l)*i,(w*(1-l)+n[2*(f*e.width+a)+1]*l)*(1-i)+(g*(1-l)+n[2*(f*e.width+u)+1]*l)*i]}:(t,r)=>{const o=Math.round(t),s=Math.round(r);return o<0||o>=e.width||s<0||s>=e.height?[0,0]:[n[2*(s*e.width+o)],n[2*(s*e.width+o)+1]]}}function h(t,e,n,r,o,i,l,a){const c=[],{raster:u,width:f,height:h,resolutionFactor:d}=a;let p=r,m=o,w=0,[g,y]=n(p,m);g*=e.velocityScale,y*=e.velocityScale;const M=Math.sqrt(g*g+y*y);let v,x;c.push({x:p,y:m,t:w,speed:M});for(let r=0;r<e.verticesPerLine;r++){let[r,o]=n(p,m);r*=e.velocityScale,o*=e.velocityScale;const a=Math.sqrt(r*r+o*o);if(a<e.minSpeedThreshold)return c;const g=t*r/a,y=t*o/a;if(p+=g*e.segmentLength,m+=y*e.segmentLength,e.wrapAround&&(p=(0,s.OS)(p,i[0])),w+=t*e.segmentLength/a,Math.acos(g*v+y*x)>e.maxTurnAngle)return c;if(e.collisions){let t=Math.round(p*d);const n=Math.round(m*d);if(e.wrapAround&&(t=(0,s.OS)(t,f)),t<0||t>f-1||n<0||n>h-1)return c;const r=u[n*f+t];if(-1!==r&&r!==l)return c;u[n*f+t]=l}c.push({x:p,y:m,t:w,speed:a}),v=g,x=y}return c}function d(t,e,n,r,o,s,i,l){const a=Math.round((.2+.6*i.getFloat())*t.verticesPerLine),c=t.verticesPerLine-a,u=h(-1,{...t,verticesPerLine:c},e,n,r,o,s,l),f=h(1,{...t,verticesPerLine:a},e,n,r,o,s,l),d=u.reverse();return d.splice(-1,1),d.concat(f)}function p(t,e,n,r,o={positions:[]}){if(t.density<=0)return[];const{positions:s}=o,i=[],a=new l.A,c=1/Math.max(t.lineCollisionWidth,1),u=Math.round(n*c),f=Math.round(r*c),p=new Int32Array(u*f);for(let t=0;t<p.length;t++)p[t]=-1;const m={raster:p,width:u,height:f,resolutionFactor:c},w={},g=t.lineSpacing/Math.sqrt(t.density),y=Math.floor(r/g),M=Math.floor(n/g);for(let t=0;t<y;t++){const e=t*g;for(let n=0;n<M;n++){const r=n*g;w[`${n}-${t}`]={x:r,y:e,positions:[]}}}for(const{x:t,y:e}of s){const n=w[`${Math.floor(t/g)}-${Math.floor(e/g)}`];n&&n.positions.push([t,e])}const v=[];for(const t in w){const e=w[t];if(0===e.positions.length)v.push({x:e.x+g/2,y:e.y+g/2,sort:.66+.33*a.getFloat(),stage:0});else{const[t]=e.positions.splice(0,1);v.push({x:t[0],y:t[1],sort:.33*a.getFloat(),stage:1});for(const[t,n]of e.positions)v.push({x:t,y:n,sort:.33+.33*a.getFloat(),stage:2})}}v.sort((t,e)=>t.sort-e.sort);for(const{x:o,y:s,stage:l}of v){const c=t.onlyForwardTracing?h(1,t,e,o,s,[n,r],i.length,m):d(t,e,o,s,[n,r],i.length,a,m);c.length<2||i.push({stage:l,vertices:c})}return i}},31635:(t,e,n)=>{function r(t,e,n,r){var o,s=arguments.length,i=s<3?e:null===r?r=Object.getOwnPropertyDescriptor(e,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)i=Reflect.decorate(t,e,n,r);else for(var l=t.length-1;l>=0;l--)(o=t[l])&&(i=(s<3?o(i):s>3?o(e,n,i):o(e,n))||i);return s>3&&i&&Object.defineProperty(e,n,i),i}function o(t,e,n){if(null!=e){if("object"!=typeof e&&"function"!=typeof e)throw new TypeError("Object expected.");var r,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");r=e[Symbol.asyncDispose]}if(void 0===r){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");r=e[Symbol.dispose],n&&(o=r)}if("function"!=typeof r)throw new TypeError("Object not disposable.");o&&(r=function(){try{o.call(this)}catch(t){return Promise.reject(t)}}),t.stack.push({value:e,dispose:r,async:n})}else n&&t.stack.push({async:!0});return e}n.d(e,{Cg:()=>r,hk:()=>i,mS:()=>o}),Object.create,Object.create;var s="function"==typeof SuppressedError?SuppressedError:function(t,e,n){var r=new Error(n);return r.name="SuppressedError",r.error=t,r.suppressed=e,r};function i(t){function e(e){t.error=t.hasError?new s(e,t.error,"An error was suppressed during disposal."):e,t.hasError=!0}var n,r=0;return function o(){for(;n=t.stack.pop();)try{if(!n.async&&1===r)return r=0,t.stack.push(n),Promise.resolve().then(o);if(n.dispose){var s=n.dispose.call(n.value);if(n.async)return r|=2,Promise.resolve(s).then(o,function(t){return e(t),o()})}else r|=1}catch(t){e(t)}if(1===r)return t.hasError?Promise.reject(t.error):Promise.resolve();if(t.hasError)throw t.error}()}},49616:(t,e,n)=>{n.r(e),n.d(e,{default:()=>c});var r=n(31635),o=n(91429),s=n(4095),i=n(19419),l=n(69052);n(21325);let a=class{constructor(){this._tileData=new Map}async generateStreamlines(t){const{flowData:e,flowExtentInfo:n,needsMagnitude:r,simulationSettings:o,startPositions:i}=t,l=u((0,s.DE)(o,e),o,n.modelSize,r,i);return{result:{streamlines:l},transferList:l?.map(t=>t.vertices.buffer)}}async generateTiledStreamlines(t){const{flowDataTiles:e,flowExtentInfo:n,needsMagnitude:r,reset:o,simulationSettings:a,startPositions:c}=t;this._updateTileData(e,o);const f=u(function(t,e,n){const[r,o]=n.modelSize;let a=null;const c=new Map;e.forEach(e=>{c.set(e.lij,(0,s.DE)(t,e))});const u=(t,e,n)=>(0,i.Rj)(t.extent,e,n);return(s,f)=>{const h=Math.round(s),d=Math.round(f);if(!t.wrapAround&&(h<0||h>=r||d<0||d>=o))return[0,0];const[p,m]=function(t,e,n,r){const{extent:o,modelSize:s,valid:a}=t,[c,u,f]=o,h=function(t,e,n){if(null!=n&&t>e){const[r,o]=n;return o-t+(e-r)}return e-t}(c,f,a);let d=e/s[0]*h+c;return null!=a&&r&&(d=new l.hr(a[0],a[1]).normalize(d)),[d,(s[1]-n)/s[1]*(0,i.uJ)(o)+u]}(n,s,f,!0);if(!function(t,e,n){const{extent:r,valid:o}=t,[s,i,l,a]=r;return!(n<i||n>a)&&(null!=o&&s>l?e>=l||e<=s:e>=s&&e<=l)}(n,p,m))return[0,0];if(null==a||!u(a,p,m)){a=null;for(const[t,n]of e)if(u(n,p,m)){a=n;break}}if(null==a?.data)return[0,0];const w=c.get(a.lij);if(null==w)return[0,0];const{width:g,height:y,extent:M}=a;return w((p-M[0])/(0,i.VL)(M)*g,y-(m-M[1])/(0,i.uJ)(M)*y)}}(a,this._tileData,n),a,n.modelSize,r,c);return{result:{streamlines:f},transferList:f?.map(t=>t.vertices.buffer)??[]}}_updateTileData(t,e){if(e)for(const e of this._tileData.keys())t.has(e)||this._tileData.delete(e);t.forEach((t,e)=>{"delete"===t.type?this._tileData.delete(e):"on-worker"!==t.type&&"invalid"!==t.type&&this._tileData.set(e,t.data)})}};a=(0,r.Cg)([(0,o.$K)("esri.views.3d.support.flow.FlowWorker")],a);const c=a;function u(t,e,n,r,o){if(null==t)return;const i=(0,s.S1)(e,t,n[0],n[1],{positions:o}),l=[],a=function(t){return t?4:3}(r);for(const{vertices:t,stage:e}of i){const n=new Float32Array(t.length*a);for(let e=0;e<t.length;e++)n[e*a]=t[e].x,n[e*a+1]=t[e].y,n[e*a+2]=t[e].t,r&&(n[e*a+3]=t[e].speed);l.push({vertices:n,stage:e,hasMagnitude:r})}return l}},69052:(t,e,n)=>{n.d(e,{hr:()=>o,ie:()=>a,uC:()=>l});var r=n(34727);class o{constructor(t,e){this.min=t,this.max=e,this.range=e-t}normalize(t,e=0,n=!1){return s(this.range,this.min,this.max,t,e,n)}clamp(t,e=0){return(0,r.qE)(t-e,this.min,this.max)+e}monotonic(t,e,n){return t<e?e:e+i(this.range,t-e,n)}minimalMonotonic(t,e,n){return s(this.range,t,t+this.range,e,n)}center(t,e,n){return e=this.monotonic(t,e,n),this.normalize((t+e)/2,n)}diff(t,e,n){return this.monotonic(t,e,n)-t}shortestSignedDiff(t,e){t=this.normalize(t);const n=(e=this.normalize(e))-t,r=e<t?this.minimalMonotonic(t,e)-t:e-this.minimalMonotonic(e,t);return Math.abs(n)<Math.abs(r)?n:r}contains(t,e,n){return e=this.minimalMonotonic(t,e),(n=this.minimalMonotonic(t,n))>t&&n<e}}function s(t,e,n,r,o=0,s=!1){return(r-=o)<e?r+=i(t,e-r):r>n&&(r-=i(t,r-n)),s&&r===n&&(r=e),r+o}function i(t,e,n=0){return Math.ceil((e-n)/t)*t+n}const l=new o(0,2*Math.PI),a=(new o(-Math.PI,Math.PI),new o(0,360))}}]);
@@ -2,25 +2,25 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,h as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as f,addAmbientBoostFactor as w,addLightingGlobalFactor as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as h,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as L,TerrainTexture as O}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{If as S,glsl as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ShaderBuilder as _}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as A}from"../webscene/support/AlphaCutoff.js";class V extends L{}function N(r){const i=new _,{attributes:L,vertex:V,fragment:N,varyings:k}=i;L.add("position","vec3"),i.include(d,r),i.include(c,r);const H=()=>{i.include(C,r),V.code.add(z`vec3 getNormal() {
5
+ import{translate as e}from"../core/libs/gl-matrix-2/math/mat4.js";import{create as r}from"../core/libs/gl-matrix-2/factories/mat4f64.js";import{n as o,h as a}from"./vec32.js";import{create as i}from"../core/libs/gl-matrix-2/factories/vec3f64.js";import{addLinearDepth as l}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js";import{addNearFar as t}from"../views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as n}from"../views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js";import{Transform as s}from"../views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js";import{NormalAttribute as d}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateAttribute as c}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{VertexTangent as m}from"../views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js";import{OutputDepth as v}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js";import{OutputHighlight as g}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js";import{OutputHighlightOverlay as p}from"../views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js";import{EvaluateAmbientOcclusion as u}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js";import{EvaluateSceneLighting as w,addAmbientBoostFactor as f,addLightingGlobalFactor as b}from"../views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import{addMainLightDirection as h,addMainLightIntensity as y}from"../views/3d/webgl-engine/core/shaderLibrary/shading/MainLighting.glsl.js";import{NormalUtils as C}from"../views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js";import{ReadShadowMapDraw as j}from"../views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js";import{OverlayTerrain as x}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js";import{OverlayTerrainPassParameters as L,TerrainTexture as O}from"../views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js";import{addProjViewLocalOrigin as T,addViewNormal as M,addCameraPosition as P}from"../views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js";import{Float3BindUniform as $}from"../views/3d/webgl-engine/core/shaderModules/Float3BindUniform.js";import{glsl as S,If as z}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Matrix4DrawUniform as F}from"../views/3d/webgl-engine/core/shaderModules/Matrix4DrawUniform.js";import{Texture2DBindUniform as D}from"../views/3d/webgl-engine/core/shaderModules/Texture2DBindUniform.js";import{ShaderBuilder as _}from"../views/webgl/ShaderBuilder.js";import{alphaCutoff as A}from"../webscene/support/AlphaCutoff.js";class V extends L{}function N(r){const i=new _,{attributes:L,vertex:V,fragment:N,varyings:B}=i;L.add("position","vec3"),i.include(d,r),i.include(c,r);const H=()=>{i.include(C,r),V.code.add(S`vec3 getNormal() {
6
6
  float z = 1.0 - abs(normalCompressed.x) - abs(normalCompressed.y);
7
7
  vec3 n = vec3(normalCompressed + vec2(normalCompressed.x >= 0.0 ? 1.0 : -1.0,
8
8
  normalCompressed.y >= 0.0 ? 1.0 : -1.0) * min(z, 0.0), z);
9
9
  return normalize(n);
10
- }`)};T(V,r),i.include(s);const{output:U,pbrMode:E,overlayMode:q,tileBorders:I,transparencyMode:R,overlayEnabled:G}=r,J=2===R||3===R,K=G&&J;switch(U){case 0:{i.include(O,r),i.include(f,r),G&&(r.pbrMode=5===E?6:3,i.include(x,r),r.pbrMode=E);const l=2===q;l&&i.include(m,r),k.add("vnormal","vec3"),k.add("vpos","vec3",{invariant:!0}),k.add("vup","vec3"),H(),V.main.add(z`
10
+ }`)};T(V,r),i.include(s);const{output:U,overlayMode:E,tileBorders:q,transparencyMode:I,overlayEnabled:R}=r,G=2===I||3===I,J=0!==r.pbrMode,K=R&&G;switch(U){case 0:{i.include(O,r),i.include(w,r),R&&i.include(x,r);const l=2===E;l&&i.include(m,r),B.add("vnormal","vec3"),B.add("vpos","vec3",{invariant:!0}),B.add("vup","vec3"),H(),V.main.add(S`
11
11
  vpos = position;
12
12
  vec3 positionWorld = position + localOrigin;
13
13
  gl_Position = transformPosition(proj, view, vpos);
14
14
  vnormal = getNormal();
15
15
  vup = getLocalUp(position, localOrigin);
16
- ${S(l,z`forwardVertexTangent(vnormal);`)}
16
+ ${z(l,S`forwardVertexTangent(vnormal);`)}
17
17
 
18
18
  forwardTextureCoordinatesWithTransform(uv0);
19
- ${S(G,"setOverlayVTC(uv0);")}
20
- ${S(I,"forwardTextureCoordinates();")}
21
- forwardLinearDepthToReadShadowMap();`),i.include(j,r),N.include(n,r),i.include(f,r),N.include(u,r),P(N,r),w(N),b(N),N.uniforms.add(V.uniforms.get("localOrigin"),new $("viewDirection",({camera:e})=>o(B,a(B,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),l&&N.uniforms.add(new D("ovWaterTex",e=>e.overlay?.getTexture(3)),new F("view",({origin:r},{camera:o})=>e(W,o.viewMatrix,r)));const t=.2;N.code.add(z`float lum(vec3 c) {
19
+ ${z(R,"setOverlayVTC(uv0);")}
20
+ ${z(q,"forwardTextureCoordinates();")}
21
+ forwardLinearDepthToReadShadowMap();`),i.include(j,r),N.include(n,r),i.include(w,r),N.include(u,r),P(N,r),f(N),b(N),N.uniforms.add(V.uniforms.get("localOrigin"),new $("viewDirection",({camera:e})=>o(k,a(k,e.viewMatrix[12],e.viewMatrix[13],e.viewMatrix[14])))),l&&N.uniforms.add(new D("ovWaterTex",e=>e.overlay?.getTexture(3)),new F("view",({origin:r},{camera:o})=>e(W,o.viewMatrix,r)));const t=.2;N.code.add(S`float lum(vec3 c) {
22
22
  return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
23
- }`),h(N),y(N),N.main.add(z`
23
+ }`),h(N),y(N),N.main.add(S`
24
24
  vec3 normal = normalize(vnormal);
25
25
  float vndl = dot(normal, mainLightDirection);
26
26
 
@@ -29,21 +29,21 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
29
29
  float ssao = evaluateAmbientOcclusionInverse();
30
30
  vec4 tileColor = getTileColor();
31
31
 
32
- ${S(G,z`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
32
+ ${z(R,S`vec4 overlayColorOpaque = getOverlayColor(ovColorTex, vtcOverlay);
33
33
  vec4 overlayColor = overlayOpacity * overlayColorOpaque;
34
- ${S(J,`if (overlayColor.a < ${z.float(A)}) { discard; }`)}
34
+ ${z(G,`if (overlayColor.a < ${S.float(A)}) { discard; }`)}
35
35
  vec4 groundColor = tileColor;
36
36
  tileColor = tileColor * (1.0 - overlayColor.a) + overlayColor;`)}
37
37
 
38
38
  // If combined alpha is 0 we can discard pixel. The performance impact by having a discard here
39
39
  // is neglectable because terrain typically renders first into the framebuffer.
40
- if(tileColor.a < ${z.float(A)}) {
40
+ if(tileColor.a < ${S.float(A)}) {
41
41
  discard;
42
42
  }
43
43
 
44
44
  bool sliced = rejectBySlice(vpos);
45
45
  if (sliced) {
46
- tileColor *= ${z.float(t)};
46
+ tileColor *= ${S.float(t)};
47
47
  }
48
48
 
49
49
  vec3 albedo = tileColor.rgb;
@@ -51,8 +51,8 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
51
51
  // heuristic shading function used in the old terrain, now used to add ambient lighting
52
52
  vec3 additionalLight = ssao * mainLightIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;
53
53
 
54
- ${5===E||6===E?z`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:z`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
55
- ${S(l,z`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
54
+ ${J?S`fragColor = vec4(evaluatePBRSimplifiedLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight, normalize(vpos - cameraPosition), vup), tileColor.a);`:S`fragColor = vec4(evaluateSceneLighting(normal, albedo, shadow, 1.0 - ssao, additionalLight), tileColor.a);`}
55
+ ${z(l,S`vec4 overlayWaterMask = getOverlayColor(ovWaterTex, vtcOverlay);
56
56
  float waterNormalLength = length(overlayWaterMask);
57
57
  if (waterNormalLength > 0.95) {
58
58
  mat3 tbnMatrix = mat3(tbnTangent, tbnBiTangent, vnormal);
@@ -60,29 +60,29 @@ return (min(min(c.r, c.g), c.b) + max(max(c.r, c.g), c.b)) * 0.5;
60
60
  vec4 viewPosition = view*vec4(vpos, 1.0);
61
61
  vec4 waterColorLinear = getOverlayWaterColor(overlayWaterMask, waterOverlayColor, -normalize(vpos - cameraPosition), shadow, vnormal, tbnMatrix, viewPosition.xyz, vpos + localOrigin);
62
62
  vec4 waterColorNonLinear = delinearizeGamma(vec4(waterColorLinear.xyz, 1.0));
63
- float opacity = sliced ? ${z.float(t)} : 1.0;
63
+ float opacity = sliced ? ${S.float(t)} : 1.0;
64
64
  // un-gamma the ground color to mix in linear space
65
65
  fragColor = mix(groundColor, waterColorNonLinear, waterColorLinear.w) * opacity;
66
66
  }`)}
67
- ${S(I,z`vec2 dVuv = fwidth(vuv0);
67
+ ${z(q,S`vec2 dVuv = fwidth(vuv0);
68
68
  vec2 edgeFactors = smoothstep(vec2(0.0), 1.5 * dVuv, min(vuv0, 1.0 - vuv0));
69
69
  float edgeFactor = 1.0 - min(edgeFactors.x, edgeFactors.y);
70
70
  fragColor = mix(fragColor, vec4(1.0, 0.0, 0.0, 1.0), edgeFactor);`)}
71
- fragColor = applySlice(fragColor, vpos);`)}break;case 1:K&&i.include(x,r),V.main.add(z`
72
- ${S(K,"setOverlayVTC(uv0);")}
73
- gl_Position = transformPosition(proj, view, position);`),N.main.add(`${S(K,`if (getCombinedOverlayColor().a < ${z.float(A)}) discard;`)}`);break;case 3:case 4:case 5:case 6:case 7:i.include(v,r),l(i),t(i),V.main.add(z`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),N.main.add(z`outputDepth(linearDepth);`);break;case 2:K&&i.include(x,r),k.add("vnormal","vec3"),M(V),H(),V.main.add(z`
74
- ${S(K,"setOverlayVTC(uv0);")}
71
+ fragColor = applySlice(fragColor, vpos);`)}break;case 1:K&&i.include(x,r),V.main.add(S`
72
+ ${z(K,"setOverlayVTC(uv0);")}
73
+ gl_Position = transformPosition(proj, view, position);`),N.main.add(`${z(K,`if (getCombinedOverlayColor().a < ${S.float(A)}) discard;`)}`);break;case 3:case 4:case 5:case 6:case 7:i.include(v,r),l(i),t(i),V.main.add(S`gl_Position = transformPositionWithDepth(proj, view, position, nearFar, linearDepth);`),N.main.add(S`outputDepth(linearDepth);`);break;case 2:K&&i.include(x,r),B.add("vnormal","vec3"),M(V),H(),V.main.add(S`
74
+ ${z(K,"setOverlayVTC(uv0);")}
75
75
  gl_Position = transformPosition(proj, view, position);
76
- vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),N.main.add(z`
77
- ${S(K,`if (getCombinedOverlayColor().a < ${z.float(A)}) discard;`)}
76
+ vnormal = normalize((viewNormal * vec4(getNormal(), 1.0)).xyz);`),N.main.add(S`
77
+ ${z(K,`if (getCombinedOverlayColor().a < ${S.float(A)}) discard;`)}
78
78
  vec3 normal = normalize(vnormal);
79
79
  if (gl_FrontFacing == false) {
80
80
  normal = -normal;
81
81
  }
82
- fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 8:G&&(i.include(x,r),i.include(p,r)),V.main.add(z`
83
- ${S(G,"setOverlayVTC(uv0);")}
84
- gl_Position = transformPosition(proj, view, position);`),i.include(g,r),N.main.add(z`
85
- ${S(G,z`
82
+ fragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);`);break;case 8:R&&(i.include(x,r),i.include(p,r)),V.main.add(S`
83
+ ${z(R,"setOverlayVTC(uv0);")}
84
+ gl_Position = transformPosition(proj, view, position);`),i.include(g,r),N.main.add(S`
85
+ ${z(R,S`
86
86
  calculateOcclusionAndOutputHighlight(getAllOverlayHighlightValuesEncoded());`,"calculateOcclusionAndOutputHighlight();")}
87
- `)}if(9===U)if(G)r.pbrMode=0,i.include(x,r),r.pbrMode=E,V.main.add(z`gl_Position = transformPosition(proj, view, position);
88
- setOverlayVTC(uv0);`),N.main.add(z`fragColor = getOverlayColorTexel();`);else{const e=0===R;V.main.add(z`${S(e,"gl_Position = transformPosition(proj, view, position);")}`),N.main.add(z`fragColor = vec4(0.0);`)}return i}const W=r(),B=i(),k=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:V,build:N},Symbol.toStringTag,{value:"Module"}));export{V as T,k as a,N as b};
87
+ `);break;case 9:if(R)i.include(x,r),V.main.add(S`gl_Position = transformPosition(proj, view, position);
88
+ setOverlayVTC(uv0);`),N.main.add(S`fragColor = getOverlayColorTexel();`);else{const e=0===I;V.main.add(S`${z(e,"gl_Position = transformPosition(proj, view, position);")}`),N.main.add(S`fragColor = vec4(0.0);`)}}return i}const W=r(),k=i(),B=Object.freeze(Object.defineProperty({__proto__:null,TerrainPassParameters:V,build:N},Symbol.toStringTag,{value:"Module"}));export{V as T,B as a,N as b};
package/config.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.0.0-next.29";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
5
+ import"./core/has.js";import{deepMerge as e}from"./core/object.js";const s={apiKey:void 0,apiKeys:{scopes:[]},applicationName:"",applicationUrl:globalThis.location?.href,assetsPath:"",fontsUrl:"https://static.arcgis.com/fonts",geometryServiceUrl:"https://utility.arcgisonline.com/arcgis/rest/services/Geometry/GeometryServer",geoRSSServiceUrl:"https://utility.arcgis.com/sharing/rss",kmlServiceUrl:"https://utility.arcgis.com/sharing/kml",userPrivilegesApplied:!0,portalUrl:"https://www.arcgis.com",respectPrefersReducedMotion:!0,routeServiceUrl:"https://route-api.arcgis.com/arcgis/rest/services/World/Route/NAServer/Route_World",workers:{loaderConfig:{has:{},paths:{},map:{},packages:[]}},request:{crossOriginNoCorsDomains:null,httpsDomains:["arcgis.com","arcgisonline.com","esrikr.com","premiumservices.blackbridge.com","esripremium.accuweather.com","gbm.digitalglobe.com","firstlook.digitalglobe.com","msi.digitalglobe.com"],interceptors:[],internalInterceptors:[],maxUrlLength:2e3,priority:"high",proxyRules:[],proxyUrl:null,timeout:62e3,trustedServers:[],useIdentity:!0},log:{interceptors:[],level:null}};if(globalThis.esriConfig&&(e(s,globalThis.esriConfig,!0),delete s.has),!s.assetsPath){{const e="5.0.0-next.30";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
package/kernel.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.0";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.0.0-next.29",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
5
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.0";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.0.0-next.30",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../request.js";import o from"../core/Error.js";import has from"../core/has.js";import r from"../core/Logger.js";import{MultiOriginJSONMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s}from"../core/promiseUtils.js";import{on as a,sync as n}from"../core/reactiveUtils.js";import{property as l,subclass as p}from"../core/accessorSupport/decorators.js";import{persistable as m}from"../core/accessorSupport/decorators/persistable.js";import d from"../geometry/Extent.js";import u from"../geometry/SpatialReference.js";import c from"./Layer.js";import{APIKeyMixin as h}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as y}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import{PortalLayer as _}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as S}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as j,url as T}from"./support/commonProperties.js";import v from"./support/SceneModifications.js";import{initFullExtent as w}from"./support/tiles3DUtils.js";import b from"../portal/Portal.js";import{logInvalidElevationInfoWarning as x,elevationModeRequiredMessage as L,featureExpressionUnsupportedMessage as P}from"../support/elevationInfoUtils.js";import{f as I}from"../chunks/persistableUrlUtils.js";import{isBasemap as k}from"../support/userTypeGuards/isBasemap.js";import{reader as R}from"../core/accessorSupport/decorators/reader.js";let U=class extends(f(g(_(S(i(y(h(c)))))))){readModifications(e,t,o){this._modificationsSource={url:I(e,o),context:o}}initialize(){this.addHandles(a(()=>this.modifications,"after-changes",()=>this.modifications=this.modifications,n))}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=new u({wkid:4326,vcsWkid:115700}),this.fullExtent=new d(-180,-90,180,90,this.spatialReference),this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[r,i]of Object.entries(e)){if("uri"===r)try{const e=new URL("https://tmp"+i).searchParams.get("session");if(e)return e}catch(o){}"object"==typeof i&&null!==i&&t.push(i)}}return null}async requestRootAndSession(e){const i=(e,t)=>new o("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((o,a)=>{this.url||a(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,o)=>{if(this.replacesTerrain&&!this._key){const r=this.portalItem?.portal||this.parent?.portalItem?.portal||b.getDefault();r.signIn().then(()=>{r.g3dTilesEnabled?t(r.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>o(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):o(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+r.url))},()=>o(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",authMode:"anonymous",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void a(i("root-parse-failed","Error parsing root tile, details: "+t))}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=w(this._rootTilesetJSON),o(),this._rootRequestPromise=null):a(i("root-is-null","Root tile is null."))},e=>{s(e),a(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,r.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>a(e))})),this._rootRequestPromise}async _doLoad(e){const t=null!=e?e.signal:null;if(this._isUsedAsGroundLayer&&!has("enable-feature:basemap-groundlayers"))throw new o("3dtiles-init:not-supported-in-groundlayers","Layer is not supported in basemap.");try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new o("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(r){s(r)}if(null!=this._modificationsSource){const t=await v.fromUrl(this._modificationsSource.url,this.spatialReference,e);this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}beforeSave(){if(null!=this._modificationsSource)return this.load().then(()=>{},()=>{})}get hasAttributionData(){return!1}async fetchAttributionData(){return{}}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";x(r.getLogger(this),L(t,"absolute-height",e)),x(r.getLogger(this),P(t,e))}get replacesTerrain(){return!!has("enable-feature:basemap-groundlayers")&&this.hasGoogleUrl&&this._isUsedAsGroundLayer}get _isUsedAsGroundLayer(){return k(this.parent)}get hasGoogleUrl(){return!!this.url?.match(/.+\.googleapis.com/)}};e([l({type:["IntegratedMesh3DTilesLayer"]})],U.prototype,"operationalLayerType",void 0),e([l({type:v,clonable:e=>e.clone()}),m({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],U.prototype,"modifications",void 0),e([R(["web-scene","portal-item"],"modifications")],U.prototype,"readModifications",null),e([l({type:u})],U.prototype,"spatialReference",void 0),e([l({type:d})],U.prototype,"fullExtent",void 0),e([l(j)],U.prototype,"elevationInfo",null),e([l({type:["show","hide"]})],U.prototype,"listMode",void 0),e([l(T)],U.prototype,"url",void 0),e([l({readOnly:!0})],U.prototype,"type",void 0),e([l({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],U.prototype,"path",void 0),e([l({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,"minScale",void 0),e([l({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,"maxScale",void 0),e([l()],U.prototype,"replacesTerrain",null),e([l()],U.prototype,"_isUsedAsGroundLayer",null),e([l()],U.prototype,"hasGoogleUrl",null),U=e([p("esri.layers.IntegratedMesh3DTilesLayer")],U);const D=U;export{D as default};
5
+ import{__decorate as e}from"tslib";import t from"../request.js";import r from"../core/Error.js";import has from"../core/has.js";import o from"../core/Logger.js";import{MultiOriginJSONMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as s}from"../core/promiseUtils.js";import{on as a,sync as n}from"../core/reactiveUtils.js";import{property as l,subclass as p}from"../core/accessorSupport/decorators.js";import{persistable as m}from"../core/accessorSupport/decorators/persistable.js";import d from"../geometry/Extent.js";import u from"../geometry/SpatialReference.js";import c from"./Layer.js";import{APIKeyMixin as h}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as y}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as g}from"./mixins/OperationalLayer.js";import{PortalLayer as _}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as S}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as j,url as T}from"./support/commonProperties.js";import v from"./support/SceneModifications.js";import{initFullExtent as w}from"./support/tiles3DUtils.js";import b from"../portal/Portal.js";import{logInvalidElevationInfoWarning as x,elevationModeRequiredMessage as L,featureExpressionUnsupportedMessage as P}from"../support/elevationInfoUtils.js";import{f as I}from"../chunks/persistableUrlUtils.js";import{isBasemap as k}from"../support/userTypeGuards/isBasemap.js";import{reader as R}from"../core/accessorSupport/decorators/reader.js";let U=class extends(f(g(_(S(i(y(h(c)))))))){readModifications(e,t,r){this._modificationsSource={url:I(e,r),context:r}}initialize(){this.addHandles(a(()=>this.modifications,"after-changes",()=>this.modifications=this.modifications,n))}constructor(e){super(e),this.operationalLayerType="IntegratedMesh3DTilesLayer",this.modifications=null,this._modificationsSource=null,this.spatialReference=new u({wkid:4326,vcsWkid:115700}),this.fullExtent=new d(-180,-90,180,90,this.spatialReference),this.url=null,this.type="integrated-mesh-3dtiles",this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null}set elevationInfo(e){null!=e&&"absolute-height"!==e.mode||this._set("elevationInfo",e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){const t=[e];for(;t?.length>0;){const e=t.pop();if(!e)return;for(const[o,i]of Object.entries(e)){if("uri"===o)try{const e=new URL("https://tmp"+i).searchParams.get("session");if(e)return e}catch(r){}"object"==typeof i&&null!==i&&t.push(i)}}return null}async requestRootAndSession(e){const i=(e,t)=>new r("3dtiles-init:"+e,t);return this._rootRequestPromise||(this._rootRequestPromise=new Promise((r,a)=>{this.url||a(i("url-missing","Layer url missing")),this._key=this.customParameters?this.customParameters.key:null;new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){const o=this.portalItem?.portal||this.parent?.portalItem?.portal||b.getDefault();o.signIn().then(()=>{o.g3dTilesEnabled?t(o.restUrl+"/portals/self/modules/g3dtiles",{responseType:"json",query:{f:"json"}}).then(t=>{this._key=t.data.keyString,e()},()=>r(i("g3dtiles-key-error","Error fetching Google 3D Tiles key from portal"))):r(i("g3dTilesEnabled-false","Google 3D Tiles are not enabled on Portal "+o.url))},()=>r(i("sign-in-failed","Error signing in to Portal")))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:"array-buffer",signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse((new TextDecoder).decode(e.data))}catch(t){return void a(i("root-parse-failed","Error parsing root tile, details: "+t))}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=w(this._rootTilesetJSON),r(),this._rootRequestPromise=null):a(i("root-is-null","Root tile is null."))},e=>{s(e),a(i("root-load-failed","Error loading root tile")),this._rootRequestPromise=null,o.getLogger("IntegratedMesh3DTilesLayer").error("Layer loading failed",e)})},e=>a(e))})),this._rootRequestPromise}async _doLoad(e){const t=null!=e?e.signal:null;if(this._isUsedAsGroundLayer&&!has("enable-feature:basemap-groundlayers"))throw new r("3dtiles-init:not-supported-in-groundlayers","Layer is not supported in basemap.");try{await this.loadFromPortal({supportedTypes:["3DTiles Service"],validateItem:e=>{if(e.typeKeywords?.includes("IntegratedMesh"))return!0;throw new r("portal:invalid-layer-item-type","Invalid layer item, expected '${expectedType}' ",{expectedType:"3DTiles Service containing IntegratedMesh"})}},e)}catch(o){s(o)}if(null!=this._modificationsSource){const t=await v.fromUrl(this._modificationsSource.url,this.spatialReference,e);this.setAtOrigin("modifications",t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}beforeSave(){if(null!=this._modificationsSource)return this.load().then(()=>{},()=>{})}get hasAttributionData(){return!1}async fetchAttributionData(){return{}}_validateElevationInfo(e){const t="Integrated mesh 3d tiles layers";x(o.getLogger(this),L(t,"absolute-height",e)),x(o.getLogger(this),P(t,e))}get replacesTerrain(){return!!has("enable-feature:basemap-groundlayers")&&this.hasGoogleUrl&&this._isUsedAsGroundLayer}get _isUsedAsGroundLayer(){return k(this.parent)}get hasGoogleUrl(){return!!this.url?.match(/.+\.googleapis.com/)}};e([l({type:["IntegratedMesh3DTilesLayer"]})],U.prototype,"operationalLayerType",void 0),e([l({type:v,clonable:e=>e.clone()}),m({origins:["web-scene","portal-item"],type:"resource",prefix:"modifications"})],U.prototype,"modifications",void 0),e([R(["web-scene","portal-item"],"modifications")],U.prototype,"readModifications",null),e([l({type:u})],U.prototype,"spatialReference",void 0),e([l({type:d})],U.prototype,"fullExtent",void 0),e([l(j)],U.prototype,"elevationInfo",null),e([l({type:["show","hide"]})],U.prototype,"listMode",void 0),e([l(T)],U.prototype,"url",void 0),e([l({readOnly:!0})],U.prototype,"type",void 0),e([l({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],U.prototype,"path",void 0),e([l({type:Number,json:{name:"layerDefinition.minScale",write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,"minScale",void 0),e([l({type:Number,json:{name:"layerDefinition.maxScale",write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,"maxScale",void 0),e([l()],U.prototype,"replacesTerrain",null),e([l()],U.prototype,"_isUsedAsGroundLayer",null),e([l()],U.prototype,"hasGoogleUrl",null),U=e([p("esri.layers.IntegratedMesh3DTilesLayer")],U);const D=U;export{D as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import{Loadable as e}from"../../../core/Loadable.js";import r from"../../../core/Logger.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{open as o}from"../../../core/workers.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import n from"../../../geometry/Extent.js";import{toParquetJSONGeometryType as u}from"../../support/parquetUtils.js";import l from"../../../rest/support/FeatureSet.js";let c=class extends e{constructor(t){super(t),this.type="parquet"}load(t){const e=null!=t?t.signal:null;return this.addResolvingPromise(this._initialize(e)),Promise.resolve(this)}destroy(){this._connection.destroy()}setCustomParameters(t){this._proxy.setCustomParameters(t).catch(()=>{r.getLogger(this).warn("Failed to update customParameters")})}async updateFiles(t){await this._proxy.updateFiles(t)}async queryFeaturesJSON(t,e={}){return await this.load(e),this._proxy.queryFeatures(t.toJSON(),{signal:e?.signal})}async queryFeatures(t,e={}){const r=await this.queryFeaturesJSON(t,{signal:e?.signal});return l.fromJSON(r)}async queryObjectIds(t,e){return await this._proxy.queryObjectIds(t.toJSON(),{signal:e?.signal})}async queryFeatureCount(t,e){return this._proxy.queryFeatureCount(t.toJSON(),{signal:e?.signal})}async queryExtent(t,e){if(null==this.layer.encoding)return r.getLogger(this).warn("Tried to queryExtent, but source does not have a geometry. Returning null extent."),{count:0,extent:null};const s=await this._proxy.queryExtent(t.toJSON(),{signal:e?.signal});return{count:s.count,extent:n.fromJSON(s.extent)}}async _initialize(t){this._connection=await o("ParquetSourceWorker",{strategy:"dedicated",signal:t,registryTarget:this}),s(t),this._proxy=this._connection.createInvokeProxy();const{layerDefinition:e,capabilities:r}=await this._proxy.load({urls:this.layer.urls.items,fields:this.layer.fields?.map(t=>t.toJSON()),geometryType:this.layer.geometryType?u(this.layer.geometryType):null,spatialReference:this.layer.spatialReference?.toJSON(),encoding:this.layer.encoding?.toJSON(),displayOptimization:this.layer.displayOptimization,customParameters:this.layer.customParameters});s(t),this.sourceJSON=e,this.capabilities=r}};t([i()],c.prototype,"type",void 0),t([i({constructOnly:!0})],c.prototype,"layer",void 0),t([i()],c.prototype,"sourceJSON",void 0),t([i()],c.prototype,"capabilities",void 0),c=t([a("esri.layers.graphics.sources.ParquetSource")],c);export{c as ParquetSource};
5
+ import{__decorate as t}from"tslib";import{Loadable as e}from"../../../core/Loadable.js";import r from"../../../core/Logger.js";import{throwIfAborted as s}from"../../../core/promiseUtils.js";import{open as o}from"../../../core/workers.js";import{property as i}from"../../../core/accessorSupport/decorators/property.js";import{subclass as a}from"../../../core/accessorSupport/decorators/subclass.js";import n from"../../../geometry/Extent.js";import{toParquetJSONGeometryType as u}from"../../support/parquetUtils.js";import l from"../../../rest/support/FeatureSet.js";let c=class extends e{constructor(t){super(t),this.type="parquet"}load(t){const e=null!=t?t.signal:null;return this.addResolvingPromise(this._initialize(e)),Promise.resolve(this)}destroy(){this._connection?.destroy()}setCustomParameters(t){this._proxy.setCustomParameters(t).catch(()=>{r.getLogger(this).warn("Failed to update customParameters")})}async updateFiles(t){await this._proxy.updateFiles(t)}async queryFeaturesJSON(t,e={}){return await this.load(e),this._proxy.queryFeatures(t.toJSON(),{signal:e?.signal})}async queryFeatures(t,e={}){const r=await this.queryFeaturesJSON(t,{signal:e?.signal});return l.fromJSON(r)}async queryObjectIds(t,e){return await this._proxy.queryObjectIds(t.toJSON(),{signal:e?.signal})}async queryFeatureCount(t,e){return this._proxy.queryFeatureCount(t.toJSON(),{signal:e?.signal})}async queryExtent(t,e){if(null==this.layer.encoding)return r.getLogger(this).warn("Tried to queryExtent, but source does not have a geometry. Returning null extent."),{count:0,extent:null};const s=await this._proxy.queryExtent(t.toJSON(),{signal:e?.signal});return{count:s.count,extent:n.fromJSON(s.extent)}}async _initialize(t){this._connection=await o("ParquetSourceWorker",{strategy:"dedicated",signal:t,registryTarget:this}),s(t),this._proxy=this._connection.createInvokeProxy();const{layerDefinition:e,capabilities:r}=await this._proxy.load({urls:this.layer.urls.items,fields:this.layer.fields?.map(t=>t.toJSON()),geometryType:this.layer.geometryType?u(this.layer.geometryType):null,spatialReference:this.layer.spatialReference?.toJSON(),encoding:this.layer.encoding?.toJSON(),displayOptimization:this.layer.displayOptimization,customParameters:this.layer.customParameters});s(t),this.sourceJSON=e,this.capabilities=r}};t([i()],c.prototype,"type",void 0),t([i({constructOnly:!0})],c.prototype,"layer",void 0),t([i()],c.prototype,"sourceJSON",void 0),t([i()],c.prototype,"capabilities",void 0),c=t([a("esri.layers.graphics.sources.ParquetSource")],c);export{c as ParquetSource};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import n from"../../geometry/SpatialReference.js";import i from"./Field.js";import{inferLocationInfo as r}from"./locationUtils.js";import l from"./ParquetEncodingLocation.js";import s from"./ParquetEncodingWkb.js";import{createParquetFile as a,readGeoMetadata as m,readEsriMetadata as u}from"../../libs/parquet/parquet.js";const c=new o({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function p(e){return c.toJSON(e)}function f(e){return c.fromJSON(e)}function d(t,o={}){return y({urls:new e(t)},o)}async function y(e,o={}){if(e.geometryType&&e.spatialReference&&e.encoding&&e.fields)return e;if(e.urls.length<1)throw new t("parquet:bad-input","At least one url must be specified",e);const r=await a(e.urls.getItemAt(0),{getCustomParameters:()=>o.customParameters}),l=m(r),s={...e,file:r};null==s.fields&&(s.fields=r.fields().map(e=>i.fromJSON({name:e.name,type:e.type}))),null==s.encoding&&(s.encoding=g(l,s.fields));const c=u(r);if(c)switch(c.mode){case"z":s.displayOptimization={mode:"z"};break;case"xz":{const e=c.multiscale;if(!e)throw new t("bad-format","XZ display optimization requires multiscale geometries");s.displayOptimization={mode:"xz",multiscale:e};break}}if(!s.encoding)return s;switch(s.encoding.type){case"location":null==s.spatialReference&&(s.spatialReference=n.WGS84),null==s.geometryType&&(s.geometryType="point");break;case"wkb":{if(!l)return s;const e=l.primary_column,t=l.columns[e];if(s.geometryType||(s.geometryType=P(t)),s.spatialReference||(s.spatialReference=b(t)),s.fields)for(const o of Object.keys(l.columns))s.fields=s.fields.filter(e=>e.name!==o)}}return s}function g(e,t){if(null!=e){const t=e.primary_column,o=e.columns[t];return new s({primaryFieldName:t,orientation:o.orientation??null})}const o=r(t.map(e=>e.name));return o.latitudeFieldName&&o.latitudeFieldName?new l({latitudeFieldName:o.latitudeFieldName,longitudeFieldName:o.longitudeFieldName}):null}function w(e){switch(e){case"Point":return"point";case"Polygon":case"MultiPolygon":return"polygon";case"LineString":return"polyline";case"MultiPoint":return"multipoint";default:return null}}function P(e){const{geometry_types:o}=e,n=new Set;for(const t of o){const e=w(t);e&&n.add(e)}if(n.size>1)throw new t("unsupported","Parquet mixed geometry types are not support",{geometryTypes:n});return 1===n.size?n.values().next().value:void 0}function b(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?new n({wkid:t}):void 0}export{y as completeParquetLayerInfo,f as fromParquetJSONGeometryType,d as getParquetLayerInfo,c as parquetGeometryTypeKebabDict,p as toParquetJSONGeometryType};
5
+ import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import n from"../../geometry/SpatialReference.js";import i from"./Field.js";import{inferLocationInfo as r}from"./locationUtils.js";import l from"./ParquetEncodingLocation.js";import s from"./ParquetEncodingWkb.js";import{createParquetFile as a,readGeoMetadata as m,readEsriMetadata as u}from"../../libs/parquet/parquet.js";const c=new o({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function p(e){return c.toJSON(e)}function f(e){return c.fromJSON(e)}function d(t,o={}){return y({urls:new e(t)},o)}async function y(e,o={}){if(e.geometryType&&e.spatialReference&&e.encoding&&e.fields)return e;if(e.urls.length<1)throw new t("parquet:bad-input","At least one url must be specified",e);const r=await a(e.urls.getItemAt(0),{getCustomParameters:()=>o.customParameters}),l=m(r),s={...e,file:r};null==s.fields&&(s.fields=r.fields().map(e=>i.fromJSON({name:e.name,type:e.type}))),null==s.encoding&&(s.encoding=g(l,s.fields));const c=u(r);if(c)switch(c.mode){case"z":s.displayOptimization={mode:"z"};break;case"xz":{const e=c.multiscale;if(!e)throw new t("bad-format","XZ display optimization requires multiscale geometries");s.displayOptimization={mode:"xz",multiscale:e};break}}if(!s.encoding)return s;switch(s.encoding.type){case"location":null==s.spatialReference&&(s.spatialReference=n.WGS84),null==s.geometryType&&(s.geometryType="point");break;case"wkb":{if(!l)return s;const e=l.primary_column,t=l.columns[e];if(s.geometryType||(s.geometryType=P(t)),s.spatialReference||(s.spatialReference=b(t)),s.fields)for(const o of Object.keys(l.columns))s.fields=s.fields.filter(e=>e.name!==o)}}return s}function g(e,t){if(null!=e){const t=e.primary_column,o=e.columns[t];return new s({primaryFieldName:t,orientation:o.orientation??null})}const o=r(t.map(e=>e.name));return o.latitudeFieldName&&o.longitudeFieldName?new l({latitudeFieldName:o.latitudeFieldName,longitudeFieldName:o.longitudeFieldName}):null}function w(e){switch(e){case"Point":return"point";case"Polygon":case"MultiPolygon":return"polygon";case"LineString":return"polyline";case"MultiPoint":return"multipoint";default:return null}}function P(e){const{geometry_types:o}=e,n=new Set;for(const t of o){const e=w(t);e&&n.add(e)}if(n.size>1)throw new t("unsupported","Parquet mixed geometry types are not support",{geometryTypes:n});return 1===n.size?n.values().next().value:void 0}function b(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?new n({wkid:t}):void 0}export{y as completeParquetLayerInfo,f as fromParquetJSONGeometryType,d as getParquetLayerInfo,c as parquetGeometryTypeKebabDict,p as toParquetJSONGeometryType};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.0.0-next.29",
3
+ "version": "5.0.0-next.30",
4
4
  "homepage": "https://js.arcgis.com",
5
5
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
6
6
  "keywords": [