@arcgis/core 5.0.0-next.59 → 5.0.0-next.60

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 (347) hide show
  1. package/analysis/Analysis.d.ts +2 -3
  2. package/analysis/ElevationProfile/ElevationProfileLine.d.ts +1 -1
  3. package/analysis/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -3
  4. package/analysis/ElevationProfile/{elevationProfileLineTypes.d.ts → types.d.ts} +2 -2
  5. package/analysis/ElevationProfileAnalysis.d.ts +1 -1
  6. package/analysis/LengthDimension.d.ts +1 -1
  7. package/analysis/LineOfSightAnalysisObserver.d.ts +1 -1
  8. package/analysis/LineOfSightAnalysisTarget.d.ts +1 -1
  9. package/analysis/Slice/SliceAnalysisExcludedLayer.js +5 -0
  10. package/analysis/Slice/types.d.ts +4 -0
  11. package/analysis/SliceAnalysis.d.ts +1 -4
  12. package/analysis/SliceAnalysis.js +1 -1
  13. package/analysis/Viewshed.d.ts +1 -1
  14. package/analysis/VolumeMeasurementAnalysis.d.ts +1 -1
  15. package/analysis/VolumeMeasurementAnalysis.js +1 -1
  16. package/analysis/types.d.ts +22 -1
  17. package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +6 -0
  18. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +4 -1
  19. package/applications/KnowledgeStudio/layerInternalAccessUtils.d.ts +11 -1
  20. package/applications/KnowledgeStudio/layerInternalAccessUtils.js +1 -1
  21. package/arcade/functions/featuresetbase.js +1 -1
  22. package/arcade.d.ts +27 -4
  23. package/arcade.js +1 -1
  24. package/assets/esri/core/workers/RemoteClient.js +1 -1
  25. package/assets/esri/core/workers/chunks/02cd179176fee25d09a8.js +1 -0
  26. package/assets/esri/core/workers/chunks/0367a8580fede8f804f9.js +1 -0
  27. package/assets/esri/core/workers/chunks/0483a2cfdb8c7158e73a.js +1 -0
  28. package/assets/esri/core/workers/chunks/{73f9cbf0f919b6adc2d5.js → 05ab54b81c366e98138f.js} +1 -1
  29. package/assets/esri/core/workers/chunks/108a4ab28b6586e281d9.js +1 -0
  30. package/assets/esri/core/workers/chunks/14f4f5b7549cea7b5a6a.js +1 -0
  31. package/assets/esri/core/workers/chunks/1b475593c80d7bccdda5.js +1 -0
  32. package/assets/esri/core/workers/chunks/{de05c59da6d67716795d.js → 1c350a2c4014146dbcd9.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{b2425f6af7df6902dfc4.js → 1e8ceed33a3657ac02b3.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{2d61b6efa17e8c5832da.js → 21ebd234cf32ae52b3ea.js} +1 -1
  35. package/assets/esri/core/workers/chunks/27ec8688f72130239b98.js +1 -0
  36. package/assets/esri/core/workers/chunks/{087cf25ca211836a084a.js → 2a6231db5ee6cbfd59a5.js} +1 -1
  37. package/assets/esri/core/workers/chunks/2d8dca9a4a58469ddd05.js +1 -0
  38. package/assets/esri/core/workers/chunks/2e6bd743b88e83d43137.js +1 -0
  39. package/assets/esri/core/workers/chunks/2f6fa33692478e99d24b.js +1 -0
  40. package/assets/esri/core/workers/chunks/31eda00e6842005d0ec8.js +1 -0
  41. package/assets/esri/core/workers/chunks/{ce90e8489143228262e7.js → 33a13e80badd20ed8de2.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{01d38a9ca9e88c38aab9.js → 34178ace79e8dea3567d.js} +1 -1
  43. package/assets/esri/core/workers/chunks/37a3e91791a18ed8b8da.js +1 -0
  44. package/assets/esri/core/workers/chunks/{47338472f5a8e004a671.js → 37e46461da3000949a26.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{c531c0e3d420a1be0ad2.js → 3d1a5a3467f3a6585b3e.js} +1 -1
  46. package/assets/esri/core/workers/chunks/{be6a05d5375e80968877.js → 47e5149765beee46f208.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{44fb1184eeed0636704a.js → 4b088260252787734c00.js} +1 -1
  48. package/assets/esri/core/workers/chunks/4cbe78d6a5ff617e15d6.js +1 -0
  49. package/assets/esri/core/workers/chunks/509065a27bd07bd32475.js +1 -0
  50. package/assets/esri/core/workers/chunks/{c09cba77ee60a3d765e2.js → 522a6787d9e0f520ac79.js} +1 -1
  51. package/assets/esri/core/workers/chunks/5686220aed9a74dbd2b1.js +1 -0
  52. package/assets/esri/core/workers/chunks/584c4602d97a008afb83.js +1 -0
  53. package/assets/esri/core/workers/chunks/{60954ab810dbbf36e5e1.js → 5a66b7f1f4da75da8e7f.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{10094eb2b94e98dd4a8a.js → 5dc2f2e28c30386efadf.js} +1 -1
  55. package/assets/esri/core/workers/chunks/668a868fe2dcb6384ac9.js +1 -0
  56. package/assets/esri/core/workers/chunks/68cb43f2fa8cc826e99b.js +1 -0
  57. package/assets/esri/core/workers/chunks/68ee11589de0da7fed08.js +1 -0
  58. package/assets/esri/core/workers/chunks/{d42273394f575e71dd55.js → 73bee5659414b3687cfc.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{090dad5579f0148d6486.js → 76dbaef0d0794913f36f.js} +1 -1
  60. package/assets/esri/core/workers/chunks/{09bd9bd37a339802907a.js → 7bf30c254228f9b7f224.js} +1 -1
  61. package/assets/esri/core/workers/chunks/7c5218eae13d3bd30598.js +1 -0
  62. package/assets/esri/core/workers/chunks/7fc09382f934e9223a9b.js +1 -0
  63. package/assets/esri/core/workers/chunks/{472d290f8eb1c1a85724.js → 8195310b4c53db902fc1.js} +1 -1
  64. package/assets/esri/core/workers/chunks/831b8282380844a7c4d5.js +1 -0
  65. package/assets/esri/core/workers/chunks/83c5dea24e36ac2e3497.js +1 -0
  66. package/assets/esri/core/workers/chunks/{49df576f0215618aa651.js → 84440efe2cc337dab81f.js} +1 -1
  67. package/assets/esri/core/workers/chunks/852007720e3bc29532db.js +1 -0
  68. package/assets/esri/core/workers/chunks/87c6470ee295d736b06d.js +1 -0
  69. package/assets/esri/core/workers/chunks/89853fccdf2bfcc290c0.js +1 -0
  70. package/assets/esri/core/workers/chunks/{1e152a34e368bd810a0f.js → 8d58e59ea13ecafdd45c.js} +1 -1
  71. package/assets/esri/core/workers/chunks/{a2442549c5daf3653eb4.js → 8d6641d0f7c93f83c414.js} +1 -1
  72. package/assets/esri/core/workers/chunks/8db723b8468e408dda46.js +1 -0
  73. package/assets/esri/core/workers/chunks/92a4f56232f81ca457fa.js +1 -0
  74. package/assets/esri/core/workers/chunks/{8a132d91077ecf849248.js → 92ef6071ea87b7f940e2.js} +1 -1
  75. package/assets/esri/core/workers/chunks/{bb4aefaf9b0327dda738.js → 942c80c425b1f13cced5.js} +1 -1
  76. package/assets/esri/core/workers/chunks/980313a6c35e79812d17.js +1 -0
  77. package/assets/esri/core/workers/chunks/{e6bab7b739bfbb39f6cd.js → 988f5e003377d734d282.js} +1 -1
  78. package/assets/esri/core/workers/chunks/{7364fb5e99933533890d.js → 9ba8a2e1c0fb4e1efc7c.js} +1 -1
  79. package/assets/esri/core/workers/chunks/9c157c0eeadb824ad01e.js +1 -0
  80. package/assets/esri/core/workers/chunks/a39ac9127a215d14d412.js +1 -0
  81. package/assets/esri/core/workers/chunks/{63cf702cde83692126be.js → a6f29d1a6356e2de5a79.js} +1 -1
  82. package/assets/esri/core/workers/chunks/a94dd0f5839b6e2bb2d2.js +1 -0
  83. package/assets/esri/core/workers/chunks/ab0275669e28e7a34c38.js +1 -0
  84. package/assets/esri/core/workers/chunks/abc8015e13b1395b8d64.js +1 -0
  85. package/assets/esri/core/workers/chunks/abcee7cfd53cfe1d91e9.js +1 -0
  86. package/assets/esri/core/workers/chunks/acdbe0299024d58e1421.js +1 -0
  87. package/assets/esri/core/workers/chunks/{63c91421a71ae3b3599e.js → adff1791ae44631ad34a.js} +1 -1
  88. package/assets/esri/core/workers/chunks/{0eb6b9c638a5fcfe9bab.js → b4a59dd11d75df7bd510.js} +1 -1
  89. package/assets/esri/core/workers/chunks/{224f01b11fdba9250b1e.js → b64cfd86d9204be743c6.js} +1 -1
  90. package/assets/esri/core/workers/chunks/b7f2fb6684cf684b0bce.js +1 -0
  91. package/assets/esri/core/workers/chunks/b9f0d313f59fc7c43560.js +1 -0
  92. package/assets/esri/core/workers/chunks/bb5373ff7cdad7270095.js +1 -0
  93. package/assets/esri/core/workers/chunks/bb92a9daa0c5b019561f.js +1 -0
  94. package/assets/esri/core/workers/chunks/bbe2eaef7edfa33b6eea.js +1 -0
  95. package/assets/esri/core/workers/chunks/bddaa83fcb9fdb1e1856.js +1 -0
  96. package/assets/esri/core/workers/chunks/bfdf646d4c8f175a4236.js +1 -0
  97. package/assets/esri/core/workers/chunks/{0000781c850b1b4828b3.js → bfe052b386ec4874f350.js} +1 -1
  98. package/assets/esri/core/workers/chunks/{aa297e0931213341f51b.js → c3272b09bff886b08ce1.js} +1 -1
  99. package/assets/esri/core/workers/chunks/c38a07e936226b361b63.js +1 -0
  100. package/assets/esri/core/workers/chunks/{0d9904ba62558686c289.js → c743e561e7d73a100576.js} +1 -1
  101. package/assets/esri/core/workers/chunks/{b907d16e82ac908bb896.js → c96083838f919a8f64cd.js} +1 -1
  102. package/assets/esri/core/workers/chunks/{be80ed6e2955eabe912f.js → ca761dc5f45cafef313e.js} +1 -1
  103. package/assets/esri/core/workers/chunks/{8a6e50d95539b46f629c.js → cad1d7e5ce89f51b3ac9.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{dbe55d4731227d6e9571.js → ccc743e41854eb225c23.js} +1 -1
  105. package/assets/esri/core/workers/chunks/cf3a9ead26629f3508b3.js +1 -0
  106. package/assets/esri/core/workers/chunks/{3a612f873e29348370b2.js → d129a5a34e9ad09bd39e.js} +1 -1
  107. package/assets/esri/core/workers/chunks/{461093ce28ceadd7853d.js → d14e75b160aa432233c6.js} +1 -1
  108. package/assets/esri/core/workers/chunks/{e668ddc7332e5e560e78.js → d2abfcb0c8bf894c7f72.js} +1 -1
  109. package/assets/esri/core/workers/chunks/d749aa62ad694147aebe.js +1 -0
  110. package/assets/esri/core/workers/chunks/{f142c5cbdd16f1768275.js → d77f56576a49a998164a.js} +1 -1
  111. package/assets/esri/core/workers/chunks/{044a0ccd89741c1ae770.js → d79d29b52a65fb6bf94d.js} +1 -1
  112. package/assets/esri/core/workers/chunks/da7685ec2b6eaf00fd2d.js +1 -0
  113. package/assets/esri/core/workers/chunks/dae09fb8da0faa6dede4.js +1 -0
  114. package/assets/esri/core/workers/chunks/e16e88de4e93b0f48b2c.js +1 -0
  115. package/assets/esri/core/workers/chunks/e8bf362b2631f977b1cb.js +1 -0
  116. package/assets/esri/core/workers/chunks/ec5f83aa752c39a96609.js +1 -0
  117. package/assets/esri/core/workers/chunks/ed7e353e290b3a272457.js +1 -0
  118. package/assets/esri/core/workers/chunks/ef9a23d41acb5ad36426.js +1 -0
  119. package/assets/esri/core/workers/chunks/{33154a245eeca4ba38c6.js → f3437ae6bba846b524d3.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{cfd2839e218610a222e5.js → f54ec21fa67db6fef5a6.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{58242447b72cc60a5040.js → f91e63d7842c427c7f72.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{914746077017fa50933f.js → fa0bbf0d7eadb924c473.js} +1 -1
  123. package/assets/esri/core/workers/chunks/fbd577f56529063ce491.js +1 -0
  124. package/assets/esri/core/workers/chunks/fe33b11ec3f58a0f541a.js +1 -0
  125. package/assets/esri/core/workers/chunks/fe5d2735f057c7789f4b.js +1 -0
  126. package/assets/esri/core/workers/chunks/ff7df6fb78fa2c0e9247.js +1 -0
  127. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  128. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology.json +1 -1
  129. package/assets/esri/widgets/UtilityNetworkValidateTopology/t9n/UtilityNetworkValidateTopology_en.json +1 -1
  130. package/chunks/bundle.js +1 -1
  131. package/config.js +1 -1
  132. package/core/memoryEstimations.js +1 -1
  133. package/core/promiseUtils.d.ts +1 -1
  134. package/core/units.d.ts +2 -0
  135. package/geometry/FlatGeometry.js +1 -1
  136. package/geometry/operators/support/jsonConverter.js +1 -1
  137. package/interfaces.d.ts +29 -31
  138. package/kernel.js +1 -1
  139. package/layers/FeatureLayer.d.ts +3 -3
  140. package/layers/GeoJSONLayer.d.ts +1 -1
  141. package/layers/ImageryTileLayer.d.ts +1 -1
  142. package/layers/OGCFeatureLayer.d.ts +1 -1
  143. package/layers/ParquetLayer.d.ts +1 -1
  144. package/layers/ParquetLayer.js +1 -1
  145. package/layers/SceneLayer.d.ts +1 -1
  146. package/layers/StreamLayer.d.ts +8 -7
  147. package/layers/VoxelWasmPerSceneView.js +1 -1
  148. package/layers/WCSLayer.d.ts +1 -1
  149. package/layers/WFSLayer.d.ts +1 -1
  150. package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +1 -1
  151. package/layers/catalog/CatalogFootprintLayer.d.ts +1 -1
  152. package/layers/graphics/FlatFeature.js +5 -0
  153. package/layers/graphics/FlatFeatureSet.js +5 -0
  154. package/layers/graphics/data/FlatFeatureStore.js +5 -0
  155. package/layers/graphics/data/QueryEngine.js +1 -1
  156. package/layers/graphics/data/QueryEngineResult.js +1 -1
  157. package/layers/graphics/data/flatFeatureQueryEngineAdapter.js +5 -0
  158. package/layers/graphics/data/optimizedFeatureQueryEngineAdapter.js +1 -1
  159. package/layers/graphics/featureConversionUtils.js +1 -1
  160. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  161. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  162. package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +1 -1
  163. package/layers/mixins/ArcGISImageService.d.ts +1 -1
  164. package/layers/mixins/ImageryTileMixin.d.ts +1 -1
  165. package/layers/ogc/ogcFeatureUtils.d.ts +57 -0
  166. package/layers/ogc/ogcFeatureUtils.js +1 -1
  167. package/layers/ogc/types.d.ts +73 -0
  168. package/layers/raster/functions/creators/createDataManagementFunctions.d.ts +1 -1
  169. package/layers/raster/functions/creators/createSurfaceFunctions.d.ts +1 -1
  170. package/layers/support/FeatureReductionBinning.d.ts +1 -1
  171. package/layers/support/FeatureReductionCluster.d.ts +1 -1
  172. package/layers/support/StreamConnection.d.ts +37 -4
  173. package/layers/support/Sublayer.d.ts +1 -1
  174. package/layers/support/TrackPartInfo.d.ts +1 -1
  175. package/layers/support/fieldUtils.d.ts +1 -1
  176. package/layers/support/parquetUtils.js +1 -1
  177. package/libs/parquet/parquet.js +1 -1
  178. package/package.json +1 -1
  179. package/pointCloudRenderers.d.ts +1 -1
  180. package/portal/jsonTypes.d.ts +6 -0
  181. package/renderers/DictionaryRenderer.d.ts +2 -5
  182. package/renderers/PointCloudClassBreaksRenderer.d.ts +2 -1
  183. package/renderers/PointCloudRenderer.d.ts +3 -6
  184. package/renderers/PointCloudStretchRenderer.d.ts +2 -1
  185. package/renderers/PointCloudUniqueValueRenderer.d.ts +2 -1
  186. package/renderers/RasterShadedReliefRenderer.d.ts +2 -3
  187. package/renderers/RasterStretchRenderer.d.ts +1 -1
  188. package/renderers/Renderer.d.ts +2 -2
  189. package/renderers/VectorFieldRenderer.d.ts +4 -3
  190. package/renderers/support/AuthoringInfo.d.ts +2 -25
  191. package/renderers/support/AuthoringInfoVisualVariable.d.ts +2 -17
  192. package/renderers/support/RasterPresetRenderer.d.ts +1 -1
  193. package/renderers/support/RendererLegendOptions.d.ts +1 -4
  194. package/renderers/support/jsonUtils.d.ts +1 -1
  195. package/renderers/support/pointCloud/types.d.ts +10 -0
  196. package/renderers/support/raster/types.d.ts +54 -0
  197. package/renderers/support/types.d.ts +44 -0
  198. package/renderers/support/utils.d.ts +1 -1
  199. package/renderers/types.d.ts +16 -6
  200. package/renderers.d.ts +1 -1
  201. package/rest/knowledgeGraph/GraphObject.d.ts +1 -1
  202. package/rest/knowledgeGraph/GraphObject.js +1 -1
  203. package/smartMapping/labels/bins.d.ts +1 -1
  204. package/smartMapping/popup/clusters.d.ts +1 -1
  205. package/smartMapping/popup/templates.d.ts +1 -1
  206. package/smartMapping/raster/renderers/classBreaks.d.ts +1 -1
  207. package/smartMapping/raster/renderers/rgb.d.ts +1 -1
  208. package/smartMapping/raster/renderers/stretch.d.ts +1 -1
  209. package/smartMapping/raster/support/utils.d.ts +1 -1
  210. package/smartMapping/renderers/color.d.ts +1 -2
  211. package/smartMapping/renderers/pieChart.d.ts +1 -1
  212. package/smartMapping/renderers/predominance.d.ts +1 -1
  213. package/smartMapping/renderers/size.d.ts +1 -2
  214. package/smartMapping/renderers/support/rendererUtils.d.ts +1 -1
  215. package/smartMapping/renderers/univariateColorSize.d.ts +1 -1
  216. package/support/revision.js +1 -1
  217. package/unionTypes.d.ts +23 -7
  218. package/views/2d/engine/Stage.js +1 -1
  219. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  220. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  221. package/views/2d/engine/webgl/Painter.js +1 -1
  222. package/views/2d/engine/webgl/TileContainer.js +1 -1
  223. package/views/2d/engine/webgl/WGLContainer.js +1 -1
  224. package/views/2d/engine/webgl/mesh/templates/templateUtils.js +1 -1
  225. package/views/2d/engine/webgl/shaderGraph/techniques/Technique.js +1 -1
  226. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/BloomShader.js +1 -1
  227. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  228. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  229. package/views/2d/layers/features/FeaturePipelineWorkerProxy.d.ts +2 -2
  230. package/views/2d/layers/features/FeatureStoreQueryAdapter.js +1 -1
  231. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  232. package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
  233. package/views/2d/layers/features/sources/strategies/ParquetSnapshotLoadStrategy.js +1 -1
  234. package/views/2d/layers/features/sources/strategies/ParquetTileLoadStrategy.js +1 -1
  235. package/views/2d/layers/features/sources/strategies/chunks/ASourceChunk.js +1 -1
  236. package/views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js +1 -1
  237. package/views/2d/layers/features/sources/strategies/chunks/ParquetSourceChunk.js +1 -1
  238. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  239. package/views/2d/layers/features/support/Tile.js +1 -1
  240. package/views/2d/layers/graphics/AGraphicContainer.js +1 -1
  241. package/views/2d/layers/graphics/GraphicContainer.js +1 -1
  242. package/views/2d/layers/support/DebouncedFeatureOverride.js +1 -1
  243. package/views/2d/layers/support/DebugOverlay.js +1 -1
  244. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementResult.d.ts +1 -1
  245. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  246. package/views/3d/environment/Fog.js +1 -1
  247. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  248. package/views/3d/layers/graphics/Graphics3DFeatureStore.js +1 -1
  249. package/views/3d/layers/graphics/pipeline/featureSet/TiledFeatureStore.js +1 -1
  250. package/views/3d/layers/i3s/I3SQueryFeatureAdapter.js +1 -1
  251. package/views/3d/state/ViewStateManager.js +1 -1
  252. package/views/3d/webgl-engine/effects/haze/Haze.js +1 -1
  253. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  254. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  255. package/views/3d/webgl-engine/lib/Viewshed.js +1 -1
  256. package/views/BreakpointsOwner.d.ts +26 -21
  257. package/views/DOMContainer.d.ts +2 -1
  258. package/views/MapView.d.ts +3 -3
  259. package/views/SceneView.d.ts +3 -3
  260. package/views/View.d.ts +2 -2
  261. package/views/View2D.js +1 -1
  262. package/views/Viewport2DMixin.d.ts +3 -2
  263. package/views/analysis/ElevationProfile/ElevationProfileResult.d.ts +1 -1
  264. package/views/interactive/snapping/LineSnapper.js +1 -1
  265. package/views/interactive/snapping/ParallelLineSnapper.js +1 -1
  266. package/views/interactive/snapping/RightAngleSnapper.js +1 -1
  267. package/views/interactive/snapping/RightAngleTriangleSnapper.js +1 -1
  268. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorker.js +1 -1
  269. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
  270. package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
  271. package/views/layers/BuildingSceneLayerView.d.ts +1 -1
  272. package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
  273. package/widgets/FeatureForm/FeatureFormViewModel.d.ts +2 -2
  274. package/widgets/Features/FeaturesViewModel.d.ts +1 -1
  275. package/widgets/Home/HomeViewModel.d.ts +1 -1
  276. package/widgets/Locate/LocateViewModel.d.ts +2 -2
  277. package/widgets/Slice/SliceViewModel.d.ts +2 -1
  278. package/widgets/TimeSlider/TimeSliderViewModel.d.ts +1 -1
  279. package/widgets/UtilityNetworkValidateTopology/UtilityNetworkValidateTopologyViewModel.js +1 -1
  280. package/widgets/types.d.ts +1 -1
  281. package/analysis/FeatureReference.d.ts +0 -19
  282. package/analysis/VolumeMeasurement/volumeMeasurementUtils.js +0 -5
  283. package/analysis/support/SliceAnalysisExcludedLayer.js +0 -5
  284. package/assets/esri/core/workers/chunks/00f044370bf3bb6b24d7.js +0 -1
  285. package/assets/esri/core/workers/chunks/0136cd1a5da204b6daeb.js +0 -1
  286. package/assets/esri/core/workers/chunks/097001462d93b78b64f4.js +0 -1
  287. package/assets/esri/core/workers/chunks/0fcb40204db8ee5571c3.js +0 -1
  288. package/assets/esri/core/workers/chunks/13167bdd486b41163147.js +0 -1
  289. package/assets/esri/core/workers/chunks/1363345f31f4f5051132.js +0 -1
  290. package/assets/esri/core/workers/chunks/13be94357dcf5afc4fcb.js +0 -1
  291. package/assets/esri/core/workers/chunks/1693f19f1c37e0a2087e.js +0 -1
  292. package/assets/esri/core/workers/chunks/18c4cd160a4052b05831.js +0 -1
  293. package/assets/esri/core/workers/chunks/18ce7b1559a45d017c45.js +0 -1
  294. package/assets/esri/core/workers/chunks/1dc3ab52fcde7bff0f23.js +0 -1
  295. package/assets/esri/core/workers/chunks/27794d48c04a5875fd22.js +0 -1
  296. package/assets/esri/core/workers/chunks/2a66841243975cac3e3c.js +0 -1
  297. package/assets/esri/core/workers/chunks/2c12848e4934e9bb2bd0.js +0 -1
  298. package/assets/esri/core/workers/chunks/311c4914a4f69f3c1525.js +0 -1
  299. package/assets/esri/core/workers/chunks/35cbc61a006351620ead.js +0 -1
  300. package/assets/esri/core/workers/chunks/36a04be40369111a633d.js +0 -1
  301. package/assets/esri/core/workers/chunks/3b5e71b156244789f624.js +0 -1
  302. package/assets/esri/core/workers/chunks/3dd0db77a05263000bd8.js +0 -1
  303. package/assets/esri/core/workers/chunks/5047acfd66539eefe353.js +0 -1
  304. package/assets/esri/core/workers/chunks/51fd6662245b920af652.js +0 -1
  305. package/assets/esri/core/workers/chunks/58419d362f24b35003c1.js +0 -1
  306. package/assets/esri/core/workers/chunks/58cf5b9a6aa685fc3367.js +0 -1
  307. package/assets/esri/core/workers/chunks/5ffeb8fb58d59bad68c3.js +0 -1
  308. package/assets/esri/core/workers/chunks/6d09965ab2bff9da88b6.js +0 -1
  309. package/assets/esri/core/workers/chunks/700122f775b98a7ed353.js +0 -1
  310. package/assets/esri/core/workers/chunks/7353d78feba7e6302b6e.js +0 -1
  311. package/assets/esri/core/workers/chunks/7737e69da604d2521da8.js +0 -1
  312. package/assets/esri/core/workers/chunks/7ba31425caa404f86424.js +0 -1
  313. package/assets/esri/core/workers/chunks/7cd0ab01933bfb2c6e43.js +0 -1
  314. package/assets/esri/core/workers/chunks/80c36f1786ae0be00962.js +0 -1
  315. package/assets/esri/core/workers/chunks/81c2cc77c275a5b555c0.js +0 -1
  316. package/assets/esri/core/workers/chunks/8892bf3d2367e35de001.js +0 -1
  317. package/assets/esri/core/workers/chunks/8d941204425571b656ec.js +0 -1
  318. package/assets/esri/core/workers/chunks/973bf2ed34d57f299472.js +0 -1
  319. package/assets/esri/core/workers/chunks/9b6e2099aabf67b9f9f2.js +0 -1
  320. package/assets/esri/core/workers/chunks/a6b1e3ec30f6d641aea9.js +0 -1
  321. package/assets/esri/core/workers/chunks/a8f7e44657083f6aa3fd.js +0 -1
  322. package/assets/esri/core/workers/chunks/b648a1e641cf5c772d67.js +0 -1
  323. package/assets/esri/core/workers/chunks/b91c13f44f4d1bac5799.js +0 -1
  324. package/assets/esri/core/workers/chunks/be6cc8a1485961f22372.js +0 -1
  325. package/assets/esri/core/workers/chunks/c91201b37d1cb3875fb4.js +0 -1
  326. package/assets/esri/core/workers/chunks/d22e0d733bfe821c0510.js +0 -1
  327. package/assets/esri/core/workers/chunks/d54988c21ea5667d00b7.js +0 -1
  328. package/assets/esri/core/workers/chunks/d62193323c67b379dee3.js +0 -1
  329. package/assets/esri/core/workers/chunks/d65ca3b8fccae8c3c3fa.js +0 -1
  330. package/assets/esri/core/workers/chunks/d8dc130ea559be1f68c6.js +0 -1
  331. package/assets/esri/core/workers/chunks/dcf6f7001f470f76bd3e.js +0 -1
  332. package/assets/esri/core/workers/chunks/e00d56ae5e68267fe269.js +0 -1
  333. package/assets/esri/core/workers/chunks/e2c7c269be93c552dc5b.js +0 -1
  334. package/assets/esri/core/workers/chunks/e4d593ddcbcf06010ab0.js +0 -1
  335. package/assets/esri/core/workers/chunks/f286f13686f003c5eec5.js +0 -1
  336. package/assets/esri/core/workers/chunks/fb6670a929b7333f1764.js +0 -1
  337. package/assets/esri/core/workers/chunks/fbdf553253cf8f22c022.js +0 -1
  338. package/assets/esri/core/workers/chunks/fc10c738bae304721ab2.js +0 -1
  339. package/assets/esri/core/workers/chunks/ff79c2cb28db7e0a1fc4.js +0 -1
  340. package/assets/esri/core/workers/chunks/ffdf1cbc1e54414d0f96.js +0 -1
  341. package/renderers/support/colorRampUtils.d.ts +0 -4
  342. package/renderers/support/pointCloudTypeUtils.d.ts +0 -6
  343. package/renderers/support/rasterRendererHelper.d.ts +0 -37
  344. package/renderers/support/rasterTypeUtils.d.ts +0 -9
  345. package/renderers/support/typeUtils.d.ts +0 -11
  346. /package/analysis/{dimensionUtils.d.ts → Dimension/types.d.ts} +0 -0
  347. /package/analysis/VolumeMeasurement/{volumeMeasurementUtils.d.ts → types.d.ts} +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__addDisposableResource as e,__disposeResources as t}from"tslib";import s from"../../../../core/Collection.js";import{toConst as r}from"../../../../core/compilerUtils.js";import o from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{QueueProcessor as n}from"../../../../core/QueueProcessor.js";import a from"../../../../geometry/SpatialReference.js";import{set as u,create as p,expandWithRect as l,expandWithAABB as c,negativeInfinity as d,fromRect as f}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as m,QueryEngine as y}from"../../data/QueryEngine.js";import{QueryEngineResult as h}from"../../data/QueryEngineResult.js";import{createDrawingInfo as g}from"./clientSideDefaults.js";import _ from"../../../support/Field.js";import w from"../../../support/FieldsIndex.js";import{collectSQLFieldNames as I}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as x}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as R,fromParquetJSONGeometryType as S,toParquetJSONGeometryType as F}from"../../../support/parquetUtils.js";import{createParquetFile as C,readGeoMetadata as q}from"../../../../libs/parquet/parquet.js";import{FeatureStoreQueryAdapter as b}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as v}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as O}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as j}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as E}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const Q=new b,A=4,T=8e3,B="__OBJECTID";class P{constructor(){this._fileInfos=new Map,this._queue=new n({concurrency:A,process:(e,t)=>this._executeQuery(e,t)})}async load(r){const n=r.spatialReference?a.fromJSON(r.spatialReference):void 0;if(n&&!n.isWGS84&&!n.isWebMercator)throw new o("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");const c=await R({urls:new s(r.urls),fields:r.fields?.map(e=>_.fromJSON(e)),geometryEncoding:r.geometryEncoding?x(r.geometryEncoding):null,geometryType:r.geometryType?S(r.geometryType):null,spatialReference:n},{customParameters:r.customParameters});let f;if(c.geometryType&&c.geometryEncoding){if(!c.spatialReference)throw new o("parquet:unsupported","SpatialReference must be defined");if(!c.spatialReference.isGeographic&&!c.spatialReference.isWebMercator)throw new o("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");c.spatialReference.isGeographic&&!c.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:c.spatialReference}),c.spatialReference=a.WGS84),f={geometryType:F(c.geometryType),spatialReference:c.spatialReference.toJSON(),geometryEncoding:c.geometryEncoding.toJSON(),displayOptimization:c.displayOptimization}}this.setCustomParameters(r.customParameters),this._geometryInfo=f;const m=r.urls;for(const e of m){const t=await C(e,{geometryInfo:f,outSpatialReference:null,getCustomParameters:()=>this._customParameters});this._fileInfos.set(e,{index:this._fileInfos.size,file:t})}this._capabilities=z(await this.getFileStatistics());const y=this._fileInfos.values().next().value?.file;if(!y)return{layerDefinition:{},capabilities:z(null)};const{fields:h}=c;if(null==h)throw new o("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",h);h.push(new _({name:B,type:"oid",alias:B}));const I={fields:h.map(e=>({...e.toJSON(),column:y.columnForFieldName(e.name)})),timeZoneByFieldName:null},q=w.fromJSON(I);this._fieldsIndex=q;const b=F(c.geometryType??"point");if(this._metadata=j.createFeature({fieldsIndex:I,geometryType:b,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:c.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:f?.geometryType??"esriGeometryPoint",featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:f?.spatialReference??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},c.spatialReference&&(this._fullExtent=k(this._fileInfos.values(),c.spatialReference.toJSON())),null==this._fullExtent&&"location"===c.geometryEncoding?.type){const{yField:s,xField:r}=c.geometryEncoding,o=this._fieldsIndex.get(r)?.column,i=this._fieldsIndex.get(s)?.column,n=u(p(),d);for(const a of this._fileInfos.values())for(const s of a.file.rowGroups()){const r={stack:[],error:void 0,hasError:!1};try{const t=e(r,s.columnDescriptorForAttribute(o),!1),a=e(r,s.columnDescriptorForAttribute(i),!1),u=[t.minValue(),a.minValue(),t.maxValue(),a.maxValue()];l(n,u),s.free()}catch(v){r.error=v,r.hasError=!0}finally{t(r)}}this._fullExtent={xmin:n[0],ymin:n[1],xmax:n[3],ymax:n[4],spatialReference:c.spatialReference?.toJSON()}}return{capabilities:this._capabilities,layerDefinition:{fields:c.fields?.map(e=>e.toJSON()),drawingInfo:g(b),extent:this._fullExtent??void 0,geometryType:b,geometryEncoding:c.geometryEncoding?.toJSON(),displayOptimization:c.displayOptimization}}}destroy(){for(const e of this._fileInfos.values())e.file.free();this._fileInfos.clear(),this._queue.destroy()}setCustomParameters(e){this._customParameters=e}getFileStatistics(){if(!this._fileInfos.size)return null;const e=Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.byteLength(),0);return{featureCount:this._getFeatureCount(),byteLength:e}}async updateFiles(e){const t=new Set(e);for(const[s,r]of this._fileInfos.entries())t.has(s)?t.delete(s):(r.file.free(),this._fileInfos.delete(s));for(const s of t){const e=await C(s,{geometryInfo:this._geometryInfo,outSpatialReference:null,getCustomParameters:()=>this._customParameters});this._fileInfos.set(s,{index:this._fileInfos.size,file:e})}}async queryFeatures(e,t){this._validateQuery(e),N(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&delete e.returnGeometry;return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){if(this._validateQuery(e),!G(e))return this._getFeatureCount();delete e.outFields,delete e.returnGeometry;return(await this._enqueueQuery(e,t)).createQueryResponseForCount()}async queryObjectIds(e,t){if(this._validateQuery(e),!G(e))return Array.from({length:this._getFeatureCount()},(e,t)=>t);e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0,delete e.returnGeometry,delete e.outFields;return(await this._enqueueQuery(e,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){if(this._validateQuery(e),this._fullExtent&&!G(e))return{count:this._getFeatureCount(),extent:this._fullExtent};const s=r(this._metadata.spatialReference);e.returnGeometry=!0,delete e.outFields;const o=u(p(),d),i=p(),n=await this._enqueueQuery(e,t);let a=0;for(const r of n.items)r.getBounds(i)&&(c(o,i),a+=1);return{count:a,extent:m(o,s,e.outSR?r(e.outSR):s,s,!1)}}_getFeatureCount(){return Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.numRows(),0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new o("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new o("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new o("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async*_fetchChunks(e,t){for(const s of this._fileInfos.values()){const r=s.file.numRows(),o=Math.ceil(r/T);for(let i=0;i<o;i++){const r=i*T,o=await s.file.readChunk(r,T,e.fields,e.returnGeometry,t);for(const e of o){const t=new E(this._metadata,this._fieldsIndex,e,0,s.index),r=M([new v(t,null,0,!1)],this._queryEngineParams);yield r}}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const s=await this._getReadParams(e);if(e.objectIds?.length)for(const n of this._fileInfos.values()){const r=[],o=M((await n.file.readChunksByRowId(new Uint32Array(e.objectIds),s.fields,s.returnGeometry,t)).map((e,t)=>new E(this._metadata,this._fieldsIndex,e,t,n.index)).map((e,t)=>new v(e,null,t,!1)),this._queryEngineParams),i=await o.executeQueryForOpaqueFeatures(e,t);for(const e of i)r.push(e);return new h(r,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:Q})}let r=e.resultRecordCount??this._getFeatureCount(),o=e.resultOffset??0;delete e.resultRecordCount,delete e.resultOffset;const i=[];for await(const n of this._fetchChunks(s,t)){const s=await n.executeQueryForOpaqueFeatures(e,t);if(s.length>o){const t=s.slice(o,Math.min(o+r,s.length));for(const e of t)i.push(e);if(o=0,r-=t.length,0===r)return new h(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:Q})}else o-=s.length}return new h(i,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:Q})}async _getReadParams(e){const t=new Set;if(e.where&&await I(t,this._fieldsIndex,e.where),e.outStatistics)for(const s of e.outStatistics)null!=s.onStatisticField&&t.add(s.onStatisticField);if(e.outFields)for(const s of e.outFields)t.add(s);return{fields:this._getAttributeIds(Array.from(t)),returnGeometry:!!e.returnGeometry||!!e.geometry}}_getAttributeIds(e){if(null==e)return new Uint32Array;if(e.includes("*"))return new Uint32Array(this._fieldsIndex.fields.map(e=>e.column).filter(e=>null!=e));const t=[];for(const s of e){const e=this._fieldsIndex.get(s);if(null==e)throw new o("unknown-field",`Field ${s} does not exist`);null==e.column||t.push(e.column)}return new Uint32Array(t)}}function G(e){return Object.keys(e).some(e=>D(e))}function D(e){switch(e){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"where":case"objectIds":case"historicMoment":return!0;default:return!1}}function M(e,t){const s=new O;for(const r of e)s.insert(r);return new y({...t,featureStore:s})}function U(e){switch(e.length){case 4:return f(p(),e);case 6:return e;default:throw new o("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{bbox:e})}}function k(e,t){const s=u(p(),d);for(const r of e){const e=q(r.file);if(!e)return null;const t=e.columns[e.primary_column];if(!t.bbox)return null;const o=U(t.bbox);c(s,o)}return{xmin:s[0],ymin:s[1],xmax:s[3],ymax:s[4],spatialReference:t}}function z(e){const t=e?.featureCount;let s=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(s=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:8e3,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,standardMaxRecordCount:void 0,supportsCacheHint:!1,supportsCentroid:!0,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsDistinct:s,supportsExtent:!1,supportsFormatPBF:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:s,supportsPagination:!0,supportsPaginationOnAggregatedQueries:!1,supportsPercentileStatistics:!1,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:s,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,supportsTrueCurve:!1,tileMaxRecordCount:void 0},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function N(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{P as default};
5
+ import{__addDisposableResource as e,__disposeResources as t}from"tslib";import s from"../../../../core/Collection.js";import{toConst as r}from"../../../../core/compilerUtils.js";import o from"../../../../core/Error.js";import has from"../../../../core/has.js";import i from"../../../../core/Logger.js";import{throwIfAborted as n}from"../../../../core/promiseUtils.js";import{QueueProcessor as a}from"../../../../core/QueueProcessor.js";import u from"../../../../geometry/SpatialReference.js";import{set as p,create as l,expandWithRect as c,expandWithAABB as d,negativeInfinity as f,fromRect as m}from"../../../../geometry/support/aaBoundingBox.js";import{getQueryResultExtent as y,QueryEngine as h}from"../../data/QueryEngine.js";import{QueryEngineResult as g}from"../../data/QueryEngineResult.js";import{createDrawingInfo as _}from"./clientSideDefaults.js";import w from"../../../support/Field.js";import x from"../../../support/FieldsIndex.js";import{collectSQLFieldNames as I}from"../../../support/fieldUtils.js";import{fromParquetGeometryEncodingJSON as R}from"../../../support/parquetEncodingUtils.js";import{completeParquetLayerInfo as F,fromParquetJSONGeometryType as S,toParquetJSONGeometryType as C}from"../../../support/parquetUtils.js";import{loadParquetModule as q}from"../../../../libs/parquet/loadParquetModule.js";import{createParquetFile as b,readGeoMetadata as v}from"../../../../libs/parquet/parquet.js";import{FeatureStoreQueryAdapter as O}from"../../../../views/2d/layers/features/FeatureStoreQueryAdapter.js";import{FeatureSnapshotSourceChunk as Q}from"../../../../views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js";import{FeatureSourceChunkStore as j}from"../../../../views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js";import{FeatureMetadata as E}from"../../../../views/2d/layers/features/support/FeatureMetadata.js";import{FeatureSetReaderParquet as T}from"../../../../views/2d/layers/features/support/FeatureSetReaderParquet.js";const A=new O,P=4,B="__OBJECTID";class G{constructor(){this._fileInfos=new Map,this._queue=new a({concurrency:P,process:(e,t)=>this._executeQuery(e,t)})}async load(r){const n=r.spatialReference?u.fromJSON(r.spatialReference):void 0;if(n&&!n.isWGS84&&!n.isWebMercator)throw new o("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");const a=await F({urls:new s(r.urls),fields:r.fields?.map(e=>w.fromJSON(e)),geometryEncoding:r.geometryEncoding?R(r.geometryEncoding):null,geometryType:r.geometryType?S(r.geometryType):null,displayOptimization:r.displayOptimization,spatialReference:n},{customParameters:r.customParameters});if(!a.fields)throw new o("parquet:unsupported","Fields must be defined");let d;if(a.spatialReference&&a.geometryType){if(!a.spatialReference)throw new o("parquet:unsupported","SpatialReference must be defined");if(!a.spatialReference.isGeographic&&!a.spatialReference.isWebMercator)throw new o("parquet:unsupported-projection","Only WGS84 and Web Mercator are supported");a.spatialReference.isGeographic&&!a.spatialReference.isWGS84&&(i.getLogger("parquet:unsupported-projection").warn("Found a geographic projection that is not WGS84. Handling as WGS84.",{spatialReference:a.spatialReference}),a.spatialReference=u.WGS84),d={geometry:a.geometryEncoding?{geometryType:C(a.geometryType),spatialReference:a.spatialReference.toJSON(),encoding:a.geometryEncoding.toJSON()}:null,displayOptimization:a.displayOptimization}}this.setCustomParameters(r.customParameters),this._geometryInfo=d;const m=r.urls;for(const e of m){const t=await b(e,{geometryInfo:d,getCustomParameters:()=>this._customParameters});this._fileInfos.set(e,{index:this._fileInfos.size,file:t})}this._capabilities=k(this.getFileStatistics());const y=this._fileInfos.values().next().value?.file;if(!y)return{layerDefinition:{},capabilities:k(null)};const{fields:h}=a;if(null==h)throw new o("parquet-layer:missing-metadata","Unable to create parquet source: cannot infer fields",h);h.push(new w({name:B,type:"oid",alias:B}));const g={fields:h.map(e=>({...e.toJSON(),column:y.columnForFieldName(e.name)})),timeZoneByFieldName:null},I=x.fromJSON(g);this._fieldsIndex=I;const q=C(a.geometryType??"point");if(this._metadata=E.createFeature({fieldsIndex:g,geometryType:q,featureIdInfo:{type:"object-id",fieldName:"rowId"},subtypes:null,subtypeField:null,types:null,typeIdField:null,globalIdField:null,spatialReference:a.spatialReference,outSpatialReference:null,timeInfo:null,timeReferenceUnknownClient:null,dateFieldsTimeZone:null}),this._queryEngineParams={fieldsIndex:this._metadata.fieldsIndex,geometryType:q,featureIdInfo:{type:"object-id",fieldName:"rowId"},hasM:!1,hasZ:!1,spatialReference:a.spatialReference?.toJSON()??{wkid:4326},aggregateAdapter:null,timeInfo:null,definitionExpression:null},a.spatialReference&&(this._fullExtent=N(this._fileInfos.values(),a.spatialReference.toJSON())),null==this._fullExtent&&"location"===a.geometryEncoding?.type){const{xField:s,yField:r}=a.geometryEncoding,o=p(l(),f);for(const i of this._fileInfos.values())for(const n of i.file.rowGroups()){const i={stack:[],error:void 0,hasError:!1};try{const t=e(i,n.columnDescriptorForAttribute(s),!1),a=e(i,n.columnDescriptorForAttribute(r),!1),u=[t.minValue(),a.minValue(),t.maxValue(),a.maxValue()];c(o,u),n.free()}catch(v){i.error=v,i.hasError=!0}finally{t(i)}}this._fullExtent={xmin:o[0],ymin:o[1],xmax:o[3],ymax:o[4],spatialReference:a.spatialReference?.toJSON()}}return{capabilities:this._capabilities,layerDefinition:{fields:a.fields?.map(e=>e.toJSON()),drawingInfo:_(q),extent:this._fullExtent??void 0,geometryType:q,geometryEncoding:a.geometryEncoding?.toJSON(),displayOptimization:a.displayOptimization}}}destroy(){for(const e of this._fileInfos.values())e.file.free();this._fileInfos.clear(),this._queue.destroy()}setCustomParameters(e){this._customParameters=e}getFileStatistics(){if(!this._fileInfos.size)return null;const e=Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.byteLength(),0);return{featureCount:this._getFeatureCount(),byteLength:e}}async updateFiles(e){const t=new Set(e);for(const[s,r]of this._fileInfos.entries())t.has(s)?t.delete(s):(r.file.free(),this._fileInfos.delete(s));for(const s of t){const e=await b(s,{geometryInfo:this._geometryInfo,getCustomParameters:()=>this._customParameters});this._fileInfos.set(s,{index:this._fileInfos.size,file:e})}}async queryFeatures(e,t){this._validateQuery(e),W(e)||(e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0),(e.outStatistics||e.returnDistinctValues)&&delete e.returnGeometry;return(await this._enqueueQuery(e,t)).createQueryResponse()}async queryFeatureCount(e,t){if(this._validateQuery(e),!D(e))return this._getFeatureCount();delete e.outFields,delete e.returnGeometry;return(await this._enqueueQuery(e,t)).createQueryResponseForCount()}async queryObjectIds(e,t){if(this._validateQuery(e),!D(e))return Array.from({length:this._getFeatureCount()},(e,t)=>t);e.resultRecordCount=e.resultRecordCount?Math.min(e.resultRecordCount,8e3):8e3,e.resultOffset=e.resultOffset??0,delete e.returnGeometry,delete e.outFields;return(await this._enqueueQuery(e,t)).items.map(e=>e.getObjectId())}async queryExtent(e,t){if(this._validateQuery(e),this._fullExtent&&!D(e))return{count:this._getFeatureCount(),extent:this._fullExtent};const s=r(this._metadata.spatialReference);e.returnGeometry=!0,delete e.outFields;const o=p(l(),f),i=l(),n=await this._enqueueQuery(e,t);let a=0;for(const r of n.items)r.getBounds(i)&&(d(o,i),a+=1);return{count:a,extent:y(o,s,e.outSR?r(e.outSR):s,s,!1)}}_getFeatureCount(){return Array.from(this._fileInfos.values()).reduce((e,t)=>e+t.file.numRows(),0)}_validateQuery(e){if(!this._capabilities.query.supportsStatistics&&e.outStatistics)throw new o("parquet:unsupported","Statistics queries are not supported",{query:e});if(!this._capabilities.query.supportsOrderBy&&e.orderByFields?.length)throw new o("parquet:unsupported","Queries using orderBy are not supported",{query:e});if(!this._capabilities.query.supportsDistinct&&e.returnDistinctValues)throw new o("parquet:unsupported","Queries using returnDistinctValues are not supported",{query:e})}async*_fetchChunks(e,t){const s=await q();for(const r of this._fileInfos.values()){const o=s.Query.new();o.setOutFields(e.fields),o.setReturnGeometry(e.returnGeometry);const i=await r.file.executeQuery(o),a=[],u=i.next(t);for(let e=0;e<P;e++)a.push(i.next(t));let p=await u;for(;null!=p;){n(t);const e=new T(this._metadata,this._fieldsIndex,p,r.index),s=z([new Q(e,null,0,!1)],this._queryEngineParams),o=a.shift();a.push(i.next(t)),yield s,p=await o}}}_enqueueQuery(e,t){return this._queue.push(e,t)}async _executeQuery(e,t){const s=await this._getReadParams(e),r=await q();if(e.objectIds?.length)for(const a of this._fileInfos.values()){const o=r.Query.new();o.setOutFields(s.fields),o.setReturnGeometry(s.returnGeometry),o.setIds(new Uint32Array(e.objectIds));const i=await a.file.executeQuery(o,t);let n=await i.next(t),u=0;const p=[];for(;null!=n;){const e=new T(this._metadata,this._fieldsIndex,n,a.index),s=new Q(e,null,u++,!1);p.push(s),n=await i.next(t)}const l=[],c=z(p,this._queryEngineParams),d=await c.executeQueryForOpaqueFeatures(e,t);for(const e of d)l.push(e);return new g(l,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:A})}let o=e.resultRecordCount??this._getFeatureCount(),i=e.resultOffset??0;delete e.resultRecordCount,delete e.resultOffset;const n=[];for await(const a of this._fetchChunks(s,t)){const s=await a.executeQueryForOpaqueFeatures(e,t);if(s.length>i){const t=s.slice(i,Math.min(i+o,s.length));for(const e of t)n.push(e);if(i=0,o-=t.length,0===o)return new g(n,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:A})}else i-=s.length}return new g(n,e,{fieldsIndex:this._fieldsIndex,geometryType:this._metadata.geometryType,spatialReference:this._queryEngineParams.spatialReference,objectIdField:"rowId",hasM:!1,hasZ:!1,featureAdapter:A})}async _getReadParams(e){const t=new Set;if(e.where&&await I(t,this._fieldsIndex,e.where),e.outStatistics)for(const s of e.outStatistics)null!=s.onStatisticField&&t.add(s.onStatisticField);if(e.outFields)for(const s of e.outFields)t.add(s);return{fields:(t.has("*")?this._fieldsIndex.fields.map(e=>e.name):Array.from(t)).filter(e=>null!=this._fieldsIndex.get(e)?.column),returnGeometry:!!e.returnGeometry||!!e.geometry}}}function D(e){return Object.keys(e).some(e=>M(e))}function M(e){switch(e){case"resultOffset":case"resultRecordCount":case"aggregateIds":case"distance":case"gdbVersion":case"geometry":case"having":case"timeExtent":case"where":case"objectIds":case"historicMoment":return!0;default:return!1}}function z(e,t){const s=new j;for(const r of e)s.insert(r);return new h({...t,featureStore:s})}function U(e){switch(e.length){case 4:return m(l(),e);case 6:return e;default:throw new o("parquet:protocol-violation","Invalid Geoparquet file. BoundingBox size must be 4 or 6.",{bbox:e})}}function N(e,t){const s=p(l(),f);for(const r of e){const e=v(r.file);if(!e)return null;const t=e.columns[e.primary_column];if(!t.bbox)return null;const o=U(t.bbox);d(s,o)}return{xmin:s[0],ymin:s[1],xmax:s[3],ymax:s[4],spatialReference:t}}function k(e){const t=e?.featureCount;let s=!1;return null!=t&&t<has("parquetlayer-full-query-feature-count")&&(s=!0),{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:!1},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:!1,supportsDelete:!1,supportsEditing:!1,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!1,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:!1,supportsExceedsLimitStatistics:!1,supportsAsyncConvert3D:!1},query:{maxRecordCount:8e3,maxRecordCountFactor:void 0,maxUniqueIDCount:void 0,standardMaxRecordCount:void 0,supportsCacheHint:!1,supportsCentroid:!0,supportsCentroidOnDegeneratedQuantizedGeometry:!1,supportsCurrentUser:!1,supportsDegeneratedQuantizedGeometry:!1,supportsDisjointSpatialRelationship:!1,supportsDistance:!1,supportsDistinct:s,supportsExtent:!1,supportsFormatPBF:!1,supportsGeometryProperties:!1,supportsHavingClause:!1,supportsHistoricMoment:!1,supportsMaxRecordCountFactor:!1,supportsOrderBy:s,supportsPagination:!0,supportsPaginationOnAggregatedQueries:!1,supportsPercentileStatistics:!1,supportsQuantization:!0,supportsQuantizationEditMode:!1,supportsQueryByAnonymous:!1,supportsQueryByOthers:!1,supportsQueryGeometry:!1,supportsResultType:!1,supportsReturnMesh:!1,supportsStandardizedQueriesOnly:!1,supportsTopFeaturesQuery:!1,supportsStatistics:s,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsDefaultSpatialReference:!1,supportsFullTextSearch:!1,supportsCompactGeometry:!1,supportsSqlExpression:!1,supportsTrueCurve:!1,tileMaxRecordCount:void 0},queryAttributeBins:{supportsDate:!1,supportsFixedInterval:!1,supportsAutoInterval:!1,supportsFixedBoundaries:!1,supportsStackBy:!1,supportsSplitBy:!1,supportsSnapToData:!1,supportsReturnFullIntervalBin:!1,supportsFirstDayOfWeek:!1,supportsNormalization:!1},queryRelated:{supportsCount:!1,supportsOrderBy:!1,supportsPagination:!1,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},editing:{supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsGeometryUpdate:!1,supportsGlobalId:!1,supportsTrueCurveUpdate:!1,supportsTrueCurveUpdateByTrueCurveClientsOnly:!0,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsUploadWithItemId:!1,supportsUpdateWithoutM:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}function W(e){return!!(e.objectIds?.length||e.outStatistics||e.orderByFields?.length||e.returnDistinctValues)}export{G as default};
@@ -26,7 +26,7 @@ import type { ScaleRangeLayer, ScaleRangeLayerProperties } from "../mixins/Scale
26
26
  import type { TemporalLayer, TemporalLayerProperties } from "../mixins/TemporalLayer.js";
27
27
  import type { FieldDomainOptions } from "../mixins/properties/ILayerWithGetField.js";
28
28
  import type { Domain } from "../support/domains.js";
29
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
29
+ import type { RendererUnion } from "../../renderers/types.js";
30
30
  import type { RequestOptions } from "../../request/types.js";
31
31
  import type { QueryProperties } from "../../rest/support/Query.js";
32
32
  import type { CreatePopupTemplateOptions } from "../../support/popupUtils.js";
@@ -43,7 +43,7 @@ import type { GeometryUnion } from "../../geometry/types.js";
43
43
  import type { DynamicFetchRasterOptions, OperationCapabilities, QueryCapabilities } from "../types.js";
44
44
  import type { RasterInterpolation, RasterNoDataInterpretation, RasterPixelType, RasterFormats } from "../support/RasterTypes.js";
45
45
  import type { PixelData, RasterMultidimensionalInfo, RasterFunctionInfo } from "../support/types.js";
46
- import type { RasterRendererUnion } from "../../renderers/support/rasterTypeUtils.js";
46
+ import type { RasterRendererUnion } from "../../renderers/support/raster/types.js";
47
47
  import type { RequestOptions } from "../../request/types.js";
48
48
  import type { ImageServiceStatisticsHistogramsResult, ImageServiceHistogramsResult } from "../../rest/imageService.js";
49
49
  import type { ImageBoundaryParametersProperties } from "../../rest/support/ImageBoundaryParameters.js";
@@ -12,7 +12,7 @@ import type TimeInterval from "../../time/TimeInterval.js";
12
12
  import type { FetchRasterOptions, RasterIdentifyOptions } from "../types.js";
13
13
  import type { RasterInterpolation } from "../support/RasterTypes.js";
14
14
  import type { RasterIdentifyResult } from "../support/types.js";
15
- import type { RasterRendererUnion } from "../../renderers/support/rasterTypeUtils.js";
15
+ import type { RasterRendererUnion } from "../../renderers/support/raster/types.js";
16
16
  import type { RequestOptions } from "../../request/types.js";
17
17
  import type { DimensionalDefinitionProperties } from "../support/DimensionalDefinition.js";
18
18
  import type { MultidimensionalSubsetProperties } from "../support/MultidimensionalSubset.js";
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Provides utility functions for the [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.html).
3
+ *
4
+ * @since 5.0
5
+ * @see [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.html)
6
+ */
7
+ import type { CollectionsPage, LandingPage, QueryOptions } from "./types.js";
8
+
9
+ /**
10
+ * Returns an array of feature collections available on the server.
11
+ *
12
+ * @param landingPage - An OGC API-Feature server landing page.
13
+ * @param options - Additional options.
14
+ * @returns A promise that resolves to the server's collections page.
15
+ * @see [getServerLandingPage()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ogc-ogcFeatureUtils.html#getServerLandingPage)
16
+ * @example
17
+ * // Print the ids and titles of all collections published to the ogc-api features server.
18
+ * const url = "https://demo.ldproxy.net/daraa";
19
+ *
20
+ * const ogcFeatureUtils = await $arcgis.import("@arcgis/core/layers/ogc/ogcFeatureUtils.js");
21
+ * const landingPage = await ogcFeatureUtils.getServerLandingPage(url);
22
+ * const collectionsPage = await ogcFeatureUtils.getServerCollectionsPage(landingPage);
23
+ * for (const collection of collectionsPage.collections) {
24
+ * const { id, title } = collection;
25
+ * console.log(`
26
+ * Collection id: ${id}
27
+ * Collection title: ${title ?? "not specified"}
28
+ * `);
29
+ * }
30
+ */
31
+ export function getServerCollectionsPage(landingPage: LandingPage, options?: QueryOptions): Promise<CollectionsPage>;
32
+
33
+ /**
34
+ * Returns the landing page for an OGC API-Features server.
35
+ *
36
+ * @param url - The URL to an OGC API-Features server.
37
+ * @param options - Additional options.
38
+ * @returns A promise that resolves to the server's landing page.
39
+ *
40
+ * > [!WARNING]
41
+ * >
42
+ * > The url that returns the json representation of the landing page may or may not include query parameters, for
43
+ * > example, "f=json". This function does not append any query parameters to the provided url. If the server requires
44
+ * > specific query parameters to return the landing page, please ensure they are included in the provided url.
45
+ * @example
46
+ * // Print the title and description of the server landing page to console.
47
+ * const url = "https://demo.ldproxy.net/daraa";
48
+ *
49
+ * const ogcFeatureUtils = await $arcgis.import("@arcgis/core/layers/ogc/ogcFeatureUtils.js");
50
+ * const landingPage = await ogcFeatureUtils.getServerLandingPage(url);
51
+ * const { description, title } = landingPage;
52
+ * console.log(`
53
+ * Title: ${title ?? "not specified"}
54
+ * Description: ${description ?? "not specified"}
55
+ * `);
56
+ */
57
+ export function getServerLandingPage(url: string, options?: QueryOptions): Promise<LandingPage>;
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as i,addQueryParameters as r,urlToObject as o}from"../../core/urlUtils.js";import a from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as l}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as c,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import p from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as f,inferLayerProperties as m,createOptimizedFeatures as g}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as y}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as w}from"../graphics/sources/support/sourceUtils.js";import h from"../support/FieldsIndex.js";import{kebabDict as b}from"../support/fieldType.js";import{utc as j}from"../../time/constants.js";const F=()=>n.getLogger("esri.layers.ogc.ogcFeatureUtils"),I="startindex",T=new Set([I,"offset"]),k="http://www.opengis.net/def/crs/",x=`${k}OGC/1.3/CRS84`;async function S(n,o,a={},s=5){const{links:l}=n,c=L(l,"items","application/geo+json")||L(l,"http://www.opengis.net/def/rel/ogc/1.0/items","application/geo+json");if(null==c)throw new t("ogc-feature-layer:missing-items-page","Missing items url");const{apiKey:u,customParameters:d,signal:p}=a,g=i(c.href,n.landingPage.url),w={limit:s,...d,token:u},T=r(g,w),k={accept:"application/geo+json"},{data:x}=await e(T,{signal:p,headers:k}),S=U(T,s,x.links)??I;f(x);const v=x.numberMatched,O=m(x,{geometryType:o.geometryType}),P=o.fields||O.fields||[],q=null!=o.hasZ?o.hasZ:O.hasZ,C=O.geometryType,N=o.objectIdField||O.objectIdFieldName||"OBJECTID";let R=o.timeInfo;const W=P.find(({name:e})=>e===N);if(W)W.editable=!1,W.nullable=!1;else{if(!O.objectIdFieldType)throw new t("ogc-feature-layer:missing-feature-id","Collection geojson require a feature id as a unique identifier");P.unshift({name:N,alias:N,type:"number"===O.objectIdFieldType?"esriFieldTypeOID":"esriFieldTypeString",editable:!1,nullable:!1})}if(N!==O.objectIdFieldName){const e=P.find(({name:e})=>e===O.objectIdFieldName);e&&(e.type="esriFieldTypeInteger")}P===O.fields&&O.unknownFields.length>0&&F().warn({name:"ogc-feature-layer:unknown-field-types",message:"Some fields types couldn't be inferred from the features and were dropped",details:{unknownFields:O.unknownFields}});for(const e of P){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),"esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type&&(e.editable=null==e.editable||!!e.editable,e.nullable=null==e.nullable||!!e.nullable),!e.name)throw new t("ogc-feature-layer:invalid-field-name","field name is missing",{field:e});if(!b.jsonValues.includes(e.type))throw new t("ogc-feature-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e})}if(R){const e=new h(P);if(R.startTimeField){const t=e.get(R.startTimeField);t?(R.startTimeField=t.name,t.type="esriFieldTypeDate"):R.startTimeField=null}if(R.endTimeField){const t=e.get(R.endTimeField);t?(R.endTimeField=t.name,t.type="esriFieldTypeDate"):R.endTimeField=null}if(R.trackIdField){const t=e.get(R.trackIdField);t?R.trackIdField=t.name:(R.trackIdField=null,F().warn({name:"ogc-feature-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:R}}))}R.timeReference||={timeZoneIANA:j},R.startTimeField||R.endTimeField||(F().warn({name:"ogc-feature-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing",details:{timeInfo:R}}),R=void 0)}return{drawingInfo:C?y(C):null,extent:K(n),geometryType:C,fields:P,hasZ:!!q,objectIdField:N,paginationParameter:S,timeInfo:R,featureCount:v}}async function v(n,r={}){const{links:o,url:a}=n,s=L(o,"data","application/json")||L(o,"http://www.opengis.net/def/rel/ogc/1.0/data","application/json");if(null==s)throw new t("ogc-feature-layer:missing-collections-page","Missing collections url");const{apiKey:l,customParameters:c,signal:u}=r,d=i(s.href,a),{data:p}=await e(d,{signal:u,headers:{accept:"application/json"},query:{...c,token:l}});for(const e of p.collections)e.landingPage=n;return p}async function O(n,r={}){const{links:o,url:a}=n,s=L(o,"conformance","application/json")||L(o,"http://www.opengis.net/def/rel/ogc/1.0/conformance","application/json");if(null==s)throw new t("ogc-feature-layer:missing-conformance-page","Missing conformance url");const{apiKey:l,customParameters:c,signal:u}=r,d=i(s.href,a),{data:p}=await e(d,{signal:u,headers:{accept:"application/json"},query:{...c,token:l}});return p}async function P(t,n={}){const{apiKey:i,customParameters:r,signal:o}=n,{data:a}=await e(t,{signal:o,headers:{accept:"application/json"},query:{...r,token:i}});return a.url=t,a}async function q(t,n={}){const{links:r,url:o}=t,a=L(r,"service-desc","application/vnd.oai.openapi+json;version=3.0");if(null==a)return F().warn("ogc-feature-layer:missing-openapi-page","The OGC API-Features server does not have an OpenAPI page."),null;const{apiKey:s,customParameters:l,signal:c}=n,u=i(a.href,o),{data:d}=await e(u,{signal:c,headers:{accept:"application/vnd.oai.openapi+json;version=3.0"},query:{...l,token:s}});return d}function C(e){const t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e),n=t?.groups;if(!n)return null;const{authority:i,code:r}=n;switch(i.toLowerCase()){case"ogc":switch(r.toLowerCase()){case"crs27":return a.GCS_NAD_1927.wkid;case"crs83":return 4269;case"crs84":case"crs84h":return a.WGS84.wkid;default:return null}case"esri":case"epsg":{const e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function N(e,t,n){const i=await R(e,t,n);return c(i)}async function R(n,r,o){const{collection:{links:c,landingPage:{url:f}},layerDefinition:m,maxRecordCount:y,queryParameters:{apiKey:b,customParameters:j},spatialReference:F,supportedCrs:I}=n,T=L(c,"items","application/geo+json")||L(c,"http://www.opengis.net/def/rel/ogc/1.0/items","application/geo+json");if(!T)throw new t("ogc-feature-layer:missing-items-page","Missing items url");const{geometry:k,num:x,start:S,timeExtent:v,where:O}=r;if(r.objectIds)throw new t("ogc-feature-layer:query-by-objectids-not-supported","Queries with object ids are not supported");const P=a.fromJSON(F),q=r.outSpatialReference??P,C=q.isWGS84?null:$(q,I),N=Z(k,I),R=M(v),W=D(O),G=x??(null==S?y:10),K=0===S?void 0:S,{fields:U,geometryType:A,hasZ:J,objectIdField:z,paginationParameter:E}=m,_=i(T.href,f),{data:B}=await e(_,{...o,query:{...j,...N,crs:C,datetime:R,query:W,limit:G,[E]:K,token:b},headers:{accept:"application/geo+json"}}),Q=g(B,{geometryType:A,hasZ:J,objectIdField:z}),V=Q.length===G&&!!L(B.links??[],"next","application/geo+json"),H=new h(U);for(const e of Q){const t={};w(H,t,e.attributes,!0);for(const e of H.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[z]=e.attributes[z],e.attributes=t}if(!C&&q.isWebMercator)for(const e of Q)if(null!=e.geometry&&null!=A){const t=u(e.geometry,A,J,!1);t.spatialReference=a.WGS84,e.geometry=d(l(t,q))}for(const e of Q)e.objectId=e.attributes[z];const X=C||!C&&q.isWebMercator?q.toJSON():s,Y=new p;return Y.exceededTransferLimit=V,Y.features=Q,Y.fields=U,Y.geometryType=A,Y.hasZ=J,Y.spatialReference=X,Y}function W(e){return null!=e&&"extent"===e.type}function $(e,t){const{isWebMercator:n,wkid:i,latestWkid:r}=e;if(!i&&!r)return null;const o=n?t[3857]??t[102100]??t[102113]??t[900913]:i&&t[i]||r&&t[r];return o?`${k}${o}`:null}function G(e){if(!e)return"";const{xmin:t,ymin:n,xmax:i,ymax:r}=e;return`${t},${n},${i},${r}`}function M(e){if(!e)return null;const{start:t,end:n}=e;return`${null!=t?t.toISOString():".."}/${null!=n?n.toISOString():".."}`}function D(e){return e&&"1=1"!==e?e:null}function Z(e,t){if(!W(e))return null;const{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:G(e)};const i=$(n,t);return null!=i?{bbox:G(e),"bbox-crs":i}:n.isWebMercator?{bbox:G(l(e,a.WGS84))}:null}function K(e){const t=e.extent?.spatial;if(!t)return null;const n=t.bbox[0],i=4===n.length,[r,o]=n,s=i?void 0:n[2];return{xmin:r,ymin:o,xmax:i?n[2]:n[3],ymax:i?n[3]:n[4],zmin:s,zmax:i?void 0:n[5],spatialReference:a.WGS84.toJSON()}}function L(e,t,n){return e.find(({rel:e,type:i})=>e===t&&i===n)??e.find(({rel:e,type:n})=>e===t&&!n)}function U(e,t,n){if(!n)return;const i=L(n,"next","application/geo+json"),r=o(i?.href)?.query;if(!r)return;const a=o(e).query,s=Object.keys(a??{}),l=Object.entries(r).filter(([e])=>!s.includes(e)).find(([e,n])=>T.has(e.toLowerCase())&&Number.parseInt(n,10)===t),c=l?.[0];return c}export{x as crsDefault,k as crsPrefix,S as getCollectionDefinition,v as getServerCollections,O as getServerConformance,P as getServerLandingPage,q as getServerOpenApi,C as getSpatialReferenceWkid,N as queryFeatureSetJSON,R as queryOptimizedFeatureSet};
5
+ import e from"../../request.js";import t from"../../core/Error.js";import n from"../../core/Logger.js";import{makeAbsolute as i,addQueryParameters as r,urlToObject as o}from"../../core/urlUtils.js";import a from"../../geometry/SpatialReference.js";import{wgs84 as s}from"../../geometry/support/spatialReferenceUtils.js";import{project as l}from"../../geometry/support/webMercatorUtils.js";import{convertToFeatureSet as c,convertToGeometry as u,convertFromGeometry as d}from"../graphics/featureConversionUtils.js";import p from"../graphics/OptimizedFeatureSet.js";import{validateGeoJSON as f,inferLayerProperties as m,createOptimizedFeatures as g}from"../graphics/sources/geojson/geojson.js";import{createDrawingInfo as y}from"../graphics/sources/support/clientSideDefaults.js";import{mixAttributes as w}from"../graphics/sources/support/sourceUtils.js";import h from"../support/FieldsIndex.js";import{kebabDict as b}from"../support/fieldType.js";import{utc as j}from"../../time/constants.js";const F=()=>n.getLogger("esri.layers.ogc.ogcFeatureUtils"),I="startindex",T=new Set([I,"offset"]),k="http://www.opengis.net/def/crs/",x=`${k}OGC/1.3/CRS84`;async function S(n,o,a={},s=5){const{links:l}=n,c=L(l,"items","application/geo+json")||L(l,"http://www.opengis.net/def/rel/ogc/1.0/items","application/geo+json");if(null==c)throw new t("ogc-feature-layer:missing-items-page","Missing items url");const{apiKey:u,customParameters:d,signal:p}=a,g=i(c.href,n.landingPage.url),w={limit:s,...d,token:u},T=r(g,w),k={accept:"application/geo+json"},{data:x}=await e(T,{signal:p,headers:k}),S=U(T,s,x.links)??I;f(x);const v=x.numberMatched,O=m(x,{geometryType:o.geometryType}),P=o.fields||O.fields||[],q=null!=o.hasZ?o.hasZ:O.hasZ,C=O.geometryType,N=o.objectIdField||O.objectIdFieldName||"OBJECTID";let R=o.timeInfo;const W=P.find(({name:e})=>e===N);if(W)W.editable=!1,W.nullable=!1;else{if(!O.objectIdFieldType)throw new t("ogc-feature-layer:missing-feature-id","Collection geojson require a feature id as a unique identifier");P.unshift({name:N,alias:N,type:"number"===O.objectIdFieldType?"esriFieldTypeOID":"esriFieldTypeString",editable:!1,nullable:!1})}if(N!==O.objectIdFieldName){const e=P.find(({name:e})=>e===O.objectIdFieldName);e&&(e.type="esriFieldTypeInteger")}P===O.fields&&O.unknownFields.length>0&&F().warn({name:"ogc-feature-layer:unknown-field-types",message:"Some fields types couldn't be inferred from the features and were dropped",details:{unknownFields:O.unknownFields}});for(const e of P){if(null==e.name&&(e.name=e.alias),null==e.alias&&(e.alias=e.name),"esriFieldTypeOID"!==e.type&&"esriFieldTypeGlobalID"!==e.type&&(e.editable=null==e.editable||!!e.editable,e.nullable=null==e.nullable||!!e.nullable),!e.name)throw new t("ogc-feature-layer:invalid-field-name","field name is missing",{field:e});if(!b.jsonValues.includes(e.type))throw new t("ogc-feature-layer:invalid-field-type",`invalid type for field "${e.name}"`,{field:e})}if(R){const e=new h(P);if(R.startTimeField){const t=e.get(R.startTimeField);t?(R.startTimeField=t.name,t.type="esriFieldTypeDate"):R.startTimeField=null}if(R.endTimeField){const t=e.get(R.endTimeField);t?(R.endTimeField=t.name,t.type="esriFieldTypeDate"):R.endTimeField=null}if(R.trackIdField){const t=e.get(R.trackIdField);t?R.trackIdField=t.name:(R.trackIdField=null,F().warn({name:"ogc-feature-layer:invalid-timeInfo-trackIdField",message:"trackIdField is missing",details:{timeInfo:R}}))}R.timeReference||={timeZoneIANA:j},R.startTimeField||R.endTimeField||(F().warn({name:"ogc-feature-layer:invalid-timeInfo",message:"startTimeField and endTimeField are missing",details:{timeInfo:R}}),R=void 0)}return{drawingInfo:C?y(C):null,extent:K(n),geometryType:C,fields:P,hasZ:!!q,objectIdField:N,paginationParameter:S,timeInfo:R,featureCount:v}}async function v(n,r={}){const{links:o,url:a}=n,s=L(o,"data","application/json")??L(o,"http://www.opengis.net/def/rel/ogc/1.0/data","application/json");if(!s)throw new t("ogc-feature-layer:missing-collections-page","Missing collections url");const{apiKey:l,customParameters:c,signal:u}=r,d=i(s.href,a),{data:p}=await e(d,{signal:u,headers:{accept:"application/json"},query:{...c,token:l}});for(const e of p.collections)e.landingPage=n;return p}async function O(n,r={}){const{links:o,url:a}=n,s=L(o,"conformance","application/json")||L(o,"http://www.opengis.net/def/rel/ogc/1.0/conformance","application/json");if(null==s)throw new t("ogc-feature-layer:missing-conformance-page","Missing conformance url");const{apiKey:l,customParameters:c,signal:u}=r,d=i(s.href,a),{data:p}=await e(d,{signal:u,headers:{accept:"application/json"},query:{...c,token:l}});return p}async function P(t,n={}){const{apiKey:i,customParameters:r,signal:o}=n,{data:a}=await e(t,{signal:o,headers:{accept:"application/json"},query:{...r,token:i}});return a.url=t,a}async function q(t,n={}){const{links:r,url:o}=t,a=L(r,"service-desc","application/vnd.oai.openapi+json;version=3.0");if(null==a)return F().warn("ogc-feature-layer:missing-openapi-page","The OGC API-Features server does not have an OpenAPI page."),null;const{apiKey:s,customParameters:l,signal:c}=n,u=i(a.href,o),{data:d}=await e(u,{signal:c,headers:{accept:"application/vnd.oai.openapi+json;version=3.0"},query:{...l,token:s}});return d}function C(e){const t=/^http:\/\/www\.opengis.net\/def\/crs\/(?<authority>.*)\/(?<version>.*)\/(?<code>.*)$/i.exec(e),n=t?.groups;if(!n)return null;const{authority:i,code:r}=n;switch(i.toLowerCase()){case"ogc":switch(r.toLowerCase()){case"crs27":return a.GCS_NAD_1927.wkid;case"crs83":return 4269;case"crs84":case"crs84h":return a.WGS84.wkid;default:return null}case"esri":case"epsg":{const e=Number.parseInt(r,10);return Number.isNaN(e)?null:e}default:return null}}async function N(e,t,n){const i=await R(e,t,n);return c(i)}async function R(n,r,o){const{collection:{links:c,landingPage:{url:f}},layerDefinition:m,maxRecordCount:y,queryParameters:{apiKey:b,customParameters:j},spatialReference:F,supportedCrs:I}=n,T=L(c,"items","application/geo+json")||L(c,"http://www.opengis.net/def/rel/ogc/1.0/items","application/geo+json");if(!T)throw new t("ogc-feature-layer:missing-items-page","Missing items url");const{geometry:k,num:x,start:S,timeExtent:v,where:O}=r;if(r.objectIds)throw new t("ogc-feature-layer:query-by-objectids-not-supported","Queries with object ids are not supported");const P=a.fromJSON(F),q=r.outSpatialReference??P,C=q.isWGS84?null:$(q,I),N=Z(k,I),R=M(v),W=D(O),G=x??(null==S?y:10),K=0===S?void 0:S,{fields:U,geometryType:A,hasZ:J,objectIdField:z,paginationParameter:E}=m,_=i(T.href,f),{data:B}=await e(_,{...o,query:{...j,...N,crs:C,datetime:R,query:W,limit:G,[E]:K,token:b},headers:{accept:"application/geo+json"}}),Q=g(B,{geometryType:A,hasZ:J,objectIdField:z}),V=Q.length===G&&!!L(B.links??[],"next","application/geo+json"),H=new h(U);for(const e of Q){const t={};w(H,t,e.attributes,!0);for(const e of H.fields)e.nullable&&!(e.name in t)&&(t[e.name]=null);t[z]=e.attributes[z],e.attributes=t}if(!C&&q.isWebMercator)for(const e of Q)if(null!=e.geometry&&null!=A){const t=u(e.geometry,A,J,!1);t.spatialReference=a.WGS84,e.geometry=d(l(t,q))}for(const e of Q)e.objectId=e.attributes[z];const X=C||!C&&q.isWebMercator?q.toJSON():s,Y=new p;return Y.exceededTransferLimit=V,Y.features=Q,Y.fields=U,Y.geometryType=A,Y.hasZ=J,Y.spatialReference=X,Y}function W(e){return null!=e&&"extent"===e.type}function $(e,t){const{isWebMercator:n,wkid:i,latestWkid:r}=e;if(!i&&!r)return null;const o=n?t[3857]??t[102100]??t[102113]??t[900913]:i&&t[i]||r&&t[r];return o?`${k}${o}`:null}function G(e){if(!e)return"";const{xmin:t,ymin:n,xmax:i,ymax:r}=e;return`${t},${n},${i},${r}`}function M(e){if(!e)return null;const{start:t,end:n}=e;return`${null!=t?t.toISOString():".."}/${null!=n?n.toISOString():".."}`}function D(e){return e&&"1=1"!==e?e:null}function Z(e,t){if(!W(e))return null;const{spatialReference:n}=e;if(!n||n.isWGS84)return{bbox:G(e)};const i=$(n,t);return null!=i?{bbox:G(e),"bbox-crs":i}:n.isWebMercator?{bbox:G(l(e,a.WGS84))}:null}function K(e){const t=e.extent?.spatial;if(!t)return null;const n=t.bbox[0],i=4===n.length,[r,o]=n,s=i?void 0:n[2];return{xmin:r,ymin:o,xmax:i?n[2]:n[3],ymax:i?n[3]:n[4],zmin:s,zmax:i?void 0:n[5],spatialReference:a.WGS84.toJSON()}}function L(e,t,n){return e.find(({rel:e,type:i})=>e===t&&i===n)??e.find(({rel:e,type:n})=>e===t&&!n)}function U(e,t,n){if(!n)return;const i=L(n,"next","application/geo+json"),r=o(i?.href)?.query;if(!r)return;const a=o(e).query,s=Object.keys(a??{}),l=Object.entries(r).filter(([e])=>!s.includes(e)).find(([e,n])=>T.has(e.toLowerCase())&&Number.parseInt(n,10)===t),c=l?.[0];return c}export{x as crsDefault,k as crsPrefix,S as getCollectionDefinition,v as getServerCollectionsPage,O as getServerConformance,P as getServerLandingPage,q as getServerOpenApi,C as getSpatialReferenceWkid,N as queryFeatureSetJSON,R as queryOptimizedFeatureSet};
@@ -0,0 +1,73 @@
1
+ import type { AbortOptions } from "../../core/promiseUtils.js";
2
+ import type { CustomParameters } from "../mixins/CustomParametersMixin.js";
3
+
4
+ /** An OGC API-Features collection. */
5
+ export interface Collection {
6
+ /** The description of the collection. */
7
+ description?: string;
8
+ /**
9
+ * The collection identifier.
10
+ *
11
+ * @see [OGCFeatureLayer#collectionId](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OGCFeatureLayer.html#collectionId)
12
+ */
13
+ id: string;
14
+ /** The landing page of the OGC API-Features server hosting the collection. */
15
+ landingPage: LandingPage;
16
+ /** The title of the collection. */
17
+ title?: string;
18
+ }
19
+
20
+ /** The collections page for an OGC API-Features server. */
21
+ export interface CollectionsPage {
22
+ /** An array of collections available from the OGC API-Features server. */
23
+ collections: Collection[];
24
+ }
25
+
26
+ /** The landing page of an OGC API-Features server. */
27
+ export interface LandingPage {
28
+ /** The description of the OGC API-Features server. */
29
+ description?: string;
30
+ /** The title of the OGC API-Features server. */
31
+ title?: string;
32
+ /** The url to the OGC API-Features server. */
33
+ url: string;
34
+ }
35
+
36
+ export interface QueryParameters {
37
+ /**
38
+ * An authorization string used to access a resource or service.
39
+ * This property will append the API key to all requests made by the layer to the service.
40
+ * [API keys](https://developers.arcgis.com/documentation/security-and-authentication/api-key-authentication/) are generated and managed in the portal.
41
+ * An API key is tied explicitly to an ArcGIS account; it is also used to monitor service usage.
42
+ * Setting a fine-grained API key on a specific class overrides the [global API key](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#ConfigWithApiKey).
43
+ *
44
+ * If loading a secure layer with API authentication via a [PortalItem](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html), the API key needs to be set on the {@link layers/mixins/APIKeyMixin#portalItem}.
45
+ *
46
+ * @see [Item access privileges](https://developers.arcgis.com/documentation/security-and-authentication/api-key-authentication/api-key-credentials/#item-access-privileges)
47
+ * @see [API key guide](https://developers.arcgis.com/javascript/latest/secure-resources/#api-keys)
48
+ * @example
49
+ * // set the api key to access a protected service
50
+ * const layer = new FeatureLayer({
51
+ * url: serviceUrl,
52
+ * apiKey: "YOUR_API_KEY"
53
+ * });
54
+ */
55
+ apiKey?: string | null;
56
+ /**
57
+ * A list of custom parameters appended to the URL of all resources fetched by the layer.
58
+ * It's an object with key-value pairs where value is a string.
59
+ * The layer's `refresh()` method needs to be called if the customParameters are updated at runtime.
60
+ *
61
+ * @example
62
+ * // send a custom parameter to your special service
63
+ * let layer = new MapImageLayer({
64
+ * url: serviceUrl,
65
+ * customParameters: {
66
+ * "key": "my-special-key"
67
+ * }
68
+ * });
69
+ */
70
+ customParameters?: CustomParameters | null;
71
+ }
72
+
73
+ export interface QueryOptions extends QueryParameters, AbortOptions {}
@@ -5,7 +5,7 @@ import type FeatureSet from "../../../../rest/support/FeatureSet.js";
5
5
  import type MultipartColorRamp from "../../../../rest/support/MultipartColorRamp.js";
6
6
  import type { BaseRasterFunctionParameters, RasterArgument } from "../types.js";
7
7
  import type { RasterBandStatistics, RasterHistogram } from "../../../support/types.js";
8
- import type { RasterColormapName, RasterColorRampName } from "../../../../renderers/support/colorRampUtils.js";
8
+ import type { RasterColorRampName, RasterColormapName } from "../../../../renderers/support/raster/types.js";
9
9
 
10
10
  /**
11
11
  * Raster colormap input parameters specified using a colormap.
@@ -1,7 +1,7 @@
1
1
  import type AlgorithmicColorRamp from "../../../../rest/support/AlgorithmicColorRamp.js";
2
2
  import type MultipartColorRamp from "../../../../rest/support/MultipartColorRamp.js";
3
3
  import type { BaseRasterFunctionParameters } from "../types.js";
4
- import type { RasterColorRampName } from "../../../../renderers/support/colorRampUtils.js";
4
+ import type { RasterColorRampName } from "../../../../renderers/support/raster/types.js";
5
5
 
6
6
  export interface SlopeParameters extends BaseRasterFunctionParameters {
7
7
  /**
@@ -2,7 +2,7 @@ import type PopupTemplate from "../../PopupTemplate.js";
2
2
  import type AggregateField from "./AggregateField.js";
3
3
  import type LabelClass from "./LabelClass.js";
4
4
  import type { FeatureReduction } from "./FeatureReduction.js";
5
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
5
+ import type { RendererUnion } from "../../renderers/types.js";
6
6
  import type { LabelClassProperties } from "./LabelClass.js";
7
7
  import type { PopupTemplateProperties } from "../../PopupTemplate.js";
8
8
  import type { AggregateFieldProperties } from "./AggregateField.js";
@@ -7,7 +7,7 @@ import type SimpleMarkerSymbol from "../../symbols/SimpleMarkerSymbol.js";
7
7
  import type TextSymbol from "../../symbols/TextSymbol.js";
8
8
  import type WebStyleSymbol from "../../symbols/WebStyleSymbol.js";
9
9
  import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
10
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
10
+ import type { RendererUnion } from "../../renderers/types.js";
11
11
  import type { PopupTemplateProperties } from "../../PopupTemplate.js";
12
12
  import type { HeatmapRendererProperties } from "../../renderers/HeatmapRenderer.js";
13
13
  import type { PieChartRendererProperties } from "../../renderers/PieChartRenderer.js";
@@ -2,19 +2,52 @@ import type EsriError from "../../core/Error.js";
2
2
  import type { EventedAccessor } from "../../core/Evented.js";
3
3
  import type { StreamConnectionStatus } from "./types.js";
4
4
  import type { Feature } from "../../portal/jsonTypes.js";
5
+ import type { ObjectId } from "../../views/types.js";
5
6
 
6
7
  export interface StreamConnectionEvents {
7
8
  /** Fires when the stream connection receives data. The event object contains the message properties received from the stream service. */
8
9
  "data-received": Feature;
9
10
  }
10
11
 
11
- export interface IFeatureResult {}
12
+ /**
13
+ * A message to add [Features](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-jsonTypes.html#Feature) to a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client
14
+ * by calling its [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method.
15
+ * An array of JSON [Features](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-jsonTypes.html#Feature) that can be added to a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client by calling its
16
+ * [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method.
17
+ * Each feature is an esri Feature JSON object as defined in the
18
+ * [Feature object specification](https://next.gha.arcgis.com/documentation/common-data-types/feature-object.htm).
19
+ */
20
+ export interface FeatureMessage {
21
+ /** An array of JSON [Features](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-jsonTypes.html#Feature) to add to a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client. */
22
+ features: Feature[];
23
+ /** The type of message being sent to the client. */
24
+ type: "features";
25
+ }
12
26
 
13
- export interface IDeleteMessage {}
27
+ /**
28
+ * A message to delete features from a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client by calling its
29
+ * [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method.
30
+ */
31
+ export interface DeleteMessage {
32
+ /** An array of object IDs identifying the features to delete from a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client. */
33
+ objectIds: ObjectId[];
34
+ /** An array of track IDs identifying the features to delete from a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client. */
35
+ trackIds: number[];
36
+ /** The type of message being sent to the client. */
37
+ type: "delete";
38
+ }
14
39
 
15
- export interface IClearMessage {}
40
+ /**
41
+ * A message to clear all features from a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client by calling its
42
+ * [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method.
43
+ */
44
+ export interface ClearMessage {
45
+ /** The type of message being sent to the client. */
46
+ type: "clear";
47
+ }
16
48
 
17
- export type IMessage = IFeatureResult | IDeleteMessage | IClearMessage | Object;
49
+ /** The message to send to a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client by calling its [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method. */
50
+ export type Message = FeatureMessage | DeleteMessage | ClearMessage | object;
18
51
 
19
52
  /**
20
53
  * A web socket connection to a stream service. The connection to the stream service can be established
@@ -26,7 +26,7 @@ import type { AbortOptions } from "../../core/promiseUtils.js";
26
26
  import type { FieldDomainOptions } from "../mixins/properties/ILayerWithGetField.js";
27
27
  import type { SublayerCapabilities } from "./types.js";
28
28
  import type { LayerSource } from "./source/types.js";
29
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
29
+ import type { RendererUnion } from "../../renderers/types.js";
30
30
  import type { AttachmentQueryProperties } from "../../rest/support/AttachmentQuery.js";
31
31
  import type { QueryProperties } from "../../rest/support/Query.js";
32
32
  import type { RelationshipQueryProperties } from "../../rest/support/RelationshipQuery.js";
@@ -1,7 +1,7 @@
1
1
  import type LabelClass from "./LabelClass.js";
2
2
  import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
3
3
  import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
4
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
4
+ import type { RendererUnion } from "../../renderers/types.js";
5
5
  import type { LabelClassProperties } from "./LabelClass.js";
6
6
  import type { HeatmapRendererProperties } from "../../renderers/HeatmapRenderer.js";
7
7
  import type { PieChartRendererProperties } from "../../renderers/PieChartRenderer.js";
@@ -16,7 +16,7 @@ import type StreamLayer from "../StreamLayer.js";
16
16
  import type SubtypeGroupLayer from "../SubtypeGroupLayer.js";
17
17
  import type Field from "./Field.js";
18
18
  import type FieldsIndex from "./FieldsIndex.js";
19
- import type { RendererUnion } from "../../renderers/support/typeUtils.js";
19
+ import type { RendererUnion } from "../../renderers/types.js";
20
20
 
21
21
  /**
22
22
  * Gets the appropriate display field name to label a feature.
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import n from"../../geometry/SpatialReference.js";import r from"./Field.js";import{inferLocationInfo as i}from"./locationUtils.js";import l from"./ParquetGeometryEncodingLocation.js";import s from"./ParquetGeometryEncodingWkb.js";import{createParquetFile as a,readGeoMetadata as m,readEsriMetadata as u}from"../../libs/parquet/parquet.js";const c=new o({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"});function p(e){return c.toJSON(e)}function f(e){return c.fromJSON(e)}function y(t,o={}){return d({urls:new e(t)},o)}async function d(e,o={}){if(e.urls.length<1)throw new t("parquet:bad-input","At least one url must be specified",e);if(e.geometryType&&e.spatialReference&&e.geometryEncoding&&e.fields)return e;const i=await a(e.urls.getItemAt(0),{getCustomParameters:()=>o.customParameters}),l=m(i),s={...e,file:i};null==s.fields&&(s.fields=i.fields().map(e=>r.fromJSON({name:e.name,alias:e.name,type:e.type}))),null==s.geometryEncoding&&(s.geometryEncoding=g(l,s.fields));const c=u(i);if(c)switch(c.mode){case"z":s.displayOptimization={mode:"z"};break;case"xz":{const e=c.multiscale;if(!e)throw new t("parquet:bad-format","XZ display optimization requires multiscale geometries");s.displayOptimization={mode:"xz",multiscale:e};break}}if(!s.geometryEncoding)return s;switch(s.geometryEncoding.type){case"location":null==s.spatialReference&&(s.spatialReference=n.WGS84),null==s.geometryType&&(s.geometryType="point");break;case"wkb":{if(!l)return s;const e=l.primary_column,t=l.columns[e];if(s.geometryType||(s.geometryType=P(t)),s.spatialReference||(s.spatialReference=b(t)),s.fields)for(const o of Object.keys(l.columns))s.fields=s.fields.filter(e=>e.name!==o)}}return s}function g(e,t){if(null!=e){const t=e.primary_column,o=e.columns[t];return new s({field:t,orientation:"counterclockwise"===o.orientation?"counter-clockwise":null})}const o=i(t.map(e=>e.name));return o.latitudeFieldName&&o.longitudeFieldName?new l({xField:o.longitudeFieldName,yField:o.latitudeFieldName}):null}function w(e){switch(e){case"Point":return"point";case"Polygon":case"MultiPolygon":return"polygon";case"LineString":return"polyline";case"MultiPoint":return"multipoint";default:return null}}function P(e){const{geometry_types:o}=e,n=new Set;for(const t of o){const e=w(t);e&&n.add(e)}if(n.size>1)throw new t("parquet:unsupported","Parquet mixed geometry types are not supported",{geometryTypes:n});return 1===n.size?n.values().next().value:void 0}function b(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?new n({wkid:t}):void 0}export{d as completeParquetLayerInfo,f as fromParquetJSONGeometryType,y as getParquetLayerInfo,c as parquetGeometryTypeKebabDict,p as toParquetJSONGeometryType};
5
+ import e from"../../core/Collection.js";import t from"../../core/Error.js";import{JSONMap as o}from"../../core/jsonMap.js";import n from"../../geometry/SpatialReference.js";import i from"./Field.js";import{isNumericField as r}from"./fieldUtils.js";import{inferLocationInfo as s}from"./locationUtils.js";import l from"./ParquetGeometryEncodingLocation.js";import c from"./ParquetGeometryEncodingWkb.js";import{createParquetFile as p,readGeoMetadata as a,readGeodisplayMetadata as u}from"../../libs/parquet/parquet.js";const m=new o({esriGeometryPoint:"point",esriGeometryPolygon:"polygon",esriGeometryPolyline:"polyline",esriGeometryMultipoint:"multipoint"}),f=new Set(["uncompressed","snappy","gzip"]);function d(e){return m.toJSON(e)}function y(e){return m.fromJSON(e)}function g(t,o={}){return w({urls:new e(t)},o)}async function w(e,o={}){if(e.urls.length<1)throw new t("parquet:bad-input","At least one url must be specified",e);if(e.geometryType&&e.spatialReference&&e.geometryEncoding&&e.fields)return e;const s=await p(e.urls.getItemAt(0),{getCustomParameters:()=>o.customParameters});for(const n of s.compressionCodecs())if(!f.has(n))throw new t("parquet:unsupported",`Compression codec ${n} is unsupported. Must be of type ${Array.from(f).join(",")}`);const l=a(s),c={...e,file:s};if(null==c.fields&&(c.fields=s.fields(!1).map(e=>i.fromJSON({name:e.name,alias:e.name,type:e.type}))),null!=c.geometryEncoding){const e=c.geometryEncoding;switch(e.type){case"wkb":{const o=c.fields.find(t=>t.name===e.field);if(!o)throw new t("parquet:unsupported",`Geometry encoding references field ${e.field} which does not exist`);if("blob"!==o.type)throw new t("parquet:unsupported",`Invalid field type for geometry encoding. Found ${o.type} but expected 'blob'`);break}case"location":for(const o of[e.xField,e.yField])if(null!=o){const e=c.fields.find(e=>e.name===o);if(!e)throw new t("parquet:unsupported",`Geometry encoding references field ${o} which does not exist`);if(!r(e))throw new t("parquet:unsupported",`Invalid field type for location geometry encoding. Found ${e.type} but expected a numeric`)}}}null==c.geometryEncoding&&(c.geometryEncoding=b(l,c.fields));const m=u(s);if(m&&(c.displayOptimization=m),c.geometryEncoding)switch(c.geometryEncoding.type){case"location":null==c.spatialReference&&(c.spatialReference=n.WGS84),null==c.geometryType&&(c.geometryType="point");break;case"wkb":{if(!l)return c;const e=l.primary_column,t=l.columns[e];if(c.geometryType||(c.geometryType=j(t)),c.spatialReference||(c.spatialReference=k(t)),c.fields)for(const o of Object.keys(l.columns))c.fields=c.fields.filter(e=>e.name!==o)}}if(c.displayOptimization){const e=c.displayOptimization.index;if(!c.spatialReference&&e.wkid&&(c.spatialReference=new n({wkid:e.wkid})),!c.geometryType)switch(e.type){case"z":c.geometryType="point";break;case"xz":c.geometryType=e.geometryType}}return c}function b(e,t){if(null!=e){const t=e.primary_column,o=e.columns[t];return new c({field:t,orientation:"counterclockwise"===o.orientation?"counter-clockwise":null})}const o=t.filter(e=>r(e)).map(e=>e.name),n=s(o);return n.latitudeFieldName&&n.longitudeFieldName?new l({xField:n.longitudeFieldName,yField:n.latitudeFieldName}):null}function h(e){switch(e){case"Point":return"point";case"Polygon":case"MultiPolygon":return"polygon";case"LineString":return"polyline";case"MultiPoint":return"multipoint";default:return null}}function j(e){const{geometry_types:o}=e,n=new Set;for(const t of o){const e=h(t);e&&n.add(e)}if(n.size>1)throw new t("parquet:unsupported","Parquet mixed geometry types are not supported",{geometryTypes:n});return 1===n.size?n.values().next().value:void 0}function k(e){const t=e.crs?.id?.code;return t&&"number"==typeof t?new n({wkid:t}):void 0}export{w as completeParquetLayerInfo,y as fromParquetJSONGeometryType,g as getParquetLayerInfo,m as parquetGeometryTypeKebabDict,d as toParquetJSONGeometryType};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../request.js";import t from"../../core/Error.js";import"../../core/has.js";import{QueueProcessor as r}from"../../core/QueueProcessor.js";import{isBlobProtocol as o}from"../../core/urlUtils.js";import{loadParquetModule as n}from"./loadParquetModule.js";import{MultiscaleGeometryField as a,GeometryInfo as s,GeometryType as i,PrimaryGeometryField as u}from"../../chunks/bundle.js";const c=new r({concurrency:8,process:async t=>{const{data:r}=await e(t.url,t.options);return r}}),l=e=>async function(t,r,o,n){const a=e?.(),s=a??{};return await c.push({url:t,options:{responseType:"array-buffer",query:s,headers:{range:`bytes=${r}-${o}`}}})},m=t=>async function(r){if(o(r)){const{data:t}=await e(r,{responseType:"blob"});return t.size}const{data:n}=await e(r,{responseType:"native",method:"head",query:t?.()}),a=n.headers.get("Content-Length");if(null==a)throw new Error("Unable to parse content length");return parseInt(a,10)};function p(e){switch(e){case"esriGeometryPoint":return i.Point;case"esriGeometryPolygon":return i.Polygon;case"esriGeometryPolyline":return i.Polyline;case"esriGeometryMultipoint":return i.Multipoint;default:throw new t("parquet",`Found unexpected GeometryType: ${e}`)}}function y(e){switch(e.geometryEncoding.type){case"wkb":return u.fromWkb(e.geometryEncoding.field);case"location":{const{yField:t,xField:r}=e.geometryEncoding;return u.fromLocation(t,r)}}}function f(e,r){const o=e.spatialReference.wkid,n=r.wkid;if(!o||!n)throw new t("parquet","Unable to create ParquetFile, in and out wkid must be specified");const i=p(e.geometryType),u=y(e),c=[];if("xz"===e.displayOptimization?.mode){const t=e.displayOptimization.multiscale;for(const e of t.levels??[]){const[t,r]=e.transform.translate,[o,n]=e.transform.scale,s=new Float64Array([t,r]),i=new Float64Array([o,n]);c.push(a.new(e.level,e.column,s,i))}}return s.new(i,o,n,u,c)}async function d(e,t={}){const{ParquetFile:r}=await n(),o=l(t.getCustomParameters),a=m(t.getCustomParameters),s=t.geometryInfo?f(t.geometryInfo,t.outSpatialReference??t.geometryInfo.spatialReference):null;return r.fromUrl(e,o,a,s)}function w(e){const t=e.keyValueMetadata("geo");return null!=t?JSON.parse(t):null}function g(e){const t=e.keyValueMetadata("esri");return null!=t?JSON.parse(t):null}export{d as createParquetFile,g as readEsriMetadata,w as readGeoMetadata};
5
+ import e from"../../request.js";import t from"../../core/Error.js";import"../../core/has.js";import{QueueProcessor as n}from"../../core/QueueProcessor.js";import{isBlobProtocol as o}from"../../core/urlUtils.js";import{loadParquetModule as r}from"./loadParquetModule.js";const a=new n({concurrency:8,process:async t=>{const{data:n}=await e(t.url,t.options);return n}}),s=e=>async function(t,n,o,r){const s=e?.(),i=s??{};return await a.push({url:t,options:{responseType:"array-buffer",query:i,headers:{range:`bytes=${n}-${o}`}}})},i=t=>async function(n){if(o(n)){const{data:t}=await e(n,{responseType:"blob"});return t.size}const{data:r}=await e(n,{responseType:"native",method:"head",query:t?.()}),a=r.headers.get("Content-Length");if(null==a)throw new Error("Unable to parse content length");return parseInt(a,10)};function l(e,n){switch(n){case"esriGeometryPoint":return e.GeometryType.Point;case"esriGeometryPolygon":case"polygon":return e.GeometryType.Polygon;case"esriGeometryPolyline":case"polyline":return e.GeometryType.Polyline;case"esriGeometryMultipoint":case"multipoint":return e.GeometryType.Multipoint;default:throw new t("parquet",`Found unexpected GeometryType: ${n}`)}}function u(e,t){const n=t.encoding,o=l(e,t.geometryType),r=t.spatialReference.wkid;if(null==r)throw new Error("InternalError: Wkid must be defined.");switch(n.type){case"wkb":return e.GeometryField.fromWkb(n.field,r,o);case"location":{const{yField:t,xField:a}=n;return e.GeometryField.fromLocation(t,a,r,o)}}}function c(e,t){const n=e.GeometryInfo.new();t.geometry&&n.setGeometry(u(e,t.geometry));const o=t.displayOptimization;if(o){const{index:t,parentColumn:r}=o,a=e=>null!=r?[r,e].join("."):e;if("z"===t.type){const o=e.DisplayOptimizationZBuilder.new();o.setCodeField(a(t.code)),o.setXColumn(a(t.xColumn)),o.setYColumn(a(t.yColumn)),o.setCooordinatePrecision(t.coordinatePrecision),o.setFullExtent(t.fullExtent),o.setSpatialReference(t.wkid,t.wkt),o.setHasZ(!!t.zColumn),o.setHasM(!!t.mColumn),n.setOptmizationZ(o)}if("xz"===t.type){const o=l(e,t.geometryType),r=e.DisplayOptimizationXZBuilder.new();r.setCodeField(a(t.code)),r.setEncoding(t.encoding),r.setFullExtent(t.fullExtent),r.setGeometryType(o),r.setSpatialReference(t.wkid,t.wkt),r.setMaxLevel(t.maxLevel),r.setHasZ(t.hasZ??!1),r.setHasM(t.hasM??!1);for(const n of t.levels??[]){const[t,o]=n.transform.translate,[s,i]=n.transform.scale,l=new Float64Array([t,o]),u=new Float64Array([s,i]),c=a(n.column);r.addLevel(e.MultiscaleGeometryField.new(n.level,n.scale,c,l,u))}n.setOptmizationXZ(r)}}return n}async function p(e,n={}){const o=await r(),a=s(n.getCustomParameters),l=i(n.getCustomParameters),u=n.geometryInfo?c(o,n.geometryInfo):null;try{return await o.ParquetFile.fromUrl(e,a,l,u)}catch(p){throw new t("parquet","Failed to parse file",{error:p})}}function d(e){const t=e.keyValueMetadata("geo");return null!=t?JSON.parse(t):null}function y(e){if(e.keyValueMetadata("esri"))throw new t("parquet:unsupported","File was created using an unsupported experimental display index. Please regenerate the file.");const n=e.keyValueMetadata("geodisplay");if(null!=n)return JSON.parse(n);const o=e.keyValueMetadata("org.apache.spark.sql.parquet.row.metadata");if(null!=o){const e=JSON.parse(o);for(const n of e.fields)if(null!=n.metadata&&"type"in n.metadata&&("xz"===n.metadata.type||"z"===n.metadata.type)){const e={parentColumn:n.name,index:n.metadata};if("xz"===e.index.type&&(e.index.geometryType=e.index.geometryType.toLowerCase(),"esri-pbf"===e.index.encoding&&(e.index.encoding="esriPBF"),"esriPBF"!==e.index.encoding))throw new t("parquet:unsupported",`Encoding for display index must be of type esriPBF, but found ${e.index.encoding}`);return e}}return null}export{p as createParquetFile,d as readGeoMetadata,y as readGeodisplayMetadata};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.0.0-next.59",
3
+ "version": "5.0.0-next.60",
4
4
  "homepage": "https://js.arcgis.com",
5
5
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
6
6
  "keywords": [
@@ -46,7 +46,7 @@ import type PointCloudClassBreaksRendererClass from "./renderers/PointCloudClass
46
46
  import type PointCloudRGBRendererClass from "./renderers/PointCloudRGBRenderer.js";
47
47
  import type PointCloudStretchRendererClass from "./renderers/PointCloudStretchRenderer.js";
48
48
  import type PointCloudUniqueValueRendererClass from "./renderers/PointCloudUniqueValueRenderer.js";
49
- import type { PointCloudRendererUnion } from "./renderers/support/pointCloudTypeUtils.js";
49
+ import type { PointCloudRendererUnion } from "./renderers/support/pointCloud/types.js";
50
50
 
51
51
  /**
52
52
  * Renderer types.
@@ -120,6 +120,12 @@ export interface VideoCameraInfo {
120
120
  tilt: number;
121
121
  }
122
122
 
123
+ /**
124
+ * A JSON Feature object that can be added to a [StreamLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html) on the client by calling its
125
+ * [sendMessageToClient()](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-StreamLayer.html#sendMessageToClient) method.
126
+ * It is an esri Feature JSON object as defined in the
127
+ * [Feature object specification](https://next.gha.arcgis.com/documentation/common-data-types/feature-object.htm).
128
+ */
123
129
  export interface Feature {
124
130
  /** Name-value pairs of fields and field values associated with the received data. */
125
131
  attributes: Record<string, any>;
@@ -2,14 +2,11 @@ import type Graphic from "../Graphic.js";
2
2
  import type Renderer from "./Renderer.js";
3
3
  import type CIMSymbol from "../symbols/CIMSymbol.js";
4
4
  import type { RendererProperties } from "./Renderer.js";
5
+ import type { DictionaryUserConfig, DictionaryFieldMap } from "./types.js";
5
6
  import type { VisualVariablesMixin, VisualVariablesMixinProperties } from "./mixins/VisualVariablesMixin.js";
6
7
 
7
8
  export interface DictionaryRendererProperties extends RendererProperties, VisualVariablesMixinProperties, Partial<Pick<DictionaryRenderer, "config" | "fieldMap" | "scaleExpression" | "scaleExpressionTitle" | "url">> {}
8
9
 
9
- export type DictionaryUserConfig = Object;
10
-
11
- export type IDictionaryFieldMap = Record<string, string>;
12
-
13
10
  /**
14
11
  * Dictionary Renderer is used to symbolize layers using a dictionary of [CIMSymbols](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html) configured with multiple
15
12
  * attributes. This renderer should be used when individual features need to be visualized based on multiple data attributes.
@@ -108,7 +105,7 @@ export default class DictionaryRenderer extends DictionaryRendererSuperclass {
108
105
  * name: "Station_Name"
109
106
  * };
110
107
  */
111
- accessor fieldMap: IDictionaryFieldMap | null | undefined;
108
+ accessor fieldMap: DictionaryFieldMap | null | undefined;
112
109
  /**
113
110
  * A scaling expression can be set to increase or decrease the size of the dictionary symbols.
114
111
  * The scaling expression can be a constant value for all symbols or an [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expression following the specification
@@ -1,7 +1,8 @@
1
1
  import type PointCloudRenderer from "./PointCloudRenderer.js";
2
2
  import type RendererLegendOptions from "./support/RendererLegendOptions.js";
3
3
  import type ColorClassBreakInfo from "./support/pointCloud/ColorClassBreakInfo.js";
4
- import type { PointCloudRendererProperties, FieldTransformType } from "./PointCloudRenderer.js";
4
+ import type { PointCloudRendererProperties } from "./PointCloudRenderer.js";
5
+ import type { FieldTransformType } from "./support/pointCloud/types.js";
5
6
  import type { RendererLegendOptionsProperties } from "./support/RendererLegendOptions.js";
6
7
  import type { ColorClassBreakInfoProperties } from "./support/pointCloud/ColorClassBreakInfo.js";
7
8
 
@@ -2,6 +2,7 @@ import type ColorModulation from "./support/pointCloud/ColorModulation.js";
2
2
  import type PointSizeFixedSizeAlgorithm from "./support/pointCloud/PointSizeFixedSizeAlgorithm.js";
3
3
  import type PointSizeSplatAlgorithm from "./support/pointCloud/PointSizeSplatAlgorithm.js";
4
4
  import type { JSONSupport, JSONSupportMixinProperties } from "../core/JSONSupport.js";
5
+ import type { PointCloudRendererType } from "./support/pointCloud/types.js";
5
6
  import type { PointSizeSplatAlgorithmProperties } from "./support/pointCloud/PointSizeSplatAlgorithm.js";
6
7
  import type { PointSizeFixedSizeAlgorithmProperties } from "./support/pointCloud/PointSizeFixedSizeAlgorithm.js";
7
8
  import type { ColorModulationProperties } from "./support/pointCloud/ColorModulation.js";
@@ -76,7 +77,7 @@ export default class PointCloudRenderer extends JSONSupport {
76
77
  */
77
78
  accessor pointsPerInch: number;
78
79
  /** The point cloud renderer type. */
79
- get type(): PointCloudRendererTypes;
80
+ get type(): PointCloudRendererType;
80
81
  /**
81
82
  * Creates a deep clone of the renderer.
82
83
  *
@@ -84,8 +85,4 @@ export default class PointCloudRenderer extends JSONSupport {
84
85
  * object that invoked this method.
85
86
  */
86
87
  clone(): PointCloudRenderer;
87
- }
88
-
89
- export type PointCloudRendererTypes = "point-cloud-class-breaks" | "point-cloud-rgb" | "point-cloud-stretch" | "point-cloud-unique-value";
90
-
91
- export type FieldTransformType = "none" | "low-four-bit" | "high-four-bit" | "absolute-value" | "modulo-ten";
88
+ }
@@ -1,7 +1,8 @@
1
1
  import type PointCloudRenderer from "./PointCloudRenderer.js";
2
2
  import type RendererLegendOptions from "./support/RendererLegendOptions.js";
3
3
  import type ColorStop from "./visualVariables/support/ColorStop.js";
4
- import type { PointCloudRendererProperties, FieldTransformType } from "./PointCloudRenderer.js";
4
+ import type { PointCloudRendererProperties } from "./PointCloudRenderer.js";
5
+ import type { FieldTransformType } from "./support/pointCloud/types.js";
5
6
  import type { RendererLegendOptionsProperties } from "./support/RendererLegendOptions.js";
6
7
  import type { ColorStopProperties } from "./visualVariables/support/ColorStop.js";
7
8
 
@@ -1,7 +1,8 @@
1
1
  import type PointCloudRenderer from "./PointCloudRenderer.js";
2
2
  import type RendererLegendOptions from "./support/RendererLegendOptions.js";
3
3
  import type ColorUniqueValueInfo from "./support/pointCloud/ColorUniqueValueInfo.js";
4
- import type { PointCloudRendererProperties, FieldTransformType } from "./PointCloudRenderer.js";
4
+ import type { PointCloudRendererProperties } from "./PointCloudRenderer.js";
5
+ import type { FieldTransformType } from "./support/pointCloud/types.js";
5
6
  import type { ColorUniqueValueInfoProperties } from "./support/pointCloud/ColorUniqueValueInfo.js";
6
7
  import type { RendererLegendOptionsProperties } from "./support/RendererLegendOptions.js";
7
8