@arcgis/core 5.0.0-next.70 → 5.0.0-next.72

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 (636) hide show
  1. package/Ground.js +1 -1
  2. package/analysis/Dimension/types.d.ts +5 -1
  3. package/analysis/DistanceMeasurementAnalysis.d.ts +22 -3
  4. package/analysis/ElevationProfile/types.d.ts +10 -2
  5. package/analysis/ShadowCast/DiscreteOptions.d.ts +4 -0
  6. package/analysis/ShadowCast/MinDurationOptions.d.ts +7 -0
  7. package/analysis/ShadowCast/TotalDurationOptions.d.ts +4 -0
  8. package/analysis/ShadowCastAnalysis.d.ts +51 -8
  9. package/analysis/Slice/types.d.ts +5 -1
  10. package/analysis/VolumeMeasurement/types.d.ts +5 -1
  11. package/analysis/VolumeMeasurement/volumeMeasurementConfiguration.js +1 -1
  12. package/analysis/types.d.ts +39 -7
  13. package/applications/Components/QuantityFormatter.js +1 -1
  14. package/applications/Components/analysisUtils.d.ts +1 -2
  15. package/applications/Components/analysisUtils.js +1 -1
  16. package/applications/Components/imageryUtils.d.ts +2 -2
  17. package/applications/Components/testUtils.d.ts +2 -0
  18. package/applications/KnowledgeStudio/dataModelVisualization.d.ts +1 -0
  19. package/applications/KnowledgeStudio/generalSdkInternalAccess.d.ts +59 -13
  20. package/applications/KnowledgeStudio/generalSharedKgUtils.d.ts +1 -1
  21. package/applications/PortalApp/layerUtils.d.ts +1 -0
  22. package/applications/Urban/LineImagePattern3D.d.ts +2 -0
  23. package/applications/Urban/imagePatternUtils.d.ts +4 -0
  24. package/arcade.d.ts +20 -11
  25. package/assets/esri/core/workers/RemoteClient.js +1 -1
  26. package/assets/esri/core/workers/chunks/00631252e8bd4a456253.js +1 -0
  27. package/assets/esri/core/workers/chunks/{322085d63719da6e443c.js → 0c02b084ae30ba138c5d.js} +1 -1
  28. package/assets/esri/core/workers/chunks/0f2f1731543ed21db0a8.js +1 -0
  29. package/assets/esri/core/workers/chunks/1b201d83e9ba7d8615c0.js +1 -0
  30. package/assets/esri/core/workers/chunks/1b284a6f32effe28aafc.js +1 -0
  31. package/assets/esri/core/workers/chunks/1bd5b421152fb0f46aa5.js +37 -0
  32. package/assets/esri/core/workers/chunks/{2e2c47f8a80ee9234350.js → 1d8fc0239c907ff5d1e8.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{b4f944ef6c174b20b619.js → 23545a9adc75564ecf6e.js} +1 -1
  34. package/assets/esri/core/workers/chunks/261b5a5db022ef580a1b.js +1 -0
  35. package/assets/esri/core/workers/chunks/2bd59ece927b5c1c9f80.js +1 -0
  36. package/assets/esri/core/workers/chunks/{37e46461da3000949a26.js → 2d8b8880e6bff4414e95.js} +1 -1
  37. package/assets/esri/core/workers/chunks/2fba74bae99ece15706c.js +1 -0
  38. package/assets/esri/core/workers/chunks/2fc64404bc42b7250086.js +1 -0
  39. package/assets/esri/core/workers/chunks/33cbfc34d5e2fc1a1a4f.js +1 -0
  40. package/assets/esri/core/workers/chunks/35887be3e4a218268d99.js +1 -0
  41. package/assets/esri/core/workers/chunks/3596ae4cb2bd2f3f35d9.js +1 -0
  42. package/assets/esri/core/workers/chunks/37814bf052ab59a5fb9e.js +1 -0
  43. package/assets/esri/core/workers/chunks/4e0d299054da075e5103.js +1 -0
  44. package/assets/esri/core/workers/chunks/50186162cd6d7c2ef0f9.js +1 -0
  45. package/assets/esri/core/workers/chunks/543ea1a0e7a6f1d267d1.js +1 -0
  46. package/assets/esri/core/workers/chunks/{dbfb00fb28b8b9f687a1.js → 5bbf20135c87a1cc8a18.js} +1 -1
  47. package/assets/esri/core/workers/chunks/5ed31ec0f53c1d55c4ea.js +1 -0
  48. package/assets/esri/core/workers/chunks/{c448540065690cac0744.js → 6087d5dc40bb62ec48c8.js} +1 -1
  49. package/assets/esri/core/workers/chunks/6309e8beedf5e7f2a50f.js +1 -0
  50. package/assets/esri/core/workers/chunks/{1a45b4b4803337f4b99f.js → 64985e9b6e2edb3ceb37.js} +38 -38
  51. package/assets/esri/core/workers/chunks/65475370cc4ebe2aa657.js +1 -0
  52. package/assets/esri/core/workers/chunks/65d9f3bc88472008443a.js +1 -0
  53. package/assets/esri/core/workers/chunks/6ab0f16f5c8806855c47.js +1 -0
  54. package/assets/esri/core/workers/chunks/7e37a3005f2ad2c0a918.js +1 -0
  55. package/assets/esri/core/workers/chunks/7f2496a59379e1a61ee5.js +1 -0
  56. package/assets/esri/core/workers/chunks/88379cd8e8e1c7ae3c7c.js +1 -0
  57. package/assets/esri/core/workers/chunks/{244006d4b0547d574401.js → 935a6dccb88557f98189.js} +143 -140
  58. package/assets/esri/core/workers/chunks/{a808be466812db51813d.js → 9382af94bf6bf1b09c8c.js} +1 -1
  59. package/assets/esri/core/workers/chunks/{8e83c133b201b9b61e70.js → 979bc762ccc0d3fc2467.js} +1 -1
  60. package/assets/esri/core/workers/chunks/9c417f4dfb19e4c4bd71.js +1 -0
  61. package/assets/esri/core/workers/chunks/a554ad74be03b1ed1a72.js +1 -0
  62. package/assets/esri/core/workers/chunks/{e6e837e43b9348050832.js → a67c86f4254807eb6a05.js} +1 -1
  63. package/assets/esri/core/workers/chunks/{1ec1a1997b5577619040.js → b211b53aa7616a093b90.js} +1 -1
  64. package/assets/esri/core/workers/chunks/{866477acdf03b8a40bc9.js → bd1d159dce4094694c93.js} +1 -1
  65. package/assets/esri/core/workers/chunks/c31babdb59382b6bc007.js +1 -0
  66. package/assets/esri/core/workers/chunks/c8182c2cbb0ead202af6.js +1 -0
  67. package/assets/esri/core/workers/chunks/ce218c10b209b58e04fd.js +1 -0
  68. package/assets/esri/core/workers/chunks/ceef586d8cc8adc4d249.js +1 -0
  69. package/assets/esri/core/workers/chunks/d13e8ce9270dc0662b87.js +1 -0
  70. package/assets/esri/core/workers/chunks/db28d00171240b4fffac.js +1 -0
  71. package/assets/esri/core/workers/chunks/{8d6641d0f7c93f83c414.js → db9c7182847e8f96ffe3.js} +1 -1
  72. package/assets/esri/core/workers/chunks/dbd382546837aa7709e2.js +1 -0
  73. package/assets/esri/core/workers/chunks/{6c9dac4a869742cc2718.js → e246b256347a281c13fd.js} +1 -1
  74. package/assets/esri/core/workers/chunks/ea6f897f21b4f30e8e99.js +1 -0
  75. package/assets/esri/core/workers/chunks/{a10c6dd3bb8b3602de68.js → ee175fd4ec706f7878c0.js} +1 -1
  76. package/assets/esri/core/workers/chunks/{e8a3ad00936f2ccaf362.js → f0a667d8d33bc51c795d.js} +1 -1
  77. package/assets/esri/core/workers/chunks/f65b27fc0bc2f242aac7.js +1 -0
  78. package/assets/esri/core/workers/chunks/{29b09db309ff75fb3e97.js → f65d26588d2d80680a26.js} +1 -1
  79. package/assets/esri/core/workers/chunks/f72e6c903f55ce95a6c5.js +1 -0
  80. package/assets/esri/core/workers/chunks/{5dd5be91038df8902dc4.js → f7dfbf24859f4ac2421b.js} +1 -1
  81. package/assets/esri/core/workers/chunks/f893e10d660e819cca45.js +1 -0
  82. package/assets/esri/core/workers/chunks/{878010ca23da0bca9405.js → fb1ed5ef2f95ab093346.js} +1 -1
  83. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  84. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  85. package/chunks/lyr3DMain.js +1 -1
  86. package/config.js +1 -1
  87. package/core/Version.d.ts +11 -2
  88. package/core/accessorSupport/types.d.ts +35 -5
  89. package/core/quantityFormatUtils.js +1 -1
  90. package/core/sql/types.d.ts +226 -31
  91. package/core/types.d.ts +24 -4
  92. package/core/workers/registry.js +1 -1
  93. package/editing/sharedTemplates/types.d.ts +1 -0
  94. package/editing/types.d.ts +2 -0
  95. package/effects/types.d.ts +1 -0
  96. package/form/ExpressionInfo.d.ts +1 -1
  97. package/form/FormTemplate.d.ts +4 -4
  98. package/form/elements/GroupElement.d.ts +1 -1
  99. package/form/elements/RelationshipElement.d.ts +3 -3
  100. package/form/elements/inputs/attachments/AttachmentInput.d.ts +2 -1
  101. package/form/elements/inputs/attachments/AudioInput.d.ts +1 -0
  102. package/form/elements/inputs/attachments/DocumentInput.d.ts +1 -0
  103. package/form/elements/inputs/attachments/ImageInput.d.ts +1 -0
  104. package/form/elements/inputs/attachments/Input.d.ts +5 -1
  105. package/form/elements/inputs/attachments/SignatureInput.d.ts +1 -0
  106. package/form/elements/inputs/attachments/VideoInput.d.ts +1 -0
  107. package/form/elements/inputs/attachments/types.d.ts +12 -3
  108. package/form/elements/inputs.d.ts +2 -2
  109. package/form/types.d.ts +3 -0
  110. package/geometry/geometryEngineTypes.d.ts +49 -9
  111. package/geometry/operators/types.d.ts +29 -4
  112. package/geometry/spatialReferenceEllipsoidUtils.js +1 -1
  113. package/geometry/support/MeshVertexAttributes.d.ts +21 -2
  114. package/geometry/support/meshUtils/types.d.ts +126 -18
  115. package/geometry/types.d.ts +37 -6
  116. package/ground/NavigationConstraint.d.ts +3 -0
  117. package/identity/IdentityManagerBase.d.ts +153 -27
  118. package/interfaces.d.ts +27 -27
  119. package/intl/date.d.ts +5 -0
  120. package/intl/locale.d.ts +1 -0
  121. package/intl/messages.d.ts +12 -2
  122. package/intl/number.d.ts +5 -0
  123. package/intl/substitute.d.ts +28 -5
  124. package/intl/t9n.d.ts +13 -2
  125. package/kernel.js +1 -1
  126. package/layers/GaussianSplatLayer.d.ts +87 -6
  127. package/layers/ImageryTileLayer.d.ts +8 -8
  128. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  129. package/layers/LinkChartLayer.d.ts +1 -1
  130. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  131. package/layers/RouteLayer.d.ts +3 -3
  132. package/layers/buildingSublayers/utils.d.ts +1 -0
  133. package/layers/effects/types.d.ts +12 -2
  134. package/layers/graphics/editingSupport.d.ts +202 -38
  135. package/layers/graphics/sources/ParquetSource.d.ts +23 -4
  136. package/layers/knowledgeGraph/IdTypePair.d.ts +15 -3
  137. package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.d.ts +61 -9
  138. package/layers/knowledgeGraph/LayoutMode.d.ts +1 -0
  139. package/layers/knowledgeGraph/dataModelVisualizationUtils.d.ts +6 -0
  140. package/layers/media/types.d.ts +25 -4
  141. package/layers/mixins/ArcGISImageService.d.ts +8 -9
  142. package/layers/mixins/ArcGISMapService.d.ts +5 -1
  143. package/layers/mixins/EditBusLayer.d.ts +3 -5
  144. package/layers/mixins/ImageryTileMixin.d.ts +2 -4
  145. package/layers/mixins/RasterJobHandlerMixin.js +1 -1
  146. package/layers/mixins/ScaleRange.d.ts +11 -2
  147. package/layers/mixins/properties/ILayerWithGetFeatureTitle.d.ts +11 -2
  148. package/layers/mixins/properties/ILayerWithGetField.d.ts +6 -1
  149. package/layers/ogc/ogcFeatureUtils.d.ts +2 -0
  150. package/layers/ogc/types.d.ts +55 -10
  151. package/layers/ogc/wcsUtils.d.ts +1 -0
  152. package/layers/ogc/wfsUtils.d.ts +8 -17
  153. package/layers/orientedImagery/core/ElevationSourceDefinitions.d.ts +6 -1
  154. package/layers/orientedImagery/transformations/types.d.ts +117 -21
  155. package/layers/orientedImagery/types.d.ts +37 -6
  156. package/layers/pointCloudFilters/typeUtils.d.ts +1 -0
  157. package/layers/raster/datasets/TIFFRaster.js +1 -1
  158. package/layers/raster/datasets/pixelReader.d.ts +2 -0
  159. package/layers/raster/datasets/types.d.ts +1 -0
  160. package/layers/raster/datasets/wcsCapabilitiesParser.d.ts +86 -17
  161. package/layers/raster/datasets/wcsCoverageParser.d.ts +601 -115
  162. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  163. package/layers/raster/formats/JpgPlus.js +1 -1
  164. package/layers/raster/formats/RasterCodec.js +1 -1
  165. package/layers/raster/formats/Raw.js +1 -1
  166. package/layers/raster/formats/TiffDecoder.js +1 -1
  167. package/layers/raster/functions/changeDetectionUtils.d.ts +1 -0
  168. package/layers/raster/functions/creators/createAppearenceFunctions.d.ts +82 -15
  169. package/layers/raster/functions/creators/createBandIndexFunctions.d.ts +380 -70
  170. package/layers/raster/functions/creators/createChangeFunctions.d.ts +11 -2
  171. package/layers/raster/functions/creators/createConversionFunctions.d.ts +18 -3
  172. package/layers/raster/functions/creators/createDataManagementFunctions.d.ts +179 -35
  173. package/layers/raster/functions/creators/createLocalFunctions.d.ts +47 -9
  174. package/layers/raster/functions/creators/createMultiRasterAnalysisFunctions.d.ts +47 -9
  175. package/layers/raster/functions/creators/createStatisticsFunctions.d.ts +42 -8
  176. package/layers/raster/functions/creators/createSurfaceFunctions.d.ts +72 -11
  177. package/layers/raster/functions/focalStatUtils.d.ts +1 -0
  178. package/layers/raster/functions/rasterProjectionHelper.js +1 -1
  179. package/layers/raster/functions/types.d.ts +29 -5
  180. package/layers/raster/types.d.ts +498 -6
  181. package/layers/support/BuildingFilterBlock.d.ts +19 -3
  182. package/layers/support/BuildingFilterMode.d.ts +1 -0
  183. package/layers/support/BuildingFilterModeSolid.d.ts +7 -1
  184. package/layers/support/BuildingFilterModeWireFrame.d.ts +17 -3
  185. package/layers/support/BuildingFilterModeXRay.d.ts +7 -1
  186. package/layers/support/CodedValue.d.ts +16 -3
  187. package/layers/support/ControlPoint.d.ts +17 -3
  188. package/layers/support/EditFieldsInfo.d.ts +21 -4
  189. package/layers/support/EditingCapabilities.d.ts +36 -7
  190. package/layers/support/ElevationQuery.js +1 -1
  191. package/layers/support/ElevationTileData.d.ts +25 -5
  192. package/layers/support/FieldFormat.d.ts +1 -0
  193. package/layers/support/GeometryDescriptor.js +1 -1
  194. package/layers/support/GeoreferenceBase.d.ts +1 -0
  195. package/layers/support/KMLMapImage.d.ts +13 -2
  196. package/layers/support/LabelExpressionInfo.d.ts +9 -1
  197. package/layers/support/MosaicRule.d.ts +41 -1
  198. package/layers/support/ParquetGeometryEncodingLocation.d.ts +13 -2
  199. package/layers/support/ParquetGeometryEncodingWkb.d.ts +7 -0
  200. package/layers/support/PixelBlock.d.ts +9 -4
  201. package/layers/support/PurgeOptions.d.ts +15 -2
  202. package/layers/support/RasterInfo.d.ts +1 -2
  203. package/layers/support/RasterJobHandler.js +1 -1
  204. package/layers/support/RasterWorker.js +1 -1
  205. package/layers/support/SpriteSource.d.ts +28 -6
  206. package/layers/support/layerUtils.d.ts +4 -0
  207. package/layers/support/rasterFunctionConstants.d.ts +39 -0
  208. package/layers/support/types.d.ts +423 -227
  209. package/layers/types.d.ts +771 -196
  210. package/layers/video/types.d.ts +72 -14
  211. package/layers/voxel/VoxelColorStop.d.ts +17 -3
  212. package/layers/voxel/VoxelFormat.d.ts +15 -2
  213. package/layers/voxel/VoxelIsosurface.d.ts +17 -2
  214. package/layers/voxel/VoxelOpacityStop.d.ts +8 -1
  215. package/layers/voxel/VoxelRangeFilter.d.ts +12 -2
  216. package/layers/voxel/VoxelUniqueValue.d.ts +19 -3
  217. package/layers/wms/types.d.ts +104 -19
  218. package/layers/wmts/types.d.ts +1 -0
  219. package/linkChart/ChronologicalLayoutSettings.d.ts +1 -1
  220. package/linkChart/OrganicLayoutSettings.d.ts +1 -1
  221. package/linkChart/types.d.ts +2 -0
  222. package/networks/UtilityNetworkTraceAnalysis.d.ts +61 -10
  223. package/networks/support/jsonTypes.d.ts +373 -71
  224. package/networks/support/typeUtils.d.ts +10 -0
  225. package/networks/support/utils.d.ts +30 -6
  226. package/package.json +1 -1
  227. package/popup/content/types.d.ts +1 -0
  228. package/popup/types.d.ts +33 -5
  229. package/portal/jsonTypes.d.ts +231 -39
  230. package/portal/support/resourceUtils.d.ts +49 -9
  231. package/portal/types.d.ts +98 -14
  232. package/renderers/FlowRenderer.js +1 -1
  233. package/renderers/RasterStretchRenderer.d.ts +1 -1
  234. package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +4 -0
  235. package/renderers/support/AuthoringInfoFieldInfo.d.ts +15 -2
  236. package/renderers/support/DotDensityLegendOptions.d.ts +4 -0
  237. package/renderers/support/HeatmapLegendOptions.d.ts +8 -0
  238. package/renderers/support/OthersCategory.d.ts +6 -0
  239. package/renderers/support/RendererLegendOptions.d.ts +14 -2
  240. package/renderers/support/pointCloud/ColorClassBreakInfo.d.ts +13 -1
  241. package/renderers/support/pointCloud/ColorModulation.d.ts +6 -0
  242. package/renderers/support/pointCloud/ColorUniqueValueInfo.d.ts +19 -3
  243. package/renderers/support/pointCloud/PointSizeAlgorithm.d.ts +1 -0
  244. package/renderers/support/pointCloud/PointSizeFixedSizeAlgorithm.d.ts +14 -2
  245. package/renderers/support/pointCloud/PointSizeSplatAlgorithm.d.ts +9 -1
  246. package/renderers/support/pointCloud/types.d.ts +7 -1
  247. package/renderers/support/raster/types.d.ts +22 -2
  248. package/renderers/support/types.d.ts +29 -2
  249. package/renderers/types.d.ts +47 -4
  250. package/renderers/visualVariables/support/SizeVariableLegendOptions.d.ts +4 -0
  251. package/renderers/visualVariables/support/VisualVariableLegendOptions.d.ts +9 -1
  252. package/request/types.d.ts +152 -24
  253. package/rest/featureService/FeatureService.d.ts +1 -1
  254. package/rest/featureService/types.d.ts +426 -80
  255. package/rest/geometryService/types.d.ts +23 -1
  256. package/rest/geoprocessor/GPOptions.d.ts +5 -5
  257. package/rest/geoprocessor/execute.d.ts +6 -0
  258. package/rest/imageService.d.ts +5 -5
  259. package/rest/knowledgeGraph/DataModel.d.ts +2 -2
  260. package/rest/knowledgeGraph/GraphAnyValue.d.ts +1 -0
  261. package/rest/knowledgeGraph/GraphDataModelSingletonOperationResult.d.ts +12 -2
  262. package/rest/knowledgeGraph/GraphDeleteNamedTypeResult.d.ts +1 -1
  263. package/rest/knowledgeGraph/GraphDeletePropertyResult.d.ts +1 -1
  264. package/rest/knowledgeGraph/GraphQuery.d.ts +1 -1
  265. package/rest/knowledgeGraph/GraphSearch.d.ts +3 -3
  266. package/rest/knowledgeGraph/GraphSearchStreaming.d.ts +3 -3
  267. package/rest/knowledgeGraph/SearchIndex.d.ts +1 -1
  268. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsPathFilter.d.ts +3 -3
  269. package/rest/knowledgeGraph/toolService/findPaths/CIMFilteredFindPathsResultJSON.d.ts +151 -29
  270. package/rest/knowledgeGraph/toolService/findPaths/CIMKGTraversalDirection.d.ts +1 -1
  271. package/rest/knowledgeGraph/wasmInterface/KnowledgeWasmInterface.d.ts +1 -0
  272. package/rest/knowledgeGraph/wasmInterface/WasmDataModelWrapperInterfaces.d.ts +9 -0
  273. package/rest/knowledgeGraphService.d.ts +4 -4
  274. package/rest/lastMileDelivery/types.d.ts +5 -0
  275. package/rest/layerSources/DynamicDataLayer.d.ts +14 -2
  276. package/rest/layerSources/DynamicMapLayer.d.ts +14 -2
  277. package/rest/layerSources/JoinTableDataSource.d.ts +21 -2
  278. package/rest/layerSources/QueryTableDataSource.d.ts +33 -6
  279. package/rest/layerSources/RasterDataSource.d.ts +17 -3
  280. package/rest/layerSources/TableDataSource.d.ts +22 -4
  281. package/rest/networks/circuits/support/ExportCircuitsParameters.d.ts +8 -1
  282. package/rest/networks/circuits/support/QueryCircuitsParameters.d.ts +18 -3
  283. package/rest/networks/support/QueryNamedTraceConfigurationsParameters.d.ts +22 -4
  284. package/rest/print.d.ts +1 -1
  285. package/rest/query/support/AttachmentInfo.d.ts +1 -1
  286. package/rest/support/AddressToLocationsParameters.d.ts +39 -3
  287. package/rest/support/AddressesToLocationsParameters.d.ts +14 -0
  288. package/rest/support/BaseImageMeasureResultValue.d.ts +21 -4
  289. package/rest/support/ClosestFacilityParameters.d.ts +3 -3
  290. package/rest/support/ClosestFacilitySolveResult.d.ts +2 -2
  291. package/rest/support/DirectionsString.d.ts +16 -3
  292. package/rest/support/ImageMeasureResultAngleValue.d.ts +12 -2
  293. package/rest/support/ImageMeasureResultAreaValue.d.ts +12 -2
  294. package/rest/support/ImageMeasureResultLengthValue.d.ts +12 -2
  295. package/rest/support/LocateSetting.d.ts +12 -2
  296. package/rest/support/LocateSettingBase.d.ts +14 -2
  297. package/rest/support/LocateSettingSource.d.ts +12 -2
  298. package/rest/support/LocateSettings.d.ts +22 -4
  299. package/rest/support/LocateSettingsOverrides.d.ts +42 -8
  300. package/rest/support/LocationToAddressParameters.d.ts +7 -0
  301. package/rest/support/NetworkAttribute.d.ts +11 -2
  302. package/rest/support/NetworkServiceDescription.d.ts +20 -4
  303. package/rest/support/QuantizationParameters.d.ts +9 -0
  304. package/rest/support/Query.d.ts +2 -2
  305. package/rest/support/RouteParameters.d.ts +2 -5
  306. package/rest/support/RouteResult.d.ts +1 -1
  307. package/rest/support/ServiceAreaParameters.d.ts +1 -1
  308. package/rest/support/ServiceAreaSolveResult.d.ts +2 -2
  309. package/rest/support/SuggestLocationsParameters.d.ts +10 -0
  310. package/rest/support/SuggestionCandidate.d.ts +14 -2
  311. package/rest/support/types.d.ts +54 -4
  312. package/rest/symbolService.d.ts +2 -2
  313. package/rest/types.d.ts +50 -5
  314. package/rest/versionManagement/gdbVersion/support/AlterVersionParameters.d.ts +22 -4
  315. package/rest/versionManagement/gdbVersion/support/PostResult.d.ts +6 -1
  316. package/rest/versionManagement/gdbVersion/support/ReconcileParameters.d.ts +10 -1
  317. package/rest/versionManagement/gdbVersion/support/ReconcileResult.d.ts +8 -1
  318. package/rest/versionManagement/support/CreateVersionParameters.d.ts +13 -2
  319. package/rest/versionManagement/support/GetVersionInfosParameters.d.ts +8 -1
  320. package/smartMapping/heuristics/types.d.ts +50 -6
  321. package/smartMapping/popup/types.d.ts +29 -5
  322. package/smartMapping/raster/renderers/types.d.ts +12 -1
  323. package/smartMapping/raster/support/adapters/types.d.ts +1 -0
  324. package/smartMapping/renderers/color.d.ts +9 -3
  325. package/smartMapping/renderers/dotDensity.d.ts +3 -1
  326. package/smartMapping/renderers/heatmap.d.ts +3 -1
  327. package/smartMapping/renderers/location.d.ts +3 -1
  328. package/smartMapping/renderers/opacity.d.ts +3 -1
  329. package/smartMapping/renderers/pieChart.d.ts +3 -1
  330. package/smartMapping/renderers/predominance.d.ts +3 -1
  331. package/smartMapping/renderers/relationship.d.ts +3 -1
  332. package/smartMapping/renderers/size.d.ts +23 -7
  333. package/smartMapping/renderers/support/rendererUtils.d.ts +3 -1
  334. package/smartMapping/renderers/type.d.ts +3 -1
  335. package/smartMapping/renderers/univariateColorSize.d.ts +3 -1
  336. package/smartMapping/statistics/types.d.ts +16 -4
  337. package/smartMapping/symbology/type.d.ts +5 -1
  338. package/smartMapping/symbology/types.d.ts +1303 -241
  339. package/smartMapping/types.d.ts +5 -0
  340. package/statistics/types.d.ts +13 -2
  341. package/support/revision.js +1 -1
  342. package/symbols/callouts/LineCallout3DBorder.d.ts +4 -0
  343. package/symbols/cim/types.d.ts +764 -111
  344. package/symbols/patterns/LinePattern3D.d.ts +1 -0
  345. package/symbols/patterns/Pattern3D.d.ts +1 -0
  346. package/symbols/support/IconSymbol3DLayerResource.d.ts +7 -0
  347. package/symbols/support/ObjectSymbol3DLayerResource.d.ts +7 -0
  348. package/symbols/support/OccludedVisibility.d.ts +3 -0
  349. package/symbols/support/Symbol3DAnchorPosition2D.d.ts +4 -0
  350. package/symbols/support/Symbol3DAnchorPosition3D.d.ts +5 -0
  351. package/symbols/support/Symbol3DFillMaterial.d.ts +4 -0
  352. package/symbols/support/Symbol3DHalo.d.ts +10 -0
  353. package/symbols/support/Symbol3DIconOutline.d.ts +10 -0
  354. package/symbols/support/Symbol3DMaterial.d.ts +6 -0
  355. package/symbols/support/Symbol3DOutline.d.ts +21 -2
  356. package/symbols/support/Symbol3DTextBackground.d.ts +12 -2
  357. package/symbols/support/symbolUtils.d.ts +5 -1
  358. package/symbols/support/types.d.ts +4 -0
  359. package/symbols/types.d.ts +67 -7
  360. package/tables/AttributeTableTemplate.d.ts +2 -2
  361. package/tables/elements/AttributeTableAttachmentElement.d.ts +1 -1
  362. package/tables/elements/AttributeTableElement.d.ts +2 -2
  363. package/tables/elements/AttributeTableFieldElement.d.ts +1 -1
  364. package/tables/elements/AttributeTableGroupElement.d.ts +1 -1
  365. package/tables/elements/AttributeTableRelationshipElement.d.ts +1 -1
  366. package/tables/support/FieldOrder.d.ts +16 -3
  367. package/tables/support/tablesUtils.d.ts +1 -0
  368. package/time/types.d.ts +4 -0
  369. package/versionManagement/VersionManagementService.d.ts +3 -6
  370. package/versionManagement/VersionManager.d.ts +126 -23
  371. package/versionManagement/VersioningState.d.ts +1 -1
  372. package/versionManagement/support/jsonTypes.d.ts +152 -30
  373. package/versionManagement/support/type.d.ts +2 -0
  374. package/versionManagement/versionAdapters/types.d.ts +25 -5
  375. package/views/2d/MapViewConstraints.d.ts +37 -5
  376. package/views/2d/analysis/AnalysisView2D.d.ts +5 -1
  377. package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +28 -4
  378. package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +28 -4
  379. package/views/2d/analysis/types.d.ts +5 -1
  380. package/views/2d/engine/flow/BrushFlow.js +1 -1
  381. package/views/2d/engine/flow/FlowDisplayObject.js +1 -1
  382. package/views/2d/engine/flow/FlowStrategy.js +1 -1
  383. package/views/2d/engine/flow/FlowView2D.js +1 -1
  384. package/views/2d/engine/flow/ProcessingTimeEstimate.js +5 -0
  385. package/views/2d/engine/flow/animatedValues.js +5 -0
  386. package/views/2d/engine/flow/dataUtils.js +1 -1
  387. package/views/2d/engine/flow/flowPathsIO.js +5 -0
  388. package/views/2d/engine/flow/styles/AFlowResources.js +5 -0
  389. package/views/2d/engine/flow/styles/Imagery.js +1 -1
  390. package/views/2d/engine/flow/styles/Particles.js +1 -1
  391. package/views/2d/engine/flow/styles/Stack.js +1 -1
  392. package/views/2d/engine/flow/styles/Streamlines.js +1 -1
  393. package/views/2d/engine/flow/utils.js +1 -1
  394. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  395. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  396. package/views/2d/layers/support/MediaLayerInteractionOptions.d.ts +1 -0
  397. package/views/2d/layers/types.d.ts +1 -0
  398. package/views/2d/types.d.ts +93 -6
  399. package/views/3d/analysis/AnalysisView3D.d.ts +5 -1
  400. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementController.js +1 -1
  401. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  402. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  403. package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
  404. package/views/3d/analysis/DirectLineMeasurement/types.d.ts +24 -4
  405. package/views/3d/analysis/LineOfSight/types.d.ts +1 -0
  406. package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +19 -3
  407. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillVisualization.js +1 -1
  408. package/views/3d/analysis/VolumeMeasurement/types.d.ts +5 -1
  409. package/views/3d/analysis/support/measurementUtils.js +1 -1
  410. package/views/3d/analysis/types.d.ts +25 -3
  411. package/views/3d/constraints/AltitudeConstraint.d.ts +5 -0
  412. package/views/3d/constraints/ClipDistanceConstraint.d.ts +13 -2
  413. package/views/3d/constraints/Constraints.d.ts +26 -4
  414. package/views/3d/constraints/TiltConstraint.d.ts +5 -0
  415. package/views/3d/environment/SceneViewEnvironment.d.ts +9 -0
  416. package/views/3d/environment/types.d.ts +3 -0
  417. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
  418. package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
  419. package/views/3d/interactive/visualElements/MeasurementAreaVisualElement.js +1 -1
  420. package/views/3d/interactive/visualElements/support/Segment.js +1 -1
  421. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  422. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  423. package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
  424. package/views/3d/layers/support/MediaLayerInteractionOptions.d.ts +15 -2
  425. package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.d.ts +3 -0
  426. package/views/3d/types.d.ts +52 -0
  427. package/views/3d/webgl/ManagedColorAttachment.d.ts +2 -0
  428. package/views/3d/webgl/ManagedDepthAttachment.d.ts +2 -0
  429. package/views/3d/webgl/ManagedFBO.d.ts +4 -0
  430. package/views/3d/webgl/ManagedFBOAttachment.d.ts +1 -0
  431. package/views/3d/webgl/ManagedFBOResource.d.ts +5 -0
  432. package/views/3d/webgl/types.d.ts +32 -6
  433. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +20 -22
  434. package/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js +9 -5
  435. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +8 -6
  436. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  437. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  438. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  439. package/views/3d/webgl-engine/lib/Material.js +1 -1
  440. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  441. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  442. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  443. package/views/3d/webgl-engine/materials/VisualVariablePassParameters.js +1 -1
  444. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  445. package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
  446. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +9 -8
  447. package/views/MapViewOrSceneView.d.ts +1 -0
  448. package/views/SceneView.d.ts +59 -0
  449. package/views/SceneView.js +1 -1
  450. package/views/View.d.ts +2 -2
  451. package/views/View2D.d.ts +37 -0
  452. package/views/View2D.js +1 -1
  453. package/views/Viewport2DMixin.d.ts +9 -6
  454. package/views/analysis/AnalysisView.d.ts +2 -0
  455. package/views/analysis/AreaMeasurement/types.d.ts +18 -3
  456. package/views/analysis/DistanceMeasurement/types.d.ts +13 -2
  457. package/views/analysis/ElevationProfile/ElevationProfileLineGroundComputation.js +1 -1
  458. package/views/analysis/ElevationProfile/elevationProfileGenerationUtils.js +1 -1
  459. package/views/analysis/types.d.ts +7 -1
  460. package/views/animation/easing.js +1 -1
  461. package/views/animation/types.d.ts +3 -4
  462. package/views/draw/CursorUpdateEvent.d.ts +24 -4
  463. package/views/draw/DrawAction.d.ts +4 -6
  464. package/views/draw/DrawCompleteEvent.d.ts +18 -3
  465. package/views/draw/VertexAddEvent.d.ts +19 -3
  466. package/views/draw/VertexRemoveEvent.d.ts +19 -3
  467. package/views/draw/types.d.ts +4 -0
  468. package/views/input/types.d.ts +371 -57
  469. package/views/interactive/sketch/SketchTooltipVisibleElements.d.ts +19 -1
  470. package/views/interactive/sketch/Units.d.ts +5 -0
  471. package/views/interactive/tooltip/types.d.ts +2 -0
  472. package/views/layers/HighlightLayerViewMixin.d.ts +59 -1
  473. package/views/layers/HighlightLayerViewMixin.js +1 -1
  474. package/views/layers/ImageryLayerViewMixin.d.ts +60 -2
  475. package/views/layers/ImageryTileLayerViewMixin.d.ts +2 -0
  476. package/views/layers/LayerView.d.ts +6 -0
  477. package/views/layers/MediaLayerViewMixin.d.ts +8 -1
  478. package/views/layers/types.d.ts +3 -0
  479. package/views/navigation/types.d.ts +6 -1
  480. package/views/support/AttributionItem.d.ts +10 -2
  481. package/views/support/MeasurementWorker.js +5 -0
  482. package/views/support/MeasurementWorkerHandle.js +5 -0
  483. package/views/support/automaticAreaMeasurementUtils.js +1 -1
  484. package/views/support/geodesicAreaMeasurementUtils.js +1 -1
  485. package/views/support/geodesicLengthMeasurementUtils.js +1 -1
  486. package/views/types.d.ts +306 -53
  487. package/views/ui/types.d.ts +42 -6
  488. package/webdoc/Widgets.d.ts +26 -5
  489. package/webdoc/geotriggersInfo/support/typeUtils.d.ts +3 -0
  490. package/webdoc/support/SlideThumbnail.d.ts +4 -0
  491. package/webdoc/support/types.d.ts +11 -2
  492. package/webdoc/support/webdocSaveUtils.d.ts +6 -0
  493. package/webdoc/widgets/FloorFilter.d.ts +25 -4
  494. package/webmap/Version.d.ts +1 -0
  495. package/webscene/Version.d.ts +1 -0
  496. package/webscene/support/Description.d.ts +3 -0
  497. package/webscene/support/SlideEnvironment.d.ts +6 -0
  498. package/webscene/support/SlideGround.d.ts +7 -1
  499. package/webscene/support/SlideVisibleLayer.d.ts +5 -0
  500. package/webscene/support/Title.d.ts +3 -0
  501. package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
  502. package/widgets/Attachments/types.d.ts +32 -6
  503. package/widgets/BasemapGallery/types.d.ts +3 -0
  504. package/widgets/BasemapLayerList/BasemapLayerListVisibleElements.d.ts +14 -0
  505. package/widgets/BasemapLayerList/types.d.ts +1 -0
  506. package/widgets/BatchAttributeForm/VisibleElements.d.ts +7 -1
  507. package/widgets/BatchAttributeForm/inputs/SingleFeatureInput.d.ts +2 -0
  508. package/widgets/BatchAttributeForm/inputs/TextElementInput.d.ts +14 -2
  509. package/widgets/BatchAttributeForm/inputs/types.d.ts +2 -0
  510. package/widgets/BatchAttributeForm/types.d.ts +75 -14
  511. package/widgets/BatchAttributeForm.d.ts +2 -2
  512. package/widgets/Bookmarks/BookmarksVisibleElements.d.ts +30 -9
  513. package/widgets/Bookmarks/types.d.ts +32 -10
  514. package/widgets/CatalogLayerList/CatalogLayerListVisibleElements.d.ts +11 -0
  515. package/widgets/CatalogLayerList/types.d.ts +1 -0
  516. package/widgets/Daylight/VisibleElements.d.ts +11 -1
  517. package/widgets/Daylight/types.d.ts +8 -2
  518. package/widgets/DirectionalPad/VisibleElements.d.ts +6 -0
  519. package/widgets/DirectionalPad/types.d.ts +13 -2
  520. package/widgets/Directions/DirectionsViewModel.d.ts +2 -2
  521. package/widgets/Directions/DirectionsVisibleElements.d.ts +8 -0
  522. package/widgets/Editor/CreateFeaturesWorkflowData.d.ts +3 -3
  523. package/widgets/Editor/EditorViewModel.d.ts +2 -3
  524. package/widgets/Editor/Edits.d.ts +1 -2
  525. package/widgets/Editor/SplitFeatureWorkflow.d.ts +2 -2
  526. package/widgets/Editor/VisibleElements.d.ts +46 -13
  527. package/widgets/Editor/support/EditorEditingCapabilities.d.ts +46 -9
  528. package/widgets/Editor/types.d.ts +149 -24
  529. package/widgets/ElevationProfile/ElevationProfileVisibleElements.d.ts +13 -1
  530. package/widgets/ElevationProfile/types.d.ts +87 -14
  531. package/widgets/Expand.d.ts +2 -2
  532. package/widgets/Feature/types.d.ts +105 -18
  533. package/widgets/FeatureForm/GroupInput.d.ts +1 -1
  534. package/widgets/FeatureForm/RelationshipInput.d.ts +1 -1
  535. package/widgets/FeatureForm/TextElementInput.d.ts +3 -5
  536. package/widgets/FeatureForm/UtilityNetworkAssociationInput.d.ts +1 -1
  537. package/widgets/FeatureForm/VisibleElements.d.ts +7 -1
  538. package/widgets/FeatureForm/types.d.ts +3 -0
  539. package/widgets/FeatureForm.d.ts +1 -1
  540. package/widgets/FeatureTable/ColumnMenuVisibleElements.d.ts +4 -0
  541. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +14 -4
  542. package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
  543. package/widgets/FeatureTable/Grid/GridViewModel.d.ts +2 -0
  544. package/widgets/FeatureTable/Grid/types.d.ts +137 -24
  545. package/widgets/FeatureTable/TableMenuVisibleElements.d.ts +10 -0
  546. package/widgets/FeatureTable/VisibleElements.d.ts +16 -2
  547. package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
  548. package/widgets/FeatureTable/support/types.d.ts +155 -27
  549. package/widgets/FeatureTable.d.ts +3 -3
  550. package/widgets/FeatureTemplates/VisibleElements.d.ts +4 -0
  551. package/widgets/FeatureTemplates/types.d.ts +17 -2
  552. package/widgets/Features/FeaturesVisibleElements.d.ts +12 -0
  553. package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
  554. package/widgets/Histogram/types.d.ts +14 -2
  555. package/widgets/HistogramRangeSlider/types.d.ts +1 -0
  556. package/widgets/LayerList/LayerListVisibleElements.d.ts +10 -0
  557. package/widgets/LayerList/types.d.ts +8 -0
  558. package/widgets/Legend/styles/card/CardView.d.ts +13 -2
  559. package/widgets/Legend/styles/classic/ClassicView.d.ts +11 -2
  560. package/widgets/Measurement/types.d.ts +3 -0
  561. package/widgets/OrientedImageryViewer/types.d.ts +15 -3
  562. package/widgets/Popup/PopupVisibleElements.d.ts +11 -0
  563. package/widgets/Popup/types.d.ts +64 -7
  564. package/widgets/Print/FileLink.d.ts +36 -6
  565. package/widgets/Print/types.d.ts +77 -13
  566. package/widgets/ScaleRangeSlider/types.d.ts +4 -0
  567. package/widgets/ScaleRangeSlider.d.ts +5 -1
  568. package/widgets/Search/SearchResultRenderer.d.ts +0 -2
  569. package/widgets/Search/SearchSource.d.ts +2 -2
  570. package/widgets/Search/SearchViewModel.d.ts +6 -7
  571. package/widgets/Search/types.d.ts +4 -4
  572. package/widgets/ShadowCast/ShadowCastVisibleElements.d.ts +15 -1
  573. package/widgets/ShadowCast/types.d.ts +8 -2
  574. package/widgets/Sketch/CreateToolVisibilityMap.d.ts +19 -4
  575. package/widgets/Sketch/SelectionToolVisibilityMap.d.ts +4 -0
  576. package/widgets/Sketch/VisibleElements.d.ts +38 -6
  577. package/widgets/Sketch/types.d.ts +364 -60
  578. package/widgets/Slider/types.d.ts +249 -46
  579. package/widgets/Swipe/types.d.ts +6 -0
  580. package/widgets/TableList/TableListVisibleElements.d.ts +11 -0
  581. package/widgets/TableList/types.d.ts +5 -0
  582. package/widgets/TimeSlider/types.d.ts +45 -7
  583. package/widgets/Track/types.d.ts +4 -1
  584. package/widgets/UtilityNetworkAssociations/VisibleElements.d.ts +23 -4
  585. package/widgets/UtilityNetworkAssociations/VisibleElementsSettingsPane.d.ts +7 -0
  586. package/widgets/UtilityNetworkTrace/types.d.ts +26 -5
  587. package/widgets/ValuePicker/ValuePickerBaseComponent.d.ts +2 -0
  588. package/widgets/ValuePicker/ValuePickerSliderVisibleElements.d.ts +7 -1
  589. package/widgets/ValuePicker/ValuePickerVisibleElements.d.ts +9 -1
  590. package/widgets/ValuePicker/types.d.ts +8 -0
  591. package/widgets/Weather/VisibleElements.d.ts +6 -1
  592. package/widgets/Weather/types.d.ts +1 -0
  593. package/widgets/smartMapping/types.d.ts +63 -6
  594. package/widgets/support/GridControls/VisibleElements.d.ts +11 -0
  595. package/widgets/support/GridControls/types.d.ts +1 -0
  596. package/widgets/support/SnappingControls/VisibleElements.d.ts +26 -4
  597. package/widgets/support/forms/types.d.ts +2 -0
  598. package/widgets/support/types.d.ts +19 -3
  599. package/widgets/types.d.ts +549 -89
  600. package/assets/esri/core/workers/chunks/0367a8580fede8f804f9.js +0 -1
  601. package/assets/esri/core/workers/chunks/14f4f5b7549cea7b5a6a.js +0 -1
  602. package/assets/esri/core/workers/chunks/1b475593c80d7bccdda5.js +0 -1
  603. package/assets/esri/core/workers/chunks/27ec8688f72130239b98.js +0 -1
  604. package/assets/esri/core/workers/chunks/2dd347aa2a061d536e69.js +0 -1
  605. package/assets/esri/core/workers/chunks/2f6fa33692478e99d24b.js +0 -1
  606. package/assets/esri/core/workers/chunks/329b10897c6965948b84.js +0 -1
  607. package/assets/esri/core/workers/chunks/35593a9790818b689455.js +0 -1
  608. package/assets/esri/core/workers/chunks/3e7ea06b342e33bc48a5.js +0 -1
  609. package/assets/esri/core/workers/chunks/401ce5cb98fa14c1a725.js +0 -1
  610. package/assets/esri/core/workers/chunks/4387aaf9d5e8f6d1833d.js +0 -1
  611. package/assets/esri/core/workers/chunks/668a868fe2dcb6384ac9.js +0 -1
  612. package/assets/esri/core/workers/chunks/6acfa51b81e6f4255118.js +0 -1
  613. package/assets/esri/core/workers/chunks/6f8098f9fe233833245a.js +0 -1
  614. package/assets/esri/core/workers/chunks/76dbaef0d0794913f36f.js +0 -1
  615. package/assets/esri/core/workers/chunks/7c5218eae13d3bd30598.js +0 -1
  616. package/assets/esri/core/workers/chunks/7fc09382f934e9223a9b.js +0 -1
  617. package/assets/esri/core/workers/chunks/822ef6a043c7e147b4b6.js +0 -1
  618. package/assets/esri/core/workers/chunks/980313a6c35e79812d17.js +0 -1
  619. package/assets/esri/core/workers/chunks/98d68b145226e7527c84.js +0 -33
  620. package/assets/esri/core/workers/chunks/9c157c0eeadb824ad01e.js +0 -1
  621. package/assets/esri/core/workers/chunks/a39ac9127a215d14d412.js +0 -1
  622. package/assets/esri/core/workers/chunks/a893f8db2477cf677ac8.js +0 -1
  623. package/assets/esri/core/workers/chunks/a95e28ade258b144cbb5.js +0 -1
  624. package/assets/esri/core/workers/chunks/abcee7cfd53cfe1d91e9.js +0 -1
  625. package/assets/esri/core/workers/chunks/b9f0d313f59fc7c43560.js +0 -1
  626. package/assets/esri/core/workers/chunks/bbe2eaef7edfa33b6eea.js +0 -1
  627. package/assets/esri/core/workers/chunks/bfdf646d4c8f175a4236.js +0 -1
  628. package/assets/esri/core/workers/chunks/d749aa62ad694147aebe.js +0 -1
  629. package/assets/esri/core/workers/chunks/d7d9656b990ce8be2152.js +0 -1
  630. package/assets/esri/core/workers/chunks/df92239eefff04471a0b.js +0 -1
  631. package/assets/esri/core/workers/chunks/ee2ca25048a920e43743.js +0 -1
  632. package/assets/esri/core/workers/chunks/eeb24a4ab4993f1f4e8e.js +0 -1
  633. package/assets/esri/core/workers/chunks/fe5d2735f057c7789f4b.js +0 -1
  634. package/views/2d/engine/flow/FlowDisplayData.js +0 -5
  635. package/views/support/GeodesicMeasurementWorker.js +0 -5
  636. package/views/support/GeodesicMeasurementWorkerHandle.js +0 -5
@@ -11,59 +11,111 @@ import type WFSLayerView from "../layers/WFSLayerView.js";
11
11
  import type { OGCFeatureLayerView } from "../layers/OGCFeatureLayerView.js";
12
12
  import type { StreamLayerView } from "../layers/StreamLayerView.js";
13
13
 
14
+ /** @since 5.0 */
14
15
  export interface LayerView2DMap {
16
+ /** @since 5.0 */
15
17
  "base-dynamic": never;
18
+ /** @since 5.0 */
16
19
  "base-elevation": never;
20
+ /** @since 5.0 */
17
21
  "base-tile": never;
22
+ /** @since 5.0 */
18
23
  "bing-maps": never;
24
+ /** @since 5.0 */
19
25
  "building-scene": never;
26
+ /** @since 5.0 */
20
27
  catalog: never;
28
+ /** @since 5.0 */
21
29
  "catalog-dynamic-group": never;
30
+ /** @since 5.0 */
22
31
  "catalog-footprint": never;
32
+ /** @since 5.0 */
23
33
  csv: FeatureLayerView;
34
+ /** @since 5.0 */
24
35
  dimension: never;
36
+ /** @since 5.0 */
25
37
  elevation: never;
38
+ /** @since 5.0 */
26
39
  feature: FeatureLayerView;
40
+ /** @since 5.0 */
27
41
  "gaussian-splat": never;
42
+ /** @since 5.0 */
28
43
  "geo-rss": GeoRSSLayerView;
44
+ /** @since 5.0 */
29
45
  geojson: GeoJSONLayerView;
46
+ /** @since 5.0 */
30
47
  graphics: GraphicsLayerView;
48
+ /** @since 5.0 */
31
49
  group: never;
50
+ /** @since 5.0 */
32
51
  imagery: ImageryLayerView;
52
+ /** @since 5.0 */
33
53
  "imagery-tile": never;
54
+ /** @since 5.0 */
34
55
  "integrated-mesh": never;
56
+ /** @since 5.0 */
35
57
  "integrated-mesh-3dtiles": never;
58
+ /** @since 5.0 */
36
59
  kml: KMLLayerView;
60
+ /** @since 5.0 */
37
61
  "knowledge-graph": never;
62
+ /** @since 5.0 */
38
63
  "knowledge-graph-sublayer": never;
64
+ /** @since 5.0 */
39
65
  "line-of-sight": never;
66
+ /** @since 5.0 */
40
67
  "link-chart": never;
68
+ /** @since 5.0 */
41
69
  "map-image": never;
70
+ /** @since 5.0 */
42
71
  "map-notes": never;
72
+ /** @since 5.0 */
43
73
  media: MediaLayerView;
74
+ /** @since 5.0 */
44
75
  "ogc-feature": OGCFeatureLayerView;
76
+ /** @since 5.0 */
45
77
  "open-street-map": never;
78
+ /** @since 5.0 */
46
79
  "oriented-imagery": never;
80
+ /** @since 5.0 */
47
81
  parquet: ParquetLayerView;
82
+ /** @since 5.0 */
48
83
  "point-cloud": never;
84
+ /** @since 5.0 */
49
85
  route: never;
86
+ /** @since 5.0 */
50
87
  scene: never;
88
+ /** @since 5.0 */
51
89
  stream: StreamLayerView;
90
+ /** @since 5.0 */
52
91
  "subtype-group": never;
92
+ /** @since 5.0 */
53
93
  tile: never;
94
+ /** @since 5.0 */
54
95
  unknown: never;
96
+ /** @since 5.0 */
55
97
  unsupported: never;
98
+ /** @since 5.0 */
56
99
  "vector-tile": never;
100
+ /** @since 5.0 */
57
101
  video: never;
102
+ /** @since 5.0 */
58
103
  viewshed: never;
104
+ /** @since 5.0 */
59
105
  voxel: never;
106
+ /** @since 5.0 */
60
107
  wcs: never;
108
+ /** @since 5.0 */
61
109
  "web-tile": never;
110
+ /** @since 5.0 */
62
111
  wfs: WFSLayerView;
112
+ /** @since 5.0 */
63
113
  wms: never;
114
+ /** @since 5.0 */
64
115
  wmts: never;
65
116
  }
66
117
 
118
+ /** @since 5.0 */
67
119
  export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]];
68
120
 
69
121
  /**
@@ -112,24 +164,52 @@ export type LayerView2DFor<TLayer extends Layer> = LayerView2DMap[TLayer["type"]
112
164
  * polyline to this vertex.
113
165
  *
114
166
  * ![tessellation-helpers-distance](https://developers.arcgis.com/javascript/latest/assets/img/apiref/layers/tessellation-helpers-distance.png)
167
+ *
168
+ * @since 5.0
115
169
  */
116
170
  export interface MeshVertex {
117
171
  /**
118
172
  * The distance parameter for this vertex; this only applies when tessellating polylines. It starts
119
173
  * from 0 and runs up to the total length of the polyline. It is expressed in map units.
174
+ *
175
+ * @since 5.0
120
176
  */
121
177
  distance: number;
122
- /** The `u`-coordinate for texture mapping. It varies between 0 and 1 horizontally for quads and polygons, and along the entire length of a polyline. */
178
+ /**
179
+ * The `u`-coordinate for texture mapping. It varies between 0 and 1 horizontally for quads and polygons, and along the entire length of a polyline.
180
+ *
181
+ * @since 5.0
182
+ */
123
183
  uTexcoord: number;
124
- /** The `v`-coordinate for texture mapping. It varies between 0 and 1 vertically for quads and polygons, and across the width of a polyline. */
184
+ /**
185
+ * The `v`-coordinate for texture mapping. It varies between 0 and 1 vertically for quads and polygons, and across the width of a polyline.
186
+ *
187
+ * @since 5.0
188
+ */
125
189
  vTexcoord: number;
126
- /** The `x`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html). */
190
+ /**
191
+ * The `x`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
192
+ *
193
+ * @since 5.0
194
+ */
127
195
  x: number;
128
- /** The `x`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons. */
196
+ /**
197
+ * The `x`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons.
198
+ *
199
+ * @since 5.0
200
+ */
129
201
  xOffset: number;
130
- /** The `y`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html). */
202
+ /**
203
+ * The `y`-coordinate, expressed in the same units as the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).
204
+ *
205
+ * @since 5.0
206
+ */
131
207
  y: number;
132
- /** The `y`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons. */
208
+ /**
209
+ * The `y`-offset in screen space; this is used to extrude points (into quads), markers and polylines, and is 0 for polygons.
210
+ *
211
+ * @since 5.0
212
+ */
133
213
  yOffset: number;
134
214
  }
135
215
 
@@ -138,18 +218,25 @@ export interface MeshVertex {
138
218
  *
139
219
  * An instance of `Mesh` can be obtained by calling one of the [BaseLayerViewGL2D](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-layers-BaseLayerViewGL2D.html)
140
220
  * `tessellate*` methods and passing an instance of [Geometry](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html).
221
+ *
222
+ * @since 5.0
141
223
  */
142
224
  export interface TessellatedMesh {
143
225
  /**
144
226
  * The indices of the triangles that connect vertices together;
145
227
  * each consecutive triplet of indices denotes a triangle.
228
+ *
229
+ * @since 5.0
146
230
  */
147
231
  indices: number[];
148
232
  /**
149
233
  * The vertices that make up the mesh.
150
234
  * Each element is a [MeshVertex](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-2d-types.html#MeshVertex).
235
+ *
236
+ * @since 5.0
151
237
  */
152
238
  vertices: MeshVertex[];
153
239
  }
154
240
 
241
+ /** @since 5.0 */
155
242
  export type ResizeAlign = "bottom" | "bottom-left" | "bottom-right" | "center" | "left" | "right" | "top" | "top-left" | "top-right";
@@ -1,5 +1,9 @@
1
1
  import type SceneView from "../../SceneView.js";
2
2
  import type AnalysisView from "../../analysis/AnalysisView.js";
3
3
 
4
- /** Base class for 3D analysis views. */
4
+ /**
5
+ * Base class for 3D analysis views.
6
+ *
7
+ * @since 5.0
8
+ */
5
9
  export default abstract class AnalysisView3D extends AnalysisView<SceneView> {}
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../../../../core/Accessor.js";import{watch as a,sync as s}from"../../../../../core/reactiveUtils.js";import{property as r,subclass as i}from"../../../../../core/accessorSupport/decorators.js";import{MeasurementDataManager as o}from"./MeasurementData.js";let n=class extends t{constructor(e){super(e)}initialize(){this._measurementDataManager=new o(this.view,this.geodesicAreaMeasurementUtils,this.geodesicLengthMeasurementUtils),this.addHandles([this.analysisViewData.path.on("change",()=>this._update()),a(()=>this.analysisViewData.stagedPoint,()=>this._update(),s),a(()=>this.analysisViewData.mode,()=>this._update(),s)]),this._update()}_update(e=!1){const{analysisViewData:t,view:a}=this,s={maxRelativeErrorCoplanar:.005,maxRelativeErrorAlmostCoplanar:.01,verticalAngleThreshold:80};this._measurementDataManager.update(t.path,t.stagedPoint,a,s,t.mode,e)&&(t.measurementData=this._measurementDataManager.getData())}};e([r({constructOnly:!0})],n.prototype,"view",void 0),e([r({constructOnly:!0})],n.prototype,"analysis",void 0),e([r({constructOnly:!0})],n.prototype,"analysisViewData",void 0),e([r({constructOnly:!0})],n.prototype,"geodesicAreaMeasurementUtils",void 0),e([r({constructOnly:!0})],n.prototype,"geodesicLengthMeasurementUtils",void 0),n=e([i("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementController")],n);export{n as AreaMeasurementController};
5
+ import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import{destroyHandle as a}from"../../../../../core/handleUtils.js";import{watch as s,sync as r}from"../../../../../core/reactiveUtils.js";import{property as o,subclass as i}from"../../../../../core/accessorSupport/decorators.js";import{UpdatingHandles as n}from"../../../../../core/support/UpdatingHandles.js";import{MeasurementData as p}from"./MeasurementData.js";let l=class extends e{get updating(){return this._updatingHandles.updating}constructor(t){super(t),this._updatingHandles=new n}initialize(){const{view:t}=this,e=new p({view:t});this.analysisViewData.measurementData=e;const o=()=>this._update(e);this.addHandles([this.analysisViewData.path.on("change",o),s(()=>{const{stagedPoint:t,mode:e}=this.analysisViewData;return[t,e]},o,r),a(e)]),o()}destroy(){this._updatingHandles.destroy()}_update(t,e=!1){const{analysisViewData:a,view:s}=this;t.update(a.path,a.stagedPoint,s,{maxRelativeErrorCoplanar:.005,maxRelativeErrorAlmostCoplanar:.01,verticalAngleThreshold:80},a.mode,e,this._updatingHandles)}};t([o({constructOnly:!0})],l.prototype,"view",void 0),t([o({constructOnly:!0})],l.prototype,"analysis",void 0),t([o({constructOnly:!0})],l.prototype,"analysisViewData",void 0),t([o()],l.prototype,"updating",null),l=t([i("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementController")],l);export{l as AreaMeasurementController};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{onLocaleChange as t,fetchMessageBundle as i}from"../../../../../intl.js";import s from"../../../../../core/Accessor.js";import{multiplyOpacityToUnitRGBA as r,getContrast as n,multiplyOpacity as a}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as o}from"../../../../../core/mathUtils.js";import{destroyMaybe as l}from"../../../../../core/maybe.js";import{formatDecimal as h}from"../../../../../core/quantityFormatUtils.js";import{watch as m,syncAndInitial as c,initial as d}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as p,convertUnit as u,adaptiveAreaUnit as g}from"../../../../../core/units.js";import{property as _,subclass as v}from"../../../../../core/accessorSupport/decorators.js";import{fromTranslation as L}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as b}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as f}from"../../../../../chunks/vec32.js";import{create as w}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as S,preferredLengthUnit as y}from"./utils.js";import{LabelVisualElement as j}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as C}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as D}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as A,EuclideanSegment as V}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as M}from"../../../support/mathUtils.js";import{createStipplePatternSimple as x}from"../../../webgl-engine/materials/lineStippleUtils.js";let P=class extends s{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,i=e.toUnitRGBA(),s=r(e,.5),o=r(n(e),.5),l=n(t,160);return{accentColor:i,transparentAccentColor:s,transparentContrastColor:o,intersectingLineColor:[1,.2,0,1],textColor:t,textBackgroundColor:a(l,.6),textCalloutColor:a(l,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return p(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._intersectedPath=null,this._perimeter=null,this._intersectedPerimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLengthLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=w(),this._originTransform=b(),this.messages=null,this.viewData=z,this.areaLabel=null,this.perimeterLengthLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:i,view:s}=this;this._path=new C({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPath=new C({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._perimeter=new C({view:s,attached:!0,width:i.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._intersectedPerimeter=new C({view:s,attached:!0,width:i.perimeterLineWidth,color:i.intersectingLineColor,polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._projectionLines=new C({view:s,attached:!0,width:i.projectionLineWidth,stipplePattern:x(i.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,isDecoration:!0}),this._measurementArea=new D({view:s,attached:!0,isDecoration:!0});const r={attached:!0,view:s,isDecoration:!0};this._areaLabel=new j({...r,fontSize:16,distance:0}),this._perimeterLengthLabel=new j({...r,fontSize:12}),this.addHandles([m(()=>[e.mode,this.visible,e.unit,e.measurementData,e.stagedPoint],()=>this._update(),c),m(()=>s.state?.camera,()=>this._updateLabels(),c),t(()=>this._updateMessageBundle()),m(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:n})=>{const{_path:a,_intersectedPath:o,_perimeter:l,_projectionLines:h,_measurementArea:m,_areaLabel:c,_perimeterLengthLabel:d}=this;a.color=e,o.color=e,l.color=e,h.color=e,m.color1=t,m.color2=i,c.textColor=s,c.backgroundColor=r,c.calloutColor=n,d.textColor=s,d.backgroundColor=r,d.calloutColor=n},d)]),this._updateMessageBundle()}destroy(){this._measurementArea=l(this._measurementArea),this._path=l(this._path),this._intersectedPath=l(this._intersectedPath),this._perimeter=l(this._perimeter),this._intersectedPerimeter=l(this._intersectedPerimeter),this._areaLabel=l(this._areaLabel),this._perimeterLengthLabel=l(this._perimeterLengthLabel),this._projectionLines=l(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_updateViewData(e,t){const i=e.validMeasurement,s="geodesic"===e.actualMeasurementMode,r=s?e.geodesicArea:e.area;let n=1;if(r){const e=S(r,this.analysisViewData.unit);n=o(Math.sqrt(e.value)/Math.sqrt(300)),n*=Math.sqrt(u(1,e.unit,"square-meters")),n=u(n,"meters",this._renderUnits)}const a={validMeasurement:i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:e.actualMeasurementMode,positionsRender:e.positionsRender,positionsFittedWorld:e.positionsFittedWorld,positionsFittedRender:e.positionsFittedRender,intersectingSegments:s?e.geodesicIntersectingSegments:e.intersectingSegments,triangleIndices:s?e.geodesicTriangleIndices:e.triangleIndices,areaCentroid:s?e.geodesicAreaCentroidRenderCoords:e.areaCentroidRenderCoords,perimeterLengthLabelSegmentIndex:0,area:s?e.geodesicArea:e.area,pathLength:s?e.geodesicPathLength:e.pathLength,perimeterLength:e.perimeterLength,checkerSize:n};this._set("viewData",a)}_updateOrigin(){const e=this.viewData;M(e.positionsRender,this._origin),L(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e){const t=this.viewData,i=this.view.renderCoordsHelper.spatialReference,s=t.mode,r=[],n=[],a=[],o=t.numVertices,l=t.validMeasurement?o:o-1;for(let m=0;m<l;++m){const l=t[e][m],h=t[e][(m+1)%o];let c=null;switch(s){case"euclidean":c=new V(l,h);break;case"geodesic":c=new A(l,h,i)}t.intersectingSegments.has(m)?a.push(c):n.push(c),r.push(c)}let h=null;return t.validMeasurement&&t.hasStagedVertex&&l>=2?h=r[r.length-2]:t.hasStagedVertex&&l>=1&&(h=r[r.length-1]),{all:r,nonIntersecting:n,intersecting:a,stagedSegment:h}}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t.nonIntersecting,this._origin),this._path.visible=e,this._intersectedPath.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPath.visible=e,this._pathSegments=t.all}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&this.viewData.path.numVertices>2,t=this._createSegments("positionsFittedRender");this._perimeter.setGeometryFromSegments(t.nonIntersecting,this._origin),this._perimeter.visible=e,this._intersectedPerimeter.setGeometryFromSegments(t.intersecting,this._origin),this._intersectedPerimeter.visible=e,this._perimeterSegments=t.all}_updateArea(){const e=this.viewData;switch(e.mode){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&0===e.intersectingSegments.size&&e.triangleIndices?(this._measurementArea.geometry={uv:e.positionsFittedWorld,position:e.positionsFittedRender,triangleIndices:e.triangleIndices},this._measurementArea.size=[e.checkerSize,e.checkerSize],this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=w();f(s,e.positionsRender[t],this._origin);const r=w();f(r,e.positionsFittedRender[t],this._origin),i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,n=this._perimeterLengthLabel,a=e.validMeasurement;r.visible=!0,n.visible=!0;let o=!1;const l=R(this.messages,t,this.analysisViewData.unit);if(null!=l&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement&&0===e.intersectingSegments.size),this._set("areaLabel",l),s&&a&&0===e.intersectingSegments.size){const t="geodesic"===e.mode,i=t?e.pathLength:e.perimeterLength,s=F(this.messages,i,this.analysisViewData.unit);this._set("perimeterLengthLabel",s),n.distance=this._parameters.labelDistance,n.anchor="top",n.text=s;let r=!0;for(let a=0;a<e.numVertices;++a){const i=(e.perimeterLengthLabelSegmentIndex+a)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,n.geometry={type:"segment",segment:s,sampleLocation:"center"},!n.overlaps(this._areaLabel))break;r=!1}n.visible=r}else n.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,i("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function R(e,t,i){return e&&t&&h(e,t,g(t.value,t.unit,i))}function F(e,t,i){return e&&t&&h(e,t,y(t,i))}e([_()],P.prototype,"_parameters",null),e([_()],P.prototype,"view",void 0),e([_()],P.prototype,"messages",void 0),e([_()],P.prototype,"analysis",void 0),e([_()],P.prototype,"viewData",void 0),e([_()],P.prototype,"analysisViewData",void 0),e([_({readOnly:!0})],P.prototype,"areaLabel",void 0),e([_({readOnly:!0})],P.prototype,"perimeterLengthLabel",void 0),e([_()],P.prototype,"loadingMessages",void 0),e([_()],P.prototype,"visible",null),e([_()],P.prototype,"_renderUnits",null),P=e([v("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],P);const z={validMeasurement:!1,numVertices:0,hasStagedVertex:!1,path:null,mode:null,positionsRender:null,positionsFittedWorld:null,positionsFittedRender:null,intersectingSegments:null,triangleIndices:null,areaCentroid:null,perimeterLengthLabelSegmentIndex:null,checkerSize:null,area:null,pathLength:null,perimeterLength:null};export{P as AreaMeasurementVisualization};
5
+ import{__decorate as e}from"tslib";import{onLocaleChange as t,fetchMessageBundle as i}from"../../../../../intl.js";import s from"../../../../../core/Accessor.js";import{multiplyOpacityToUnitRGBA as r,getContrast as a,multiplyOpacity as n}from"../../../../../core/colorUtils.js";import"../../../../../core/has.js";import{nextHighestPowerOfTen as o,floatEqualUlp as l}from"../../../../../core/mathUtils.js";import{destroyMaybe as m}from"../../../../../core/maybe.js";import{formatDecimal as h}from"../../../../../core/quantityFormatUtils.js";import{watch as c,syncAndInitial as p,initial as d}from"../../../../../core/reactiveUtils.js";import{lengthUnitFromSpatialReference as u,convertUnit as _,adaptiveAreaUnit as v}from"../../../../../core/units.js";import{property as g,subclass as b}from"../../../../../core/accessorSupport/decorators.js";import{fromTranslation as w}from"../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as f}from"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{e as D,s as L}from"../../../../../chunks/vec32.js";import{create as y}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{toPreferredAreaUnit as S,preferredLengthUnit as C}from"./utils.js";import{LabelVisualElement as j}from"../../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../../interactive/visualElements/LineVisualElement.js";import{MeasurementAreaVisualElement as V}from"../../../interactive/visualElements/MeasurementAreaVisualElement.js";import{GeodesicSegment as A,EuclideanSegment as M}from"../../../interactive/visualElements/support/Segment.js";import{midpoint3d as R}from"../../../support/mathUtils.js";import{createStipplePatternSimple as k}from"../../../webgl-engine/materials/lineStippleUtils.js";let z=class extends s{get _parameters(){const{accentColor:e,textColor:t}=this.view.effectiveTheme,i=e.toUnitRGBA(),s=r(e,.5),o=r(a(e),.5),l=a(t,160);return{accentColor:i,transparentAccentColor:s,transparentContrastColor:o,textColor:t,textBackgroundColor:n(l,.6),textCalloutColor:n(l,.5),pathLineWidth:3,perimeterLineWidth:2,projectionLineWidth:2,projectionLineStippleSize:5,labelDistance:25}}get viewData(){return this._viewData}get visible(){return this.analysisViewData.visible}get _renderUnits(){const e=this.view.renderCoordsHelper.spatialReference;return u(e)??"meters"}get testData(){}constructor(e){super(e),this._path=null,this._perimeter=null,this._projectionLines=null,this._measurementArea=null,this._areaLabel=null,this._perimeterLabel=null,this._pathSegments=[],this._perimeterSegments=[],this._origin=y(),this._originTransform=f(),this.messages=null,this._viewData=new U,this.areaLabel=null,this.perimeterLabel=null,this.loadingMessages=!0}initialize(){const{analysisViewData:e,_parameters:i,view:s}=this;this._path=new x({view:s,attached:!0,width:i.pathLineWidth,polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:1,isDecoration:!0}),this._perimeter=new x({view:s,attached:!0,width:i.perimeterLineWidth,polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:2,isDecoration:!0}),this._projectionLines=new x({view:s,attached:!0,width:i.projectionLineWidth,stipplePattern:k(i.projectionLineStippleSize),polygonOffset:!0,renderOccluded:4,tansparentRenderOrder:3,isDecoration:!0}),this._measurementArea=new V({view:s,attached:!0,isDecoration:!0,renderOccluded:4,testsTransparentRenderOrder:5});const r={attached:!0,view:s,isDecoration:!0};this._areaLabel=new j({...r,fontSize:16,distance:0}),this._perimeterLabel=new j({...r,fontSize:12}),this.addHandles([c(()=>[e.mode,this.visible,e.unit,e.measurementData?.updateId,null!=e.measurementData?.measurements,E(e.measurementData?.measurements?.mode)],()=>this._update(),p),c(()=>e.measurementData?.measurements,e=>this._updateMeasurements(e)),c(()=>s.state?.camera,()=>this._updateLabels(),p),t(()=>this._updateMessageBundle()),c(()=>this._parameters,({accentColor:e,transparentAccentColor:t,transparentContrastColor:i,textColor:s,textBackgroundColor:r,textCalloutColor:a})=>{const{_path:n,_perimeter:o,_projectionLines:l,_measurementArea:m,_areaLabel:h,_perimeterLabel:c}=this;n.color=e,o.color=e,l.color=e,m.color1=t,m.color2=i,h.textColor=s,h.backgroundColor=r,h.calloutColor=a,c.textColor=s,c.backgroundColor=r,c.calloutColor=a},d)]),this._updateMessageBundle()}destroy(){this._measurementArea=m(this._measurementArea),this._path=m(this._path),this._perimeter=m(this._perimeter),this._areaLabel=m(this._areaLabel),this._perimeterLabel=m(this._perimeterLabel),this._projectionLines=m(this._projectionLines),this.set("view",null)}_update(){if(this.destroyed||!this.view.ready||!this.view.renderCoordsHelper)return;const{analysisViewData:{measurementData:e},analysisViewData:t}=this;null!=e&&(this._updateViewData(e,t.path),this._updateOrigin(),this._updatePathSegments(),this._updatePerimeterSegments(),this._updateArea(),this._updateProjectionLines(),this._updateLabels())}_calculateCheckerSize(e){const t=F(e?.mode)?e?.geodesicArea:e?.area;if(null==t)return 1;const i=S(t,this.analysisViewData.unit),s=Math.sqrt(_(1,i.unit,"square-meters"));return _(o(Math.sqrt(i.value)/Math.sqrt(300))*s,"meters",this._renderUnits)}_updateMeasurements(e){Object.assign(this.viewData,this._getMeasurementsViewData(e)),this._updateCheckerSize(),this._updateLabels()}_updateCheckerSize(){this._measurementArea.size=[this.viewData.checkerSize,this.viewData.checkerSize]}_updateViewData(e,t){const i=e.measurements,s=new U({validMeasurement:!!i,numVertices:e.numVertices,hasStagedVertex:e.hasStagedVertex,path:t,mode:i?.mode,vertexData:e.vertexData,perimeterLabelSegmentIndex:0,...this._getMeasurementsViewData(i)});this._viewData=s}_getMeasurementsViewData(e){const t=F(e?.mode),i=this._calculateCheckerSize(e);return{areaCentroid:t?e?.geodesicAreaCentroidRenderCoords:e?.areaCentroidRenderCoords,area:t?e?.geodesicArea:e?.area,perimeter:t?e?.geodesicPerimeter:e?.perimeter,checkerSize:i}}_updateOrigin(){const e=this.viewData;R(e.vertexData.positionsRender,this._origin),w(this._originTransform,this._origin),this._measurementArea.transform=this._originTransform,this._projectionLines.transform=this._originTransform}_createSegments(e,t){const i=this.viewData,s=this.view.renderCoordsHelper.spatialReference,r=E(i.mode),a=[],n=i.numVertices,o=i.validMeasurement?n:n-1;for(let m=0;m<o;++m){const o=i.vertexData[e][m],h=i.vertexData[e][(m+1)%n];let c=!0;if(t){const e=i.vertexData.positionsRender[m],t=i.vertexData.positionsRender[(m+1)%n];let s=!0;for(let i=0;i<3;++i)s&&=l(e[i],o[i])&&l(t[i],h[i]);s&&(c=!1)}let p=null;switch(r){case"geodesic":p=new A(o,h,s,c);break;case"euclidean":p=new M(o,h,c)}a.push(p)}return a}_updatePathSegments(){const{visible:e}=this,t=this._createSegments("positionsRender");this._path.setGeometryFromSegments(t,this._origin),this._path.visible=e,this._pathSegments=t}_updatePerimeterSegments(){const e=this.visible&&"euclidean"===this.viewData.mode&&!!this.viewData.path&&this.viewData.path.numVertices>2,t=!0,i=this._createSegments("positionsFittedRender",t);this._perimeter.setGeometryFromSegments(i,this._origin),this._perimeter.visible=e,this._perimeterSegments=i}_updateArea(){const e=this.viewData;switch(E(e.mode)){case"euclidean":this._updateAreaEuclidean(e);break;case"geodesic":this._updateAreaGeodesic()}}_updateAreaEuclidean(e){const t=this.visible;e.validMeasurement&&e.vertexData.triangleIndices?(this._measurementArea.geometry={uv:e.vertexData.positionsFittedWorldPlaneProjected,position:e.vertexData.positionsFittedRender,triangleIndices:e.vertexData.triangleIndices},this._updateCheckerSize(),this._measurementArea.visible=t):this._measurementArea.visible=!1}_updateAreaGeodesic(){this._measurementArea.visible=!1}_updateProjectionLines(){const e=this.viewData,t=this.visible,i=e.mode,s=e.numVertices;if(s>0&&e.validMeasurement&&"euclidean"===i){const i=[];for(let t=0;t<s;++t){const s=y();D(s,e.vertexData.positionsRender[t],this._origin);const r=y();D(r,e.vertexData.positionsFittedRender[t],this._origin),l(L(s,r),0)||i.push([s,r])}this._projectionLines.geometry=i,this._projectionLines.visible=t}else this._projectionLines.geometry=null,this._projectionLines.visible=!1}_updateLabels(){if(this.destroyed)return;const{viewData:e}=this,{area:t,path:i}=e;if(!i)return;const s=this.visible,r=this._areaLabel,a=this._perimeterLabel,n=e.validMeasurement;r.visible=!0,a.visible=!0;let o=!1;const l=O(this.messages,t,this.analysisViewData.unit);if(null!=l&&e.areaCentroid&&s&&(r.geometry={type:"point",point:e.areaCentroid},r.text=l,o=e.validMeasurement),this._set("areaLabel",l),s&&n){const t=F(e.mode),i=e.perimeter,s=P(this.messages,i,this.analysisViewData.unit);this._set("perimeterLabel",s),a.distance=this._parameters.labelDistance,a.anchor="top",a.text=s;let r=!0;for(let n=0;n<e.numVertices;++n){const i=(e.perimeterLabelSegmentIndex+n)%e.numVertices,s=t?this._pathSegments[i]:this._perimeterSegments[i];if(r=!0,a.geometry={type:"segment",segment:s,sampleLocation:"center"},!a.overlaps(this._areaLabel))break;r=!1}a.visible=r}else a.visible=!1;r.visible=o}_updateMessageBundle(){this.loadingMessages=!0,i("esri/core/t9n/Units").then(e=>{this.messages=e,this.view&&this._update()}).finally(()=>{this.loadingMessages=!1})}};function O(e,t,i){return e&&t&&h(e,t,v(t.value,t.unit,i))}function P(e,t,i){return e&&t&&h(e,t,C(t,i))}e([g()],z.prototype,"_parameters",null),e([g()],z.prototype,"view",void 0),e([g()],z.prototype,"messages",void 0),e([g()],z.prototype,"analysis",void 0),e([g()],z.prototype,"_viewData",void 0),e([g()],z.prototype,"analysisViewData",void 0),e([g({readOnly:!0})],z.prototype,"areaLabel",void 0),e([g({readOnly:!0})],z.prototype,"perimeterLabel",void 0),e([g()],z.prototype,"loadingMessages",void 0),e([g()],z.prototype,"visible",null),e([g()],z.prototype,"_renderUnits",null),z=e([b("esri.views.3d.analysis.AreaMeasurement.support.AreaMeasurementVisualization")],z);class U{constructor(e){this.validMeasurement=e?.validMeasurement??!1,this.numVertices=e?.numVertices??0,this.hasStagedVertex=e?.hasStagedVertex??!1,this.path=e?.path,this.vertexData=e?.vertexData??{positionsRender:[],positionsFittedWorldPlaneProjected:[],positionsFittedRender:[],triangleIndices:null},this.mode=e?.mode,this.areaCentroid=e?.areaCentroid,this.perimeterLabelSegmentIndex=e?.perimeterLabelSegmentIndex??0,this.checkerSize=e?.checkerSize??1,this.area=e?.area,this.perimeter=e?.perimeter}}function E(e){switch(e){case"euclidean":case void 0:case null:return"euclidean";case"geodesic":return"geodesic"}}function F(e){return"geodesic"===E(e)}export{z as AreaMeasurementVisualization,U as ViewData};
@@ -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{deg2rad as e}from"../../../../../core/mathUtils.js";import{createLength as t,toUnit as s,createArea as i}from"../../../../../core/quantity.js";import{lengthUnitFromSpatialReference as o,areaUnitFromSpatialReference as n}from"../../../../../core/units.js";import{set as r,distance as h}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as a}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{B as l,d,f as g,q as c,e as p,g as m,j as u,i as _,n as f}from"../../../../../chunks/vec32.js";import{create as S}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as L}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{getReferenceEllipsoid as M}from"../../../../../geometry/ellipsoidUtils.js";import{canProjectWithoutEngine as C}from"../../../../../geometry/projectionUtils.js";import{getSphericalPCPF as P}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as R}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as j}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as U}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as A}from"../../../../../geometry/support/Indices.js";import{segmentIntersects as v}from"../../../../../geometry/support/intersectsBase.js";import{Sphere as I}from"../../../../../geometry/support/sphere.js";import{areaPoints2d as V}from"../../../../../geometry/support/triangle.js";import{bestFitPlane as w,fitHemisphere as W,triangleAreaGeodesic as F,planePointDistance as y,boundingSphere as G}from"../../support/measurementUtils.js";import{getElevationAtPoint as T}from"../../../support/ElevationProvider.js";import{midpoint3d as x,makeOrthonormal as q,tangentFrame as z}from"../../../support/mathUtils.js";import{triangulate as b}from"../../../../support/euclideanAreaMeasurementUtils.js";import{euclideanDistanceBetweenPoints as E}from"../../../../support/euclideanLengthMeasurementUtils.js";import{supportsGeodesicMeasurement as B}from"../../../../support/geodesicMeasurementUtils.js";import{computeEuclideanMeasurementSR as D}from"../../../../support/measurementUtils.js";class H{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}constructor(e,t,s){this._sceneView=e,this._geodesicAreaMeasurementUtils=t,this._geodesicLengthMeasurementUtils=s,this.validMeasurement=!1,this.positionsWorld=[],this.positionsRender=[],this.positionsFittedWorld=[],this.positionsFittedRender=[],this.positionsGeodesic=[],this.positionsSpherical=[],this.positionsStereographic=[],this.pathSegmentLengths=[],this.geodesicPathSegmentLengths=[],this.perimeterSegmentLengths=[],this.intersectingSegments=new Set,this.geodesicIntersectingSegments=new Set,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.areaCentroidWorldCoords=S(),this.areaCentroidRenderCoords=S(),this.geodesicAreaCentroidRenderCoords=S(),this.fittingMode=null,this.area=null,this.geodesicArea=null,this.pathLength=null,this.geodesicPathLength=null,this.perimeterLength=null,this._length=0,this._centroidRenderCoords=S(),this._planeWorldCoords=L(),this._worldUp=S(),this._worldTangent=S(),this._frame=[S(),S(),S()],this._lastPathVersion=-1,this._lastCursorPoint=null,this._mode=null,this._tempU=S(),this._tempV=S(),this._tempVec3=S(),this._tempSphere=new I;const i=D(e.spatialReference);this._measurementSR=i,this._lengthMeasurementUnit=o(i)??"meters",this._areaMeasurementUnit=n(i)??"square-meters"}update(e,t,s,i,o,n){const r=this._lastPathVersion===e.version,h=t?t.equals(this._lastCursorPoint):null==this._lastCursorPoint,a=this._mode===o;return!(r&&!n&&a&&h)&&(this._lastPathVersion=e.version,this._lastCursorPoint=t,this._updateCursorSegmentLength(e,t),this._update(e,t,s,i,o),!0)}_update(e,s,i,o,n){const r=this._sceneView.renderSpatialReference,h=this._measurementSR,a=i.spatialReference;let l=e.numVertices;const d=!(null==s||s.equals(e.lastPoint)||l>2&&s.equals(e.firstPoint)||e.polygonIsClosed);d&&(l+=1);const g=!e.polygonIsClosed&&l>2,c=e.polygonIsClosed||g;this._resize(l);const p=P(a),m=null!=a&&B(a)?a:null,u=null!=m&&C(a,p),{positionsGeodesic:_,positionsWorld:S,positionsRender:L,positionsSpherical:M}=this,R=(e,t)=>{k(i.elevationProvider,e),j(e,S[t],h),j(e,L[t],r),u&&(j(e,_[t],m),j(e,M[t],p),f(M[t],M[t]))};e.forEachVertexPosition((e,t)=>R(e,t)),d&&R(s,l-1);const U=this._updatePathLengths(c);if(this.pathLength=this._length>1?t(U,this._lengthMeasurementUnit):null,u){const e=this._updateGeodesicPathLengths(c,m);this.geodesicPathLength=null!=e&&this._length>1?e:null}else this.geodesicPathLength=null;if(this._updateMode(n),!c)return this.area=null,this.geodesicArea=null,this.perimeterLength=null,this.triangleIndices=null,this.geodesicTriangleIndices=null,this.intersectingSegments.clear(),this.geodesicIntersectingSegments.clear(),void(this.validMeasurement=!1);this._updateAreaAndPerimeterLength(i,r,h,o),u&&this._updateGeodesicArea(i,m),this.validMeasurement=!0}getData(){return{validMeasurement:this.validMeasurement,numVertices:this.numVertices,hasStagedVertex:this.hasStagedVertex,positionsRender:this.positionsRender,positionsFittedWorld:this.positionsFittedWorld,positionsFittedRender:this.positionsFittedRender,intersectingSegments:this.intersectingSegments,geodesicIntersectingSegments:this.geodesicIntersectingSegments,triangleIndices:this.triangleIndices,geodesicTriangleIndices:this.geodesicTriangleIndices,areaCentroidRenderCoords:this.areaCentroidRenderCoords,geodesicAreaCentroidRenderCoords:this.geodesicAreaCentroidRenderCoords,area:this.area,geodesicArea:this.geodesicArea,pathLength:this.pathLength,geodesicPathLength:this.geodesicPathLength,perimeterLength:this.perimeterLength,actualMeasurementMode:this.actualMeasurementMode}}_resize(e){for(e<this._length&&(this.positionsWorld.length=e,this.positionsRender.length=e,this.positionsFittedWorld.length=e,this.positionsFittedRender.length=e,this.positionsGeodesic.length=e,this.positionsSpherical.length=e,this.positionsStereographic.length=e,this.pathSegmentLengths.length=e,this.geodesicPathSegmentLengths.length=e,this.perimeterSegmentLengths.length=e,this._length=e);this._length<e;)this.positionsWorld.push(S()),this.positionsRender.push(S()),this.positionsFittedWorld.push(a()),this.positionsFittedRender.push(S()),this.positionsGeodesic.push(S()),this.positionsSpherical.push(S()),this.positionsStereographic.push(a()),this.pathSegmentLengths.push(0),this.geodesicPathSegmentLengths.push(0),this.perimeterSegmentLengths.push(0),++this._length}_updatePathLengths(e){const t=this.positionsWorld,s=this.pathSegmentLengths;let i=0;const o=this._length;for(let n=0;n<o;++n){const r=s[n]=l(t[n],t[(n+1)%o]);(n<o-1||e)&&(i+=r)}return i}_updateGeodesicPathLengths(e,i){const o=this.positionsGeodesic,n=this.geodesicPathSegmentLengths;let r=0;const h=this._length;for(let t=0;t<h;++t){const a=this._geodesicLengthMeasurementUtils.geodesicDistance(o[t],o[(t+1)%h],i);if(null==a)return null;const l=s(a,"meters").value,d=n[t]=l;(t<h-1||e)&&(r+=d)}return t(r,"meters")}_updateAreaAndPerimeterLength(e,t,s,i){const o=e.renderCoordsHelper,n=this.positionsWorld,h=this.positionsRender,a=this.positionsFittedWorld,l=this.positionsFittedRender,f=this._planeWorldCoords,S=this._centroidRenderCoords;x(h,S),o.worldUpAtPosition(S,this._worldUp),o.worldBasisAtPosition(S,0,this._worldTangent),R(S,this._worldUp,t,this._worldUp,s),R(S,this._worldTangent,t,this._worldTangent,s),n.length>2&&w(n,f),this.fittingMode=this._selectFittingMode(f,n,this._worldUp,i);let L=0;if("horizontal"===this.fittingMode){let e=-1/0;h.forEach((t,s)=>{const i=o.getAltitude(h[s]);i>e&&(e=i,L=s)})}const M=n[L];let C=f,P=this._worldTangent;"horizontal"===this.fittingMode?C=this._worldUp:"vertical"===this.fittingMode&&(C=this._tempVec3,P=this._worldUp,q(f,this._worldUp,C)),d(this._frame[2],C),q(P,C,this._frame[0]),g(this._frame[1],this._frame[0],this._frame[2]),c(this._frame[1],this._frame[1]);const j=this._tempVec3,A=this._tempU,v=this._tempV;for(let d=0;d<this._length;++d){const e=a[d],i=l[d];p(j,n[d],M),r(e,m(this._frame[0],j),m(this._frame[1],j)),u(A,this._frame[0],e[0]),u(v,this._frame[1],e[1]),_(j,A,v),_(j,j,M),U(j,s,i,t)}this.perimeterLength=this._length>0?this._updatePerimeterLengths():null,x(l,this.areaCentroidRenderCoords),U(this.areaCentroidRenderCoords,t,this.areaCentroidWorldCoords,s),this._updateIntersectingSegments(),this.area=0===this.intersectingSegments.size?this._computeArea():null}_updateGeodesicArea(e,t){const{renderCoordsHelper:s,spatialReference:i}=e,{positionsSpherical:o,positionsStereographic:n}=this,h=this._tempVec3,a=W(o,h);if(!a)return void(this.geodesicArea=null);const l=this._tempU,d=this._tempV;z(h,l,d);for(let g=0;g<this._length;++g){const e=m(o[g],l),t=m(o[g],d),s=m(o[g],h);r(n[g],e/s,t/s)}u(h,h,M(i).radius),s.toRenderCoords(h,P(i),this.geodesicAreaCentroidRenderCoords),this._updateGeodesicIntersectingSegments(),this.geodesicArea=a&&0===this.geodesicIntersectingSegments.size?this._computeGeodesicArea(t):null}_updatePerimeterLengths(){const e=this.positionsFittedWorld,s=this.perimeterSegmentLengths;let i=0;for(let t=0;t<this._length;++t){i+=s[t]=h(e[t],e[(t+1)%this._length])}return t(i,this._lengthMeasurementUnit)}_updateIntersectingSegments(){const e=this.positionsFittedWorld,t=this.intersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const o=e[s],n=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(o,n,r,h)&&(t.add(s),t.add(i))}}_computeArea(){const e=this.positionsFittedWorld,t=this.triangleIndices=A(b(e));let s=0;for(let i=0;i<t.length;i+=3)s+=V(e[t[i]],e[t[i+1]],e[t[i+2]]);return i(s,this._areaMeasurementUnit)}_updateGeodesicIntersectingSegments(){const e=this.positionsStereographic,t=this.geodesicIntersectingSegments;t.clear();for(let s=0;s<this._length;++s)for(let i=s+2;i<this._length;++i){if((i+1)%this._length===s)continue;const o=e[s],n=e[(s+1)%this._length],r=e[i],h=e[(i+1)%this._length];v(o,n,r,h)&&(t.add(s),t.add(i))}}_computeGeodesicArea(e){const t=this.positionsGeodesic,o=this.positionsStereographic,n=this.geodesicTriangleIndices=A(b(o));let r=0;for(let i=0;i<n.length;i+=3){const o=F(t[n[i]],t[n[i+1]],t[n[i+2]],e,this._geodesicAreaMeasurementUtils);if(null==o)return null;r+=s(o,"square-meters").value}return i(r,"square-meters")}_selectFittingMode(t,s,i,o){const n=s.map(e=>Math.abs(y(t,e))).reduce((e,t)=>Math.max(e,t),0);G(s,this._tempSphere);const r=n/(2*this._tempSphere.radius),h=r<o.maxRelativeErrorCoplanar,a=r<o.maxRelativeErrorAlmostCoplanar;let l="horizontal";if(h)l="oblique";else if(a){l=Math.abs(m(i,t))>Math.cos(e(o.verticalAngleThreshold))?"horizontal":"vertical"}return l}_updateCursorSegmentLength(e,t){const s=e.lastPoint;e.isValidPolygon||null==s||null==t?(this.geodesicStagedSegmentLength=null,this.stagedSegmentLength=null):(this.geodesicStagedSegmentLength=this._geodesicLengthMeasurementUtils.geodesicDistanceBetweenPoints(s,t),this.stagedSegmentLength=E(s,t)?.direct)}_updateMode(e){if(0===e){this.actualMeasurementMode="euclidean";let e=0;null!=this.geodesicPathLength&&(e+=this.geodesicPathLength.value),e>Z&&(this.actualMeasurementMode="geodesic")}else this.actualMeasurementMode=1===e?"euclidean":"geodesic";null==this.geodesicPathLength&&(this.actualMeasurementMode="euclidean"),this._mode=e}}function k(e,t){t.hasZ||(t.z=T(e,t,"ground")??0)}const Z=1e5;export{H as MeasurementDataManager};
5
+ import{__decorate as t}from"tslib";import e from"../../../../../core/Accessor.js";import{deg2rad as r}from"../../../../../core/mathUtils.js";import{abortMaybe as s}from"../../../../../core/maybe.js";import{debounce as i,throwIfAborted as o}from"../../../../../core/promiseUtils.js";import{valueInUnit as n}from"../../../../../core/quantity.js";import{lengthUnitFromSpatialReference as a,areaUnitFromSpatialReference as l}from"../../../../../core/units.js";import{property as h}from"../../../../../core/accessorSupport/decorators/property.js";import{subclass as d}from"../../../../../core/accessorSupport/decorators/subclass.js";import{set as p}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as m}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{d as u,h as c,f as _,q as g,e as f,g as j,j as v,i as P}from"../../../../../chunks/vec32.js";import{create as x}from"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as w}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import C from"../../../../../geometry/Polygon.js";import y from"../../../../../geometry/SpatialReference.js";import{isPCPF as R}from"../../../../../geometry/spatialReferenceEllipsoidUtils.js";import{projectDirection as M}from"../../../../../geometry/projection/projectDirection.js";import{projectPointToVector as U}from"../../../../../geometry/projection/projectPointToVector.js";import{projectVectorToVector as A}from"../../../../../geometry/projection/projectVectorToVector.js";import{compactIndices as W}from"../../../../../geometry/support/Indices.js";import{Sphere as D}from"../../../../../geometry/support/sphere.js";import{bestFitPlane as V,planePointDistance as b,boundingSphere as F}from"../../support/measurementUtils.js";import{getElevationAtPoint as I}from"../../../support/ElevationProvider.js";import{midpoint3d as S,makeOrthonormal as T}from"../../../support/mathUtils.js";import{useGeodesicAreaMeasurement as k}from"../../../../support/automaticAreaMeasurementUtils.js";import{triangulate as q}from"../../../../support/euclideanAreaMeasurementUtils.js";import{computeEuclideanMeasurementSR as z}from"../../../../support/measurementUtils.js";import{MeasurementWorkerHandle as O}from"../../../../support/MeasurementWorkerHandle.js";class E{constructor(t){this.positionsWorld=[],this.positionsRender=[],this.positionsFittedRender=[],this.triangleIndices=null,this.areaPolygon=new C({rings:[[]],spatialReference:t}),this.positionsFittedWorldPlaneProjected=this.areaPolygon.rings[0]}}class H{constructor(t,e=null,r=null,s=null,i=null,o=null,n=null){this.mode=t,this.area=e,this.geodesicArea=r,this.perimeter=s,this.geodesicPerimeter=i,this.areaCentroidRenderCoords=o,this.geodesicAreaCentroidRenderCoords=n}}let L=class extends e{get numVertices(){return this._length}get hasStagedVertex(){return null!=this._lastCursorPoint}get fittingMode(){return this._fittingMode}get measurements(){return this._measurements}get updateId(){return this._updateId}constructor(t){super(t),this._length=0,this._lastCursorPoint=null,this._fittingMode=null,this._measurements=null,this._updateId=0,this._centroidRenderCoords=x(),this._planeWorldCoords=w(),this._worldUp=x(),this._worldTangent=x(),this._frame=[x(),x(),x()],this._worldOrigin=x(),this._updateAxisU=x(),this._updateAxisV=x(),this._updateWorldOrigin=x(),this._lastPathVersion=-1,this._mode=null,this._tempU=x(),this._tempV=x(),this._tempVec3=x(),this._tempSphere=new D,this._measurementWorker=new O,this._updateAbortController=null,this._updateMeasurements=i(async(t,e,r,s,i,n)=>{const a=t.spatialReference,l=k(a);u(this._updateAxisU,this._frame[0]),u(this._updateAxisV,this._frame[1]),u(this._updateWorldOrigin,this._worldOrigin);const h=(e,r)=>(e&&t.renderCoordsHelper.toRenderCoords(e,r)||c(r,0,0,0),r),d=e.areaMeasurement?.geometry,p=l&&1!==r&&d?await this._measurementWorker.geodesicLength(d,{stagedPoint:s?i:null}):null;o(n);const m=this._calculateMode(r,p),_="geodesic"===m,[g,f,j]=await Promise.all([_?null:this._measurementWorker.planarArea(this.vertexData.areaPolygon,{unit:this._areaMeasurementUnit,returnCentroid:!0}),_?null:this._measurementWorker.planarLength(this.vertexData.areaPolygon,{unit:this._lengthMeasurementUnit}),_&&d?await this._measurementWorker.geodesicArea(d,{stagedPoint:s?i:null,returnCentroid:!0}):null]);o(n);const v=_?null:x();v&&g?.centroid&&this._projectPointToFittedRender(v,this._updateWorldOrigin,[g.centroid?.x??0,g.centroid?.y??0],this._updateAxisU,this._updateAxisV,this.view.renderSpatialReference,this._measurementSR);const P=j?.centroid?h(j.centroid,x()):null;this._measurements=new H(m,_?null:g?.area,_?j?.area:null,_?null:f,_?p:null,_?null:v,_?P:null)});const e=z(t.view.spatialReference);this._measurementSR=e,this._lengthMeasurementUnit=a(e)??"meters",this._areaMeasurementUnit=l(e)??"square-meters";const r=R(e)?y.WebMercator:e;this.vertexData=new E(r)}destroy(){this._measurementWorker.destroy()}update(t,e,r,s,i,o,n){const a=this._lastPathVersion===t.version,l=e?e.equals(this._lastCursorPoint):null==this._lastCursorPoint,h=this._mode===i;return!(a&&!o&&h&&l)&&(this._lastPathVersion=t.version,this._lastCursorPoint=e,this._update(t,e,r,s,i,n),!0)}_update(t,e,r,i,o,n){const a=this.view.renderSpatialReference,l=this._measurementSR;let h=t.numVertices;const d=!(null==e||e.equals(t.lastPoint)||h>2&&e.equals(t.firstPoint)||t.polygonIsClosed);d&&(h+=1);const p=!t.polygonIsClosed&&h>2,m=t.polygonIsClosed||p;this._resize(h);const{positionsWorld:u,positionsRender:c}=this.vertexData,_=(t,e)=>{B(r.elevationProvider,t),U(t,u[e],l),U(t,c[e],a)};if(t.forEachVertexPosition((t,e)=>_(t,e)),d&&_(e,h-1),this.vertexData.areaPolygon.clearCache(),!m)return this._measurements=null,this.vertexData.triangleIndices=null,this._updateId++,void(this._updateAbortController=s(this._updateAbortController));this._updateVertexData(r,a,l,i),this._updateId++,this._updateAbortController??=new AbortController,n.addPromise(this._updateMeasurements(r,t,o,d,e,this._updateAbortController.signal))}_resize(t){for(t<this._length&&(this.vertexData.positionsWorld.length=t,this.vertexData.positionsRender.length=t,this.vertexData.positionsFittedWorldPlaneProjected.length=t,this.vertexData.positionsFittedRender.length=t,this._length=t);this._length<t;)this.vertexData.positionsWorld.push(x()),this.vertexData.positionsRender.push(x()),this.vertexData.positionsFittedWorldPlaneProjected.push(m()),this.vertexData.positionsFittedRender.push(x()),++this._length}_updateVertexData(t,e,r,s){const i=t.renderCoordsHelper,{positionsWorld:o,positionsRender:n,positionsFittedWorldPlaneProjected:a,positionsFittedRender:l}=this.vertexData,h=this._planeWorldCoords,d=this._centroidRenderCoords;S(n,d),i.worldUpAtPosition(d,this._worldUp),i.worldBasisAtPosition(d,0,this._worldTangent),M(d,this._worldUp,e,this._worldUp,r),M(d,this._worldTangent,e,this._worldTangent,r),o.length>2&&V(o,h),this._fittingMode=this._selectFittingMode(h,o,this._worldUp,s);let m=0;if("horizontal"===this._fittingMode){let t=-1/0;n.forEach((e,r)=>{const s=i.getAltitude(n[r]);s>t&&(t=s,m=r)})}const{_worldOrigin:c}=this;u(this._worldOrigin,o[m]);let v=h,P=this._worldTangent;"horizontal"===this._fittingMode?v=this._worldUp:"vertical"===this._fittingMode&&(v=this._tempVec3,P=this._worldUp,T(h,this._worldUp,v));const x=this._frame[0],w=this._frame[1];u(this._frame[2],v),T(P,v,x),_(w,x,this._frame[2]),g(w,w);const C=this._tempVec3;for(let u=0;u<this._length;++u){const t=a[u],s=l[u];f(C,o[u],c),p(t,j(x,C),j(w,C)),this._projectPointToFittedRender(s,c,t,x,w,e,r)}this.vertexData.triangleIndices=W(q(a))}_projectPointToFittedRender(t,e,r,s,i,o,n){const a=this._tempU,l=this._tempV;v(a,s,r[0]),v(l,i,r[1]),P(t,a,l),P(t,t,e),A(t,n,t,o)}_selectFittingMode(t,e,s,i){const o=e.map(e=>Math.abs(b(t,e))).reduce((t,e)=>Math.max(t,e),0);F(e,this._tempSphere);const n=o/(2*this._tempSphere.radius),a=n<i.maxRelativeErrorCoplanar,l=n<i.maxRelativeErrorAlmostCoplanar;let h="horizontal";if(a)h="oblique";else if(l){h=Math.abs(j(s,t))>Math.cos(r(i.verticalAngleThreshold))?"horizontal":"vertical"}return h}_calculateMode(t,e){return null!=e&&0===t?n(e,"meters")>Z?"geodesic":"euclidean":null==e||1===t?"euclidean":"geodesic"}};function B(t,e){e.hasZ||(e.z=I(t,e,"ground")??0)}t([h()],L.prototype,"_measurements",void 0),t([h()],L.prototype,"_updateId",void 0),t([h()],L.prototype,"view",void 0),L=t([d("esri.views.3d.analysis.AreaMeasurement.support.MeasurementData")],L);const Z=1e5;export{H as AreaMeasurementQuantities,L as MeasurementData};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import"../../../core/has.js";import{abortMaybe as t,destroyMaybe as s}from"../../../core/maybe.js";import{property as i,subclass as a}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as r}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView3D.js";import{AreaMeasurementController as n}from"./AreaMeasurement/support/AreaMeasurementController.js";import{AreaMeasurement3DPathHelper as l}from"./AreaMeasurement/support/AreaMeasurementPathHelper.js";import{AreaMeasurementVisualization as u}from"./AreaMeasurement/support/AreaMeasurementVisualization.js";import{toPreferredLengthUnit as p,toPreferredAreaUnit as m}from"./AreaMeasurement/support/utils.js";import y from"../interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js";import{connectAnalysisViewToTool as h,removeAnalysisViewTool as d,startPlaceOperation as g}from"../../analysis/analysisViewUtils.js";import{loadGeodesicAreaMeasurementUtils as c}from"../../support/geodesicAreaMeasurementUtils.js";import{loadGeodesicLengthMeasurementUtils as v}from"../../support/geodesicLengthMeasurementUtils.js";let M=class extends o{constructor(e){super(e),this.type="area-measurement-view-3d",this.analysis=null,this.measurementData=null,this.lastDraggedVertex=null,this.stagedPoint=null,this.mode=0,this.tool=null,this.userOperation=null}initialize(){const{analysis:e,view:t}=this;this.path=new l({view:t,areaMeasurement:e}),this._analysisVisualization=new u({view:t,analysis:e,analysisViewData:this}),this.addResolvingPromise(Promise.all([c(),v()]).then(([s,i])=>{this.destroyed||(this._analysisController=new n({view:t,analysis:e,analysisViewData:this,geodesicAreaMeasurementUtils:s,geodesicLengthMeasurementUtils:i}))})),this.addHandles(h(this,y))}destroy(){d(this),this.userOperation=t(this.userOperation),this._analysisController=s(this._analysisController),this._analysisVisualization=s(this._analysisVisualization),this.path.destroy()}get visible(){return super.visible}set visible(e){super.visible=e}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get updating(){return!!this._analysisVisualization?.loadingMessages}get result(){const{measurementData:e}=this;if(!e)return null;const{unit:t}=this;if("euclidean"===e.actualMeasurementMode){const{area:s,perimeterLength:i}=e;return{area:s?m(s,t):null,perimeter:i?p(i,t):null,mode:"euclidean"}}const{geodesicArea:s,pathLength:i}=e;return{area:s?m(s,t):null,perimeter:i?p(i,t):null,mode:"geodesic"}}get viewData(){return this._analysisVisualization.viewData}get areaLabel(){return this._analysisVisualization.areaLabel}get perimeterLengthLabel(){return this._analysisVisualization.perimeterLengthLabel}get validMeasurement(){return this.path.isValidPolygon}get unit(){return this.analysis.unit??r(this.view)}get testData(){}place(e){return g(this,{placementOptions:e})}};e([i()],M.prototype,"_analysisVisualization",void 0),e([i()],M.prototype,"_analysisController",void 0),e([i({readOnly:!0})],M.prototype,"type",void 0),e([i({constructOnly:!0,nonNullable:!0})],M.prototype,"analysis",void 0),e([i()],M.prototype,"updating",null),e([i()],M.prototype,"result",null),e([i()],M.prototype,"measurementData",void 0),e([i()],M.prototype,"viewData",null),e([i()],M.prototype,"areaLabel",null),e([i()],M.prototype,"perimeterLengthLabel",null),e([i()],M.prototype,"validMeasurement",null),e([i()],M.prototype,"path",void 0),e([i()],M.prototype,"lastDraggedVertex",void 0),e([i()],M.prototype,"stagedPoint",void 0),e([i()],M.prototype,"mode",void 0),e([i()],M.prototype,"unit",null),e([i()],M.prototype,"tool",void 0),e([i()],M.prototype,"userOperation",void 0),M=e([a("esri.views.3d.analysis.AreaMeasurementAnalysisView3D")],M);const w=M;export{w as default};
5
+ import{__decorate as e}from"tslib";import"../../../core/has.js";import{abortMaybe as t,destroyMaybe as s}from"../../../core/maybe.js";import{property as i,subclass as a}from"../../../core/accessorSupport/decorators.js";import{getDefaultUnitForView as r}from"../../../support/getDefaultUnitForView.js";import o from"./AnalysisView3D.js";import{AreaMeasurementController as n}from"./AreaMeasurement/support/AreaMeasurementController.js";import{AreaMeasurement3DPathHelper as l}from"./AreaMeasurement/support/AreaMeasurementPathHelper.js";import{AreaMeasurementVisualization as p}from"./AreaMeasurement/support/AreaMeasurementVisualization.js";import{toPreferredLengthUnit as u,toPreferredAreaUnit as m}from"./AreaMeasurement/support/utils.js";import y from"../interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js";import{connectAnalysisViewToTool as h,removeAnalysisViewTool as d,startPlaceOperation as v}from"../../analysis/analysisViewUtils.js";let g=class extends o{constructor(e){super(e),this.type="area-measurement-view-3d",this.analysis=null,this.measurementData=null,this.lastDraggedVertex=null,this.stagedPoint=null,this.mode=0,this.tool=null,this.userOperation=null}initialize(){const{analysis:e,view:t}=this;this.path=new l({view:t,areaMeasurement:e}),this._analysisVisualization=new p({view:t,analysis:e,analysisViewData:this}),this._analysisController=new n({view:t,analysis:e,analysisViewData:this}),this.addHandles(h(this,y))}destroy(){d(this),this.userOperation=t(this.userOperation),this._analysisController=s(this._analysisController),this._analysisVisualization=s(this._analysisVisualization),this.path.destroy()}get visible(){return super.visible}set visible(e){super.visible=e}get interactive(){return super.interactive}set interactive(e){super.interactive=e}get updating(){return!!this._analysisVisualization?.loadingMessages||!!this._analysisController?.updating}get result(){const e=this.measurementData?.measurements;if(!e)return null;const{unit:t}=this,{mode:s}=e,i="geodesic"===s,a=i?e.geodesicArea:e.area,r=i?e.geodesicPerimeter:e.perimeter;return{mode:s,area:a?m(a,t):null,perimeter:r?u(r,t):null}}get viewData(){return this._analysisVisualization.viewData}get areaLabel(){return this._analysisVisualization.areaLabel}get perimeterLabel(){return this._analysisVisualization.perimeterLabel}get validMeasurement(){return this.path.isValidPolygon}get unit(){return this.analysis.unit??r(this.view)}get testData(){}place(e){return v(this,{placementOptions:e})}};e([i()],g.prototype,"_analysisVisualization",void 0),e([i()],g.prototype,"_analysisController",void 0),e([i({readOnly:!0})],g.prototype,"type",void 0),e([i({constructOnly:!0,nonNullable:!0})],g.prototype,"analysis",void 0),e([i()],g.prototype,"updating",null),e([i()],g.prototype,"result",null),e([i()],g.prototype,"measurementData",void 0),e([i()],g.prototype,"viewData",null),e([i()],g.prototype,"areaLabel",null),e([i()],g.prototype,"perimeterLabel",null),e([i()],g.prototype,"validMeasurement",null),e([i()],g.prototype,"path",void 0),e([i()],g.prototype,"lastDraggedVertex",void 0),e([i()],g.prototype,"stagedPoint",void 0),e([i()],g.prototype,"mode",void 0),e([i()],g.prototype,"unit",null),e([i()],g.prototype,"tool",void 0),e([i()],g.prototype,"userOperation",void 0),g=e([a("esri.views.3d.analysis.AreaMeasurementAnalysisView3D")],g);const c=g;export{c as default};
@@ -6,15 +6,25 @@
6
6
  import type { Length } from "../../../../core/quantity.js";
7
7
  import type { MeasurementMode } from "../../../analysis/types.js";
8
8
 
9
- /** Result obtained from a [DirectLineMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-DirectLineMeasurementAnalysis.html). */
9
+ /**
10
+ * Result obtained from a [DirectLineMeasurementAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-DirectLineMeasurementAnalysis.html).
11
+ *
12
+ * @since 5.0
13
+ */
10
14
  export interface DirectLineMeasurementAnalysisResult {
11
- /** The 3D distance between the two points that is computed in a Euclidean manner. */
15
+ /**
16
+ * The 3D distance between the two points that is computed in a Euclidean manner.
17
+ *
18
+ * @since 5.0
19
+ */
12
20
  directDistance: Length;
13
21
  /**
14
22
  * Horizontal distance between the two points. It can be measured as the euclidean distance or
15
23
  * the geodesic distance depending on the configured measurement mode. In automatic mode, the
16
24
  * distance is measured geodetically if the spatial reference is a GCS or WebMercator; otherwise
17
25
  * (in non-WebMercator PCS) it is Euclidean.
26
+ *
27
+ * @since 5.0
18
28
  */
19
29
  horizontalDistance: Length;
20
30
  /**
@@ -23,11 +33,21 @@ export interface DirectLineMeasurementAnalysisResult {
23
33
  * This mode is used in scenes with projected coordinate systems (PCS), apart from Web Mercator.
24
34
  * - In `geodesic` mode, the horizontal distance is computed geodetically.
25
35
  * This mode is used in scenes with geographic coordinate systems (GCS) or in Web Mercator.
36
+ *
37
+ * @since 5.0
26
38
  */
27
39
  mode: MeasurementMode;
28
- /** Vertical distance measured as the absolute difference of the elevation of the two points. */
40
+ /**
41
+ * Vertical distance measured as the absolute difference of the elevation of the two points.
42
+ *
43
+ * @since 5.0
44
+ */
29
45
  verticalDistance: Length;
30
46
  }
31
47
 
32
- /** Result returned when a direct line measurement placement operation completes successfully. */
48
+ /**
49
+ * Result returned when a direct line measurement placement operation completes successfully.
50
+ *
51
+ * @since 5.0
52
+ */
33
53
  export interface DirectLineMeasurementPlacementResult {}
@@ -4,4 +4,5 @@
4
4
  * @since 5.0
5
5
  */
6
6
 
7
+ /** @since 5.0 */
7
8
  export interface LineOfSightPlacementResult {}
@@ -30,17 +30,30 @@ import type { ScreenPoint } from "../../../core/types.js";
30
30
  * @see [Shadow Cast component](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-shadow-cast/)
31
31
  */
32
32
  export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
33
- /** The shadow cast analysis associated with the analysis view. */
33
+ /**
34
+ * The shadow cast analysis associated with the analysis view.
35
+ *
36
+ * @since 5.0
37
+ */
34
38
  get analysis(): ShadowCastAnalysis;
35
39
  /**
36
40
  * Enables interactivity for the [analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ShadowCastAnalysisView3D.html#analysis).
37
41
  *
38
42
  * @default true
43
+ * @since 5.0
39
44
  */
40
45
  accessor interactive: boolean;
41
- /** The analysis view type. */
46
+ /**
47
+ * The analysis view type.
48
+ *
49
+ * @since 5.0
50
+ */
42
51
  get type(): "shadow-cast-view-3d";
43
- /** Whether the analysis is currently being updated. */
52
+ /**
53
+ * Whether the analysis is currently being updated.
54
+ *
55
+ * @since 5.0
56
+ */
44
57
  get updating(): boolean;
45
58
  /**
46
59
  * When `true`, the [analysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-3d-analysis-ShadowCastAnalysisView3D.html#analysis) is visualized in the view.
@@ -48,6 +61,8 @@ export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
48
61
  * Only one [ShadowCastAnalysis](https://developers.arcgis.com/javascript/latest/api-reference/esri-analysis-ShadowCastAnalysis.html) at a time can be visible in a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
49
62
  * When a shadow cast analysis is made visible by setting this property to `true`, all other shadow cast analysis
50
63
  * views are automatically hidden.
64
+ *
65
+ * @since 5.0
51
66
  */
52
67
  accessor visible: boolean;
53
68
  /**
@@ -55,6 +70,7 @@ export default abstract class ShadowCastAnalysisView3D extends AnalysisView3D {
55
70
  *
56
71
  * @param point - The point on the screen for which shadow cast is calculated.
57
72
  * @returns A promise that resolves to the duration (in milliseconds) spent in shadow for the given screen point.
73
+ * @since 5.0
58
74
  * @example
59
75
  * // use getDurationAtScreen method from the analysis view once available
60
76
  * const analysisView = await view.whenAnalysisView(shadowCastAnalysis);
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import{onLocaleChange as t,substitute as i,fetchMessageBundle as s}from"../../../../intl.js";import{volumeMeasurementConfiguration as o}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import{equals as l}from"../../../../core/arrayUtils.js";import{cyclicalPI as n}from"../../../../core/Cyclical.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c}from"../../../../core/quantityFormatUtils.js";import{watch as u,initial as m}from"../../../../core/reactiveUtils.js";import{adaptiveVolumeUnit as d}from"../../../../core/units.js";import{property as h,subclass as p}from"../../../../core/accessorSupport/decorators.js";import{e as y}from"../../../../chunks/earcut.js";import{create as g}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as _,n as f,e as v,f as j,g as b}from"../../../../chunks/vec32.js";import{create as L,fromValues as C}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{computeTranslationToOriginAndRotation as w}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{newDoubleArray as G}from"../../../../geometry/support/DoubleArray.js";import{newIndexArray as P}from"../../../../geometry/support/Indices.js";import{angleAroundAxis as V}from"../../../../geometry/support/vector.js";import{t as R}from"../../../../chunks/vec3.js";import F from"../../../../symbols/support/ElevationInfo.js";import{LabelVisualElement as A}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as O}from"../../interactive/visualElements/LineVisualElement.js";import{OutlineVisualElement as x}from"../../interactive/visualElements/OutlineVisualElement.js";import{EuclideanSegment as D}from"../../interactive/visualElements/support/Segment.js";import{ElevationContext as M}from"../../layers/graphics/ElevationContext.js";import{extrudePolygon as S}from"../../layers/graphics/Graphics3DExtrudeSymbolLayer.js";import{polygonToRenderInfo as U}from"../../support/renderInfoUtils/polygon.js";import{CutFillColor as E,VolumeGeometry as B}from"../../webgl-engine/lib/CutFillColor.js";import{createStipplePatternSimple as N}from"../../webgl-engine/materials/lineStippleUtils.js";let T=class extends r{get visible(){return this.analysisViewData.visible&&null!=this.analysisViewData.elevationAlignedGeometry&&null!=this.analysisViewData.targetGeometry}get updating(){return this.loadingMessages}get hasUnsupportedError(){const{error:e}=this.analysisViewData;return!!e&&["unsupported-coordinate-system","unsupported-layer-transparency"].includes(e.name)}constructor(e){super(e),this.unitsMessages=null,this.messages=null,this.loadingMessages=!0,this._elevationContext=M.fromElevationInfo(new F({mode:"absolute-height"})),this._extrusionHeight=o.targetElevationRange,this._projectionLines=[]}initialize(){const{view:e}=this,i={view:e,isDecoration:!0},s=o,r={...i,width:s.geometryOutlineWidth};this._elevationAlignedGeometry=new x({...r,isDraped:!0,color:s.geometryOutlineColor.toUnitRGBA()}),this._targetGeometry=new x(r);const l={...i,attached:!0,width:s.projectionLineWidth,renderOccluded:4,polygonOffset:!0},n={...l,stipplePattern:N(s.projectionLineStippleSize)},a=s.cutProjectionLineColor.toUnitRGBA(),c=s.fillProjectionLineColor.toUnitRGBA();this._cutProjectionLines=new O({...l,color:a}),this._occludedCutProjectionLines=new O({...n,color:a}),this._fillProjectionLines=new O({...l,color:c}),this._occludedFillProjectionLines=new O({...n,color:c});const d={...i,attached:!0};this._cutVolumeLabel=new A({...d,distance:s.labelDistance}),this._fillVolumeLabel=new A({...d,distance:-s.labelDistance}),this._cutFillRenderNode=new E({view:e,cutColor:s.cutColor,fillColor:s.fillColor,borderColor:s.geometryOutlineColor}),this.addHandles([u(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry}),({elevationAlignedGeometry:e,targetGeometry:t})=>{this._elevationAlignedGeometry.geometry=e,this._targetGeometry.geometry=t},m),u(()=>({interactive:this.analysisViewData.interactive,measureType:this.analysis.measureType,visible:this.visible}),({visible:e,interactive:t,measureType:i})=>{this._elevationAlignedGeometry.visible=e&&!t,this._targetGeometry.visible=e&&"cut-fill"===i,this._cutFillRenderNode.measureType=i},m),u(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry,visible:this.visible}),({elevationAlignedGeometry:e,targetGeometry:t,visible:i})=>this._updateProjectionLines(e,t,i),m),u(()=>({interactive:this.analysisViewData.interactive,accentColor:this.view.effectiveTheme.accentColor,hasResult:!!this.analysisViewData.result}),({interactive:e,accentColor:t,hasResult:i})=>{this._updateColors(e,t,i)},m),u(()=>this.analysisViewData.targetGeometry,()=>this._updateCutFillGeometry(),m),u(()=>this.visible&&!this.hasUnsupportedError,e=>this._updateCutFillVisibility(e),m),u(()=>{const{messages:e,unitsMessages:t,visible:i,analysisViewData:s}=this;return{labelAnchors:s.labelAnchors,effectiveDisplayUnits:s.effectiveDisplayUnits,messages:e,unitsMessages:t,result:s.result,visible:i&&!!s.result}},e=>this._updateLabels(e)),u(()=>this.view.state.camera,e=>this._updateProjectionLineOcclusion(e),m),t(()=>this._updateMessageBundle())]),this._updateMessageBundle()}destroy(){this._elevationAlignedGeometry=a(this._elevationAlignedGeometry),this._targetGeometry=a(this._targetGeometry),this._cutProjectionLines=a(this._cutProjectionLines),this._occludedCutProjectionLines=a(this._occludedCutProjectionLines),this._fillProjectionLines=a(this._fillProjectionLines),this._occludedFillProjectionLines=a(this._occludedFillProjectionLines),this._cutVolumeLabel=a(this._cutVolumeLabel),this._fillVolumeLabel=a(this._fillVolumeLabel),this._cutFillRenderNode.destroy()}_updateProjectionLines(e,t,i){if(this._cutProjectionLines.visible=i,this._occludedCutProjectionLines.visible=i,this._fillProjectionLines.visible=i,this._occludedFillProjectionLines.visible=i,!e||!t)return;const{renderCoordsHelper:s}=this.view,o=[],r=e.spatialReference,n=e.rings[0],a=n.length>1&&l(n[0],n[n.length-1]),c=n.length-(a?1:0);for(let l=0;l<c;++l){const e=n[l],i=_(L(),e[0],e[1],e[2]);s.toRenderCoords(i,r,i);const a=t.rings[0][l],c=_(L(),a[0],a[1],a[2]);s.toRenderCoords(c,r,c);const u=new D(i,c);o.push(u)}e.isClockwise(n)||o.reverse();const u=[],m=[],d=[],h=[],p=[],y=this.view.state.camera;for(let l=0;l<o.length;++l){const i=o[l],s=o[0===l?o.length-1:l-1],r=o[l===o.length-1?0:l+1],n=e.rings[0][l],a=t.rings[0][l],c=n[2]>a[2],g=new k(i,s,r,c);u.push(g),g.updateOccluded(y);const _=g.isOccluded;c?(_?d:m).push(i):(_?p:h).push(i)}this._projectionLines=u,this._cutProjectionLines.setGeometryFromSegments(m),this._occludedCutProjectionLines.setGeometryFromSegments(d),this._fillProjectionLines.setGeometryFromSegments(h),this._occludedFillProjectionLines.setGeometryFromSegments(p)}_updateProjectionLineOcclusion(e){const t=[],i=[],s=[],o=[];let r=!1,l=!1;for(const n of this._projectionLines){n.updateOccluded(e)&&(r||=n.isCut,l||=!n.isCut);const a=n.isOccluded;(n.isCut?a?i:t:a?o:s).push(n.segment)}l&&(this._fillProjectionLines.setGeometryFromSegments(s),this._occludedFillProjectionLines.setGeometryFromSegments(o)),r&&(this._cutProjectionLines.setGeometryFromSegments(t),this._occludedCutProjectionLines.setGeometryFromSegments(i))}_updateColors(e,t,i){const{geometryOutlineColor:s,cutColor:r,fillColor:l,cutColorMuted:n,fillColorMuted:a,cutProjectionLineColor:c,fillProjectionLineColor:u}=o;if(this._cutFillRenderNode.cutColor=i?r:n,this._cutFillRenderNode.fillColor=i?l:a,e){const e=t.toUnitRGBA();this._targetGeometry.color=e,this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e,this._fillProjectionLines.color=e,this._occludedFillProjectionLines.color=e,this._cutFillRenderNode.borderColor=t}else{this._targetGeometry.color=s.toUnitRGBA();const e=(i?c:n).toUnitRGBA();this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e;const t=(i?u:a).toUnitRGBA();this._fillProjectionLines.color=t,this._occludedFillProjectionLines.color=t,this._cutFillRenderNode.borderColor=s}}_updateLabels(e){const{effectiveDisplayUnits:t,labelAnchors:s,messages:o,unitsMessages:r,result:l,visible:n}=e;if(this._cutVolumeLabel.visible=n,this._fillVolumeLabel.visible=n,this._cutVolumeLabel.geometry=s?{type:"point",point:s.cut}:null,this._fillVolumeLabel.geometry=s?{type:"point",point:s.fill}:null,null==l||null==o||null==r)return this._cutVolumeLabel.text="-",void(this._fillVolumeLabel.text="-");const a=t.volume,c=i(o.labels.cut,{volume:H(r,l.cutVolume,a)}),u=i(o.labels.fill,{volume:H(r,l.fillVolume,a)});this._cutVolumeLabel.text=c,this._fillVolumeLabel.text=u}_updateCutFillVisibility(e){e?this._cutFillRenderNode.enable():this._cutFillRenderNode.disable()}_updateCutFillGeometry(){const{renderCoordsHelper:e}=this.view,{targetGeometry:t}=this.analysisViewData;if(!t?.extent)return;const{center:i}=t.extent,s=C(i.x,i.y,0),o=L();e.toRenderCoords(s,t.spatialReference,o);const r=this._getExtrudedVolume(t,this._extrusionHeight,s,o),l=this._getExtrudedVolume(t,-this._extrusionHeight,s,o);this._cutFillRenderNode.updateGeometries(r,l,o)}_getExtrudedVolume(e,t,i,s){const{renderCoordsHelper:o,spatialReference:r,elevationProvider:l}=this.view,n=L(),a=1===o.viewingMode;o.worldUpAtPosition(s,n);const c=U(e,l,o,this._elevationContext),{polygons:u,mapPositions:m,position:d}=c,h=u[0],p=h.count,_=y(h.mapPositions,h.holeIndices,3),f=_.length,v=6*p,j=P(v+f),b=P(f),C=G(3*v),V=G(3*v);S(d,m,_,h,C,null,V,null,j,b,t,n,a);const F=g(),A=g();if(w(r,i,F,o.spatialReference),A[12]=-F[12],A[13]=-F[13],A[14]=-F[14],R(C,C,A),"stockpile"===this.analysis.measureType)for(let y=0;y<V.length;y+=3)V[y]=n[0],V[y+1]=n[1],V[y+2]=n[2];return new B(C,b,j,V)}async _updateMessageBundle(){this.loadingMessages=!0;try{this.unitsMessages=await s("esri/core/t9n/Units"),this.messages=await s("esri/views/3d/analysis/VolumeMeasurement/t9n/VolumeMeasurementAnalysis")}finally{this.loadingMessages=!1}}};function H(e,t,i){if(!t||!e)return null;const s=d(t.value,t.unit,i),r=o.labelPrecisions[s];return c(e,t,s,r)}e([h({constructOnly:!0})],T.prototype,"view",void 0),e([h({constructOnly:!0})],T.prototype,"analysis",void 0),e([h({constructOnly:!0})],T.prototype,"analysisViewData",void 0),e([h()],T.prototype,"unitsMessages",void 0),e([h()],T.prototype,"messages",void 0),e([h()],T.prototype,"loadingMessages",void 0),e([h({readOnly:!0})],T.prototype,"visible",null),e([h()],T.prototype,"updating",null),e([h()],T.prototype,"hasUnsupportedError",null),T=e([p("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementCutFillVisualization")],T);class k{constructor(e,t,i,s){this.segment=e,this.previous=t,this.next=i,this.isCut=s,this._isOccluded=!1,this._n1=L(),this._n2=L();const o=f(I,v(I,e.endRenderSpace,e.startRenderSpace));f(this._n1,j(this._n1,o,f(z,v(z,t.startRenderSpace,e.startRenderSpace)))),f(this._n2,j(this._n2,o,f(z,v(z,e.startRenderSpace,i.startRenderSpace)))),this._isConvex=n.normalize(V(this._n1,this._n2,o))<0}get isOccluded(){return this._isOccluded}updateOccluded(e){v(I,this.segment.startRenderSpace,e.eye);const t=b(this._n1,I)<0,i=b(this._n2,I)<0,s=this._isOccluded;return this._isOccluded=this._isConvex?t&&i:t||i,this._isOccluded!==s}}const I=L(),z=L();export{T as VolumeMeasurementCutFillVisualization};
5
+ import{__decorate as e}from"tslib";import{onLocaleChange as t,substitute as i,fetchMessageBundle as s}from"../../../../intl.js";import{volumeMeasurementConfiguration as o}from"../../../../analysis/VolumeMeasurement/volumeMeasurementConfiguration.js";import r from"../../../../core/Accessor.js";import{equals as l}from"../../../../core/arrayUtils.js";import{cyclicalPI as n}from"../../../../core/Cyclical.js";import{destroyMaybe as a}from"../../../../core/maybe.js";import{formatDecimal as c,preferredVolumePrecision as u}from"../../../../core/quantityFormatUtils.js";import{watch as m,initial as d}from"../../../../core/reactiveUtils.js";import{adaptiveVolumeUnit as h}from"../../../../core/units.js";import{property as p,subclass as y}from"../../../../core/accessorSupport/decorators.js";import{e as g}from"../../../../chunks/earcut.js";import{create as _}from"../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{h as f,n as v,e as j,f as L,g as b}from"../../../../chunks/vec32.js";import{create as C,fromValues as w}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{computeTranslationToOriginAndRotation as G}from"../../../../geometry/projection/computeTranslationToOriginAndRotation.js";import{newDoubleArray as P}from"../../../../geometry/support/DoubleArray.js";import{newIndexArray as V}from"../../../../geometry/support/Indices.js";import{angleAroundAxis as R}from"../../../../geometry/support/vector.js";import{t as F}from"../../../../chunks/vec3.js";import A from"../../../../symbols/support/ElevationInfo.js";import{LabelVisualElement as O}from"../../interactive/visualElements/LabelVisualElement.js";import{LineVisualElement as x}from"../../interactive/visualElements/LineVisualElement.js";import{OutlineVisualElement as D}from"../../interactive/visualElements/OutlineVisualElement.js";import{EuclideanSegment as M}from"../../interactive/visualElements/support/Segment.js";import{ElevationContext as S}from"../../layers/graphics/ElevationContext.js";import{extrudePolygon as U}from"../../layers/graphics/Graphics3DExtrudeSymbolLayer.js";import{polygonToRenderInfo as E}from"../../support/renderInfoUtils/polygon.js";import{CutFillColor as B,VolumeGeometry as N}from"../../webgl-engine/lib/CutFillColor.js";import{createStipplePatternSimple as T}from"../../webgl-engine/materials/lineStippleUtils.js";let H=class extends r{get visible(){return this.analysisViewData.visible&&null!=this.analysisViewData.elevationAlignedGeometry&&null!=this.analysisViewData.targetGeometry}get updating(){return this.loadingMessages}get hasUnsupportedError(){const{error:e}=this.analysisViewData;return!!e&&["unsupported-coordinate-system","unsupported-layer-transparency"].includes(e.name)}constructor(e){super(e),this.unitsMessages=null,this.messages=null,this.loadingMessages=!0,this._elevationContext=S.fromElevationInfo(new A({mode:"absolute-height"})),this._extrusionHeight=o.targetElevationRange,this._projectionLines=[]}initialize(){const{view:e}=this,i={view:e,isDecoration:!0},s=o,r={...i,width:s.geometryOutlineWidth};this._elevationAlignedGeometry=new D({...r,isDraped:!0,color:s.geometryOutlineColor.toUnitRGBA()}),this._targetGeometry=new D(r);const l={...i,attached:!0,width:s.projectionLineWidth,renderOccluded:4,polygonOffset:!0},n={...l,stipplePattern:T(s.projectionLineStippleSize)},a=s.cutProjectionLineColor.toUnitRGBA(),c=s.fillProjectionLineColor.toUnitRGBA();this._cutProjectionLines=new x({...l,color:a}),this._occludedCutProjectionLines=new x({...n,color:a}),this._fillProjectionLines=new x({...l,color:c}),this._occludedFillProjectionLines=new x({...n,color:c});const u={...i,attached:!0};this._cutVolumeLabel=new O({...u,distance:s.labelDistance}),this._fillVolumeLabel=new O({...u,distance:-s.labelDistance}),this._cutFillRenderNode=new B({view:e,cutColor:s.cutColor,fillColor:s.fillColor,borderColor:s.geometryOutlineColor}),this.addHandles([m(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry}),({elevationAlignedGeometry:e,targetGeometry:t})=>{this._elevationAlignedGeometry.geometry=e,this._targetGeometry.geometry=t},d),m(()=>({interactive:this.analysisViewData.interactive,measureType:this.analysis.measureType,visible:this.visible}),({visible:e,interactive:t,measureType:i})=>{this._elevationAlignedGeometry.visible=e&&!t,this._targetGeometry.visible=e&&"cut-fill"===i,this._cutFillRenderNode.measureType=i},d),m(()=>({elevationAlignedGeometry:this.analysisViewData.elevationAlignedGeometry,targetGeometry:this.analysisViewData.targetGeometry,visible:this.visible}),({elevationAlignedGeometry:e,targetGeometry:t,visible:i})=>this._updateProjectionLines(e,t,i),d),m(()=>({interactive:this.analysisViewData.interactive,accentColor:this.view.effectiveTheme.accentColor,hasResult:!!this.analysisViewData.result}),({interactive:e,accentColor:t,hasResult:i})=>{this._updateColors(e,t,i)},d),m(()=>this.analysisViewData.targetGeometry,()=>this._updateCutFillGeometry(),d),m(()=>this.visible&&!this.hasUnsupportedError,e=>this._updateCutFillVisibility(e),d),m(()=>{const{messages:e,unitsMessages:t,visible:i,analysisViewData:s}=this;return{labelAnchors:s.labelAnchors,effectiveDisplayUnits:s.effectiveDisplayUnits,messages:e,unitsMessages:t,result:s.result,visible:i&&!!s.result}},e=>this._updateLabels(e)),m(()=>this.view.state.camera,e=>this._updateProjectionLineOcclusion(e),d),t(()=>this._updateMessageBundle())]),this._updateMessageBundle()}destroy(){this._elevationAlignedGeometry=a(this._elevationAlignedGeometry),this._targetGeometry=a(this._targetGeometry),this._cutProjectionLines=a(this._cutProjectionLines),this._occludedCutProjectionLines=a(this._occludedCutProjectionLines),this._fillProjectionLines=a(this._fillProjectionLines),this._occludedFillProjectionLines=a(this._occludedFillProjectionLines),this._cutVolumeLabel=a(this._cutVolumeLabel),this._fillVolumeLabel=a(this._fillVolumeLabel),this._cutFillRenderNode.destroy()}_updateProjectionLines(e,t,i){if(this._cutProjectionLines.visible=i,this._occludedCutProjectionLines.visible=i,this._fillProjectionLines.visible=i,this._occludedFillProjectionLines.visible=i,!e||!t)return;const{renderCoordsHelper:s}=this.view,o=[],r=e.spatialReference,n=e.rings[0],a=n.length>1&&l(n[0],n[n.length-1]),c=n.length-(a?1:0);for(let l=0;l<c;++l){const e=n[l],i=f(C(),e[0],e[1],e[2]);s.toRenderCoords(i,r,i);const a=t.rings[0][l],c=f(C(),a[0],a[1],a[2]);s.toRenderCoords(c,r,c);const u=new M(i,c);o.push(u)}e.isClockwise(n)||o.reverse();const u=[],m=[],d=[],h=[],p=[],y=this.view.state.camera;for(let l=0;l<o.length;++l){const i=o[l],s=o[0===l?o.length-1:l-1],r=o[l===o.length-1?0:l+1],n=e.rings[0][l],a=t.rings[0][l],c=n[2]>a[2],g=new I(i,s,r,c);u.push(g),g.updateOccluded(y);const _=g.isOccluded;c?(_?d:m).push(i):(_?p:h).push(i)}this._projectionLines=u,this._cutProjectionLines.setGeometryFromSegments(m),this._occludedCutProjectionLines.setGeometryFromSegments(d),this._fillProjectionLines.setGeometryFromSegments(h),this._occludedFillProjectionLines.setGeometryFromSegments(p)}_updateProjectionLineOcclusion(e){const t=[],i=[],s=[],o=[];let r=!1,l=!1;for(const n of this._projectionLines){n.updateOccluded(e)&&(r||=n.isCut,l||=!n.isCut);const a=n.isOccluded;(n.isCut?a?i:t:a?o:s).push(n.segment)}l&&(this._fillProjectionLines.setGeometryFromSegments(s),this._occludedFillProjectionLines.setGeometryFromSegments(o)),r&&(this._cutProjectionLines.setGeometryFromSegments(t),this._occludedCutProjectionLines.setGeometryFromSegments(i))}_updateColors(e,t,i){const{geometryOutlineColor:s,cutColor:r,fillColor:l,cutColorMuted:n,fillColorMuted:a,cutProjectionLineColor:c,fillProjectionLineColor:u}=o;if(this._cutFillRenderNode.cutColor=i?r:n,this._cutFillRenderNode.fillColor=i?l:a,e){const e=t.toUnitRGBA();this._targetGeometry.color=e,this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e,this._fillProjectionLines.color=e,this._occludedFillProjectionLines.color=e,this._cutFillRenderNode.borderColor=t}else{this._targetGeometry.color=s.toUnitRGBA();const e=(i?c:n).toUnitRGBA();this._cutProjectionLines.color=e,this._occludedCutProjectionLines.color=e;const t=(i?u:a).toUnitRGBA();this._fillProjectionLines.color=t,this._occludedFillProjectionLines.color=t,this._cutFillRenderNode.borderColor=s}}_updateLabels(e){const{effectiveDisplayUnits:t,labelAnchors:s,messages:o,unitsMessages:r,result:l,visible:n}=e;if(this._cutVolumeLabel.visible=n,this._fillVolumeLabel.visible=n,this._cutVolumeLabel.geometry=s?{type:"point",point:s.cut}:null,this._fillVolumeLabel.geometry=s?{type:"point",point:s.fill}:null,null==l||null==o||null==r)return this._cutVolumeLabel.text="-",void(this._fillVolumeLabel.text="-");const a=t.volume,c=i(o.labels.cut,{volume:k(r,l.cutVolume,a)}),u=i(o.labels.fill,{volume:k(r,l.fillVolume,a)});this._cutVolumeLabel.text=c,this._fillVolumeLabel.text=u}_updateCutFillVisibility(e){e?this._cutFillRenderNode.enable():this._cutFillRenderNode.disable()}_updateCutFillGeometry(){const{renderCoordsHelper:e}=this.view,{targetGeometry:t}=this.analysisViewData;if(!t?.extent)return;const{center:i}=t.extent,s=w(i.x,i.y,0),o=C();e.toRenderCoords(s,t.spatialReference,o);const r=this._getExtrudedVolume(t,this._extrusionHeight,s,o),l=this._getExtrudedVolume(t,-this._extrusionHeight,s,o);this._cutFillRenderNode.updateGeometries(r,l,o)}_getExtrudedVolume(e,t,i,s){const{renderCoordsHelper:o,spatialReference:r,elevationProvider:l}=this.view,n=C(),a=1===o.viewingMode;o.worldUpAtPosition(s,n);const c=E(e,l,o,this._elevationContext),{polygons:u,mapPositions:m,position:d}=c,h=u[0],p=h.count,y=g(h.mapPositions,h.holeIndices,3),f=y.length,v=6*p,j=V(v+f),L=V(f),b=P(3*v),w=P(3*v);U(d,m,y,h,b,null,w,null,j,L,t,n,a);const R=_(),A=_();if(G(r,i,R,o.spatialReference),A[12]=-R[12],A[13]=-R[13],A[14]=-R[14],F(b,b,A),"stockpile"===this.analysis.measureType)for(let g=0;g<w.length;g+=3)w[g]=n[0],w[g+1]=n[1],w[g+2]=n[2];return new N(b,L,j,w)}async _updateMessageBundle(){this.loadingMessages=!0;try{this.unitsMessages=await s("esri/core/t9n/Units"),this.messages=await s("esri/views/3d/analysis/VolumeMeasurement/t9n/VolumeMeasurementAnalysis")}finally{this.loadingMessages=!1}}};function k(e,t,i){if(!t||!e)return null;const s=h(t.value,t.unit,i),o=u(s);return c(e,t,s,o)}e([p({constructOnly:!0})],H.prototype,"view",void 0),e([p({constructOnly:!0})],H.prototype,"analysis",void 0),e([p({constructOnly:!0})],H.prototype,"analysisViewData",void 0),e([p()],H.prototype,"unitsMessages",void 0),e([p()],H.prototype,"messages",void 0),e([p()],H.prototype,"loadingMessages",void 0),e([p({readOnly:!0})],H.prototype,"visible",null),e([p()],H.prototype,"updating",null),e([p()],H.prototype,"hasUnsupportedError",null),H=e([y("esri.views.3d.analysis.VolumeMeasurement.VolumeMeasurementCutFillVisualization")],H);class I{constructor(e,t,i,s){this.segment=e,this.previous=t,this.next=i,this.isCut=s,this._isOccluded=!1,this._n1=C(),this._n2=C();const o=v(z,j(z,e.endRenderSpace,e.startRenderSpace));v(this._n1,L(this._n1,o,v(W,j(W,t.startRenderSpace,e.startRenderSpace)))),v(this._n2,L(this._n2,o,v(W,j(W,e.startRenderSpace,i.startRenderSpace)))),this._isConvex=n.normalize(R(this._n1,this._n2,o))<0}get isOccluded(){return this._isOccluded}updateOccluded(e){j(z,this.segment.startRenderSpace,e.eye);const t=b(this._n1,z)<0,i=b(this._n2,z)<0,s=this._isOccluded;return this._isOccluded=this._isConvex?t&&i:t||i,this._isOccluded!==s}}const z=C(),W=C();export{H as VolumeMeasurementCutFillVisualization};
@@ -4,5 +4,9 @@
4
4
  * @since 5.0
5
5
  */
6
6
 
7
- /** Result returned when a volume measurement placement completes successfully. */
7
+ /**
8
+ * Result returned when a volume measurement placement completes successfully.
9
+ *
10
+ * @since 5.0
11
+ */
8
12
  export interface VolumeMeasurementPlacementResult {}
@@ -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{d as e,h as t,i as r,n,f as o,g as s,j as i,s as f}from"../../../../chunks/vec32.js";import{create as l}from"../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import a from"../../../../geometry/Polygon.js";import{planeFromPoints as c}from"../../support/mathUtils.js";function u(e,n){t(n.center,0,0,0);for(let t=0;t<e.length;++t)r(n.center,n.center,e[t]);i(n.center,n.center,1/e.length);let o=0;for(let t=0;t<e.length;++t)o=Math.max(o,f(n.center,e[t]));n.radius=Math.sqrt(o)}function g(e,t){if(e.length<3)throw new Error("need at least 3 points to fit a plane");c(e[0],e[1],e[2],t)}function h(e,t){return s(e,t)+e[3]}function m(t,r,n,o,{geodesicArea:s}){const i=d;return e(i.rings[0][0],t),e(i.rings[0][1],r),e(i.rings[0][2],n),e(i.rings[0][3],t),i.spatialReference=o,i.clearCache(),s(i)}function p(i,f=null,l=!0){const a=(e,t)=>{if(0===t[0]&&0===t[1]&&0===t[2])return!1;for(let r=0;r<e.length;++r)if(s(t,e[r])<-1e-6)return!1;return!0};if(0===i.length)return!1;if(1===i.length)return f&&e(f,i[0]),!0;t(w,0,0,0);for(let e=0;e<i.length;++e)r(w,w,i[e]);if(n(w,w),a(i,w))return f&&e(f,w),!0;if(!l)return!1;for(let t=0;t<i.length;++t)for(let r=0;r<i.length;++r)if(t!==r&&(o(w,i[t],i[r]),n(w,w),a(i,w)))return f&&e(f,w),!0;return!1}function j(e){return"mouse"!==e.pointerType||0===e.button}const d=new a({hasM:!1,hasZ:!0,rings:[[l(),l(),l(),l()]],spatialReference:null}),w=l();export{g as bestFitPlane,u as boundingSphere,p as fitHemisphere,j as isPrimaryPointerAction,h as planePointDistance,m as triangleAreaGeodesic};
5
+ import{g as t,h as e,i as n,j as r,s as o}from"../../../../chunks/vec32.js";import{planeFromPoints as s}from"../../support/mathUtils.js";function a(t,s){e(s.center,0,0,0);for(let e=0;e<t.length;++e)n(s.center,s.center,t[e]);r(s.center,s.center,1/t.length);let a=0;for(let e=0;e<t.length;++e)a=Math.max(a,o(s.center,t[e]));s.radius=Math.sqrt(a)}function i(t,e){if(t.length<3)throw new Error("need at least 3 points to fit a plane");s(t[0],t[1],t[2],e)}function c(e,n){return t(e,n)+e[3]}function u(t){return"mouse"!==t.pointerType||0===t.button}export{i as bestFitPlane,a as boundingSphere,u as isPrimaryPointerAction,c as planePointDistance};
@@ -9,22 +9,44 @@ import type SliceAnalysisView3D from "./SliceAnalysisView3D.js";
9
9
  import type ViewshedAnalysisView3D from "./ViewshedAnalysisView3D.js";
10
10
  import type VolumeMeasurementAnalysisView3D from "./VolumeMeasurementAnalysisView3D.js";
11
11
 
12
- /** Maps each analysis type identifier to the corresponding 3D analysis view class. */
12
+ /**
13
+ * Maps each analysis type identifier to the corresponding 3D analysis view class.
14
+ *
15
+ * @since 5.0
16
+ */
13
17
  export interface AnalysisView3DMap {
18
+ /** @since 5.0 */
14
19
  "area-measurement": AreaMeasurementAnalysisView3D;
20
+ /** @since 5.0 */
15
21
  dimension: DimensionAnalysisView3D;
22
+ /** @since 5.0 */
16
23
  "direct-line-measurement": DirectLineMeasurementAnalysisView3D;
24
+ /** @since 5.0 */
17
25
  "distance-measurement": never;
26
+ /** @since 5.0 */
18
27
  "elevation-profile": ElevationProfileAnalysisView3D;
28
+ /** @since 5.0 */
19
29
  "line-of-sight": LineOfSightAnalysisView3D;
30
+ /** @since 5.0 */
20
31
  "shadow-cast": ShadowCastAnalysisView3D;
32
+ /** @since 5.0 */
21
33
  slice: SliceAnalysisView3D;
34
+ /** @since 5.0 */
22
35
  viewshed: ViewshedAnalysisView3D;
36
+ /** @since 5.0 */
23
37
  "volume-measurement": VolumeMeasurementAnalysisView3D;
24
38
  }
25
39
 
26
- /** Resolves the 3D analysis view type for a given analysis instance. */
40
+ /**
41
+ * Resolves the 3D analysis view type for a given analysis instance.
42
+ *
43
+ * @since 5.0
44
+ */
27
45
  export type AnalysisView3DFor<AnalysisType extends Analysis> = AnalysisView3DMap[AnalysisType["type"]];
28
46
 
29
- /** Union of all possible analysis views that can be added to a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html). */
47
+ /**
48
+ * Union of all possible analysis views that can be added to a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).
49
+ *
50
+ * @since 5.0
51
+ */
30
52
  export type AnalysisView3DUnion = AreaMeasurementAnalysisView3D | DimensionAnalysisView3D | DirectLineMeasurementAnalysisView3D | ElevationProfileAnalysisView3D | LineOfSightAnalysisView3D | ShadowCastAnalysisView3D | SliceAnalysisView3D | ViewshedAnalysisView3D | VolumeMeasurementAnalysisView3D;