@arcgis/core 5.1.0-next.85 → 5.1.0-next.86

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 (86) hide show
  1. package/assets/components/assets/icon/gpsReceiver16.json +1 -0
  2. package/assets/components/assets/icon/gpsReceiver24.json +1 -0
  3. package/assets/components/assets/icon/gpsReceiver32.json +1 -0
  4. package/assets/components/assets/icon/totalStation16.json +1 -0
  5. package/assets/components/assets/icon/totalStation24.json +1 -0
  6. package/assets/components/assets/icon/totalStation32.json +1 -0
  7. package/assets/esri/core/workers/RemoteClient.js +1 -1
  8. package/assets/esri/core/workers/chunks/{67abbe81c16de26f61d8.js → 1bad4331a43169f3cc34.js} +1 -1
  9. package/assets/esri/core/workers/chunks/27f67a3828b78d4c1413.js +1 -0
  10. package/assets/esri/core/workers/chunks/2c916b93d8a6e6b9c0d7.js +1 -0
  11. package/assets/esri/core/workers/chunks/{db86a1119e4e58ecfbda.js → 2f8b173d1dac73ba0d9e.js} +1 -1
  12. package/assets/esri/core/workers/chunks/49e8144effc299dfcd66.js +1 -0
  13. package/assets/esri/core/workers/chunks/5166f204fd078dced5db.js +1 -0
  14. package/assets/esri/core/workers/chunks/577cbc131b21c351fae5.js +2 -0
  15. package/assets/esri/core/workers/chunks/{72691fe14024e35f85d0.js → 618106f5fbdf88ef2278.js} +1 -1
  16. package/assets/esri/core/workers/chunks/61fada8942b65fa0b5e1.js +1 -0
  17. package/assets/esri/core/workers/chunks/{05c5f68e117fc58ae801.js → 701b823763e941b71f4f.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{0219edb509e01270d42d.js → 99c6bd2125f4eb6796fe.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{ff713926985a284f5d81.js → a844547bf33a8527ee9f.js} +2 -2
  20. package/assets/esri/core/workers/chunks/aa6808146c76b2d49b64.js +1 -0
  21. package/assets/esri/core/workers/chunks/{9cac70164d8528c283af.js → add000f51c778114c028.js} +1 -1
  22. package/assets/esri/core/workers/chunks/b23e677c33db6f9bac8a.js +1 -0
  23. package/assets/esri/core/workers/chunks/{dfe1139124fda0d6c059.js → b575292013bceef9b015.js} +1 -1
  24. package/assets/esri/core/workers/chunks/bae8f2a5dfe0cfbc0688.js +1 -0
  25. package/assets/esri/core/workers/chunks/bb5f909a2f26fc6a21b0.js +2 -0
  26. package/assets/esri/core/workers/chunks/{28a45bd26eb5c9b3ec7c.js → ce66c551b7083913eee5.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{22bdea4ca52970c29504.js → d0aee7c80c5c7e23d216.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{f4220b6eab0865318033.js → d8de7fe49dba9ed589df.js} +1 -1
  29. package/assets/esri/core/workers/chunks/ded2f19a1685db2137f4.js +2 -0
  30. package/assets/esri/core/workers/chunks/{f77d23ee60c876b01e4b.js → e9a42f0262fc44a79d4b.js} +1 -1
  31. package/assets/esri/core/workers/chunks/edbdee69440dbfc05644.js +1 -0
  32. package/assets/esri/core/workers/chunks/ee057c85cdf6beb5b012.js +2 -0
  33. package/assets/esri/core/workers/chunks/ff57a071156d8a7e47be.js +1 -0
  34. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  35. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  36. package/assets/esri/themes/dark/main.css +1 -1
  37. package/assets/esri/themes/light/main.css +1 -1
  38. package/assets/esri/themes/light/view.css +1 -1
  39. package/config.js +1 -1
  40. package/interfaces.d.ts +14 -14
  41. package/kernel.js +1 -1
  42. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  43. package/layers/ParquetLayer.d.ts +10 -10
  44. package/layers/ParquetLayer.js +1 -1
  45. package/layers/StreamLayer.js +1 -1
  46. package/layers/graphics/sources/connections/FabricKustoConnection.js +2 -0
  47. package/layers/graphics/sources/connections/GeoEventConnection.js +1 -1
  48. package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
  49. package/layers/graphics/sources/connections/createConnection.js +1 -1
  50. package/layers/graphics/sources/connections/websocketUils.js +2 -0
  51. package/layers/support/ClientSideConnection.js +1 -1
  52. package/layers/support/FabricKustoSource.js +2 -0
  53. package/layers/support/{ParquetGeometryEncodingLocation.d.ts → GeometryEncodingLocation.d.ts} +9 -9
  54. package/layers/support/{ParquetGeometryEncodingLocation.js → GeometryEncodingLocation.js} +1 -1
  55. package/layers/support/{ParquetGeometryEncodingWkb.d.ts → GeometryEncodingWkb.d.ts} +8 -9
  56. package/layers/support/GeometryEncodingWkb.js +2 -0
  57. package/layers/support/kustoUtils.js +2 -0
  58. package/layers/support/parquetEncodingUtils.js +1 -1
  59. package/layers/support/parquetUtils.js +1 -1
  60. package/layers/support/types.d.ts +3 -3
  61. package/package.json +2 -2
  62. package/support/revision.js +1 -1
  63. package/views/2d/ViewState.js +1 -1
  64. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  65. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  66. package/views/2d/layers/features/sources/strategies/StreamLoadStrategy.js +1 -1
  67. package/views/3d/layers/graphics/StreamController.js +1 -1
  68. package/assets/esri/core/workers/chunks/2171aaa147aa4d9fc5b5.js +0 -1
  69. package/assets/esri/core/workers/chunks/53d13e13d8729bd4dcf2.js +0 -1
  70. package/assets/esri/core/workers/chunks/54d07eadf113f0e4e506.js +0 -1
  71. package/assets/esri/core/workers/chunks/5818f1f526577068d6ca.js +0 -2
  72. package/assets/esri/core/workers/chunks/5ec66e39e53c11e75179.js +0 -2
  73. package/assets/esri/core/workers/chunks/5f6fd20a7f4e80eafa25.js +0 -1
  74. package/assets/esri/core/workers/chunks/6d2abdb48e17b2b56599.js +0 -1
  75. package/assets/esri/core/workers/chunks/79eca9ccd4dc52da1d59.js +0 -1
  76. package/assets/esri/core/workers/chunks/7cdd0492b2191df95102.js +0 -2
  77. package/assets/esri/core/workers/chunks/7e530e635325dba07864.js +0 -1
  78. package/assets/esri/core/workers/chunks/936f2b1332ece14d7c28.js +0 -2
  79. package/assets/esri/core/workers/chunks/983f6c8727fd9484718e.js +0 -1
  80. package/assets/esri/core/workers/chunks/c7da0981822182e15f3a.js +0 -1
  81. package/layers/support/ParquetGeometryEncodingWkb.js +0 -2
  82. /package/assets/esri/core/workers/chunks/{5ec66e39e53c11e75179.js.LICENSE.txt → 577cbc131b21c351fae5.js.LICENSE.txt} +0 -0
  83. /package/assets/esri/core/workers/chunks/{ff713926985a284f5d81.js.LICENSE.txt → a844547bf33a8527ee9f.js.LICENSE.txt} +0 -0
  84. /package/assets/esri/core/workers/chunks/{5818f1f526577068d6ca.js.LICENSE.txt → bb5f909a2f26fc6a21b0.js.LICENSE.txt} +0 -0
  85. /package/assets/esri/core/workers/chunks/{7cdd0492b2191df95102.js.LICENSE.txt → ded2f19a1685db2137f4.js.LICENSE.txt} +0 -0
  86. /package/assets/esri/core/workers/chunks/{936f2b1332ece14d7c28.js.LICENSE.txt → ee057c85cdf6beb5b012.js.LICENSE.txt} +0 -0
package/config.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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.1.0-next.85";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
2
+ 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.1.0-next.86";s.assetsPath=`https://cdn.jsdelivr.net/npm/@arcgis/core@${e}/assets`}s.defaultAssetsPath=s.assetsPath}export{s as default};
package/interfaces.d.ts CHANGED
@@ -5276,6 +5276,20 @@ declare namespace __esri {
5276
5276
  export type FieldsIndex<T extends import("./layers/support/Field.js").default = import("./layers/support/Field.js").default> = import("./layers/support/FieldsIndex.js").default<T>;
5277
5277
  export const FieldsIndex: typeof import("./layers/support/FieldsIndex.js").default;
5278
5278
 
5279
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5280
+ export type GeometryEncodingLocationProperties = import("./layers/support/GeometryEncodingLocation.js").GeometryEncodingLocationProperties;
5281
+
5282
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5283
+ export type GeometryEncodingLocation = import("./layers/support/GeometryEncodingLocation.js").default;
5284
+ export const GeometryEncodingLocation: typeof import("./layers/support/GeometryEncodingLocation.js").default;
5285
+
5286
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5287
+ export type GeometryEncodingWkbProperties = import("./layers/support/GeometryEncodingWkb.js").GeometryEncodingWkbProperties;
5288
+
5289
+ /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5290
+ export type GeometryEncodingWkb = import("./layers/support/GeometryEncodingWkb.js").default;
5291
+ export const GeometryEncodingWkb: typeof import("./layers/support/GeometryEncodingWkb.js").default;
5292
+
5279
5293
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5280
5294
  export type GeometryFieldsInfoProperties = import("./layers/support/GeometryFieldsInfo.js").GeometryFieldsInfoProperties;
5281
5295
 
@@ -5395,20 +5409,6 @@ declare namespace __esri {
5395
5409
  export type OrderByInfo = import("./layers/support/OrderByInfo.js").default;
5396
5410
  export const OrderByInfo: typeof import("./layers/support/OrderByInfo.js").default;
5397
5411
 
5398
- /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5399
- export type ParquetGeometryEncodingLocationProperties = import("./layers/support/ParquetGeometryEncodingLocation.js").ParquetGeometryEncodingLocationProperties;
5400
-
5401
- /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5402
- export type ParquetGeometryEncodingLocation = import("./layers/support/ParquetGeometryEncodingLocation.js").default;
5403
- export const ParquetGeometryEncodingLocation: typeof import("./layers/support/ParquetGeometryEncodingLocation.js").default;
5404
-
5405
- /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5406
- export type ParquetGeometryEncodingWkbProperties = import("./layers/support/ParquetGeometryEncodingWkb.js").ParquetGeometryEncodingWkbProperties;
5407
-
5408
- /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5409
- export type ParquetGeometryEncodingWkb = import("./layers/support/ParquetGeometryEncodingWkb.js").default;
5410
- export const ParquetGeometryEncodingWkb: typeof import("./layers/support/ParquetGeometryEncodingWkb.js").default;
5411
-
5412
5412
  /** @deprecated since 5.0. Refactor using \@arcgis/codemod */
5413
5413
  export type PixelBlockProperties = import("./layers/support/PixelBlock.js").PixelBlockProperties;
5414
5414
 
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- 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.1";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.1.0-next.85",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
+ 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.1";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.1.0-next.86",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};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import i from"../request.js";import{has}from"../applications/Components/baUtils.js";import t from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as w}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as b}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as f}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as M}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as L}from"../views/support/Scheduler.js";import{Yield as k}from"../views/support/Yield.js";const R=3857,C=32662,S=4326,W=5773,V=115700;let j=class extends t{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._debugFlags=new Set,this._debugLevel=0,this._wasmNotLoaded="method requiring WASM was called when WASM isn't loaded",this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,i,t,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=i){const e=s?`[js] ${t}`:`${t}`;0===i||1===i?r.getLogger(this).error(e):2===i&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(L.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,i)=>{this._lyr3DMain.cancel_elevation_query(i),e.rejectCallback(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),k}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const i=this._layers.size;return 0===i&&(this._debugLog(0,3,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying"),this.destroy()),i}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(i=>{i.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){this._lyr3DMain.set_enabled(e.wasmLayerId,i),t.needMemoryUsageUpdate=!0;const s=this._isUpdating(t);t.needFrame=!0,s||t.layerView.updatingFlagChanged()}}setLayerOffset(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);t&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,i),t.needFrame=!0,t.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,i,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,i,t)}setMeshModifications(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){const s=this._lyr3DMain._malloc(8*i.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,i.length);for(let e=0;e<i.length;++e)r[e]=i[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,i.length),this._lyr3DMain._free(s);const a=this._isUpdating(t);t.needFrame=!0,a||t.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const i=this._layers.get(e);return!!i&&(i.outstandingJobCount>0||i.outstandingRenderableCount>0||i.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,i){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(t=>{this._lyr3DMain=t,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();const d="global"===this.view.viewingMode?5:3;if(5===d)this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W;else if(this.view.renderSpatialReference?.isWebMercator)this._viewSR.wkid=this._viewSR.latestWkid=R,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W;else if(this.view.renderSpatialReference?.wkid===C)this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W;else if(!this._viewSR.latestVcsWkid&&!this._viewSR.vcsWkid){const e=f(this.view.heightModelInfo);if(e)this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=e;else{const e=this.view.heightModelInfo?.heightModel,i=!e||"gravity-related-height"===e;this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=i?W:V}}const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,i,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new b(M(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,i){this._lyr3DMain?.set_lod_pixel_threshold(i);const t=this._layers.get(e.wasmLayerId);t&&(t.needFrame=!0,t.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,i,t){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===i.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===R?y.WebMercator:y.PlateCarree,r=i.projectSync(s);r&&(i=r);const a=2*i.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<i.coordinates.length;++y){const e=i.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=t?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:i,signal:t?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,i)=>{h.resolveCallback=e,h.rejectCallback=i});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((i,t)=>{o(i.signal)&&(this._lyr3DMain.cancel_elevation_query(t),i.rejectCallback(n()),e.push(t))});for(let i=0;i<e.length;++i)this._elevationQueries.delete(e[i])}_pulseTask(e){const i=this._lyr3DMain;if(i){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:t,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:t,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};i.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;i.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let t=0,s=0;this._layers.forEach(e=>{t+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),t/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-t-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,t,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount+=1,t||e.layerView.updatingFlagChanged()}_decrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount-=1;t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount+=1,i||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,i){for(;!i.done&&e.length>0;){e.shift()(this._lyr3DMain),i.madeProgress()}}_onJobFailed(e,i,t){i.error.length&&this._debugLog(1,1,i.error,!1),this._lyr3DMain&&!e.layerView.destroyed&&this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc)),this._decrementJobCount(e,t)}_onJobSucceeded(e,i,t){if(this._lyr3DMain){if(e.layerView.destroyed)return void this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc));const{data:s}=i,r=e=>{const r=s.byteLength,a=e._malloc(r);try{new Uint8Array(e.HEAPU8.buffer,a,r).set(s),e.on_job_completed(t.jobId,i.jobDescJson,a,r)}finally{e._free(a)}};this._pendingJobCompleted.push(r)}this._decrementJobCount(e,t)}_getRequestPromises(e,t,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(i(e.toString(),t).then(e=>e.data))}return a}_getInitialPromise(e,i,t,s,r,a,n){const o=this._getRequestPromises(e.urls,i,t,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(i=>{let t=1;return l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===i.details?.httpStatus?(t=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),{status:t,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),i=this._layers.get(e.layerId);if(!i)return;this._incrementJobCount(i,e);const t=i.abortController.signal,s=i.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:t,query:{...i.customParameters,token:i.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(i,r,e);else if(0===r.status)this._onJobSucceeded(i,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const i of e)o.inputs.push(i);return this._workerHandle.invoke(o,t)}).then(t=>{1===t.status?this._onJobFailed(i,t,e):0===t.status&&this._onJobSucceeded(i,t,e)}).catch(t=>{this._decrementJobCount(i,e),l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc))})}};try{const i=await this._getInitialPromise(e,n,d,s,o,t,a);if(3===i.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(t);h(await this._getInitialPromise(e,n,d,s,o,t,s.session))}else h(i)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc)),this._decrementJobCount(i,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:i}=e;i.data&&i.data.byteLength>0&&(i.data=i.data.slice());const t=this._layers.get(e.layerId);t&&(this._incrementRenderableCount(t),t.layerView.createRenderable(e).then(i=>{const s=i.numGaussians??0;if(this._lyr3DMain&&!t.layerView.destroyed){const{layerId:t,handle:r}=e,{memUsageBytes:a}=i;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!0,t,r,a,s))}this._decrementRenderableCount(t)}).catch(i=>{if(l(i)||this._debugLog(2,1,`createRenderable failed with error ${i}.`),this._lyr3DMain&&!t.layerView.destroyed){const{layerId:i,handle:t}=e;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!1,i,t,0,0))}this._decrementRenderableCount(t)}))}_freeRenderables(e,i,t){if(t<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,t);for(let o=0;o<t;++o)a.push(n[o]);for(let o=0;o<t;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,i,t,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,t,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,i,t,s){this._lyr3DMain&&this._debugLog(t,s,this._lyr3DMain.UTF8ToString(e,i),!1)}_onElevQueryComplete(e){const i=this._elevationQueries.get(e),t=this._lyr3DMain.get_elevation_query_result(e);if(i)if(t.succeeded&&t.zs){const s=t.zs.slice(),r=i.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),i.resolveCallback(r),this._elevationQueries.delete(e)}else i.rejectCallback(new s("elevation-query:error",t?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const i=this._layers.get(e.wasmLayerId);return!!i&&(i.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const i=e.layer;if(!i.url||!i.rootTilesetJSON)return{wasmLayerId:w};const t="integrated-mesh-3dtiles"===i.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(i.rootTilesetJSON),t);if(0!==s.errorCode)return{wasmLayerId:w,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:i.customParameters,apiKey:i.apiKey,needFrame:!0});const o=D(i.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(i)){let t=i.spatialReference;if(e.useEsriCrs&&i.esriCrsSpatialReference){t=i.esriCrsSpatialReference;const s=u(t);let r=1,a=1;!s&&t.wkid&&-1!==t.wkid&&(r=c.values[c[t.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(t)),s,r,a).catch(d),t.vcsWkid&&this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==t.vcsWkid&&this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d)}h=this._lyr3DMain.add_gaussian_splat_layer(l,i.url,a,o)}else this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,i.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")));return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:w})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const i=this._isUpdating(e);e.needFrame=!0,i||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??""}}_cleanUpSR(e){return-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],j.prototype,"view",void 0),e([h({readOnly:!0})],j.prototype,"isTerrainReady",null),j=e([_("esri.layers.Lyr3DWasmPerSceneView")],j);const I=j;export{I as default};
2
+ import{__decorate as e}from"tslib";import i from"../request.js";import{has}from"../applications/Components/baUtils.js";import t from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as w}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as b}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as f}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as R}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as M}from"../views/support/Scheduler.js";import{Yield as k}from"../views/support/Yield.js";const L=3857,C=32662,S=4326,W=5773;let V=class extends t{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._debugFlags=new Set,this._debugLevel=2,this._wasmNotLoaded="method requiring WASM was called when WASM isn't loaded",this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,i,t,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=i){const e=s?`[js] ${t}`:`${t}`;0===i||1===i?r.getLogger(this).error(e):2===i&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(M.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,i)=>{this._lyr3DMain.cancel_elevation_query(i),e.rejectCallback(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),k}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const i=this._layers.size;return 0===i&&(this._debugLog(0,3,"Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying"),this.destroy()),i}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(i=>{i.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){this._lyr3DMain.set_enabled(e.wasmLayerId,i),t.needMemoryUsageUpdate=!0;const s=this._isUpdating(t);t.needFrame=!0,s||t.layerView.updatingFlagChanged()}}setLayerOffset(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);t&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,i),t.needFrame=!0,t.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,i,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,i,t)}setMeshModifications(e,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const t=this._layers.get(e.wasmLayerId);if(t){const s=this._lyr3DMain._malloc(8*i.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,i.length);for(let e=0;e<i.length;++e)r[e]=i[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,i.length),this._lyr3DMain._free(s);const a=this._isUpdating(t);t.needFrame=!0,a||t.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const i=this._layers.get(e);return!!i&&(i.outstandingJobCount>0||i.outstandingRenderableCount>0||i.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,i){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(t=>{this._lyr3DMain=t,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();let d="global"===this.view.viewingMode?6:4;6===d?(this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W,this._viewSR.wkt=""):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=f(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=L,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this.view.renderSpatialReference?.wkid===C?(this._viewSR.wkid=this._viewSR.latestWkid=S,d=3,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this._viewSR.vcsWkid||this._viewSR.latestVcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,i,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new b(R(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,i){this._lyr3DMain?.set_lod_pixel_threshold(i);const t=this._layers.get(e.wasmLayerId);t&&(t.needFrame=!0,t.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,i,t){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===i.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===L?y.WebMercator:y.PlateCarree,r=i.projectSync(s);r&&(i=r);const a=2*i.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<i.coordinates.length;++y){const e=i.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=t?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:i,signal:t?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,i)=>{h.resolveCallback=e,h.rejectCallback=i});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((i,t)=>{o(i.signal)&&(this._lyr3DMain.cancel_elevation_query(t),i.rejectCallback(n()),e.push(t))});for(let i=0;i<e.length;++i)this._elevationQueries.delete(e[i])}_pulseTask(e){const i=this._lyr3DMain;if(i){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:t,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:t,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};i.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;i.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let t=0,s=0;this._layers.forEach(e=>{t+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),t/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-t-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,t,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount+=1,t||e.layerView.updatingFlagChanged()}_decrementJobCount(e,i){if(i.isForElevationQuery)return;const t=this._isUpdating(e);e.outstandingJobCount-=1;t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount+=1,i||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const i=this._isUpdating(e);e.outstandingRenderableCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,i){for(;!i.done&&e.length>0;){e.shift()(this._lyr3DMain),i.madeProgress()}}_onJobFailed(e,i,t){i.error.length&&this._debugLog(1,1,i.error,!1),this._lyr3DMain&&!e.layerView.destroyed&&this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc)),this._decrementJobCount(e,t)}_onJobSucceeded(e,i,t){if(this._lyr3DMain){if(e.layerView.destroyed)return void this._pendingJobFailed.push(e=>e.on_job_failed(t.jobId,t.desc));const{data:s}=i,r=e=>{const r=s.byteLength,a=e._malloc(r);try{new Uint8Array(e.HEAPU8.buffer,a,r).set(s),e.on_job_completed(t.jobId,i.jobDescJson,a,r)}finally{e._free(a)}};this._pendingJobCompleted.push(r)}this._decrementJobCount(e,t)}_getRequestPromises(e,t,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(i(e.toString(),t).then(e=>e.data))}return a}_getInitialPromise(e,i,t,s,r,a,n){const o=this._getRequestPromises(e.urls,i,t,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(i=>{let t=1;return l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===i.details?.httpStatus?(t=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),{status:t,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),i=this._layers.get(e.layerId);if(!i)return;this._incrementJobCount(i,e);const t=i.abortController.signal,s=i.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:t,query:{...i.customParameters,token:i.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(i,r,e);else if(0===r.status)this._onJobSucceeded(i,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const i of e)o.inputs.push(i);return this._workerHandle.invoke(o,t)}).then(t=>{1===t.status?this._onJobFailed(i,t,e):0===t.status&&this._onJobSucceeded(i,t,e)}).catch(t=>{this._decrementJobCount(i,e),l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc))})}};try{const i=await this._getInitialPromise(e,n,d,s,o,t,a);if(3===i.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(t);h(await this._getInitialPromise(e,n,d,s,o,t,s.session))}else h(i)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain&&this._pendingJobFailed.push(i=>i.on_job_failed(e.jobId,e.desc)),this._decrementJobCount(i,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:i}=e;i.data&&i.data.byteLength>0&&(i.data=i.data.slice());const t=this._layers.get(e.layerId);t&&(this._incrementRenderableCount(t),t.layerView.createRenderable(e).then(i=>{const s=i.numGaussians??0;if(this._lyr3DMain&&!t.layerView.destroyed){const{layerId:t,handle:r}=e,{memUsageBytes:a}=i;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!0,t,r,a,s))}this._decrementRenderableCount(t)}).catch(i=>{if(l(i)||this._debugLog(2,1,`createRenderable failed with error ${i}.`),this._lyr3DMain&&!t.layerView.destroyed){const{layerId:i,handle:t}=e;this._pendingRenderableCreated.push(e=>e.on_renderable_created(!1,i,t,0,0))}this._decrementRenderableCount(t)}))}_freeRenderables(e,i,t){if(t<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,t);for(let o=0;o<t;++o)a.push(n[o]);for(let o=0;o<t;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,i,t,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,i,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,t,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,i,t,s){this._lyr3DMain&&this._debugLog(t,s,this._lyr3DMain.UTF8ToString(e,i),!1)}_onElevQueryComplete(e){const i=this._elevationQueries.get(e),t=this._lyr3DMain.get_elevation_query_result(e);if(i)if(t.succeeded&&t.zs){const s=t.zs.slice(),r=i.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),i.resolveCallback(r),this._elevationQueries.delete(e)}else i.rejectCallback(new s("elevation-query:error",t?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const i=this._layers.get(e.wasmLayerId);return!!i&&(i.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const i=e.layer;if(!i.url||!i.rootTilesetJSON)return{wasmLayerId:w};const t="integrated-mesh-3dtiles"===i.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(i.rootTilesetJSON),t);if(0!==s.errorCode)return{wasmLayerId:w,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:i.customParameters,apiKey:i.apiKey,needFrame:!0});const o=D(i.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(i)){let t=i.spatialReference;if(e.useEsriCrs&&i.esriCrsSpatialReference){t=i.esriCrsSpatialReference;const s=u(t);let r=1,a=1;!s&&t.wkid&&-1!==t.wkid&&(r=c.values[c[t.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(t)),s,r,a).catch(d),!this._haveAddedViewSRForNoOpPrj&&t.vcsWkid&&this._viewSR.vcsWkid&&-1!==this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==t.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d),this._haveAddedViewSRForNoOpPrj=!0)}h=this._lyr3DMain.add_gaussian_splat_layer(l,i.url,a,o)}else this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,i.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")));return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:w})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const i=this._isUpdating(e);e.needFrame=!0,i||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??""}}_cleanUpSR(e){return-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],V.prototype,"view",void 0),e([h({readOnly:!0})],V.prototype,"isTerrainReady",null),V=e([_("esri.layers.Lyr3DWasmPerSceneView")],V);const j=V;export{j as default};
@@ -26,8 +26,8 @@ import type { QueryProperties } from "../rest/support/Query.js";
26
26
  import type { CreatePopupTemplateOptions } from "../support/popupUtils.js";
27
27
  import type { ObjectId } from "../views/types.js";
28
28
  import type { FieldProperties } from "./support/Field.js";
29
- import type { ParquetGeometryEncodingLocationProperties } from "./support/ParquetGeometryEncodingLocation.js";
30
- import type { ParquetGeometryEncodingWkbProperties } from "./support/ParquetGeometryEncodingWkb.js";
29
+ import type { GeometryEncodingLocationProperties } from "./support/GeometryEncodingLocation.js";
30
+ import type { GeometryEncodingWkbProperties } from "./support/GeometryEncodingWkb.js";
31
31
  import type { ExtentProperties } from "../geometry/Extent.js";
32
32
  import type { LabelClassProperties } from "./support/LabelClass.js";
33
33
  import type { PopupTemplateProperties } from "../PopupTemplate.js";
@@ -88,13 +88,13 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
88
88
  * latitude and longitude columns and display those as the geometry. Otherwise, the encoding must be specified manually.
89
89
  *
90
90
  * ParquetLayer supports two geometry encoding types:
91
- * * [ParquetGeometryEncodingLocation](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingLocation/): Used when geometry is stored as coordinate fields.
91
+ * * [GeometryEncodingLocation](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/): Used when geometry is stored as coordinate fields.
92
92
  * If the file contains coordinate fields named `"lng/lat"`, `"lon/lat"`, `"long/lat"`, `"longitude/latitude"`, `"x/y"`, `"xcenter/ycenter"`, `"longitude83/latitude83"`,
93
93
  * `"longdecdeg/latdecdeg"`, `"point-x/point-y"`, these are detected automatically. The field names are case-insensitive.
94
- * For other coordinate field names, set the layer’s [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `ParquetGeometryEncodingLocation`
94
+ * For other coordinate field names, set the layer’s [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `GeometryEncodingLocation`
95
95
  * with the coordinate fields specified, and set the layer’s [spatialReference](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#spatialReference) and [geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) properties accordingly.
96
96
  *
97
- * * [ParquetGeometryEncodingWkb](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingWkb/): Used when geometry is stored as a WKB-encoded column.
97
+ * * [GeometryEncodingWkb](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingWkb/): Used when geometry is stored as a WKB-encoded column.
98
98
  * Set the layer's [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `ParquetGeometryEncodingWkb` with
99
99
  * the geometry column name, and set the layer’s [spatialReference](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#spatialReference) (WGS84 or WebMercator) and [geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) properties accordingly.
100
100
  *
@@ -110,7 +110,7 @@ export interface ParquetLayerProperties extends LayerProperties, CustomParameter
110
110
  * geometryType: "polygon"
111
111
  * });
112
112
  */
113
- geometryEncoding?: ((ParquetGeometryEncodingWkbProperties & { type: "wkb" }) | (ParquetGeometryEncodingLocationProperties & { type: "location" })) | null;
113
+ geometryEncoding?: ((GeometryEncodingWkbProperties & { type: "wkb" }) | (GeometryEncodingLocationProperties & { type: "location" })) | null;
114
114
  /**
115
115
  * The label definition for this layer, specified as an array of [LabelClass](https://developers.arcgis.com/javascript/latest/references/core/layers/support/LabelClass/). Use this property to specify
116
116
  * labeling properties for the layer.
@@ -371,13 +371,13 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
371
371
  * latitude and longitude columns and display those as the geometry. Otherwise, the encoding must be specified manually.
372
372
  *
373
373
  * ParquetLayer supports two geometry encoding types:
374
- * * [ParquetGeometryEncodingLocation](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingLocation/): Used when geometry is stored as coordinate fields.
374
+ * * [GeometryEncodingLocation](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/): Used when geometry is stored as coordinate fields.
375
375
  * If the file contains coordinate fields named `"lng/lat"`, `"lon/lat"`, `"long/lat"`, `"longitude/latitude"`, `"x/y"`, `"xcenter/ycenter"`, `"longitude83/latitude83"`,
376
376
  * `"longdecdeg/latdecdeg"`, `"point-x/point-y"`, these are detected automatically. The field names are case-insensitive.
377
- * For other coordinate field names, set the layer’s [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `ParquetGeometryEncodingLocation`
377
+ * For other coordinate field names, set the layer’s [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `GeometryEncodingLocation`
378
378
  * with the coordinate fields specified, and set the layer’s [spatialReference](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#spatialReference) and [geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) properties accordingly.
379
379
  *
380
- * * [ParquetGeometryEncodingWkb](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingWkb/): Used when geometry is stored as a WKB-encoded column.
380
+ * * [GeometryEncodingWkb](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingWkb/): Used when geometry is stored as a WKB-encoded column.
381
381
  * Set the layer's [geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding) to an instance of `ParquetGeometryEncodingWkb` with
382
382
  * the geometry column name, and set the layer’s [spatialReference](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#spatialReference) (WGS84 or WebMercator) and [geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) properties accordingly.
383
383
  *
@@ -394,7 +394,7 @@ export default class ParquetLayer extends ParquetLayerSuperclass {
394
394
  * });
395
395
  */
396
396
  get geometryEncoding(): ParquetGeometryEncodingUnion | null | undefined;
397
- set geometryEncoding(value: ((ParquetGeometryEncodingWkbProperties & { type: "wkb" }) | (ParquetGeometryEncodingLocationProperties & { type: "location" })) | null | undefined);
397
+ set geometryEncoding(value: ((GeometryEncodingWkbProperties & { type: "wkb" }) | (GeometryEncodingLocationProperties & { type: "location" })) | null | undefined);
398
398
  /** The geometry type of features in the layer. All features must be of the same type. */
399
399
  accessor geometryType: ParquetGeometryType | null | undefined;
400
400
  /**
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import i from"../core/Collection.js";import o from"../core/Error.js";import has from"../core/has.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as n}from"../core/object.js";import{watch as p}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{reader as l}from"../core/accessorSupport/decorators/reader.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as d}from"../core/accessorSupport/decorators/writer.js";import m from"../geometry/Extent.js";import y from"../geometry/SpatialReference.js";import c from"../graphic/ParquetGraphicOrigin.js";import f from"./Layer.js";import{ParquetSource as h}from"./graphics/sources/ParquetSource.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as j}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as v}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as w}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as b}from"./mixins/OperationalLayer.js";import{OrderedLayer as O}from"./mixins/OrderedLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{labelsVisible as q,legendEnabled as E,popupEnabled as F}from"./support/commonProperties.js";import I from"./support/FeatureTemplate.js";import P from"./support/Field.js";import{defineFieldProperties as S}from"./support/fieldProperties.js";import{fixRendererFields as T}from"./support/fieldUtils.js";import R from"./support/LabelClass.js";import{reader as L}from"./support/labelingInfo.js";import U from"./support/ParquetGeometryEncodingLocation.js";import _ from"./support/ParquetGeometryEncodingWkb.js";import{parquetGeometryTypeKebabDict as D}from"./support/parquetUtils.js";import{rendererTypes as z}from"../renderers/support/typeUtils.js";import C from"../rest/support/Query.js";import{t as Q}from"../chunks/persistableUrlUtils.js";import{createPopupTemplate as k}from"../support/popupUtils.js";const G=S(),J="__OBJECTID",M={types:{key:"type",base:null,typeMap:{wkb:_,location:U}},json:{name:"layerDefinition.geometryEncoding",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryEncoding"}}}}};let N=class extends(w(v(g(O(x(b(s(j(t(f)))))))))){constructor(e){super(e),this.copyright=null,this.definitionExpression=null,this.displayOptimization=null,this.fields=null,this.fieldsIndex=null,this.geometryEncoding=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new c(this),this.labelsVisible=!0,this.labelingInfo=null,this.objectIdField=J,this.operationalLayerType="ParquetLayer",this.outFields=null,this.persistenceEnabled=!!has("parquetlayer-persistence-enabled"),this.popupTemplate=null,this.source=null,this.spatialReference=null,this.templates=null,this.title="Parquet",this.type="parquet",this.urls=new i}destroy(){this.source?.destroy()}async load(e){return this.addResolvingPromise(this._load(e)),this.addHandles([p(()=>this.urls,e=>this.source?.updateFiles(e.items)),p(()=>this.customParameters,e=>this.source?.setCustomParameters(e))]),this}get capabilities(){return this.source?.capabilities}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,r,t,i){const o=e.filter(e=>!(e.name===J&&"oid"===e.type)).map(e=>e.toJSON(i));n(t,o,r)}get isTable(){return null==this.geometryEncoding&&null==this.displayOptimization}set renderer(e){T(e,this.fieldsIndex),this._set("renderer",e)}readUrls(e){return new i("files"===e.type?e.urls:[])}writeUrls(e,r,t,i){const s=[];if(e?.length){i={blockedRelativeUrls:i?.blockedRelativeUrls};for(let r of e)r=Q(r,i),r&&s.push(r)}s.length?r.source={type:"files",urls:s}:i.messages?.push(new o("parquet-layer:missing-urls","Missing or empty 'urls'",{layer:this}))}createPopupTemplate(e){return k(this,e)}createQuery(){const e=new C;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}async createSource(e){const r=new h({layer:this});return await r.load(e),r}getFieldDomain(e,r){return null}getField(e){return this.fieldsIndex.get(e)}async queryFeatures(e,r){await this.load();const t=await this.source.queryFeatures(this._normalizeQuery(e),r),i=this.graphicOrigin;if(t?.features)for(const o of t.features)o.layer=o.sourceLayer=this,o.origin=i;return t}async queryObjectIds(e,r){return await this.load(),this.source.queryObjectIds(this._normalizeQuery(e),r)}async queryFeatureCount(e,r){return await this.load(),this.source.queryFeatureCount(this._normalizeQuery(e),r)}async queryExtent(e,r){return await this.load(),this.source.queryExtent(this._normalizeQuery(e),r)}_normalizeQuery(e){return C.from(e)??this.createQuery()}async _load(e){const r=await this.createSource(e);this._set("source",r),this.read(r.sourceJSON,{origin:"service"}),["fields"].forEach(e=>this.revertToOrigin(e,"service")),T(this.renderer,this.fieldsIndex),null==this.spatialReference&&(this.spatialReference=y.WGS84)}};e([a({readOnly:!0,json:{read:!1,write:!1}})],N.prototype,"capabilities",null),e([a({type:String})],N.prototype,"copyright",void 0),e([a({readOnly:!0})],N.prototype,"defaultPopupTemplate",null),e([a({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],N.prototype,"definitionExpression",void 0),e([a()],N.prototype,"displayOptimization",void 0),e([a({type:[P],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],N.prototype,"fields",void 0),e([d("fields")],N.prototype,"writeFields",null),e([a(G.fieldsIndex)],N.prototype,"fieldsIndex",void 0),e([a(M)],N.prototype,"geometryEncoding",void 0),e([a({type:m,json:{name:"extent"}})],N.prototype,"fullExtent",void 0),e([a({type:D.apiValues,json:{name:"layerDefinition.geometryType",read:{reader:D.read},write:{writer:D.write,ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryType",reader:D.read}}}}})],N.prototype,"geometryType",void 0),e([a({readOnly:!0,clonable:!1})],N.prototype,"graphicOrigin",void 0),e([a(q)],N.prototype,"labelsVisible",void 0),e([a({type:[R],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:L},write:!0}})],N.prototype,"labelingInfo",void 0),e([a(E)],N.prototype,"legendEnabled",void 0),e([a()],N.prototype,"file",void 0),e([a({type:String,readOnly:!0})],N.prototype,"objectIdField",void 0),e([a({type:["ParquetLayer"]})],N.prototype,"operationalLayerType",void 0),e([a(G.outFields)],N.prototype,"outFields",void 0),e([a(F)],N.prototype,"popupEnabled",void 0),e([a({type:r,json:{name:"popupInfo",write:!0}})],N.prototype,"popupTemplate",void 0),e([a({types:z,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{read:{source:"drawingInfo.renderer"}}}}})],N.prototype,"renderer",null),e([a({type:h,readOnly:!0,cast:null,json:{read:!1}})],N.prototype,"source",void 0),e([a({type:y,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"extent.spatialReference"}}}}})],N.prototype,"spatialReference",void 0),e([a({type:[I]})],N.prototype,"templates",void 0),e([a()],N.prototype,"title",void 0),e([a({json:{read:!1},readOnly:!0})],N.prototype,"type",void 0),e([a({type:i.ofType(String),json:{name:"source",write:{isRequired:!0,ignoreOrigin:!0}}})],N.prototype,"urls",void 0),e([l("urls")],N.prototype,"readUrls",null),e([d("urls")],N.prototype,"writeUrls",null),N=e([u("esri.layers.ParquetLayer")],N);const V=N;export{V as default};
2
+ import{__decorate as e}from"tslib";import r from"../PopupTemplate.js";import{ClonableMixin as t}from"../core/Clonable.js";import i from"../core/Collection.js";import o from"../core/Error.js";import has from"../core/has.js";import{MultiOriginJSONSupportMixin as s}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as n}from"../core/object.js";import{watch as p}from"../core/reactiveUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import{reader as l}from"../core/accessorSupport/decorators/reader.js";import{subclass as u}from"../core/accessorSupport/decorators/subclass.js";import{writer as d}from"../core/accessorSupport/decorators/writer.js";import m from"../geometry/Extent.js";import y from"../geometry/SpatialReference.js";import c from"../graphic/ParquetGraphicOrigin.js";import f from"./Layer.js";import{ParquetSource as h}from"./graphics/sources/ParquetSource.js";import{BlendLayer as g}from"./mixins/BlendLayer.js";import{CustomParametersMixin as j}from"./mixins/CustomParametersMixin.js";import{FeatureEffectLayer as v}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as w}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as b}from"./mixins/OperationalLayer.js";import{OrderedLayer as O}from"./mixins/OrderedLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{labelsVisible as q,legendEnabled as E,popupEnabled as F}from"./support/commonProperties.js";import I from"./support/FeatureTemplate.js";import S from"./support/Field.js";import{defineFieldProperties as T}from"./support/fieldProperties.js";import{fixRendererFields as P}from"./support/fieldUtils.js";import R from"./support/GeometryEncodingLocation.js";import L from"./support/GeometryEncodingWkb.js";import U from"./support/LabelClass.js";import{reader as _}from"./support/labelingInfo.js";import{parquetGeometryTypeKebabDict as D}from"./support/parquetUtils.js";import{rendererTypes as z}from"../renderers/support/typeUtils.js";import C from"../rest/support/Query.js";import{t as Q}from"../chunks/persistableUrlUtils.js";import{createPopupTemplate as k}from"../support/popupUtils.js";const G=T(),J="__OBJECTID",M={types:{key:"type",base:null,typeMap:{wkb:L,location:R}},json:{name:"layerDefinition.geometryEncoding",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryEncoding"}}}}};let N=class extends(w(v(g(O(x(b(s(j(t(f)))))))))){constructor(e){super(e),this.copyright=null,this.definitionExpression=null,this.displayOptimization=null,this.fields=null,this.fieldsIndex=null,this.geometryEncoding=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new c(this),this.labelsVisible=!0,this.labelingInfo=null,this.objectIdField=J,this.operationalLayerType="ParquetLayer",this.outFields=null,this.persistenceEnabled=!!has("parquetlayer-persistence-enabled"),this.popupTemplate=null,this.source=null,this.spatialReference=null,this.templates=null,this.title="Parquet",this.type="parquet",this.urls=new i}destroy(){this.source?.destroy()}async load(e){return this.addResolvingPromise(this._load(e)),this.addHandles([p(()=>this.urls,e=>this.source?.updateFiles(e.items)),p(()=>this.customParameters,e=>this.source?.setCustomParameters(e))]),this}get capabilities(){return this.source?.capabilities}get defaultPopupTemplate(){return this.createPopupTemplate()}writeFields(e,r,t,i){const o=e.filter(e=>!(e.name===J&&"oid"===e.type)).map(e=>e.toJSON(i));n(t,o,r)}get isTable(){return null==this.geometryEncoding&&null==this.displayOptimization}set renderer(e){P(e,this.fieldsIndex),this._set("renderer",e)}readUrls(e){return new i("files"===e.type?e.urls:[])}writeUrls(e,r,t,i){const s=[];if(e?.length){i={blockedRelativeUrls:i?.blockedRelativeUrls};for(let r of e)r=Q(r,i),r&&s.push(r)}s.length?r.source={type:"files",urls:s}:i.messages?.push(new o("parquet-layer:missing-urls","Missing or empty 'urls'",{layer:this}))}createPopupTemplate(e){return k(this,e)}createQuery(){const e=new C;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}async createSource(e){const r=new h({layer:this});return await r.load(e),r}getFieldDomain(e,r){return null}getField(e){return this.fieldsIndex.get(e)}async queryFeatures(e,r){await this.load();const t=await this.source.queryFeatures(this._normalizeQuery(e),r),i=this.graphicOrigin;if(t?.features)for(const o of t.features)o.layer=o.sourceLayer=this,o.origin=i;return t}async queryObjectIds(e,r){return await this.load(),this.source.queryObjectIds(this._normalizeQuery(e),r)}async queryFeatureCount(e,r){return await this.load(),this.source.queryFeatureCount(this._normalizeQuery(e),r)}async queryExtent(e,r){return await this.load(),this.source.queryExtent(this._normalizeQuery(e),r)}_normalizeQuery(e){return C.from(e)??this.createQuery()}async _load(e){const r=await this.createSource(e);this._set("source",r),this.read(r.sourceJSON,{origin:"service"}),["fields"].forEach(e=>this.revertToOrigin(e,"service")),P(this.renderer,this.fieldsIndex),null==this.spatialReference&&(this.spatialReference=y.WGS84)}};e([a({readOnly:!0,json:{read:!1,write:!1}})],N.prototype,"capabilities",null),e([a({type:String})],N.prototype,"copyright",void 0),e([a({readOnly:!0})],N.prototype,"defaultPopupTemplate",null),e([a({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],N.prototype,"definitionExpression",void 0),e([a()],N.prototype,"displayOptimization",void 0),e([a({type:[S],json:{name:"layerDefinition.fields",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{name:"fields"}}}})],N.prototype,"fields",void 0),e([d("fields")],N.prototype,"writeFields",null),e([a(G.fieldsIndex)],N.prototype,"fieldsIndex",void 0),e([a(M)],N.prototype,"geometryEncoding",void 0),e([a({type:m,json:{name:"extent"}})],N.prototype,"fullExtent",void 0),e([a({type:D.apiValues,json:{name:"layerDefinition.geometryType",read:{reader:D.read},write:{writer:D.write,ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"geometryType",reader:D.read}}}}})],N.prototype,"geometryType",void 0),e([a({readOnly:!0,clonable:!1})],N.prototype,"graphicOrigin",void 0),e([a(q)],N.prototype,"labelsVisible",void 0),e([a({type:[U],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:_},write:!0}})],N.prototype,"labelingInfo",void 0),e([a(E)],N.prototype,"legendEnabled",void 0),e([a()],N.prototype,"file",void 0),e([a({type:String,readOnly:!0})],N.prototype,"objectIdField",void 0),e([a({type:["ParquetLayer"]})],N.prototype,"operationalLayerType",void 0),e([a(G.outFields)],N.prototype,"outFields",void 0),e([a(F)],N.prototype,"popupEnabled",void 0),e([a({type:r,json:{name:"popupInfo",write:!0}})],N.prototype,"popupTemplate",void 0),e([a({types:z,json:{name:"layerDefinition.drawingInfo.renderer",write:!0,origins:{service:{read:{source:"drawingInfo.renderer"}}}}})],N.prototype,"renderer",null),e([a({type:h,readOnly:!0,cast:null,json:{read:!1}})],N.prototype,"source",void 0),e([a({type:y,json:{name:"layerDefinition.spatialReference",write:{ignoreOrigin:!0,isRequired:!0},origins:{service:{read:{source:"extent.spatialReference"}}}}})],N.prototype,"spatialReference",void 0),e([a({type:[I]})],N.prototype,"templates",void 0),e([a()],N.prototype,"title",void 0),e([a({json:{read:!1},readOnly:!0})],N.prototype,"type",void 0),e([a({type:i.ofType(String),json:{name:"source",write:{isRequired:!0,ignoreOrigin:!0}}})],N.prototype,"urls",void 0),e([l("urls")],N.prototype,"readUrls",null),e([d("urls")],N.prototype,"writeUrls",null),N=e([u("esri.layers.ParquetLayer")],N);const V=N;export{V as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import r from"../request.js";import{ClonableMixin as i}from"../core/Clonable.js";import o from"../core/Error.js";import{handlesGroup as s}from"../core/handleUtils.js";import{clone as n}from"../core/lang.js";import a from"../core/Logger.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{debounce as l,throwIfAbortError as m}from"../core/promiseUtils.js";import{property as d,subclass as c}from"../core/accessorSupport/decorators.js";import{Integer as u}from"../core/accessorSupport/ensureType.js";import y from"../geometry/Extent.js";import f from"../geometry/SpatialReference.js";import{featureGeometryTypeKebabDictionary as h}from"../geometry/support/typeUtils.js";import g from"../graphic/StreamGraphicOrigin.js";import j from"./Layer.js";import{ArcGISService as v}from"./mixins/ArcGISService.js";import{BlendLayer as w}from"./mixins/BlendLayer.js";import{CustomParametersMixin as b}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as S}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as I}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as x}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as R}from"./mixins/OperationalLayer.js";import{PortalLayer as T}from"./mixins/PortalLayer.js";import{RefreshableLayer as F}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as P}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as L}from"./mixins/TemporalLayer.js";import{TrackableLayer as U}from"./mixins/TrackableLayer.js";import{labelsVisible as O,legendEnabled as E,maxScale as k,minScale as D,popupEnabled as A,screenSizePerspectiveEnabled as C,url as N}from"./support/commonProperties.js";import{createDefaultRenderer as G}from"./support/featureLayerUtils.js";import _ from"./support/Field.js";import{defineFieldProperties as J}from"./support/fieldProperties.js";import{fixRendererFields as M,fixTimeInfoFields as V}from"./support/fieldUtils.js";import z from"./support/LabelClass.js";import{reader as q}from"./support/labelingInfo.js";import W from"./support/PurgeOptions.js";import{defaultStreamIdField as Q}from"./support/streamLayerUtils.js";import{read as B}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as H}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as K,rendererTypes as X}from"../renderers/support/typeUtils.js";import Y from"../rest/support/Query.js";import{createPopupTemplate as Z}from"../support/popupUtils.js";import $ from"../symbols/support/ElevationInfo.js";import{addLayerUnsupportedError as ee}from"../webdoc/support/unsupportedErrors.js";import{reader as te}from"../core/accessorSupport/decorators/reader.js";const re=J();let ie=class extends(S(x(I(w(L(U(P(F(v(R(T(p(b(i(j))))))))))))))){constructor(...e){super(...e),this.copyright=null,this.definitionExpression=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.geometryDefinition=null,this.geometryType=null,this.graphicOrigin=new g(this),this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.maxReconnectionAttempts=0,this.maxReconnectionInterval=20,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.operationalLayerType="ArcGISStreamLayer",this.outFields=["*"],this.popupEnabled=!0,this.popupTemplate=null,this.purgeOptions=new W,this.refreshInterval=0,this.screenSizePerspectiveEnabled=!0,this.sourceJSON=null,this.spatialReference=f.WGS84,this.type="stream",this.url=null,this.updateInterval=300,this.useViewTime=!0,this.webSocketUrl=null,this._debouncedSaveOperations=l(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/streamLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){if(!("WebSocket"in globalThis))return this.addResolvingPromise(Promise.reject(new o("stream-layer:websocket-unsupported","WebSocket is not supported in this browser. StreamLayer will not have real-time connection with the stream service."))),Promise.resolve(this);const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Stream Service","Feed"]},e).catch(m).then(()=>this._fetchService(t))),Promise.resolve(this)}get defaultPopupTemplate(){return this.createPopupTemplate()}set featureReduction(e){const t=this._normalizeFeatureReduction(e);this._set("featureReduction",t)}set renderer(e){M(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=B(i,t,r)||void 0;return e||a.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return G(t,r)}async connect(e){const[{createConnection:t}]=await Promise.all([import("./graphics/sources/connections/createConnection.js"),this.load()]),r=this.geometryType?h.toJSON(this.geometryType):null,{customParameters:i=null,definitionExpression:o=null,geometryDefinition:n=null,maxReconnectionAttempts:a=0,maxReconnectionInterval:p=20,spatialReference:l=this.spatialReference}=e||this.createConnectionParameters(),m=t(this.parsedUrl,this.spatialReference,l,r,o,n,a,p,i??void 0),d=s([this.on("send-message-to-socket",e=>m.sendMessageToSocket(e)),this.on("send-message-to-client",e=>m.sendMessageToClient(e))]);return m.once("destroy",d.remove),m}createConnectionParameters(){return{spatialReference:this.spatialReference,customParameters:this.customParameters,definitionExpression:this.definitionExpression,geometryDefinition:this.geometryDefinition,maxReconnectionAttempts:this.maxReconnectionAttempts,maxReconnectionInterval:this.maxReconnectionInterval}}createPopupTemplate(e){return Z(this,e)}createQuery(){const e=new Y;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}getFieldDomain(e,t){if(!this.fields)return null;let r=null;return this.fields.some(t=>(t.name===e&&(r=t.domain),!!r)),r}getField(e){return this.fieldsIndex.get(e)}serviceSupportsSpatialReference(e){return!0}sendMessageToSocket(e){this.emit("send-message-to-socket",e)}sendMessageToClient(e){this.emit("send-message-to-client",e)}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}write(e,t){return this.webSocketUrl?(ee(t,this,"a custom websocket connection cannot be written to web scenes and web maps"),null):this.parsedUrl?super.write(e,t):(ee(t,this,"a client-side only connection without a url cannot be written to web scenes and web maps"),null)}async _fetchService(e){if(!!!this.webSocketUrl&&this.parsedUrl){if(!this.sourceJSON){const{data:t}=await r(this.parsedUrl.path,{query:{f:"json",...this.customParameters,...this.parsedUrl.query},responseType:"json",signal:e});this.sourceJSON=t}}else{if(!this.timeInfo?.trackIdField)throw new o("stream-layer:missing-metadata","The stream layer trackIdField must be specified.");if(!this.objectIdField){const e=this.fields.find(e=>"oid"===e.type)?.name;if(!e)throw new o("stream-layer:missing-metadata","The stream layer objectIdField must be specified.");this.objectIdField=e}if(!this.fields)throw new o("stream-layer:missing-metadata","The stream layer fields must be specified.");if(this.fields.some(e=>e.name===this.objectIdField)||this.fields.push(new _({name:this.objectIdField,alias:this.objectIdField,type:"oid"})),!this.geometryType)throw new o("stream-layer:missing-metadata","The stream layer geometryType must be specified.");this.webSocketUrl&&(this.url=this.webSocketUrl)}return this.read(this.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}),M(this.renderer,this.fieldsIndex),V(this.timeInfo,this.fieldsIndex),this.objectIdField||(this.objectIdField=Q),H(this,{origin:"service"})}};e([d({type:String})],ie.prototype,"copyright",void 0),e([d({readOnly:!0})],ie.prototype,"defaultPopupTemplate",null),e([d({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],ie.prototype,"definitionExpression",void 0),e([d({type:String})],ie.prototype,"displayField",void 0),e([d({type:$})],ie.prototype,"elevationInfo",void 0),e([d({json:{origins:{"web-map":{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-scene":{read:!1,write:!1}}}})],ie.prototype,"featureReduction",null),e([d(re.fields)],ie.prototype,"fields",void 0),e([d(re.fieldsIndex)],ie.prototype,"fieldsIndex",void 0),e([d({type:y,json:{name:"layerDefinition.definitionGeometry",write:!0}})],ie.prototype,"geometryDefinition",void 0),e([d({type:h.apiValues,json:{read:{reader:h.read}}})],ie.prototype,"geometryType",void 0),e([d({readOnly:!0,clonable:!1})],ie.prototype,"graphicOrigin",void 0),e([d(O)],ie.prototype,"labelsVisible",void 0),e([d({type:[z],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:q},write:!0}})],ie.prototype,"labelingInfo",void 0),e([d(E)],ie.prototype,"legendEnabled",void 0),e([d({type:["show","hide"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],ie.prototype,"listMode",void 0),e([d({type:u})],ie.prototype,"maxReconnectionAttempts",void 0),e([d({type:u})],ie.prototype,"maxReconnectionInterval",void 0),e([d(k)],ie.prototype,"maxScale",void 0),e([d(D)],ie.prototype,"minScale",void 0),e([d({type:String})],ie.prototype,"objectIdField",void 0),e([d({value:"ArcGISStreamLayer",type:["ArcGISStreamLayer"]})],ie.prototype,"operationalLayerType",void 0),e([d({readOnly:!0})],ie.prototype,"outFields",void 0),e([d(A)],ie.prototype,"popupEnabled",void 0),e([d({type:t,json:{name:"popupInfo",write:!0}})],ie.prototype,"popupTemplate",void 0),e([d({type:W})],ie.prototype,"purgeOptions",void 0),e([d({json:{read:!1,write:!1}})],ie.prototype,"refreshInterval",void 0),e([d({types:X,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{name:"layerDefinition.drawingInfo.renderer",types:K,write:!0}},write:{target:"layerDefinition.drawingInfo.renderer"}}})],ie.prototype,"renderer",null),e([te("service","renderer",["drawingInfo.renderer","defaultSymbol"]),te("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],ie.prototype,"readRenderer",null),e([d((()=>{const e=n(C);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],ie.prototype,"screenSizePerspectiveEnabled",void 0),e([d()],ie.prototype,"sourceJSON",void 0),e([d({type:f,json:{origins:{service:{read:{source:"spatialReference"}}}}})],ie.prototype,"spatialReference",void 0),e([d({json:{read:!1}})],ie.prototype,"type",void 0),e([d(N)],ie.prototype,"url",void 0),e([d({type:Number})],ie.prototype,"updateInterval",void 0),e([d({json:{read:!1,write:!1}})],ie.prototype,"useViewTime",void 0),e([d({type:String})],ie.prototype,"webSocketUrl",void 0),ie=e([c("esri.layers.StreamLayer")],ie);const oe=ie;export{oe as default};
2
+ import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import r from"../request.js";import{ClonableMixin as i}from"../core/Clonable.js";import o from"../core/Error.js";import{handlesGroup as s}from"../core/handleUtils.js";import{clone as n}from"../core/lang.js";import a from"../core/Logger.js";import{MultiOriginJSONSupportMixin as p}from"../core/MultiOriginJSONSupport.js";import{debounce as l,throwIfAbortError as m}from"../core/promiseUtils.js";import{urlToObject as d}from"../core/urlUtils.js";import{property as c,subclass as u}from"../core/accessorSupport/decorators.js";import{Integer as f}from"../core/accessorSupport/ensureType.js";import y from"../geometry/Extent.js";import h from"../geometry/SpatialReference.js";import{featureGeometryTypeKebabDictionary as g}from"../geometry/support/typeUtils.js";import b from"../graphic/StreamGraphicOrigin.js";import v from"./Layer.js";import{ArcGISService as w}from"./mixins/ArcGISService.js";import{BlendLayer as j}from"./mixins/BlendLayer.js";import{CustomParametersMixin as S}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as I}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as x}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as R}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as F}from"./mixins/PortalLayer.js";import{RefreshableLayer as P}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as U}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as O}from"./mixins/TemporalLayer.js";import{TrackableLayer as L}from"./mixins/TrackableLayer.js";import{labelsVisible as k,legendEnabled as E,maxScale as D,minScale as A,popupEnabled as N,screenSizePerspectiveEnabled as C,url as J}from"./support/commonProperties.js";import G from"./support/FabricKustoSource.js";import{createDefaultRenderer as _}from"./support/featureLayerUtils.js";import M from"./support/Field.js";import{defineFieldProperties as V}from"./support/fieldProperties.js";import{fixRendererFields as q,fixTimeInfoFields as z}from"./support/fieldUtils.js";import{completeKustoStreamLayerInfo as K}from"./support/kustoUtils.js";import W from"./support/LabelClass.js";import{reader as Q}from"./support/labelingInfo.js";import B from"./support/PurgeOptions.js";import{defaultStreamIdField as H}from"./support/streamLayerUtils.js";import{read as X}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Y}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Z,rendererTypes as $}from"../renderers/support/typeUtils.js";import ee from"../rest/support/Query.js";import{createPopupTemplate as te}from"../support/popupUtils.js";import re from"../symbols/support/ElevationInfo.js";import{addLayerUnsupportedError as ie}from"../webdoc/support/unsupportedErrors.js";import{reader as oe}from"../core/accessorSupport/decorators/reader.js";const se=V();let ne=class extends(I(R(x(j(O(L(U(P(w(T(F(p(S(i(v))))))))))))))){constructor(...e){super(...e),this.copyright=null,this.definitionExpression=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.geometryDefinition=null,this.geometryType=null,this.graphicOrigin=new b(this),this.labelsVisible=!0,this.labelingInfo=null,this.legendEnabled=!0,this.maxReconnectionAttempts=0,this.maxReconnectionInterval=20,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.operationalLayerType="ArcGISStreamLayer",this.outFields=["*"],this.popupEnabled=!0,this.popupTemplate=null,this.purgeOptions=new B,this.refreshInterval=0,this.screenSizePerspectiveEnabled=!0,this.source=null,this.sourceJSON=null,this.spatialReference=h.WGS84,this.type="stream",this.url=null,this.updateInterval=300,this.useViewTime=!0,this.webSocketUrl=null,this._debouncedSaveOperations=l(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/streamLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){if(!("WebSocket"in globalThis))return this.addResolvingPromise(Promise.reject(new o("stream-layer:websocket-unsupported","WebSocket is not supported in this browser. StreamLayer will not have real-time connection with the stream service."))),Promise.resolve(this);const t=null!=e?e.signal:null;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Stream Service","Feed"]},e).catch(m).then(()=>this._fetchService(t))),Promise.resolve(this)}get defaultPopupTemplate(){return this.createPopupTemplate()}set featureReduction(e){const t=this._normalizeFeatureReduction(e);this._set("featureReduction",t)}set renderer(e){q(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=X(i,t,r)||void 0;return e||a.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return _(t,r)}async connect(e){const[{createConnection:t}]=await Promise.all([import("./graphics/sources/connections/createConnection.js"),this.load()]),r=e?.spatialReference?.toJSON()??this.spatialReference.toJSON(),i=t(this.getStreamConnectionSource(e),r),o=s([this.on("send-message-to-socket",e=>i.sendMessageToSocket(e)),this.on("send-message-to-client",e=>i.sendMessageToClient(e))]);return i.once("destroy",o.remove),i}getStreamConnectionSource(e){const{customParameters:t=null,definitionExpression:r=null,geometryDefinition:i=null,maxReconnectionAttempts:s=0,maxReconnectionInterval:n=20}=e||this.createConnectionParameters(),a=this.geometryType?g.toJSON(this.geometryType):null,p=this.spatialReference.toJSON();if(this.source){if(!this.timeInfo?.trackIdField)throw new o("stream-layer:missing-metadata","TrackIdField required for Kusto data source.");return{type:"kusto",database:this.database,table:this.source.table,trackIdField:this.timeInfo.trackIdField,geometryEncoding:this.source.geometryEncoding.toJSON(),sourceSpatialReference:p,refreshInterval:this.source.refreshInterval}}return this.webSocketUrl?{type:"custom",url:d(this.webSocketUrl),customParameters:t,definitionExpression:r,geometryDefinition:i,geometryType:a,maxReconnectionAttempts:s,maxReconnectionInterval:n,sourceSpatialReference:p}:this.parsedUrl?{type:"geoevent",url:this.parsedUrl,customParameters:t,definitionExpression:r,geometryDefinition:i,geometryType:a,maxReconnectionAttempts:s,maxReconnectionInterval:n,sourceSpatialReference:p}:{type:"client",geometryType:a,sourceSpatialReference:this.spatialReference.toJSON()}}createConnectionParameters(){return{spatialReference:this.spatialReference,customParameters:this.customParameters,definitionExpression:this.definitionExpression,geometryDefinition:this.geometryDefinition,maxReconnectionAttempts:this.maxReconnectionAttempts,maxReconnectionInterval:this.maxReconnectionInterval}}createPopupTemplate(e){return te(this,e)}createQuery(){const e=new ee;return e.returnGeometry=!0,e.outFields=["*"],e.where=this.definitionExpression||"1=1",e}getFieldDomain(e,t){if(!this.fields)return null;let r=null;return this.fields.some(t=>(t.name===e&&(r=t.domain),!!r)),r}getField(e){return this.fieldsIndex.get(e)}serviceSupportsSpatialReference(e){return!0}sendMessageToSocket(e){this.emit("send-message-to-socket",e)}sendMessageToClient(e){this.emit("send-message-to-client",e)}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}write(e,t){return this.webSocketUrl?(ie(t,this,"a custom websocket connection cannot be written to web scenes and web maps"),null):this.source?(ie(t,this,"a custom source cannot be written to web scenes and web maps"),null):this.parsedUrl?super.write(e,t):(ie(t,this,"a client-side only connection without a url cannot be written to web scenes and web maps"),null)}async _fetchService(e){if(this.source){const e=await K(this.source.workspace,this.source.database,this.source.table,{fields:this.fields,source:this.source,database:this.database});if(this.database=e.database,!e.fields)throw new o("stream-layer:missing-metadata","The stream layer fields must be specified.");if(this.fields=e.fields,!e.source)throw new o("stream-layer:missing-metadata","Unable to infer Kusto source.",{layerInfo:e});if(!e.source.geometryEncoding)throw new o("stream-layer:missing-metadata","Unable to infer Kusto geometry encoding.",{layerInfo:e});this.source=e.source}if(this.parsedUrl){if(!this.sourceJSON){const{data:t}=await r(this.parsedUrl.path,{query:{f:"json",...this.customParameters,...this.parsedUrl.query},responseType:"json",signal:e});this.sourceJSON=t}}else{if(!this.timeInfo?.trackIdField)throw new o("stream-layer:missing-metadata","The stream layer trackIdField must be specified.");if(!this.fields)throw new o("stream-layer:missing-metadata","The stream layer fields must be specified.");if(!this.objectIdField){const e=this.fields.find(e=>"oid"===e.type)?.name;e&&(this.objectIdField=e)}if(this.fields.some(e=>e.name===this.objectIdField)||this.fields.push(new M({name:this.objectIdField,alias:this.objectIdField,type:"oid"})),!this.geometryType)throw new o("stream-layer:missing-metadata","The stream layer geometryType must be specified.")}return this.read(this.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}),q(this.renderer,this.fieldsIndex),z(this.timeInfo,this.fieldsIndex),this.objectIdField||(this.objectIdField=H),Y(this,{origin:"service"})}};e([c({type:String})],ne.prototype,"copyright",void 0),e([c()],ne.prototype,"database",void 0),e([c({readOnly:!0})],ne.prototype,"defaultPopupTemplate",null),e([c({type:String,json:{name:"layerDefinition.definitionExpression",write:{enabled:!0,allowNull:!0}}})],ne.prototype,"definitionExpression",void 0),e([c({type:String})],ne.prototype,"displayField",void 0),e([c({type:re})],ne.prototype,"elevationInfo",void 0),e([c({json:{origins:{"web-map":{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-scene":{read:!1,write:!1}}}})],ne.prototype,"featureReduction",null),e([c(se.fields)],ne.prototype,"fields",void 0),e([c(se.fieldsIndex)],ne.prototype,"fieldsIndex",void 0),e([c({type:y,json:{name:"layerDefinition.definitionGeometry",write:!0}})],ne.prototype,"geometryDefinition",void 0),e([c({type:g.apiValues,json:{read:{reader:g.read}}})],ne.prototype,"geometryType",void 0),e([c({readOnly:!0,clonable:!1})],ne.prototype,"graphicOrigin",void 0),e([c(k)],ne.prototype,"labelsVisible",void 0),e([c({type:[W],json:{name:"layerDefinition.drawingInfo.labelingInfo",read:{reader:Q},write:!0}})],ne.prototype,"labelingInfo",void 0),e([c(E)],ne.prototype,"legendEnabled",void 0),e([c({type:["show","hide"],json:{origins:{"portal-item":{read:!1,write:!1}}}})],ne.prototype,"listMode",void 0),e([c({type:f})],ne.prototype,"maxReconnectionAttempts",void 0),e([c({type:f})],ne.prototype,"maxReconnectionInterval",void 0),e([c(D)],ne.prototype,"maxScale",void 0),e([c(A)],ne.prototype,"minScale",void 0),e([c({type:String})],ne.prototype,"objectIdField",void 0),e([c({value:"ArcGISStreamLayer",type:["ArcGISStreamLayer"]})],ne.prototype,"operationalLayerType",void 0),e([c({readOnly:!0})],ne.prototype,"outFields",void 0),e([c(N)],ne.prototype,"popupEnabled",void 0),e([c({type:t,json:{name:"popupInfo",write:!0}})],ne.prototype,"popupTemplate",void 0),e([c({type:B})],ne.prototype,"purgeOptions",void 0),e([c({json:{read:!1,write:!1}})],ne.prototype,"refreshInterval",void 0),e([c({types:$,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{name:"layerDefinition.drawingInfo.renderer",types:Z,write:!0}},write:{target:"layerDefinition.drawingInfo.renderer"}}})],ne.prototype,"renderer",null),e([oe("service","renderer",["drawingInfo.renderer","defaultSymbol"]),oe("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],ne.prototype,"readRenderer",null),e([c((()=>{const e=n(C);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],ne.prototype,"screenSizePerspectiveEnabled",void 0),e([c({type:G,json:{write:!1}})],ne.prototype,"source",void 0),e([c()],ne.prototype,"sourceJSON",void 0),e([c({type:h,json:{origins:{service:{read:{source:"spatialReference"}}}}})],ne.prototype,"spatialReference",void 0),e([c({json:{read:!1}})],ne.prototype,"type",void 0),e([c(J)],ne.prototype,"url",void 0),e([c({type:Number})],ne.prototype,"updateInterval",void 0),e([c({json:{read:!1,write:!1}})],ne.prototype,"useViewTime",void 0),e([c({type:String})],ne.prototype,"webSocketUrl",void 0),ne=e([u("esri.layers.StreamLayer")],ne);const ae=ne;export{ae as default};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import e from"../../../../request.js";import t from"../../../../core/Error.js";import{checkProjectionSupport as n,project as s}from"../../data/projectionSupport.js";import{escapeKustoIdentifier as o,escapeKustoStringLiteral as i}from"../../../support/kustoUtils.js";import r from"../../../support/StreamConnection.js";class a extends r{constructor(e,t){super(),this._config=e,this._outSpatialReference=t,this.connectionStatus="connected",this.errorString=null,this._isPolling=!1,this._lastIngestedAt=null,this._pollTimer=null,this._pollRecentData=async()=>{if(!this.destroyed&&!this._isPolling){this._isPolling=!0;try{const e=await this._queryChanges(this._lastIngestedAt);if(this.destroyed)return;this._handleResult(e)}catch(e){this.errorString=e instanceof Error?e.message:"Failed to fetch"}finally{this._isPolling=!1}}},this._initialize()}destroy(){super.destroy(),this._pollTimer&&(clearInterval(this._pollTimer),this._pollTimer=null)}sendMessageToSocket(e){throw new t("kusto:unsupported","sendMessageToSocket not supported for Kusto connections")}sendMessageToClient(e){throw new t("kusto:unsupported","sendMessageToClient not supported for Kusto connections")}updateCustomParameters(e){throw new t("kusto:unsupported","updateCustomParameters not supported for Kusto connections")}async _initialize(){await n(this._config.sourceSpatialReference,this._outSpatialReference);try{const e=await this._queryInitial();this._handleResult(e),this._pollTimer=setInterval(this._pollRecentData,6e4*this._config.refreshInterval)}catch{throw new t("kusto:connection","Failed to query KQL database")}}async _queryInitial(){const{trackIdField:e}=this._config,n=l(await this._executeQuery(`${o(this._config.table)} | extend IngestedAt = ingestion_time() | summarize arg_max(IngestedAt, *) by ${o(e)}`));if(!n)throw new t("kusto:connection","Unable to find primaryTable");return{ingestedAt:u(n),table:n}}async _queryChanges(e=null){const n=e??"1970-01-01T00:00:00Z",s=l(await this._executeQuery(`${o(this._config.table)} | extend IngestedAt = ingestion_time() | where IngestedAt > todatetime('${i(n)}') | order by IngestedAt asc`));if(!s)throw new t("kusto:connection","Unable to find primaryTable");return{ingestedAt:u(s),table:s}}async _executeQuery(t){const n=this._config.database,s=n.properties.queryServiceUri,{data:o}=await e(`${s}/v2/rest/query`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:n.displayName,csl:t})});return o}_handleResult(e){this._lastIngestedAt=e.ingestedAt;const t=this._createFeatures(e.table);if(null!=t){this.onMessage(t);for(const e of t)this.onFeature(e)}}_createFeatures(e){if(null==e||0===e.Rows.length)return null;const{xField:t,yField:n}=this._config.geometryEncoding,s=e.Columns.findIndex(e=>e.ColumnName===t),o=e.Columns.findIndex(e=>e.ColumnName===n);return e.Rows.map(t=>this._createFeature(e.Columns,s,o,t))}_createFeature(e,t,n,o){const{xField:i,yField:r}=this._config.geometryEncoding,a={};for(let s=0;s<e.length;s++){const t=e[s],n=o[s]??null;t.ColumnName!==r&&t.ColumnName!==i&&(a[t.ColumnName]=n)}let l=null;const u=o[t],c=o[n];return null!=c&&null!=u&&(l=s({x:u,y:c},this._config.sourceSpatialReference,this._outSpatialReference)),{attributes:a,geometry:l}}}function l(e){return e.find(e=>"DataTable"===e.FrameType&&"PrimaryResult"===e.TableKind)??null}function u(e){const t=e.Columns.findIndex(e=>"IngestedAt"===e.ColumnName);if(t<0)return null;let n=null;for(const s of e.Rows){const e=s[t];"string"==typeof e&&(null==n||e>n)&&(n=e)}return n}export{a as FabricKustoConnection};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../request.js";import r from"../../../../core/Error.js";import i from"../../../../core/Logger.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{subclass as s}from"../../../../core/accessorSupport/decorators.js";import n from"../../../../geometry/SpatialReference.js";import{fromJSON as a}from"../../../../geometry/support/jsonUtils.js";import{WebSocketConnection as c}from"./WebSocketConnection.js";import{executeQuery as u}from"../../../../rest/query/operations/query.js";import l from"../../../../rest/support/Query.js";const f=1e4,h={maxQueryDepth:5,maxRecordCountFactor:3};let d=class extends c{constructor(e){super({...h,...e}),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){const e=await this._fetchServiceDefinition(this._config.source);e.timeInfo.trackIdField||i.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");const t=this._fetchWebSocketUrl(e.streamUrls,this._config.spatialReference);this._buddyServicesQuery||(this._buddyServicesQuery=this._queryBuddyServices()),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);const{filter:r,outFields:o}=this._config;this.destroyed||this._setFilter(r,o)}_onMessage(e){if("attributes"in e){let o;try{o=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(o.geometry)}catch(t){return void i.getLogger(this).error(new r("geoevent-connection","Failed to parse message",t))}this.onFeature(o)}else this.onMessage(e)}async _fetchServiceDefinition(e){const r={f:"json",...this._config.customParameters},i=t(e.path,{query:r,responseType:"json"}),o=(await i).data;return this._serviceDefinition=o,o}_fetchWebSocketUrl(e,t){const r=e[0],{urls:i,token:s}=r,n=this._inferWebSocketBaseUrl(i);return o(`${n}/subscribe`,{outSR:""+t.wkid,token:s})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(const t of e)if(t.includes("wss"))return t;return i.getLogger(this).error(new r("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){const o=this._websocket;if(null==o||null==e&&null==t)return;const s=JSON.stringify({filter:this._serializeFilter(e,t)});let n=!1;const a=Promise.withResolvers(),c=()=>{n||(this.destroyed||this._websocket!==o||i.getLogger(this).error(new r("geoevent-connection","Server timed out when setting filter")),a.reject())},u=e=>{const t=JSON.parse(e.data);t.filter&&(t.error&&(i.getLogger(this).error(new r("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),a.reject(t.error)),this._setWebSocketJSONParseHandler(o),n=!0,a.resolve())};return o.onmessage=u,o.send(s),setTimeout(c,f),a.promise}_serializeFilter(e,t){const o={};if(null==e&&null==t)return o;if(e?.geometry)try{const t=a(e.geometry);if("extent"!==t.type)throw new r("geoevent-connection",`Expected extent but found type ${t.type}`);o.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(s){i.getLogger(this).error(new r("geoevent-connection","Encountered an error when setting connection geometryDefinition",s))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(o.where=e.where),null!=t&&(o.outFields=t.join(",")),o}_enrich(e){if(!this._relatedFeatures)return e;const t=this._serviceDefinition.relatedFeatures.joinField,o=e.attributes[t],s=this._relatedFeatures.get(o);if(!s)return i.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;const{attributes:n,geometry:a}=s;for(const r in n)e.attributes[r]=n[r];return a&&(e.geometry=a),e.geometry||e.centroid||i.getLogger(this).error(new r("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{const{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),i=this._queryArchive(t);await r;const o=await i;if(!o)return;for(const s of o.features)this.onFeature(this._enrich(s))}catch(e){i.getLogger(this).error(new r("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;const t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){const t=new((await import("../../../FeatureLayer.js")).default)({url:e}),{capabilities:r}=await t.load(),i=r.query.supportsMaxRecordCountFactor,o=r.query.supportsPagination,s=r.query.supportsCentroid,a=this._config.maxRecordCountFactor,c=t.capabilities.query.maxRecordCount,f=i?c*a:c,h=new l;if(h.outFields=this._config.outFields??["*"],h.where=this._config.filter?.where??"1=1",h.returnGeometry=!0,h.returnExceededLimitFeatures=!0,h.outSpatialReference=n.fromJSON(this._config.spatialReference),s&&(h.returnCentroid=!0),i&&(h.maxRecordCountFactor=a),o)return h.num=f,t.destroy(),this._queryPages(e,h);const d=await u(e,h,this._config.sourceSpatialReference);return t.destroy(),d}async _queryPages(e,t,r=[],i=0){t.start=null!=t.num?i*t.num:null;const o=await u(e,t,this._config.sourceSpatialReference);return o.exceededTransferLimit&&i<(this._config.maxQueryDepth??0)?(o.features.forEach(e=>r.push(e)),this._queryPages(e,t,r,i+1)):(r.forEach(e=>o.features.push(e)),o)}_addRelatedFeatures(e){const t=new Map,r=e.features,i=this._serviceDefinition.relatedFeatures.joinField;for(const o of r){const e=o.attributes[i];t.set(e,o)}this._relatedFeatures=t}};d=e([s("esri.layers.graphics.sources.connections.GeoEventConnection")],d);export{d as default};
2
+ import{__decorate as e}from"tslib";import t from"../../../../request.js";import r from"../../../../core/Error.js";import i from"../../../../core/Logger.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{subclass as s}from"../../../../core/accessorSupport/decorators.js";import n from"../../../../geometry/SpatialReference.js";import{fromJSON as a}from"../../../../geometry/support/jsonUtils.js";import{WebSocketConnection as c}from"./WebSocketConnection.js";import{serializeStreamServiceFilter as u}from"./websocketUils.js";import{executeQuery as l}from"../../../../rest/query/operations/query.js";import f from"../../../../rest/support/Query.js";const h=1e4,d={maxQueryDepth:5,maxRecordCountFactor:3};let g=class extends c{constructor(e,t){super({...d,...e},t),this._buddyServicesQuery=null,this._relatedFeatures=null}async _open(){const e=await this._fetchServiceDefinition(this._config.url);e.timeInfo.trackIdField||i.getLogger(this).warn("GeoEvent service was configured without a TrackIdField. This may result in certain functionality being disabled. The purgeOptions.maxObservations property will have no effect.");const t=this._fetchWebSocketUrl(e.streamUrls,this._outSpatialReference);this._buddyServicesQuery||(this._buddyServicesQuery=this._queryBuddyServices()),await this._buddyServicesQuery,await this._tryCreateWebSocket(t);const r=u(this._config.definitionExpression,this._config.geometryDefinition),{outFields:o}=this._config;this.destroyed||this._setFilter(r,o)}_onMessage(e){if("attributes"in e){let o;try{o=this._enrich(e),null!=this._featureZScaler&&this._featureZScaler(o.geometry)}catch(t){return void i.getLogger(this).error(new r("geoevent-connection","Failed to parse message",t))}this.onFeature(o)}else this.onMessage(e)}async _fetchServiceDefinition(e){const r={f:"json",...this._config.customParameters},i=t(e.path,{query:r,responseType:"json"}),o=(await i).data;return this._serviceDefinition=o,o}_fetchWebSocketUrl(e,t){const r=e[0],{urls:i,token:s}=r,n=this._inferWebSocketBaseUrl(i);return o(`${n}/subscribe`,{outSR:""+t.wkid,token:s})}_inferWebSocketBaseUrl(e){if(1===e.length)return e[0];for(const t of e)if(t.includes("wss"))return t;return i.getLogger(this).error(new r("geoevent-connection","Unable to infer WebSocket url",e)),null}async _setFilter(e,t){const o=this._websocket;if(null==o||null==e&&null==t)return;const s=JSON.stringify({filter:this._serializeFilter(e,t)});let n=!1;const a=Promise.withResolvers(),c=()=>{n||(this.destroyed||this._websocket!==o||i.getLogger(this).error(new r("geoevent-connection","Server timed out when setting filter")),a.reject())},u=e=>{const t=JSON.parse(e.data);t.filter&&(t.error&&(i.getLogger(this).error(new r("geoevent-connection","Failed to set service filter",t.error)),this._set("errorString",`Could not set service filter - ${t.error}`),a.reject(t.error)),this._setWebSocketJSONParseHandler(o),n=!0,a.resolve())};return o.onmessage=u,o.send(s),setTimeout(c,h),a.promise}_serializeFilter(e,t){const o={};if(null==e&&null==t)return o;if(e?.geometry)try{const t=a(e.geometry);if("extent"!==t.type)throw new r("geoevent-connection",`Expected extent but found type ${t.type}`);o.geometry=JSON.stringify(t.shiftCentralMeridian())}catch(s){i.getLogger(this).error(new r("geoevent-connection","Encountered an error when setting connection geometryDefinition",s))}return e?.where&&"1 = 1"!==e.where&&"1=1"!==e.where&&(o.where=e.where),null!=t&&(o.outFields=t.join(",")),o}_enrich(e){if(!this._relatedFeatures)return e;const t=this._serviceDefinition.relatedFeatures.joinField,o=e.attributes[t],s=this._relatedFeatures.get(o);if(!s)return i.getLogger(this).warn("geoevent-connection","Feature join failed. Is the join field configured correctly?",e),e;const{attributes:n,geometry:a}=s;for(const r in n)e.attributes[r]=n[r];return a&&(e.geometry=a),e.geometry||e.centroid||i.getLogger(this).error(new r("geoevent-connection","Found malformed feature - no geometry found",e)),e}async _queryBuddyServices(){try{const{relatedFeatures:e,keepLatestArchive:t}=this._serviceDefinition,r=this._queryRelatedFeatures(e),i=this._queryArchive(t);await r;const o=await i;if(!o)return;for(const s of o.features)this.onFeature(this._enrich(s))}catch(e){i.getLogger(this).error(new r("geoevent-connection","Encountered an error when querying buddy services",{error:e}))}}async _queryRelatedFeatures(e){if(!e)return;const t=await this._queryBuddy(e.featuresUrl);this._addRelatedFeatures(t)}async _queryArchive(e){if(e)return this._queryBuddy(e.featuresUrl)}async _queryBuddy(e){const t=new((await import("../../../FeatureLayer.js")).default)({url:e}),{capabilities:r}=await t.load(),i=r.query.supportsMaxRecordCountFactor,o=r.query.supportsPagination,s=r.query.supportsCentroid,a=this._config.maxRecordCountFactor,c=t.capabilities.query.maxRecordCount,u=i?c*a:c,h=new f;if(h.outFields=this._config.outFields??["*"],h.where=this._config.definitionExpression??"1=1",h.returnGeometry=!0,h.returnExceededLimitFeatures=!0,h.outSpatialReference=n.fromJSON(this._outSpatialReference),s&&(h.returnCentroid=!0),i&&(h.maxRecordCountFactor=a),o)return h.num=u,t.destroy(),this._queryPages(e,h);const d=await l(e,h,this._config.sourceSpatialReference);return t.destroy(),d}async _queryPages(e,t,r=[],i=0){t.start=null!=t.num?i*t.num:null;const o=await l(e,t,this._config.sourceSpatialReference);return o.exceededTransferLimit&&i<(this._config.maxQueryDepth??0)?(o.features.forEach(e=>r.push(e)),this._queryPages(e,t,r,i+1)):(r.forEach(e=>o.features.push(e)),o)}_addRelatedFeatures(e){const t=new Map,r=e.features,i=this._serviceDefinition.relatedFeatures.joinField;for(const o of r){const e=o.attributes[i];t.set(e,o)}this._relatedFeatures=t}};g=e([s("esri.layers.graphics.sources.connections.GeoEventConnection")],g);export{g as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../../../../core/Error.js";import o from"../../../../core/Logger.js";import{after as s}from"../../../../core/promiseUtils.js";import{addQueryParameters as r}from"../../../../core/urlUtils.js";import{property as n,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{getGeometryZScaler as c}from"../../../../geometry/support/zscale.js";import a from"../../../support/StreamConnection.js";let l=class extends a{constructor(e){super({}),this._outstandingMessages=[],this.errorString=null;const{geometryType:t,spatialReference:o,sourceSpatialReference:s}=e;this._config=e,this._featureZScaler=c(t,s,o),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case 0:case 1:return"connected";case 2:case 3:return"disconnected"}}sendMessageToSocket(e){null!=this._websocket?this._websocket.send(JSON.stringify(e)):this._outstandingMessages.push(e)}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.source.path,n=1e3,i=0){try{if(this.destroyed)return;const t=r(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(c){const r=n/1e3;return this._config.maxReconnectionAttempts&&i>=this._config.maxReconnectionAttempts?(o.getLogger(this).error(new t("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(o.getLogger(this).error(new t("websocket-connection",`Failed to connect. Attempting to reconnect in ${r}s`,c)),await s(n),this._tryCreateWebSocket(e,Math.min(1.5*n,1e3*this._config.maxReconnectionInterval),i+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{const t=JSON.parse(e.data);this._onMessage(t)}catch(s){return void o.getLogger(this).error(new t("websocket-connection","Failed to parse message, invalid JSON",{error:s}))}}}_createWebSocket(e){return new Promise((t,o)=>{const s=new WebSocket(e);s.onopen=()=>{if(s.onopen=null,this.destroyed)return s.onclose=null,void s.close();s.onclose=e=>this._onClose(e),s.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(s),t(s)},s.onclose=e=>{s.onopen=s.onclose=null,o(e)}})}async _handshake(e=1e4){const s=this._websocket;if(null==s)return;const r=Promise.withResolvers(),n=s.onmessage,{filter:i,outFields:c,spatialReference:a}=this._config,l=setTimeout(()=>r.reject(),e),h=()=>{clearTimeout(l),r.reject()};return s.onmessage=e=>{let d=null;try{d=JSON.parse(e.data)}catch(g){}d&&"object"==typeof d||(o.getLogger(this).error(new t("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),h(),this.destroy()),d.spatialReference?.wkid!==a?.wkid&&(o.getLogger(this).error(new t("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${a.wkid}`,e.data)),h(),this.destroy()),"json"!==d.format&&(o.getLogger(this).error(new t("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),h(),this.destroy()),i&&d.filter!==i&&o.getLogger(this).error(new t("websocket-connection","Tried to set filter, but server doesn't support it")),c&&d.outFields!==c&&o.getLogger(this).error(new t("websocket-connection","Tried to set outFields, but server doesn't support it")),s.onmessage=n;for(const t of this._outstandingMessages)s.send(JSON.stringify(t));this._outstandingMessages=[],clearTimeout(l),r.resolve()},s.send(JSON.stringify({filter:i,outFields:c,format:"json",spatialReference:{wkid:a.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){const t="Encountered an error over WebSocket connection";this._set("errorString",t),o.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&o.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};e([n()],l.prototype,"connectionStatus",null),e([n()],l.prototype,"errorString",void 0),l=e([i("esri.layers.graphics.sources.connections.WebSocketConnection")],l);export{l as WebSocketConnection};
2
+ import{__decorate as e}from"tslib";import t from"../../../../core/Error.js";import o from"../../../../core/Logger.js";import{after as s}from"../../../../core/promiseUtils.js";import{addQueryParameters as r}from"../../../../core/urlUtils.js";import{property as n,subclass as i}from"../../../../core/accessorSupport/decorators.js";import{getGeometryZScaler as c}from"../../../../geometry/support/zscale.js";import{serializeStreamServiceFilter as a}from"./websocketUils.js";import l from"../../../support/StreamConnection.js";let h=class extends l{constructor(e,t){super({}),this._outSpatialReference=t,this._outstandingMessages=[],this.errorString=null;const{geometryType:o,sourceSpatialReference:s}=e;this._config=e,this._featureZScaler=c(o,s,this._outSpatialReference),this._open()}normalizeCtorArgs(){return{}}async _open(){await this._tryCreateWebSocket(),this.destroyed||await this._handshake()}destroy(){super.destroy(),null!=this._websocket&&(this._websocket.onopen=null,this._websocket.onclose=null,this._websocket.onerror=null,this._websocket.onmessage=null,this._websocket.close()),this._websocket=null}get connectionStatus(){if(null==this._websocket)return"disconnected";switch(this._websocket.readyState){case 0:case 1:return"connected";case 2:case 3:return"disconnected"}}sendMessageToSocket(e){null!=this._websocket?this._websocket.send(JSON.stringify(e)):this._outstandingMessages.push(e)}sendMessageToClient(e){this._onMessage(e)}updateCustomParameters(e){this._config.customParameters=e,null!=this._websocket&&this._websocket.close()}async _tryCreateWebSocket(e=this._config.url.path,n=1e3,i=0){try{if(this.destroyed)return;const t=r(e,this._config.customParameters??{});this._websocket=await this._createWebSocket(t),this.notifyChange("connectionStatus")}catch(c){const r=n/1e3;return this._config.maxReconnectionAttempts&&i>=this._config.maxReconnectionAttempts?(o.getLogger(this).error(new t("websocket-connection","Exceeded maxReconnectionAttempts attempts. No further attempts will be made")),void this.destroy()):(o.getLogger(this).error(new t("websocket-connection",`Failed to connect. Attempting to reconnect in ${r}s`,c)),await s(n),this._tryCreateWebSocket(e,Math.min(1.5*n,1e3*this._config.maxReconnectionInterval),i+1))}}_setWebSocketJSONParseHandler(e){e.onmessage=e=>{try{const t=JSON.parse(e.data);this._onMessage(t)}catch(s){return void o.getLogger(this).error(new t("websocket-connection","Failed to parse message, invalid JSON",{error:s}))}}}_createWebSocket(e){return new Promise((t,o)=>{const s=new WebSocket(e);s.onopen=()=>{if(s.onopen=null,this.destroyed)return s.onclose=null,void s.close();s.onclose=e=>this._onClose(e),s.onerror=e=>this._onError(e),this._setWebSocketJSONParseHandler(s),t(s)},s.onclose=e=>{s.onopen=s.onclose=null,o(e)}})}async _handshake(e=1e4){const s=this._websocket;if(null==s)return;const r=Promise.withResolvers(),n=s.onmessage,i=a(this._config.definitionExpression,this._config.geometryDefinition),{outFields:c}=this._config,l=setTimeout(()=>r.reject(),e),h=()=>{clearTimeout(l),r.reject()};return s.onmessage=e=>{let a=null;try{a=JSON.parse(e.data)}catch(d){}a&&"object"==typeof a||(o.getLogger(this).error(new t("websocket-connection","Protocol violation. Handshake failed - malformed message",e.data)),h(),this.destroy()),a.spatialReference?.wkid!==this._outSpatialReference?.wkid&&(o.getLogger(this).error(new t("websocket-connection",`Protocol violation. Handshake failed - expected wkid of ${this._outSpatialReference.wkid}`,e.data)),h(),this.destroy()),"json"!==a.format&&(o.getLogger(this).error(new t("websocket-connection","Protocol violation. Handshake failed - format is not set",e.data)),h(),this.destroy()),i&&a.filter!==i&&o.getLogger(this).error(new t("websocket-connection","Tried to set filter, but server doesn't support it")),c&&a.outFields!==c&&o.getLogger(this).error(new t("websocket-connection","Tried to set outFields, but server doesn't support it")),s.onmessage=n;for(const t of this._outstandingMessages)s.send(JSON.stringify(t));this._outstandingMessages=[],clearTimeout(l),r.resolve()},s.send(JSON.stringify({filter:i,outFields:c,format:"json",spatialReference:{wkid:this._outSpatialReference.wkid}})),r.promise}_onMessage(e){if(this.onMessage(e),"type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}}_onError(e){const t="Encountered an error over WebSocket connection";this._set("errorString",t),o.getLogger(this).error("websocket-connection",t)}_onClose(e){this._websocket=null,this.notifyChange("connectionStatus"),1e3!==e.code&&o.getLogger(this).error("websocket-connection",`WebSocket closed unexpectedly with error code ${e.code}`),this.destroyed||this._open()}};e([n()],h.prototype,"connectionStatus",null),e([n()],h.prototype,"errorString",void 0),h=e([i("esri.layers.graphics.sources.connections.WebSocketConnection")],h);export{h as WebSocketConnection};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import e from"./GeoEventConnection.js";import{WebSocketConnection as t}from"./WebSocketConnection.js";import{ClientSideConnection as n}from"../../../support/ClientSideConnection.js";function o(e,t){if(null==e&&null==t)return null;const n={};return null!=t&&(n.geometry=t),null!=e&&(n.where=e),n}function r(r,i,s,c,l,u,a,m,p){const f={source:r,sourceSpatialReference:i,spatialReference:s,geometryType:c,filter:o(l,u),maxReconnectionAttempts:a,maxReconnectionInterval:m,customParameters:p};if(!r)return new n(f);return r.path.startsWith("wss://")||r.path.startsWith("ws://")?new t(f):new e(f)}export{r as createConnection};
2
+ import{FabricKustoConnection as e}from"./FabricKustoConnection.js";import n from"./GeoEventConnection.js";import{WebSocketConnection as o}from"./WebSocketConnection.js";import{ClientSideConnection as t}from"../../../support/ClientSideConnection.js";function r(r,c){switch(r.type){case"client":return new t(r,c);case"custom":return new o(r,c);case"geoevent":return new n(r,c);case"kusto":return new e(r,c)}}export{r as createConnection};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ function l(l,n){if(null==l&&null==n)return null;const u={};return null!=n&&(u.geometry=n),null!=l&&(u.where=l),u}export{l as serializeStreamServiceFilter};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{property as t}from"../../core/accessorSupport/decorators.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import{getGeometryZScaler as o}from"../../geometry/support/zscale.js";import s from"./StreamConnection.js";let a=class extends s{constructor(e){super({}),this.connectionStatus="connected",this.errorString=null;const{geometryType:t,spatialReference:r,sourceSpatialReference:s}=e;this._featureZScaler=o(t,s,r)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};e([t()],a.prototype,"connectionStatus",void 0),e([t()],a.prototype,"errorString",void 0),a=e([r("esri.layers.support.ClientSideConnection")],a);export{a as ClientSideConnection};
2
+ import{__decorate as e}from"tslib";import{property as t}from"../../core/accessorSupport/decorators.js";import{subclass as r}from"../../core/accessorSupport/decorators/subclass.js";import{getGeometryZScaler as o}from"../../geometry/support/zscale.js";import s from"./StreamConnection.js";let a=class extends s{constructor(e,t){super({}),this.connectionStatus="connected",this.errorString=null;const{geometryType:r,sourceSpatialReference:s}=e;this._featureZScaler=o(r,s,t)}normalizeCtorArgs(){return{}}updateCustomParameters(e){}sendMessageToSocket(e){}sendMessageToClient(e){if("type"in e)switch(e.type){case"features":case"featureResult":for(const t of e.features)null!=this._featureZScaler&&this._featureZScaler(t.geometry),this.onFeature(t)}this.onMessage(e)}};e([t()],a.prototype,"connectionStatus",void 0),e([t()],a.prototype,"errorString",void 0),a=e([r("esri.layers.support.ClientSideConnection")],a);export{a as ClientSideConnection};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{__decorate as r}from"tslib";import{Clonable as o}from"../../core/Clonable.js";import{JSONSupportMixin as e}from"../../core/JSONSupport.js";import{property as t}from"../../core/accessorSupport/decorators.js";import{subclass as i}from"../../core/accessorSupport/decorators/subclass.js";import p from"./GeometryEncodingLocation.js";let s=class extends(e(o)){constructor(r){super(r),this.type="fabric",this.refreshInterval=5e3/6e4}};r([t({type:["fabric"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"type",void 0),r([t({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"workspace",void 0),r([t({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"database",void 0),r([t({type:String,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"table",void 0),r([t({type:p,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"geometryEncoding",void 0),r([t({type:Number,json:{read:!1,write:{ignoreOrigin:!0}}})],s.prototype,"refreshInterval",void 0),s=r([i("esri.layers.support.FabricKustoSource")],s);export{s as default};
@@ -2,40 +2,40 @@ import type { ClonableMixin } from "../../core/Clonable.js";
2
2
  import type { JSONSupport } from "../../core/JSONSupport.js";
3
3
 
4
4
  /** @since 5.0 */
5
- export interface ParquetGeometryEncodingLocationProperties extends Partial<Pick<ParquetGeometryEncodingLocation, "xField" | "yField">> {}
5
+ export interface GeometryEncodingLocationProperties extends Partial<Pick<GeometryEncodingLocation, "xField" | "yField">> {}
6
6
 
7
7
  /**
8
- * The location format used to store geometries in Parquet files. Geometries are represented as x and y coordinate pairs, typically stored in two separate columns.
8
+ * The location format used to store geometries. Geometries are represented as x and y coordinate pairs, typically stored in two separate columns.
9
9
  * If the file contains coordinate fields named `"lng/lat"`, `"lon/lat"`, `"long/lat"`, `"longitude/latitude"`, `"x/y"`, `"xcenter/ycenter"`, `"longitude83/latitude83"`,
10
10
  * `"longdecdeg/latdecdeg"`, `"point-x/point-y"`, these are detected automatically. The field names are case insensitive.
11
- * For other coordinate field names, set the [xField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingLocation/#xField) and [yField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/ParquetGeometryEncodingLocation/#yField) properties to the names of the fields
11
+ * For other coordinate field names, set the [xField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/#xField) and [yField](https://developers.arcgis.com/javascript/latest/references/core/layers/support/GeometryEncodingLocation/#yField) properties to the names of the fields
12
12
  * containing the latitude and longitude values respectively.
13
13
  *
14
14
  * @since 4.33
15
15
  * @see [ParquetLayer.geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding)
16
16
  * @see [getParquetLayerInfo()](https://developers.arcgis.com/javascript/latest/references/core/layers/support/parquetUtils/#getParquetLayerInfo)
17
17
  */
18
- export default class ParquetGeometryEncodingLocation extends ParquetGeometryEncodingLocationSuperclass {
18
+ export default class GeometryEncodingLocation extends GeometryEncodingLocationSuperclass {
19
19
  /** @since 5.0 */
20
- constructor(properties?: ParquetGeometryEncodingLocationProperties);
20
+ constructor(properties?: GeometryEncodingLocationProperties);
21
21
  /**
22
- * The type of encoding used for the geometries in the parquet file.
22
+ * The type of encoding used for the geometries.
23
23
  * This will always be "location" for this class.
24
24
  *
25
25
  * @since 5.0
26
26
  */
27
27
  get type(): "location";
28
28
  /**
29
- * The name of the field in the Parquet file that contains the x values.
29
+ * The name of the field that contains the x values.
30
30
  *
31
31
  * @since 5.0
32
32
  */
33
33
  accessor xField: string;
34
34
  /**
35
- * The name of the field in the Parquet file that contains the y values.
35
+ * The name of the field that contains the y values.
36
36
  *
37
37
  * @since 5.0
38
38
  */
39
39
  accessor yField: string;
40
40
  }
41
- declare const ParquetGeometryEncodingLocationSuperclass: typeof JSONSupport & typeof ClonableMixin
41
+ declare const GeometryEncodingLocationSuperclass: typeof JSONSupport & typeof ClonableMixin
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as o}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";let s=class extends(e(t)){constructor(o){super(o),this.type="location",this.xField=null,this.yField=null}};o([r({type:["location"],nonNullable:!0,readOnly:!0,json:{read:!1,write:{isRequired:!0}}})],s.prototype,"type",void 0),o([r({type:String,json:{write:{isRequired:!0}}})],s.prototype,"xField",void 0),o([r({type:String,json:{write:{isRequired:!0}}})],s.prototype,"yField",void 0),s=o([i("esri.layers.support.ParquetGeometryEncodingLocation")],s);export{s as default};
2
+ import{__decorate as o}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as t}from"../../core/JSONSupport.js";import{property as r,subclass as i}from"../../core/accessorSupport/decorators.js";let s=class extends(e(t)){constructor(o){super(o),this.type="location",this.xField=null,this.yField=null}};o([r({type:["location"],nonNullable:!0,readOnly:!0,json:{read:!1,write:{isRequired:!0}}})],s.prototype,"type",void 0),o([r({type:String,json:{write:{isRequired:!0}}})],s.prototype,"xField",void 0),o([r({type:String,json:{write:{isRequired:!0}}})],s.prototype,"yField",void 0),s=o([i("esri.layers.support.GeometryEncodingLocation")],s);export{s as default};
@@ -2,22 +2,21 @@ import type { ClonableMixin } from "../../core/Clonable.js";
2
2
  import type { JSONSupport } from "../../core/JSONSupport.js";
3
3
 
4
4
  /** @since 5.0 */
5
- export interface ParquetGeometryEncodingWkbProperties extends Partial<Pick<ParquetGeometryEncodingWkb, "field" | "orientation">> {}
5
+ export interface GeometryEncodingWkbProperties extends Partial<Pick<GeometryEncodingWkb, "field" | "orientation">> {}
6
6
 
7
7
  /**
8
- * Well-Known Binary (WKB) is a binary format used to encode geometries before storing them in parquet files.
8
+ * Well-Known Binary (WKB) is a binary format used to encode geometries in a column.
9
9
  *
10
10
  * @since 4.33
11
11
  * @see [ParquetLayer.geometryEncoding](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryEncoding)
12
12
  * @see [getParquetLayerInfo()](https://developers.arcgis.com/javascript/latest/references/core/layers/support/parquetUtils/#getParquetLayerInfo)
13
13
  */
14
- export default class ParquetGeometryEncodingWkb extends ParquetGeometryEncodingWkbSuperclass {
14
+ export default class GeometryEncodingWkb extends GeometryEncodingWkbSuperclass {
15
15
  /** @since 5.0 */
16
- constructor(properties?: ParquetGeometryEncodingWkbProperties);
16
+ constructor(properties?: GeometryEncodingWkbProperties);
17
17
  /**
18
- * The name of the geometry column. When a parquet file contains multiple geometry fields,
19
- * set this property to specify which geometry column should be used by the ParquetLayer.
20
- * This field is used to set the [ParquetLayer.geometryType](https://developers.arcgis.com/javascript/latest/references/core/layers/ParquetLayer/#geometryType) of the layer.
18
+ * The name of the geometry column. When columns contain multiple geometry fields,
19
+ * set this property to specify which geometry column should be used by the layer.
21
20
  *
22
21
  * @since 5.0
23
22
  */
@@ -30,11 +29,11 @@ export default class ParquetGeometryEncodingWkb extends ParquetGeometryEncodingW
30
29
  */
31
30
  accessor orientation: "counter-clockwise" | null | undefined;
32
31
  /**
33
- * The type of encoding used for the geometries in the parquet file.
32
+ * The type of encoding used for the geometries.
34
33
  * This will always be "wkb" for this class.
35
34
  *
36
35
  * @since 5.0
37
36
  */
38
37
  get type(): "wkb";
39
38
  }
40
- declare const ParquetGeometryEncodingWkbSuperclass: typeof JSONSupport & typeof ClonableMixin
39
+ declare const GeometryEncodingWkbSuperclass: typeof JSONSupport & typeof ClonableMixin
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{__decorate as o}from"tslib";import{ClonableMixin as e}from"../../core/Clonable.js";import{JSONSupport as r}from"../../core/JSONSupport.js";import{property as t,subclass as i}from"../../core/accessorSupport/decorators.js";let s=class extends(e(r)){constructor(o){super(o),this.type="wkb",this.field=null}};o([t({type:["wkb"],nonNullable:!0,readOnly:!0,json:{read:!1,write:{isRequired:!0}}})],s.prototype,"type",void 0),o([t({type:["counter-clockwise"],json:{write:!0}})],s.prototype,"orientation",void 0),o([t({type:String,json:{write:{isRequired:!0}}})],s.prototype,"field",void 0),s=o([i("esri.layers.support.GeometryEncodingWkb")],s);export{s as default};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import e from"../../request.js";import n from"../../core/Error.js";import t from"./FabricKustoSource.js";import s from"./Field.js";import o from"./GeometryEncodingLocation.js";import{inferLocationInfo as a}from"./locationUtils.js";async function r(t,s){const{data:o}=await e(`https://api.fabric.microsoft.com/v1/workspaces/${t}/kqlDatabases/${s}`,{responseType:"json"});if(null==o)throw new n("kusto:connection",`KQL database '${s}' was not found in workspace '${t}'`);return o}async function i(e,n,t,s={}){return c(e,n,t,{},s)}async function c(e,n,s,i,c={}){if(i.database||(i.database=await r(e,n)),i.fields?.length||(i.fields=await l(i.database,s,c)),i.source||(i.source=new t({workspace:e,database:n,table:s})),!i.source.geometryEncoding){const e=a(i.fields.map(e=>e.name));e.latitudeFieldName&&e.longitudeFieldName&&(i.source.geometryEncoding=new o({xField:e.longitudeFieldName,yField:e.latitudeFieldName}))}return i}async function l(e,n,t={}){const s=await u(e,n,t),o=[];for(const a of s.OrderedColumns){const e=d(a);e&&o.push(e)}return o}async function u(n,t,s={}){const o=n.properties.queryServiceUri;return p((await e(`${o}/v1/rest/mgmt`,{responseType:"json",method:"post",headers:{"Content-Type":"application/json"},body:JSON.stringify({db:n.displayName,csl:`.show table ${f(t)} schema as json`}),signal:s.signal})).data)}function d(e){const n=m(e.CslType);return n?new s({name:e.Name,type:n}):null}function m(e){switch(e){case"bool":return"small-integer";case"guid":case"string":return"string";case"int":return"integer";case"long":return"big-integer";case"real":return"double";case"dynamic":case"datetime":case"decimal":case"timespan":return null}}function p(e){const t=e.Tables[0];if(null==t||0===t.Rows.length)throw new n("kusto:invalid-schema-response","Kusto schema response did not include any rows");const[s,o]=t.Rows[0];if("string"!=typeof o)throw new n("kusto:invalid-schema-response","Kusto schema response did not include a schema string");return JSON.parse(o)}function f(e){return`['${e.replaceAll("'","''")}']`}function g(e){return e.replaceAll("'","''")}export{c as completeKustoStreamLayerInfo,f as escapeKustoIdentifier,g as escapeKustoStringLiteral,r as fetchKustoDatabaseDetails,i as getKustoStreamLayerInfo};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import o from"./ParquetGeometryEncodingLocation.js";import r from"./ParquetGeometryEncodingWkb.js";function t(t){switch(t.type){case"wkb":return r.fromJSON(t);case"location":return o.fromJSON(t)}}export{t as fromParquetGeometryEncodingJSON};
2
+ import o from"./GeometryEncodingLocation.js";import r from"./GeometryEncodingWkb.js";function t(t){switch(t.type){case"wkb":return r.fromJSON(t);case"location":return o.fromJSON(t)}}export{t as fromParquetGeometryEncodingJSON};