@arcgis/core 5.0.0-next.67 → 5.0.0-next.68

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 (313) hide show
  1. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.d.ts +9 -6
  2. package/analysis/ElevationProfile/ElevationProfileLineViewOptions.js +1 -1
  3. package/arcade/arcadeAsyncRuntime.js +1 -1
  4. package/arcade/arcadeCompiler.js +1 -1
  5. package/arcade/arcadeRuntime.js +1 -1
  6. package/arcade/batchExec.js +1 -1
  7. package/arcade/compilerUtils.js +1 -1
  8. package/arcade/featureset/actions/SpatialFilter.js +1 -1
  9. package/arcade/geometry/unitConversion.js +1 -1
  10. package/arcade/treeAnalysis.js +1 -1
  11. package/arcade.js +1 -1
  12. package/assets/esri/core/workers/RemoteClient.js +1 -1
  13. package/assets/esri/core/workers/chunks/{251eb6e00f99a816d55c.js → 0326314947734b8e640a.js} +1 -1
  14. package/assets/esri/core/workers/chunks/04176244b0a3539c9681.js +1 -0
  15. package/assets/esri/core/workers/chunks/{942fad4ec96295672ce8.js → 10e474d664b20adcd917.js} +1 -1
  16. package/assets/esri/core/workers/chunks/12f9a55253084a910b2e.js +1 -0
  17. package/assets/esri/core/workers/chunks/{0629087bd5bb8048493e.js → 14dedd80fb797303f91f.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{81d89107ff82604a3ea0.js → 1b445981fbc8373f4dd8.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{6ba3c2b9f699d94d62b8.js → 1ec1a1997b5577619040.js} +1 -1
  20. package/assets/esri/core/workers/chunks/2085084324cd5a81783f.js +1 -0
  21. package/assets/esri/core/workers/chunks/2c2c0f66cffc521df736.js +1 -0
  22. package/assets/esri/core/workers/chunks/2dd347aa2a061d536e69.js +1 -0
  23. package/assets/esri/core/workers/chunks/2dfa7abf2d39fa5a3874.js +1 -0
  24. package/assets/esri/core/workers/chunks/322085d63719da6e443c.js +1 -0
  25. package/assets/esri/core/workers/chunks/{76086517591d0eb35156.js → 34a2e0462eb05986cdd1.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{a6dcd13c792b6538ac50.js → 35593a9790818b689455.js} +1 -1
  27. package/assets/esri/core/workers/chunks/3a04153ca9d8e4f01185.js +1 -0
  28. package/assets/esri/core/workers/chunks/{4e9a8fce55cad841c731.js → 3b25f5d9c8f78bb6e011.js} +1 -1
  29. package/assets/esri/core/workers/chunks/3e7ea06b342e33bc48a5.js +1 -0
  30. package/assets/esri/core/workers/chunks/3ed317900f0edf635508.js +1 -0
  31. package/assets/esri/core/workers/chunks/401ce5cb98fa14c1a725.js +1 -0
  32. package/assets/esri/core/workers/chunks/4319b89cfa02894a8cae.js +1 -0
  33. package/assets/esri/core/workers/chunks/4a060147d25929680ec8.js +1 -0
  34. package/assets/esri/core/workers/chunks/{7bed14d9bcd7fc5e2eec.js → 4bcd74951477e8977ba1.js} +1 -1
  35. package/assets/esri/core/workers/chunks/4d0eaeb4cd6cd55e25fd.js +1 -0
  36. package/assets/esri/core/workers/chunks/{687d2b761dc5b5cf0c31.js → 4d4d71d24c1a9cb342b8.js} +1 -1
  37. package/assets/esri/core/workers/chunks/4fa230dc6e5e87b0dec1.js +1 -0
  38. package/assets/esri/core/workers/chunks/50f03813fba4b752ca9f.js +1 -0
  39. package/assets/esri/core/workers/chunks/{abc236e99b52be1c83b9.js → 52a14266fe239b95c5ce.js} +1 -1
  40. package/assets/esri/core/workers/chunks/53b5c77832df7df4d4e3.js +1 -0
  41. package/assets/esri/core/workers/chunks/{34178ace79e8dea3567d.js → 562cddaf63985e53ee6e.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{6599cc702a46f81a5634.js → 5dd5be91038df8902dc4.js} +1 -1
  43. package/assets/esri/core/workers/chunks/{49a1b7f700b8a42de817.js → 60c7f896f2246a8aa6d7.js} +19 -19
  44. package/assets/esri/core/workers/chunks/60f363ee2add089e8f0b.js +1 -0
  45. package/assets/esri/core/workers/chunks/61801bb8c7be8fe77086.js +1 -0
  46. package/assets/esri/core/workers/chunks/68074a484d7f9bc713c0.js +1 -0
  47. package/assets/esri/core/workers/chunks/6acfa51b81e6f4255118.js +1 -0
  48. package/assets/esri/core/workers/chunks/{3fe7be535affae31de7e.js → 6b85a8776ec2beff63cb.js} +1 -1
  49. package/assets/esri/core/workers/chunks/6df484faf54e90a6cc77.js +1 -0
  50. package/assets/esri/core/workers/chunks/6ea6ad894ac634aa4391.js +1 -0
  51. package/assets/esri/core/workers/chunks/6f8098f9fe233833245a.js +1 -0
  52. package/assets/esri/core/workers/chunks/75fd2ef1236a9364ca7f.js +1 -0
  53. package/assets/esri/core/workers/chunks/7be9bbae23895d1cfa92.js +1 -0
  54. package/assets/esri/core/workers/chunks/7ea48661f1087d06aa41.js +1 -0
  55. package/assets/esri/core/workers/chunks/{47e5149765beee46f208.js → 7ee68f67f9cc48a328f0.js} +1 -1
  56. package/assets/esri/core/workers/chunks/866477acdf03b8a40bc9.js +1 -0
  57. package/assets/esri/core/workers/chunks/8e83c133b201b9b61e70.js +1 -0
  58. package/assets/esri/core/workers/chunks/9086a4933d3d3d9ffa72.js +1 -0
  59. package/assets/esri/core/workers/chunks/94174d40de39dbe7d0bf.js +1 -0
  60. package/assets/esri/core/workers/chunks/98f4b44eca91c42ca08e.js +1 -0
  61. package/assets/esri/core/workers/chunks/{dd99b77a7c0a052507bb.js → 9d88b4ba8e511da64583.js} +3 -3
  62. package/assets/esri/core/workers/chunks/a808be466812db51813d.js +1 -0
  63. package/assets/esri/core/workers/chunks/{6b4a24248182245167ca.js → a931515a2569713e743b.js} +1 -1
  64. package/assets/esri/core/workers/chunks/a95e28ade258b144cbb5.js +1 -0
  65. package/assets/esri/core/workers/chunks/adc68e2c6d2698a52bfe.js +1 -0
  66. package/assets/esri/core/workers/chunks/b2a1e5e9182b643909eb.js +316 -0
  67. package/assets/esri/core/workers/chunks/bb4574a87ca21e719f0d.js +1 -0
  68. package/assets/esri/core/workers/chunks/{07639f406b71bb49ffd6.js → bdbb5b33f0f49661bf6d.js} +1 -1
  69. package/assets/esri/core/workers/chunks/c042269586921e337be9.js +1 -0
  70. package/assets/esri/core/workers/chunks/c623918e289a09905cd1.js +1 -0
  71. package/assets/esri/core/workers/chunks/c7391b0b5a9c916a53f7.js +1 -0
  72. package/assets/esri/core/workers/chunks/{43d28c6509c21b8917a8.js → ca7523c14d81c470e92e.js} +1 -1
  73. package/assets/esri/core/workers/chunks/cd2708fb7636b3ace229.js +1 -0
  74. package/assets/esri/core/workers/chunks/d445e9399fe4ca3d2a50.js +1 -0
  75. package/assets/esri/core/workers/chunks/d7683a95775c9f401a7e.js +1 -0
  76. package/assets/esri/core/workers/chunks/{9d6945cda99d14af83ac.js → d7d9656b990ce8be2152.js} +1 -1
  77. package/assets/esri/core/workers/chunks/df4a0af329ce94a47a7b.js +1 -0
  78. package/assets/esri/core/workers/chunks/e10d6e511921394474ca.js +1 -0
  79. package/assets/esri/core/workers/chunks/e4b6aa8f67c2bd285020.js +1 -0
  80. package/assets/esri/core/workers/chunks/e6ca02f98f855024f74b.js +1 -0
  81. package/assets/esri/core/workers/chunks/{892157696e8f9e38c472.js → e6e837e43b9348050832.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{d3325ed8d224e2350db7.js → e8a3ad00936f2ccaf362.js} +1 -1
  83. package/assets/esri/core/workers/chunks/ef7063ee790d2d64d4b2.js +1 -0
  84. package/assets/esri/core/workers/chunks/{b65fcfde62d49de1fa54.js → ef977be20a647aeded0a.js} +1 -1
  85. package/assets/esri/core/workers/chunks/efb631371b6bb3f043bb.js +1 -0
  86. package/assets/esri/core/workers/chunks/{0f5693541111fcae0c2f.js → f0914715e90e43466f8c.js} +1 -1
  87. package/assets/esri/core/workers/chunks/f95e488d2b86e320624f.js +1 -0
  88. package/assets/esri/core/workers/chunks/{bfc063d4431bfa162160.js → fd09f38fb4d99bf34988.js} +1 -1
  89. package/chunks/boundedPlane.js +1 -1
  90. package/config.js +1 -1
  91. package/core/accessorSupport/ensureType.js +1 -1
  92. package/core/compilerUtils.js +1 -1
  93. package/core/typedArrayUtil.js +1 -1
  94. package/core/units.js +1 -1
  95. package/core/workers/loaderConfig.js +1 -1
  96. package/editing/sharedTemplates/SharedTemplate.js +1 -1
  97. package/geometry/support/MeshTexture.js +1 -1
  98. package/geometry/support/aaBoundingRect.js +1 -1
  99. package/geometry/support/boundedPlane.js +1 -1
  100. package/geometry/support/heightModelInfoUtils.js +1 -1
  101. package/geometry/support/meshUtils/External.js +1 -1
  102. package/geometry/support/meshUtils/exporters/gltf/imageutils.js +1 -1
  103. package/geometry/support/meshUtils/loadExternal.js +1 -1
  104. package/geometry/support/rotate.js +1 -1
  105. package/interfaces.d.ts +0 -1
  106. package/kernel.js +1 -1
  107. package/layers/BuildingSceneLayer.d.ts +1 -1
  108. package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +1 -1
  109. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  110. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  111. package/layers/graphics/dehydratedFeatureComparison.js +1 -1
  112. package/layers/graphics/dehydratedFeatures.js +1 -1
  113. package/layers/graphics/hydratedFeatures.js +1 -1
  114. package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
  115. package/layers/raster/functions/changeDetectionUtils.js +1 -1
  116. package/layers/raster/functions/customBandIndexUtils.js +1 -1
  117. package/layers/raster/functions/focalStatUtils.js +1 -1
  118. package/layers/raster/functions/pixelTransformUtils.js +1 -1
  119. package/layers/save/featureLayerUtils.js +1 -1
  120. package/layers/support/ElevationSampler.js +1 -1
  121. package/layers/support/SubtypeSublayer.js +1 -1
  122. package/layers/support/domains.js +1 -1
  123. package/networks/support/TopologyValidationJobInfo.js +1 -1
  124. package/networks/support/TraceJobInfo.js +1 -1
  125. package/package.json +2 -2
  126. package/renderers/support/RasterSymbolizer.js +1 -1
  127. package/renderers/support/rendererConversion.js +1 -1
  128. package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
  129. package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
  130. package/rest/support/JobInfo.js +1 -1
  131. package/rest/support/ServiceAreaParameters.js +1 -1
  132. package/smartMapping/heuristics/sizeRange.js +1 -1
  133. package/smartMapping/renderers/support/utils.js +1 -1
  134. package/smartMapping/statistics/support/statsWorker.js +1 -1
  135. package/smartMapping/statistics/support/utils.js +1 -1
  136. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  137. package/smartMapping/support/adapters/InMemoryLayerAdapter.js +1 -1
  138. package/smartMapping/support/adapters/support/histogramUtils.js +1 -1
  139. package/smartMapping/support/utils.js +1 -1
  140. package/support/revision.js +1 -1
  141. package/symbols/support/ElevationInfo.d.ts +2 -2
  142. package/symbols/support/IconSymbol3DLayerResource.d.ts +1 -1
  143. package/symbols/support/defaults.js +1 -1
  144. package/symbols/support/defaults3D.js +1 -1
  145. package/symbols/support/previewSymbol3D.js +1 -1
  146. package/symbols/support/symbolLayerUtils3D.js +1 -1
  147. package/symbols/support/symbolUtils.js +1 -1
  148. package/symbols/support/utils.js +1 -1
  149. package/views/2d/analysis/ElevationProfile/ElevationProfileLineVisualization2D.js +1 -1
  150. package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +16 -11
  151. package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
  152. package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
  153. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  154. package/views/2d/engine/vectorTiles/shaders/sources/shaderRepository.js +1 -1
  155. package/views/2d/engine/webgl/TextureUploadManager.js +1 -1
  156. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  157. package/views/2d/input/handlers/DoubleTapDragZoom.js +1 -1
  158. package/views/2d/input/handlers/KeyZoom.js +1 -1
  159. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  160. package/views/2d/layers/TileLayerView2D.js +1 -1
  161. package/views/3d/analysis/AreaMeasurement/support/utils.js +1 -1
  162. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  163. package/views/3d/analysis/ElevationProfile/ElevationProfileLineVisualization3D.js +1 -1
  164. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +16 -11
  165. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
  166. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  167. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementCutFillController.js +1 -1
  168. package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
  169. package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
  170. package/views/3d/camera/constraintUtils/tilt.js +1 -1
  171. package/views/3d/environment/CloudsParameters.js +1 -1
  172. package/views/3d/environment/CloudsRenderer.js +1 -1
  173. package/views/3d/environment/SceneViewEnvironment.js +1 -1
  174. package/views/3d/glTF/internal/Resource.js +1 -1
  175. package/views/3d/glTF/internal/fillDefaults.js +1 -1
  176. package/views/3d/interactive/Manipulator3D.js +1 -1
  177. package/views/3d/interactive/SnappingVisualizer3D.js +1 -1
  178. package/views/3d/interactive/editingTools/isSupportedObjectUtils.js +1 -1
  179. package/views/3d/interactive/editingTools/move/isSupportedObject.js +1 -1
  180. package/views/3d/interactive/editingTools/transform/isSupportedGraphic.js +1 -1
  181. package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
  182. package/views/3d/layers/I3SMeshView3D.js +1 -1
  183. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  184. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  185. package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
  186. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  187. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  188. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  189. package/views/3d/layers/graphics/LabelInfo.js +1 -1
  190. package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
  191. package/views/3d/layers/graphics/lineUtils.js +1 -1
  192. package/views/3d/layers/graphics/pipeline/rendering/FeaturePipelineRenderManager.js +1 -1
  193. package/views/3d/layers/graphics/pipeline/symbolization/primitiveObjectUtils.js +1 -1
  194. package/views/3d/layers/graphics/primitiveObjectSymbolUtils.js +1 -1
  195. package/views/3d/layers/i3s/BuildingFilterUtil.js +1 -1
  196. package/views/3d/layers/i3s/I3SIntersectionHandler.js +1 -1
  197. package/views/3d/layers/i3s/I3SNode.js +1 -1
  198. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  199. package/views/3d/layers/i3s/PointCloudWorkerUtil.js +1 -1
  200. package/views/3d/layers/i3s/SphereCone.js +5 -0
  201. package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
  202. package/views/3d/layers/support/edgeUtils.js +1 -1
  203. package/views/3d/layers/support/featureReference.js +1 -1
  204. package/views/3d/layers/support/featureTileQuery3D.js +1 -1
  205. package/views/3d/layers/support/patternUtils.js +1 -1
  206. package/views/3d/state/controllers/GamepadKeyboardController.js +1 -1
  207. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  208. package/views/3d/support/FrustumExtentIntersection.js +1 -1
  209. package/views/3d/support/buffer/glUtil.js +1 -1
  210. package/views/3d/support/engineContent/sdfPrimitives.js +1 -1
  211. package/views/3d/support/viewpointUtils.js +1 -1
  212. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  213. package/views/3d/webgl/RenderNode.js +1 -1
  214. package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +8 -8
  215. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +3 -3
  216. package/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js +4 -4
  217. package/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js +2 -2
  218. package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +2 -2
  219. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js +6 -6
  220. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +1 -1
  221. package/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js +5 -5
  222. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +3 -3
  223. package/views/3d/webgl-engine/core/shaderLibrary/util/BlendModes.glsl.js +1 -1
  224. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  225. package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
  226. package/views/3d/webgl-engine/shaders/CompositingTechnique.js +1 -1
  227. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  228. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineAmplitude.glsl.js +4 -4
  229. package/views/3d/webgl-engine/shaders/sources/edgeRenderer/LineOffset.glsl.js +8 -8
  230. package/views/VideoView.js +1 -1
  231. package/views/analysis/ElevationProfile/ElevationProfileController.js +1 -1
  232. package/views/analysis/ElevationProfile/ElevationProfileIndicatorPointVisualization.js +5 -0
  233. package/views/analysis/ElevationProfile/ElevationProfileLineComputation.js +1 -1
  234. package/views/analysis/ElevationProfile/ElevationProfileResult.js +1 -1
  235. package/views/analysis/ElevationProfile/ElevationProfileTool.js +1 -1
  236. package/views/analysis/ElevationProfile/constants.js +1 -1
  237. package/views/draw/Draw.js +1 -1
  238. package/views/input/ViewEvents.js +1 -1
  239. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  240. package/views/interactive/snapping/featureSources/snappingCandidateElevationAlignment.js +1 -1
  241. package/views/interactive/snapping/featureSources/snappingCandidateElevationFilter.js +1 -1
  242. package/views/interactive/snapping/featureSources/symbologySnappingCandidates.js +1 -1
  243. package/views/support/PromiseQueue.js +1 -1
  244. package/views/support/screenUtils.js +1 -1
  245. package/views/support/screenshotUtils.js +1 -1
  246. package/views/webgl/FramebufferObject.js +1 -1
  247. package/views/webgl/Uniform.js +1 -1
  248. package/views/webgl/Util.js +1 -1
  249. package/webscene/Slide.d.ts +2 -2
  250. package/webscene/spec-certification/api.js +1 -1
  251. package/widgets/BatchAttributeForm/batchAttributeFormUtils.js +1 -1
  252. package/widgets/BatchAttributeForm/templates/support/hashElementTemplate.js +1 -1
  253. package/widgets/BatchAttributeForm.js +1 -1
  254. package/widgets/Editor/workflowUtils.js +1 -1
  255. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  256. package/widgets/FeatureForm/featureFormUtils.js +1 -1
  257. package/widgets/FeatureForm.js +1 -1
  258. package/widgets/ShadowCast/ShadowCastViewModel.js +1 -1
  259. package/widgets/Sketch/support/OperationHandle.js +1 -1
  260. package/widgets/TimeSlider.js +1 -1
  261. package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
  262. package/widgets/support/dateUtils.js +1 -1
  263. package/assets/esri/core/workers/chunks/055fdc5134d54174444d.js +0 -316
  264. package/assets/esri/core/workers/chunks/058fb2cd6387acfd458c.js +0 -1
  265. package/assets/esri/core/workers/chunks/08359ae020238a565955.js +0 -1
  266. package/assets/esri/core/workers/chunks/0ae018098906d6a88904.js +0 -1
  267. package/assets/esri/core/workers/chunks/0cd3acfbf9ee991bdab4.js +0 -1
  268. package/assets/esri/core/workers/chunks/0dc3a04ce717b7ddd957.js +0 -1
  269. package/assets/esri/core/workers/chunks/0e5cd0cf6ab7cb37d723.js +0 -1
  270. package/assets/esri/core/workers/chunks/0ee407b8db5c07a00d82.js +0 -1
  271. package/assets/esri/core/workers/chunks/10373885604655f673df.js +0 -1
  272. package/assets/esri/core/workers/chunks/119822a646834c1cebc0.js +0 -1
  273. package/assets/esri/core/workers/chunks/13d61d34e55c80e4ecdf.js +0 -1
  274. package/assets/esri/core/workers/chunks/17dea03fc4eb414f0022.js +0 -1
  275. package/assets/esri/core/workers/chunks/1967239713b58dccfd81.js +0 -1
  276. package/assets/esri/core/workers/chunks/1c350a2c4014146dbcd9.js +0 -1
  277. package/assets/esri/core/workers/chunks/2266a8f2c2ec37c19bb4.js +0 -1
  278. package/assets/esri/core/workers/chunks/226acd251ad7d7ee3b57.js +0 -1
  279. package/assets/esri/core/workers/chunks/22b07c54a5fcc27771b0.js +0 -1
  280. package/assets/esri/core/workers/chunks/22ca80f491e070b2a5e7.js +0 -1
  281. package/assets/esri/core/workers/chunks/2402d305a77fef4694a0.js +0 -1
  282. package/assets/esri/core/workers/chunks/27f096c434f049b8df01.js +0 -1
  283. package/assets/esri/core/workers/chunks/3371935a4fd6346d3a17.js +0 -1
  284. package/assets/esri/core/workers/chunks/3c4f8597f602779174f1.js +0 -1
  285. package/assets/esri/core/workers/chunks/3da53c017f9c5d2d778a.js +0 -1
  286. package/assets/esri/core/workers/chunks/4773a358832f87963766.js +0 -1
  287. package/assets/esri/core/workers/chunks/492515860198f38dd698.js +0 -1
  288. package/assets/esri/core/workers/chunks/4f33a2ecb154a2c2449c.js +0 -1
  289. package/assets/esri/core/workers/chunks/4f6f181ee83b4d484518.js +0 -1
  290. package/assets/esri/core/workers/chunks/52726458f590e726d52c.js +0 -1
  291. package/assets/esri/core/workers/chunks/536c492fdda30f2f1288.js +0 -1
  292. package/assets/esri/core/workers/chunks/600e2e6b51e2fb9c598c.js +0 -1
  293. package/assets/esri/core/workers/chunks/63b8cd7d5cafbaeed894.js +0 -1
  294. package/assets/esri/core/workers/chunks/6cb44cd319cb6c2539c8.js +0 -1
  295. package/assets/esri/core/workers/chunks/7f4fa2f2e85863d3cfb9.js +0 -1
  296. package/assets/esri/core/workers/chunks/8f4c480c418eba299c2b.js +0 -1
  297. package/assets/esri/core/workers/chunks/a3836f6a93924ee4816e.js +0 -1
  298. package/assets/esri/core/workers/chunks/ab520fd1ae917daf07d8.js +0 -1
  299. package/assets/esri/core/workers/chunks/acc7ff44bfcb5c195114.js +0 -1
  300. package/assets/esri/core/workers/chunks/b25a131c04092c3ab75d.js +0 -1
  301. package/assets/esri/core/workers/chunks/b7960ab9a9da7f88184c.js +0 -1
  302. package/assets/esri/core/workers/chunks/b9909264cfea68d5f2a1.js +0 -1
  303. package/assets/esri/core/workers/chunks/bb08359610a41e304b55.js +0 -1
  304. package/assets/esri/core/workers/chunks/bfbbcaa1fb04f17fc869.js +0 -1
  305. package/assets/esri/core/workers/chunks/d30cfc5fa302cc08d862.js +0 -1
  306. package/assets/esri/core/workers/chunks/d75adfd4acb3c92accc9.js +0 -1
  307. package/assets/esri/core/workers/chunks/da99fd0d3106dd357743.js +0 -1
  308. package/assets/esri/core/workers/chunks/de71db3b0fb947b13c97.js +0 -1
  309. package/assets/esri/core/workers/chunks/dfbbead4c24d13682891.js +0 -1
  310. package/assets/esri/core/workers/chunks/e4ba850e8344ac2c5fc0.js +0 -1
  311. package/assets/esri/core/workers/chunks/e705d041f6c1632bfbcc.js +0 -1
  312. package/assets/esri/core/workers/chunks/f9370830051865a3435b.js +0 -1
  313. package/views/analysis/ElevationProfile/ElevationProfileHoveredPointVisualization.js +0 -5
@@ -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 has from"../../../core/has.js";import i from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import r from"../../../core/PooledArray.js";import{EsriPromiseMixin as a}from"../../../core/Promise.js";import{isAbortError as d}from"../../../core/promiseUtils.js";import{watch as n,sync as o,initial as l}from"../../../core/reactiveUtils.js";import{property as h,subclass as u}from"../../../core/accessorSupport/decorators.js";import{m as _}from"../../../chunks/vec32.js";import{UpdatingHandles as c}from"../../../core/support/UpdatingHandles.js";import{projectBoundingRect as p}from"../../../geometry/projection/projectBoundingRect.js";import{create as g}from"../../../geometry/support/aaBoundingRect.js";import{viewingModeFromString as m}from"../../../views/ViewingMode.js";import{I3SClientNodeLoader as y}from"../../../views/3d/layers/i3s/I3SClientNodeLoader.js";import{I3SDataRequester as f}from"../../../views/3d/layers/i3s/I3SDataRequester.js";import{addCallback as x}from"../../../views/3d/layers/i3s/I3SFrameTask.js";import{I3SIndex as N}from"../../../views/3d/layers/i3s/I3SIndex.js";import b from"../../../views/3d/layers/i3s/I3SLodHandling.js";import v from"../../../views/3d/layers/i3s/I3SNodeLoader.js";import{getVertexCrs as w,getIndexCrs as L,findIntersectingNodes as D}from"../../../views/3d/layers/i3s/I3SUtil.js";import C from"../../../views/3d/layers/i3s/I3SViewportQueries.js";import{toBoundingRect as V}from"../../../views/3d/support/extentUtils.js";import{minQuality as A}from"../../../views/3d/support/MemoryController.js";import{PromiseQueue as I}from"../../../views/support/PromiseQueue.js";import{noBudget as M}from"../../../views/support/Scheduler.js";const F=100,O=2,q=1e4,P=1e-4,R=1.2,S=500,G=1.5;let U=class extends(a(t)){get isMeshPyramid(){return"mesh-pyramids"===this.layer.profile||"MeshPyramid"===this.layer.store?.lodType}get isGraphics3D(){return"points"===this.layer.profile}get useMaximumNumberOfFeatures(){return!this.isMeshPyramid&&(null==this.layer.priority||"High"===this.layer.priority)}get indexRequester(){return new f(this.layer.customParameters,this.layer.apiKey)}get dataRequester(){return new f(this.layer.customParameters,this.layer.apiKey)}get crsVertex(){return w(this.layer)}get crsIndex(){return L(this.layer)}get layer(){return this.layerView.i3slayer}get updating(){return this.running||this._updatingHandles.updating}get rootNodeVisible(){if(this._index){const e=this._index.rootNode;if(e)return this._updateViewData(),this._index.isNodeVisible(e.index)}return!0}get index(){return this._index}get requiredAttributes(){return this._requiredAttributes}constructor(e){super(e),this.featureTarget=5e4,this.fixedFeatureTarget=!1,this._updatingHandles=new c,this.running=!0,this.updatingProgress=1,this.leavesReached=!1,this.worker=null,this._featureLOD=1,this._stableFeatureLOD=!1,this._isIdle=!1,this._cameraDirty=!0,this._invisibleDirty=!1,this._newLoadingNodes=new r({deallocator:null}),this._modificationsNodeFilteringArray=new r,this._downloadingCount=0,this._loadingNodes=new Map,this._updatingNodes=new Map,this._progressMaxNumNodes=1,this._requiredAttributes=new Array,this._requiredAttributesDirty=!0,this._updatesDisabled=!1,this.disableIDBCache=!1,this._disableMemCache=!1,this._restartNodeLoading=!1,this._fields=null,this._attributeStorageInfo=null,this._idleQueue=new I,this._elevationUpdateNodes=new r({deallocator:null}),this._errorCount=0}initialize(){const{layerView:e,layer:t}=this;this._disableMemCache=!e.loadCachedGPUData||!e.addCachedGPUData,this._lodHandling=new b(e),this._defaultGeometrySchema=t.store.defaultGeometrySchema,this.disableIDBCache=!!has("disable-feature:idb-cache"),"fields"in t&&(this._fields=t.fields,this._attributeStorageInfo=t.attributeStorageInfo),this.addResolvingPromise(Promise.all([t.indexInfo,t.when(),e.when()]).then(([s])=>{if(this.destroyed||!e||e.destroyed||!s)return;const{view:r,clientGeometry:a}=e;if(this._setClippingArea(r.clippingArea),this.addHandles([this._updatingHandles.add(()=>r?.pointsOfInterest?.focus?.renderLocation,e=>this._pointOfInterestChanged(e),{initial:!0,equals:_}),n(()=>r.quality,()=>this._setCameraDirty(),o),this._updatingHandles.add(()=>2===r.state.mode,t=>{this._updateIdleState(t),t&&(this._index?.resetFailedNodes(),e.contentVisible||this._updateViewData())},l),this._updatingHandles.add(()=>e.contentVisible,e=>{e&&this._index?.invalidateAllElevationRanges(),this.restartNodeLoading()},l),x(e.view.resourceController.scheduler,this),this._updatingHandles.add(()=>[this.featureTarget,this.fixedFeatureTarget],()=>{this._setCameraDirty(),this._stableFeatureLOD=!1}),this._updatingHandles.add(()=>r.state?.contentCamera,()=>this._setCameraDirty()),this._updatingHandles.add(()=>t.elevationInfo,e=>this._elevationInfoChanged(e),o),this._updatingHandles.add(()=>e.lodFactor,()=>this._setCameraDirty()),this._updatingHandles.add(()=>e.availableFields,()=>this._requiredFieldsChange()),this._updatingHandles.add(()=>e.holeFilling,e=>null!=this._index&&(this._index.holeFilling=e))]),this._viewportQueries=new C(this.crsIndex,r.renderCoordsHelper,r.state.contentCamera,!r.state.fixedContentCamera||this.isGraphics3D,this._clippingArea,this.isMeshPyramid?r.groundView:r.elevationProvider,m(r.viewingMode),this.layer.elevationInfo,{progressiveLoadFactor:this._getProgressiveLoadFactor(),screenspaceErrorBias:this._lod,angleDependentLoD:this._lod<.5}),this._clientNodeLoader=new y(this.layer.uid,{indexSR:this.crsIndex,vertexSR:this.crsVertex,renderSR:r.renderCoordsHelper.spatialReference},r.resourceController.memoryController,this.worker),this._index=new N(m(r.viewingMode),t,s,this.indexRequester,this._clientNodeLoader,this._viewportQueries,i.getLogger(this),e.holeFilling,t=>e.isNodeLoaded(t),t=>e.isNodeReloading(t),e=>this._shouldLoadNode(e),e=>this._enableFromGPUCache(e,1),e=>this._needsUpdate(e),t=>e.computeVisibilityObb?.(t)??null,e?.computeNodeFiltering?t=>e.computeNodeFiltering(t):void 0),this._index.updateElevationInfo(this.layer.elevationInfo,this.isMeshPyramid||this.isGraphics3D),this._index.imModificationsChanged(!!e.hasModifications),this._index.layerFilterChanged(!!e.hasGeometryFilter),null!=a){for(const e of a)this._addMesh(e.mesh,e.oid);this.addHandles(a.on("change",e=>{for(const t of e.removed)this._removeMesh(t.oid);for(const t of e.added)this._addMesh(t.mesh,t.oid)}))}this._startNodeLoading()}))}updateNodeModificationStatus(e){const t=this._index,i=this.layerView;null!=t&&i?.updateNodeModificationStatus&&(this._modificationsNodeFilteringArray.clear(),e.forAll(e=>{const i=t.getNode(e);null!=i&&this._modificationsNodeFilteringArray.push(i)}),i.updateNodeModificationStatus(this._modificationsNodeFilteringArray),this._invisibleDirty=!0)}destroy(){this.cancelNodeLoading(),this._updatingHandles.destroy(),this._nodeLoader=null,H.prune(),this._newLoadingNodes.prune(),this._modificationsNodeFilteringArray.prune(),this._elevationUpdateNodes.prune(),this._index=null,this._lodHandling=s(this._lodHandling),this._nodeLoader=null,this._clientNodeLoader=null,this._viewportQueries=null,this._set("worker",null)}get viewportQueries(){return this._viewportQueries}_getRequiredAttributes(){if(null==this._attributeStorageInfo||!this._fields||!this.layerView.availableFields)return[];const e=this._attributeStorageInfo,t=this._fields,i=this.layer.objectIdField;return this.layerView.availableFields.map(i=>{const s=j(e,i),r=j(t,i);return s>=0&&r>=0?{index:s,name:t[r].name,field:t[r],attributeStorageInfo:e[s]}:null}).filter(e=>null!=e&&e.name!==i)}_requiredFieldsChange(){const e=this._getRequiredAttributes();Q(this._requiredAttributes,e)||(this._requiredAttributes=e,this._requiredAttributesDirty=!1,this.restartNodeLoading())}requestUpdate(){this._requiredAttributesDirty=!0,this.restartNodeLoading()}_setClippingArea(e){const t=g();V(e,t,this.layerView.view.renderSpatialReference)?this._clippingArea=t:this._clippingArea=null}_pointOfInterestChanged(e){null!=this._viewportQueries&&(this._viewportQueries.setPointOfInterest(e),null!=this._index&&this._index.requestUpdate())}updateClippingArea(e){this._setClippingArea(e),null!=this._viewportQueries&&null!=this._index&&(this._viewportQueries.updateClippingArea(this._clippingArea),this._index.invalidateVisibilityCache()),this._setCameraDirty()}_setCameraDirty(){this._cameraDirty=!0,this._lodHandling.setLodGlobalDirty(),this._evaluateRunning()}_addMesh(e,t){if(null==this._index)return;const i=this._clientNodeLoader.createMeshNodeInfo(e,t),s=this._index.addClientNodeToIndex(i.id,i.mbs);this._clientNodeLoader.addMeshNode(s,i),this._evaluateRunning(),this.notifyChange("rootNodeVisible")}_removeMesh(e){const t=this._clientNodeLoader.getMeshNodeIndex(e);if(null!=t){if(null==this._index)throw new Error("delayed removal of client side i3s node geometry not supported yet.");{const e=(e,t)=>{this.layerView.removeNode(t),this._clientNodeLoader.removeNode(e),this.layerView.deleteCachedNodeData&&null!=e&&this.layerView.deleteCachedNodeData(e),this.layerView.deleteCachedGPUData?.(this.layerView.loadCachedGPUData?.(t))},i=(e,t,i)=>{this._clientNodeLoader.updateNodeIndex(e,t,i),this.layerView.updateNodeIndex&&this.layerView.updateNodeIndex(t,i)};this._index.removeClientNodeFromIndex(t,e,i),this.notifyChange("rootNodeVisible")}}}updateElevationChanged(e,t){const i=this._index;if(null==i?.rootNode||null==t)return null;this.crsIndex.equals(t)||(p(e,t,T,this.crsIndex),e=T);const s=this._elevationUpdateNodes;return s.clear(),D(e,i.rootNode,i,e=>s.push(e.index)),s.length&&(s.forAll(e=>i.updateElevationChanged(e)),this._setCameraDirty()),s}removeAllGeometryObbs(){null!=this._index&&this._index.removeAllGeometryObbs()}getRenderMbs(e){return null!=this._viewportQueries?this._viewportQueries.calculateServiceMbsInRenderSR(e):null}_elevationInfoChanged(e){null!=this._index&&(this._index.updateElevationInfo(e,this.isMeshPyramid||this.isGraphics3D),this._setCameraDirty())}restartNodeLoading(){this._restartNodeLoading=!0,this.cancelNodeLoading(),this._evaluateRunning()}schedule(e,t){const i=this._idleQueue.push(e,t);return this._evaluateRunning(),i}reschedule(e,t){const i=this._idleQueue.unshift(e,t);return this._evaluateRunning(),i}get _isIntegratedMesh(){return"integrated-mesh"===this.layer.type}get unloadedMemoryEstimate(){return null!=this._index&&this.layerView.contentVisible?this._index.unloadedMemoryEstimate*this._lodDropFactor:0}async _loadNodeData(e,t){return e.index<0?this._clientNodeLoader.loadNodeData(e.id,t):this._nodeLoader.loadNodeData(e,t)}async _loadAttributes(e,t,i){return(e.index<0?this._clientNodeLoader:this._nodeLoader).loadAttributes(e,t,i)}get indexDepth(){return null!=this._index?this._index.maxLevel:0}set disableMemCache(e){this.layerView.loadCachedGPUData&&this.layerView.addCachedGPUData?this._disableMemCache=e:this._disableMemCache=!0}runTask(e,t){return this.layerView.contentVisible?this.layerView.visible&&null!=this._index?(this._processWithErrorLogging(e,t),this._index.maxPriority):-1/0:(this._updateViewData(),this._evaluateRunning(),-1/0)}_processWithErrorLogging(e,t){try{this._process(e,t)}catch(s){this._errorCount<50?i.getLogger(this).error(`Error during processing: ${s} at ${s.stack}`):50===this._errorCount&&i.getLogger(this).error("Too many errors for this layer. Further errors will not be displayed."),this._errorCount++}}_process(e,t){this._restartNodeLoading&&this._startNodeLoading(),null!=this._nodeLoader&&null!=this._index&&(this._updateViewData(),this._invisibleDirty&&this._removeInvisibleNodes(e)&&(this._invisibleDirty=!1),this._isIntegratedMesh&&(e.enabled=!1),e.run(()=>this._processIndex(e)),this._updateFeatureLOD(),e.run(()=>this._processCache(e)),this._isIntegratedMesh&&(e.enabled=!0),e.run(()=>this._processNodes(e,t)),this._idleQueue.runTask(e),e.run(()=>this._prefetchIndex()),t.numIndexLoading+=this._index.indexLoading,t.numNodesLoading+=this._downloadingCount,e.run(()=>this._lodHandling.lodGlobalHandling(e)),this._evaluateRunning())}_processIndex(e){if(null==this._index)return!1;if(this._index.dirty){this._newLoadingNodes.clear(),this._index.update(Array.from(this._loadingNodes.keys()),e,e=>this.updateNodeModificationStatus(e)),this._disableMemCache||(this._newLoadingNodes.pushArray(this._index.updates.add.data,this._index.updates.add.length),this._newLoadingNodes.pushAll(this._index.updates.missing));const t=this._index.featureEstimate.leavesReached;this._index.isLoading||t===this._get("leavesReached")||this._set("leavesReached",t)}return this._index.load()}_prefetchIndex(){return!(null==this._index||this._loadingNodes.size>0||this._index.updates.add.length>0)&&this._index.prefetch()}_updateFeatureLOD(){if(!this.useMaximumNumberOfFeatures||null==this._index||null==this._viewportQueries)return;const e=!this._index.isLoading,t=this.featureTarget*this._baseLOD,i=this._index.featureEstimate;if(i.estimate=i.estimate||t/2,this._index.indexMissing>S){if(this._featureLOD<=P)return;this._featureLOD/=G,this._stableFeatureLOD=!1}else if(e&&i.estimate<t){if(i.leavesReached||this._featureLOD>=q||this._stableFeatureLOD)return;const e=Math.min(10,Math.max(t/i.estimate,1.001));this._featureLOD*=e;const s=this._lod,r=this._index.checkFeatureTarget(t,s);r!==s&&(this._featureLOD=r/this._baseLOD,this._stableFeatureLOD=!0)}else{if(!(i.estimate>t*R||e&&i.estimate>t))return;if(this._featureLOD<=P)return;this._featureLOD/=1+.25*(i.estimate/t-1),this._stableFeatureLOD=!1}this._featureLOD=Math.min(q,Math.max(P,this._featureLOD)),this._viewportQueries.updateScreenSpaceErrorBias(this._lod),this._index.requestUpdate()}_processCache(e){const t=this._index;if(null==t)return!1;for(;this._newLoadingNodes.length>0&&!e.done;){const i=this._newLoadingNodes.pop();for(let s=t.getParent(i);null!=s&&!this.layerView.isNodeLoaded(s.index);s=t.getParent(s.index))if(this._enableFromGPUCache(s,0)){e.madeProgress();break}}return e.hasProgressed}_processNodes(e,t){if(null==this._index)return!1;let i=(this._isIdle?F:O)-this._loadingNodes.size;const s=this._index.updates;for(s.cancel.forEach(this._cancelNode,this),s.cancel=[];s.remove.length>0&&!e.done;)this.layerView.removeNode(s.remove.pop()),e.madeProgress();for(;s.update.length>0&&!e.done;){const t=this._index.getNode(s.update.pop());null!=t&&(this._updateLoadedNode(t),e.madeProgress())}for(;s.add.length>0&&!e.done&&i>0;){--i;const r=this._index.getNode(s.add.back());if(null==r||2!==r.cacheState&&!this._hasNodeLoadToken(t))break;s.add.pop(),this._loadNode(r),e.madeProgress()}return e.hasProgressed}_cancelAllNodes(){this._loadingNodes.forEach(e=>e.abort()),this._loadingNodes.clear(),this._updatingNodes.forEach(e=>e.abort()),this._updatingNodes.clear()}_cancelNode(e){const t=this._loadingNodes.get(e);t&&(t.abort(),this._loadingNodes.delete(e))}_hasNodeLoadToken(e){return!(!this._isIdle&&e.numNodesLoading+this._loadingNodes.size>=O)&&(null==this.index||!this.dataRequester.isFull(this._index.urlPrefix))}_evaluateRunning(){let e=!1,t=0;if(this.layerView){if(this.layerView.contentVisible){const i=(this._index?.indexMissing??0)+3*(this._index?.updates.add.length??0)+2*this._loadingNodes.size;e=!!(i>0||this._updatingNodes.size>0||this._restartNodeLoading||this._cameraDirty||this._idleQueue.updating||this._lodHandling&&this._lodHandling.requiresLODGlobalHandling||null!=this._index&&this._index.isPrefetching),0===i&&(this._progressMaxNumNodes=1),this._progressMaxNumNodes=Math.max(i,this._progressMaxNumNodes),t=1-i/this._progressMaxNumNodes}else e=this._cameraDirty,t=e?0:1;this.running=e,this.updatingProgress=t}}_updateViewData(){if(!this._cameraDirty||null==this._index||null==this._viewportQueries)return;const e=this.layerView.view,{contentCamera:t,fixedContentCamera:i}=e.state;this._viewportQueries.updateCamera(t,!i||this.isGraphics3D),this._viewportQueries.setPointOfInterest(e.pointsOfInterest.focus.renderLocation),this._viewportQueries.updateScreenSpaceErrorBias(this._lod),this._index.invalidateVisibilityCache(),this._index.requestUpdate(),this._stableFeatureLOD=!1,this._invisibleDirty=!0,this._cameraDirty=!1,this.notifyChange("rootNodeVisible")}_getProgressiveLoadFactor(){return this.layerView.view.quality<1?1:this.layerView.progressiveLoadFactor}get _lod(){return this._featureLOD*this._baseLOD}get _baseLOD(){const e=this.layerView.lodFactor;return this.fixedFeatureTarget?1:(e>0?e:1)*this.layerView.view.quality}get _lodDropFactor(){if(this.fixedFeatureTarget)return 1;return(Math.min(this.layerView.view.quality,.5)-A)/(.5-A)}isGeometryVisible(e){return!!this._index?.isGeometryVisible(e.index)}updateVisibility(e){this._index?.invalidateNodeVisibilityCache(e)}invalidateGeometryVisibility(e){this._index?.invalidateGeometryVisibility(e)}invalidateVisibilityObbs(){this._index?.invalidateVisibilityObbs()}modificationsChanged(){this._index?.imModificationsChanged(!!this.layerView.hasModifications),this._invisibleDirty=!0}_shouldLoadNode(e){return!(!this._lodHandling.shouldLoadNode(e)||this._shouldDropNode(e))&&!(null==this._index||!this._index.isGeometryVisible(e.index))}_shouldDropNode(e){if(null==this._viewportQueries)return!1;const t=this._lodDropFactor;if(t>=1||!this._lodHandling.hasNoVisibleChildren(e))return!1;return Math.abs(this._viewportQueries.calcCameraDistanceToCenter(e))-this._viewportQueries.minDistance>(this._viewportQueries.maxDistance-this._viewportQueries.minDistance)*t}_startNodeLoading(){this._restartNodeLoading=!1;const e=this._index;if(this._updatesDisabled||null==e||null==this._viewportQueries)return;this._updateViewData(),this._requiredAttributesDirty&&(this._requiredAttributes=this._getRequiredAttributes(),this._requiredAttributesDirty=!1);const t={textureEncodings:this.layerView.supportedTextureEncodings,textureUsageMask:this.layerView.rendererTextureUsage,loadFeatureData:this.useMaximumNumberOfFeatures};this._nodeLoader=new v(this.layer,this.dataRequester,i.getLogger(this),this._defaultGeometrySchema,this._requiredAttributes,t),e.requestUpdate(),this._lodHandling.startNodeLoading((e,t)=>this._removeNodes(e,t,1),e,{maxLodLevel:this._viewportQueries.maxLodLevel}),this._evaluateRunning()}isNodeLoading(){return null!=this._nodeLoader&&null!=this._index}cancelNodeLoading(){this.isNodeLoading()&&(this.indexRequester.cancelAll(),this.dataRequester.cancelAll(),this._idleQueue.cancelAll(),this._cancelAllNodes(),this._nodeLoader=null,this._evaluateRunning())}_removeInvisibleNodes(e){const t=this._index;if(null==t||null==this._viewportQueries)return!1;H.clear(),this.layerView.getLoadedNodeIndices(H);const i=0===this._viewportQueries.maxDistance,s=i?()=>!1:e=>this._shouldDropNode(e);return H.filterInPlace(e=>{const i=t.getNode(e);return null==i||!t.isGeometryVisible(e)||s(i)}),H.length>0&&this._lodHandling.setLodGlobalDirty(),this._removeNodes(H,e,0),!(i&&this._lodDropFactor<1)&&(0===H.length||(H.clear(),!1))}markNodeToRemove(e){H.push(e)}removeMarkedNodes(){this._removeNodes(H,M,0)}_removeNodes(e,t,i){if(0!==e.length&&!t.done)for(null!=this._index&&this._index.requestUpdate();e.length>0&&!t.done;){const s=e.pop(),r=this._index;1===i&&this.layerView.nodeFadeoutEnabled&&null!=r&&r.isGeometryVisible(s)?this.layerView.fadeNode(s,1,!0):this.layerView.removeNode(s),t.madeProgress()}}_needsUpdate(e){if(e.resources.isEmpty||this._updatingNodes.has(e.index))return!1;const t=this.layerView.getLoadedAttributes(e.index);return null!=t&&t!==this._requiredAttributes}async _updateLoadedNode(e){const t=new AbortController;this._updatingNodes.set(e.index,t),this._evaluateRunning();try{const i=this.layerView.getLoadedAttributes(e.index),s=Q(i,this._requiredAttributes)?this.layerView.getAttributeData(e.index):await this._loadAttributes(e,this._requiredAttributes,t.signal);await this.schedule(()=>this.layerView.updateAttributes(e.index,{loadedAttributes:this._requiredAttributes,attributeData:s},t.signal),t.signal)}catch(i){if(!d(i))return this.layerView.updateAttributes(e.index,{loadedAttributes:this._requiredAttributes,attributeData:{}},t.signal)}this._updatingNodes.delete(e.index),this._evaluateRunning()}_loadNode(e){if(this._loadingNodes.has(e.index))return void i.getLogger(this).error("already loading node "+e.index);const t=new AbortController;this._loadingNodes.set(e.index,t),this._evaluateRunning(),this._loadAndAddNode(e,t.signal).then(i=>{i&&null!=this._index&&this._loadingNodes.get(e.index)===t&&(this._loadingNodes.delete(e.index),this._index.requestUpdate())}).catch(e=>{if(!d(e))throw e}).finally(()=>{this._loadingNodes.get(e.index)===t&&this._loadingNodes.delete(e.index),this._evaluateRunning()})}_loadAndAddNode(e,t){return 1===e.cacheState?this._loadUncached(e,t).then(()=>!1):this._loadCached(e,t).then(t=>!t&&(e.cacheState=1,!0)).catch(t=>!d(t)&&(e.cacheState=1,!0))}_enableFromGPUCache(e,t){if(this._disableMemCache||null==this._index)return!1;if(0===t&&!this._index.useNodeAsHole(e.index))return!0;const i=this._loadCachedGPUData(e);return!!i&&(this.layerView.addCachedGPUData(e,i,t),this._nodeAdded(),!0)}_loadCachedGPUData(e){const t=this.layerView.loadCachedGPUData(e.index);return null!=t?.attributeInfo&&Q(t.attributeInfo.loadedAttributes,this._requiredAttributes)?t:(this.layerView.deleteCachedGPUData(t),null)}_nodeAdded(){null!=this._index&&this._index.requestUpdate(),this._lodHandling.setLodGlobalDirty(),this._evaluateRunning()}updateLoadStatus(e,t){const i=this._index;null!=i&&i.updateChildrenLoaded(e,t?1:-1)}async _loadCached(e,t){if(this._enableFromGPUCache(e,1))return!0;const i=this.layerView;if(this.disableIDBCache||!i.loadCachedNodeData||!i.addCachedNodeData)return!1;const s=(t,i)=>this._nodeLoader.loadTextures(e,t,i),r=t=>this._clientNodeLoader.loadTextures(e,t),a=e.index>=0?s:r,d=await this.schedule(()=>i.loadCachedNodeData(e,t,a),t);if(null==d)return!1;const n=this._requiredAttributes,o=await this.reschedule(()=>this._loadAttributes(e,n,t),t);return await this.reschedule(()=>i.addCachedNodeData(e,d,{loadedAttributes:n,attributeData:o},t),t),this._nodeAdded(),!0}_loadUncached(e,t){return this._downloadingCount++,this._loadNodeData(e,t).then(i=>this.schedule(()=>this.layerView.addNode(e,i,t),t)).finally(()=>this._downloadingCount--).then(()=>{this._nodeAdded(),e.cacheState=2}).catch(t=>{if(!d(t))throw i.getLogger(this).error("#loadNodeData()",this.layer,`Failed to load node '${e.id}'`,t),e.failed=!0,this._index?.requestUpdate(),t})}_updateIdleState(e){e!==this._isIdle&&(this._isIdle=e,this._evaluateRunning())}get test(){}notifyLODUpdate(){this._lodHandling.setLodGlobalDirty(),this._evaluateRunning(),null!=this._index&&this._index.requestUpdate()}geometryFilterChanged(e){const t=this._index;null!=t&&t.layerFilterChanged(e),this._setCameraDirty()}};e([h({readOnly:!0})],U.prototype,"isMeshPyramid",null),e([h({readOnly:!0})],U.prototype,"isGraphics3D",null),e([h({readOnly:!0})],U.prototype,"useMaximumNumberOfFeatures",null),e([h({readOnly:!0})],U.prototype,"indexRequester",null),e([h({readOnly:!0})],U.prototype,"dataRequester",null),e([h({readOnly:!0})],U.prototype,"crsVertex",null),e([h({readOnly:!0})],U.prototype,"crsIndex",null),e([h()],U.prototype,"featureTarget",void 0),e([h()],U.prototype,"fixedFeatureTarget",void 0),e([h()],U.prototype,"layerView",void 0),e([h()],U.prototype,"layer",null),e([h()],U.prototype,"_updatingHandles",void 0),e([h()],U.prototype,"updating",null),e([h()],U.prototype,"running",void 0),e([h()],U.prototype,"updatingProgress",void 0),e([h({readOnly:!0})],U.prototype,"leavesReached",void 0),e([h({constructOnly:!0})],U.prototype,"worker",void 0),e([h({readOnly:!0,dependsOn:[]})],U.prototype,"rootNodeVisible",null),U=e([u("esri.layers.graphics.controllers.I3SOnDemandController")],U);const H=new r({deallocator:null});function Q(e,t){return null!=e&&e.length===t.length&&e.every(e=>j(t,e.name)>=0)}function j(e,t){const i=t.toLowerCase();for(let s=0;s<e.length;s++)if(e[s].name.toLowerCase()===i)return s;return-1}const T=g();export{U as default};
5
+ import{__decorate as e}from"tslib";import t from"../../../core/Accessor.js";import has from"../../../core/has.js";import i from"../../../core/Logger.js";import{destroyMaybe as s}from"../../../core/maybe.js";import r from"../../../core/PooledArray.js";import{EsriPromiseMixin as a}from"../../../core/Promise.js";import{isAbortError as d}from"../../../core/promiseUtils.js";import{watch as n,sync as o,initial as l}from"../../../core/reactiveUtils.js";import{property as h,subclass as u}from"../../../core/accessorSupport/decorators.js";import{m as _}from"../../../chunks/vec32.js";import{UpdatingHandles as c}from"../../../core/support/UpdatingHandles.js";import{projectBoundingRect as p}from"../../../geometry/projection/projectBoundingRect.js";import{create as g}from"../../../geometry/support/aaBoundingRect.js";import{viewingModeFromString as m}from"../../../views/ViewingMode.js";import{I3SClientNodeLoader as y}from"../../../views/3d/layers/i3s/I3SClientNodeLoader.js";import{I3SDataRequester as f}from"../../../views/3d/layers/i3s/I3SDataRequester.js";import{addCallback as x}from"../../../views/3d/layers/i3s/I3SFrameTask.js";import{I3SIndex as N}from"../../../views/3d/layers/i3s/I3SIndex.js";import b from"../../../views/3d/layers/i3s/I3SLodHandling.js";import v from"../../../views/3d/layers/i3s/I3SNodeLoader.js";import{getVertexCrs as w,getIndexCrs as L,findIntersectingNodes as D}from"../../../views/3d/layers/i3s/I3SUtil.js";import C from"../../../views/3d/layers/i3s/I3SViewportQueries.js";import{toBoundingRect as V}from"../../../views/3d/support/extentUtils.js";import{minQuality as A}from"../../../views/3d/support/MemoryController.js";import{PromiseQueue as I}from"../../../views/support/PromiseQueue.js";import{noBudget as M}from"../../../views/support/Scheduler.js";const F=100,O=2,q=1e4,P=1e-4,R=1.2,S=500,G=1.5;let U=class extends(a(t)){get isMeshPyramid(){return"mesh-pyramids"===this.layer.profile||"MeshPyramid"===this.layer.store?.lodType}get isGraphics3D(){return"points"===this.layer.profile}get useMaximumNumberOfFeatures(){return!this.isMeshPyramid&&(null==this.layer.priority||"High"===this.layer.priority)}get indexRequester(){return new f(this.layer.customParameters,this.layer.apiKey)}get dataRequester(){return new f(this.layer.customParameters,this.layer.apiKey)}get crsVertex(){return w(this.layer)}get crsIndex(){return L(this.layer)}get layer(){return this.layerView.i3slayer}get updating(){return this.running||this._updatingHandles.updating}get rootNodeVisible(){if(this._index){const e=this._index.rootNode;if(e)return this._updateViewData(),this._index.isNodeVisible(e.index)}return!0}get index(){return this._index}get requiredAttributes(){return this._requiredAttributes}constructor(e){super(e),this.featureTarget=5e4,this.fixedFeatureTarget=!1,this._updatingHandles=new c,this.running=!0,this.updatingProgress=1,this.leavesReached=!1,this.worker=null,this._featureLOD=1,this._stableFeatureLOD=!1,this._isIdle=!1,this._cameraDirty=!0,this._invisibleDirty=!1,this._newLoadingNodes=new r({deallocator:null}),this._modificationsNodeFilteringArray=new r,this._downloadingCount=0,this._loadingNodes=new Map,this._updatingNodes=new Map,this._progressMaxNumNodes=1,this._requiredAttributes=new Array,this._requiredAttributesDirty=!0,this._updatesDisabled=!1,this.disableIDBCache=!1,this._disableMemCache=!1,this._restartNodeLoading=!1,this._fields=null,this._attributeStorageInfo=null,this._idleQueue=new I,this._elevationUpdateNodes=new r({deallocator:null}),this._errorCount=0}initialize(){const{layerView:e,layer:t}=this;this._disableMemCache=!e.loadCachedGPUData||!e.addCachedGPUData,this._lodHandling=new b(e),this._defaultGeometrySchema=t.store.defaultGeometrySchema,this.disableIDBCache=!!has("disable-feature:idb-cache"),"fields"in t&&(this._fields=t.fields,this._attributeStorageInfo=t.attributeStorageInfo),this.addResolvingPromise(Promise.all([t.indexInfo,t.when(),e.when()]).then(([s])=>{if(this.destroyed||!e||e.destroyed||!s)return;const{view:r,clientGeometry:a}=e;if(this._setClippingArea(r.clippingArea),this.addHandles([this._updatingHandles.add(()=>r?.pointsOfInterest?.focus?.renderLocation,e=>this._pointOfInterestChanged(e),{initial:!0,equals:_}),n(()=>r.quality,()=>this._setCameraDirty(),o),this._updatingHandles.add(()=>2===r.state.mode,t=>{this._updateIdleState(t),t&&(this._index?.resetFailedNodes(),e.contentVisible||this._updateViewData())},l),this._updatingHandles.add(()=>e.contentVisible,e=>{e&&this._index?.invalidateAllElevationRanges(),this.restartNodeLoading()},l),x(e.view.resourceController.scheduler,this),this._updatingHandles.add(()=>[this.featureTarget,this.fixedFeatureTarget],()=>{this._setCameraDirty(),this._stableFeatureLOD=!1}),this._updatingHandles.add(()=>r.state?.contentCamera,()=>this._setCameraDirty()),this._updatingHandles.add(()=>t.elevationInfo,e=>this._elevationInfoChanged(e),o),this._updatingHandles.add(()=>e.lodFactor,()=>this._setCameraDirty()),this._updatingHandles.add(()=>e.availableFields,()=>this._requiredFieldsChange()),this._updatingHandles.add(()=>e.holeFilling,e=>null!=this._index&&(this._index.holeFilling=e))]),this._viewportQueries=new C(this.crsIndex,r.renderCoordsHelper,r.state.contentCamera,!r.state.fixedContentCamera||this.isGraphics3D,this._clippingArea,this.isMeshPyramid?r.groundView:r.elevationProvider,m(r.viewingMode),this.layer.elevationInfo,{progressiveLoadFactor:this._getProgressiveLoadFactor(),screenspaceErrorBias:this._lod,angleDependentLoD:this._lod<.5}),this._clientNodeLoader=new y(this.layer.uid,{indexSR:this.crsIndex,vertexSR:this.crsVertex,renderSR:r.renderCoordsHelper.spatialReference},r.resourceController.memoryController,this.worker),this._index=new N(m(r.viewingMode),t,s,this.indexRequester,this._clientNodeLoader,this._viewportQueries,i.getLogger(this),e.holeFilling,t=>e.isNodeLoaded(t),t=>e.isNodeReloading(t),e=>this._shouldLoadNode(e),e=>this._enableFromGPUCache(e,1),e=>this._needsUpdate(e),t=>e.computeVisibilityObb?.(t)??null,e?.computeNodeFiltering?t=>e.computeNodeFiltering(t):void 0),this._index.updateElevationInfo(this.layer.elevationInfo,this.isMeshPyramid||this.isGraphics3D),this._index.imModificationsChanged(!!e.hasModifications),this._index.layerFilterChanged(!!e.hasGeometryFilter),null!=a){for(const e of a)this._addMesh(e.mesh,e.oid);this.addHandles(a.on("change",e=>{for(const t of e.removed)this._removeMesh(t.oid);for(const t of e.added)this._addMesh(t.mesh,t.oid)}))}this._startNodeLoading()}))}updateNodeModificationStatus(e){const t=this._index,i=this.layerView;null!=t&&i?.updateNodeModificationStatus&&(this._modificationsNodeFilteringArray.clear(),e.forAll(e=>{const i=t.getNode(e);null!=i&&this._modificationsNodeFilteringArray.push(i)}),i.updateNodeModificationStatus(this._modificationsNodeFilteringArray),this._invisibleDirty=!0)}destroy(){this.cancelNodeLoading(),this._updatingHandles.destroy(),this._nodeLoader=null,H.prune(),this._newLoadingNodes.prune(),this._modificationsNodeFilteringArray.prune(),this._elevationUpdateNodes.prune(),this._index=null,this._lodHandling=s(this._lodHandling),this._nodeLoader=null,this._clientNodeLoader=null,this._viewportQueries=null,this._set("worker",null)}get viewportQueries(){return this._viewportQueries}_getRequiredAttributes(){if(null==this._attributeStorageInfo||!this._fields||!this.layerView.availableFields)return[];const e=this._attributeStorageInfo,t=this._fields,i=this.layer.objectIdField;return this.layerView.availableFields.map(i=>{const s=j(e,i),r=j(t,i);return s>=0&&r>=0?{index:s,name:t[r].name,field:t[r],attributeStorageInfo:e[s]}:null}).filter(e=>null!=e&&e.name!==i)}_requiredFieldsChange(){const e=this._getRequiredAttributes();Q(this._requiredAttributes,e)||(this._requiredAttributes=e,this._requiredAttributesDirty=!1,this.restartNodeLoading())}requestUpdate(){this._requiredAttributesDirty=!0,this.restartNodeLoading()}_setClippingArea(e){const t=g();V(e,t,this.layerView.view.renderSpatialReference)?this._clippingArea=t:this._clippingArea=null}_pointOfInterestChanged(e){null!=this._viewportQueries&&(this._viewportQueries.setPointOfInterest(e),null!=this._index&&this._index.requestUpdate())}updateClippingArea(e){this._setClippingArea(e),null!=this._viewportQueries&&null!=this._index&&(this._viewportQueries.updateClippingArea(this._clippingArea),this._index.invalidateVisibilityCache()),this._setCameraDirty()}_setCameraDirty(){this._cameraDirty=!0,this._lodHandling.setLodGlobalDirty(),this._evaluateRunning()}_addMesh(e,t){if(null==this._index)return;const i=this._clientNodeLoader.createMeshNodeInfo(e,t),s=this._index.addClientNodeToIndex(i.id,i.mbs);this._clientNodeLoader.addMeshNode(s,i),this._evaluateRunning(),this.notifyChange("rootNodeVisible")}_removeMesh(e){const t=this._clientNodeLoader.getMeshNodeIndex(e);if(null!=t){if(null==this._index)throw new Error("delayed removal of client side i3s node geometry not supported yet.");{const e=(e,t)=>{this.layerView.removeNode(t),this._clientNodeLoader.removeNode(e),this.layerView.deleteCachedNodeData&&null!=e&&this.layerView.deleteCachedNodeData(e),this.layerView.deleteCachedGPUData?.(this.layerView.loadCachedGPUData?.(t))},i=(e,t,i)=>{this._clientNodeLoader.updateNodeIndex(e,t,i),this.layerView.updateNodeIndex&&this.layerView.updateNodeIndex(t,i)};this._index.removeClientNodeFromIndex(t,e,i),this.notifyChange("rootNodeVisible")}}}updateElevationChanged(e,t){const i=this._index;if(null==i?.rootNode||null==t)return null;this.crsIndex.equals(t)||(p(e,t,E,this.crsIndex),e=E);const s=this._elevationUpdateNodes;return s.clear(),D(e,i.rootNode,i,e=>s.push(e.index)),s.length&&(s.forAll(e=>i.updateElevationChanged(e)),this._setCameraDirty()),s}removeAllGeometryObbs(){null!=this._index&&this._index.removeAllGeometryObbs()}getRenderMbs(e){return null!=this._viewportQueries?this._viewportQueries.calculateServiceMbsInRenderSRElevationAdjusted(e):null}_elevationInfoChanged(e){null!=this._index&&(this._index.updateElevationInfo(e,this.isMeshPyramid||this.isGraphics3D),this._setCameraDirty())}restartNodeLoading(){this._restartNodeLoading=!0,this.cancelNodeLoading(),this._evaluateRunning()}schedule(e,t){const i=this._idleQueue.push(e,t);return this._evaluateRunning(),i}reschedule(e,t){const i=this._idleQueue.unshift(e,t);return this._evaluateRunning(),i}get _isIntegratedMesh(){return"integrated-mesh"===this.layer.type}get unloadedMemoryEstimate(){return null!=this._index&&this.layerView.contentVisible?this._index.unloadedMemoryEstimate*this._lodDropFactor:0}async _loadNodeData(e,t){return e.index<0?this._clientNodeLoader.loadNodeData(e.id,t):this._nodeLoader.loadNodeData(e,t)}async _loadAttributes(e,t,i){return(e.index<0?this._clientNodeLoader:this._nodeLoader).loadAttributes(e,t,i)}get indexDepth(){return null!=this._index?this._index.maxLevel:0}set disableMemCache(e){this.layerView.loadCachedGPUData&&this.layerView.addCachedGPUData?this._disableMemCache=e:this._disableMemCache=!0}runTask(e,t){return this.layerView.contentVisible?this.layerView.visible&&null!=this._index?(this._processWithErrorLogging(e,t),this._index.maxPriority):-1/0:(this._updateViewData(),this._evaluateRunning(),-1/0)}_processWithErrorLogging(e,t){try{this._process(e,t)}catch(s){this._errorCount<50?i.getLogger(this).error(`Error during processing: ${s} at ${s.stack}`):50===this._errorCount&&i.getLogger(this).error("Too many errors for this layer. Further errors will not be displayed."),this._errorCount++}}_process(e,t){this._restartNodeLoading&&this._startNodeLoading(),null!=this._nodeLoader&&null!=this._index&&(this._updateViewData(),this._invisibleDirty&&this._removeInvisibleNodes(e)&&(this._invisibleDirty=!1),this._isIntegratedMesh&&(e.enabled=!1),e.run(()=>this._processIndex(e)),this._updateFeatureLOD(),e.run(()=>this._processCache(e)),this._isIntegratedMesh&&(e.enabled=!0),e.run(()=>this._processNodes(e,t)),this._idleQueue.runTask(e),e.run(()=>this._prefetchIndex()),t.numIndexLoading+=this._index.indexLoading,t.numNodesLoading+=this._downloadingCount,e.run(()=>this._lodHandling.lodGlobalHandling(e)),this._evaluateRunning())}_processIndex(e){if(null==this._index)return!1;if(this._index.dirty){this._newLoadingNodes.clear(),this._index.update(Array.from(this._loadingNodes.keys()),e,e=>this.updateNodeModificationStatus(e)),this._disableMemCache||(this._newLoadingNodes.pushArray(this._index.updates.add.data,this._index.updates.add.length),this._newLoadingNodes.pushAll(this._index.updates.missing));const t=this._index.featureEstimate.leavesReached;this._index.isLoading||t===this._get("leavesReached")||this._set("leavesReached",t)}return this._index.load()}_prefetchIndex(){return!(null==this._index||this._loadingNodes.size>0||this._index.updates.add.length>0)&&this._index.prefetch()}_updateFeatureLOD(){if(!this.useMaximumNumberOfFeatures||null==this._index||null==this._viewportQueries)return;const e=!this._index.isLoading,t=this.featureTarget*this._baseLOD,i=this._index.featureEstimate;if(i.estimate=i.estimate||t/2,this._index.indexMissing>S){if(this._featureLOD<=P)return;this._featureLOD/=G,this._stableFeatureLOD=!1}else if(e&&i.estimate<t){if(i.leavesReached||this._featureLOD>=q||this._stableFeatureLOD)return;const e=Math.min(10,Math.max(t/i.estimate,1.001));this._featureLOD*=e;const s=this._lod,r=this._index.checkFeatureTarget(t,s);r!==s&&(this._featureLOD=r/this._baseLOD,this._stableFeatureLOD=!0)}else{if(!(i.estimate>t*R||e&&i.estimate>t))return;if(this._featureLOD<=P)return;this._featureLOD/=1+.25*(i.estimate/t-1),this._stableFeatureLOD=!1}this._featureLOD=Math.min(q,Math.max(P,this._featureLOD)),this._viewportQueries.updateScreenSpaceErrorBias(this._lod),this._index.requestUpdate()}_processCache(e){const t=this._index;if(null==t)return!1;for(;this._newLoadingNodes.length>0&&!e.done;){const i=this._newLoadingNodes.pop();for(let s=t.getParent(i);null!=s&&!this.layerView.isNodeLoaded(s.index);s=t.getParent(s.index))if(this._enableFromGPUCache(s,0)){e.madeProgress();break}}return e.hasProgressed}_processNodes(e,t){if(null==this._index)return!1;let i=(this._isIdle?F:O)-this._loadingNodes.size;const s=this._index.updates;for(s.cancel.forEach(this._cancelNode,this),s.cancel=[];s.remove.length>0&&!e.done;)this.layerView.removeNode(s.remove.pop()),e.madeProgress();for(;s.update.length>0&&!e.done;){const t=this._index.getNode(s.update.pop());null!=t&&(this._updateLoadedNode(t),e.madeProgress())}for(;s.add.length>0&&!e.done&&i>0;){--i;const r=this._index.getNode(s.add.back());if(null==r||2!==r.cacheState&&!this._hasNodeLoadToken(t))break;s.add.pop(),this._loadNode(r),e.madeProgress()}return e.hasProgressed}_cancelAllNodes(){this._loadingNodes.forEach(e=>e.abort()),this._loadingNodes.clear(),this._updatingNodes.forEach(e=>e.abort()),this._updatingNodes.clear()}_cancelNode(e){const t=this._loadingNodes.get(e);t&&(t.abort(),this._loadingNodes.delete(e))}_hasNodeLoadToken(e){return!(!this._isIdle&&e.numNodesLoading+this._loadingNodes.size>=O)&&(null==this.index||!this.dataRequester.isFull(this._index.urlPrefix))}_evaluateRunning(){let e=!1,t=0;if(this.layerView){if(this.layerView.contentVisible){const i=(this._index?.indexMissing??0)+3*(this._index?.updates.add.length??0)+2*this._loadingNodes.size;e=!!(i>0||this._updatingNodes.size>0||this._restartNodeLoading||this._cameraDirty||this._idleQueue.updating||this._lodHandling&&this._lodHandling.requiresLODGlobalHandling||null!=this._index&&this._index.isPrefetching),0===i&&(this._progressMaxNumNodes=1),this._progressMaxNumNodes=Math.max(i,this._progressMaxNumNodes),t=1-i/this._progressMaxNumNodes}else e=this._cameraDirty,t=e?0:1;this.running=e,this.updatingProgress=t}}_updateViewData(){if(!this._cameraDirty||null==this._index||null==this._viewportQueries)return;const e=this.layerView.view,{contentCamera:t,fixedContentCamera:i}=e.state;this._viewportQueries.updateCamera(t,!i||this.isGraphics3D),this._viewportQueries.setPointOfInterest(e.pointsOfInterest.focus.renderLocation),this._viewportQueries.updateScreenSpaceErrorBias(this._lod),this._index.invalidateVisibilityCache(),this._index.requestUpdate(),this._stableFeatureLOD=!1,this._invisibleDirty=!0,this._cameraDirty=!1,this.notifyChange("rootNodeVisible")}_getProgressiveLoadFactor(){return this.layerView.view.quality<1?1:this.layerView.progressiveLoadFactor}get _lod(){return this._featureLOD*this._baseLOD}get _baseLOD(){const e=this.layerView.lodFactor;return this.fixedFeatureTarget?1:(e>0?e:1)*this.layerView.view.quality}get _lodDropFactor(){if(this.fixedFeatureTarget)return 1;return(Math.min(this.layerView.view.quality,.5)-A)/(.5-A)}isGeometryVisible(e){return!!this._index?.isGeometryVisible(e.index)}updateVisibility(e){this._index?.invalidateNodeVisibilityCache(e)}invalidateGeometryVisibility(e){this._index?.invalidateGeometryVisibility(e)}invalidateVisibilityObbs(){this._index?.invalidateVisibilityObbs()}modificationsChanged(){this._index?.imModificationsChanged(!!this.layerView.hasModifications),this._invisibleDirty=!0}_shouldLoadNode(e){return!(!this._lodHandling.shouldLoadNode(e)||this._shouldDropNode(e))&&!(null==this._index||!this._index.isGeometryVisible(e.index))}_shouldDropNode(e){if(null==this._viewportQueries)return!1;const t=this._lodDropFactor;if(t>=1||!this._lodHandling.hasNoVisibleChildren(e))return!1;return Math.abs(this._viewportQueries.calcCameraDistanceToCenterAndUpdateMinmax(e))-this._viewportQueries.minDistance>(this._viewportQueries.maxDistance-this._viewportQueries.minDistance)*t}_startNodeLoading(){this._restartNodeLoading=!1;const e=this._index;if(this._updatesDisabled||null==e||null==this._viewportQueries)return;this._updateViewData(),this._requiredAttributesDirty&&(this._requiredAttributes=this._getRequiredAttributes(),this._requiredAttributesDirty=!1);const t={textureEncodings:this.layerView.supportedTextureEncodings,textureUsageMask:this.layerView.rendererTextureUsage,loadFeatureData:this.useMaximumNumberOfFeatures};this._nodeLoader=new v(this.layer,this.dataRequester,i.getLogger(this),this._defaultGeometrySchema,this._requiredAttributes,t),e.requestUpdate(),this._lodHandling.startNodeLoading((e,t)=>this._removeNodes(e,t,1),e,{maxLodLevel:this._viewportQueries.maxLodLevel}),this._evaluateRunning()}isNodeLoading(){return null!=this._nodeLoader&&null!=this._index}cancelNodeLoading(){this.isNodeLoading()&&(this.indexRequester.cancelAll(),this.dataRequester.cancelAll(),this._idleQueue.cancelAll(),this._cancelAllNodes(),this._nodeLoader=null,this._evaluateRunning())}_removeInvisibleNodes(e){const t=this._index;if(null==t||null==this._viewportQueries)return!1;H.clear(),this.layerView.getLoadedNodeIndices(H);const i=0===this._viewportQueries.maxDistance,s=i?()=>!1:e=>this._shouldDropNode(e);return H.filterInPlace(e=>{const i=t.getNode(e);return null==i||!t.isGeometryVisible(e)||s(i)}),H.length>0&&this._lodHandling.setLodGlobalDirty(),this._removeNodes(H,e,0),!(i&&this._lodDropFactor<1)&&(0===H.length||(H.clear(),!1))}markNodeToRemove(e){H.push(e)}removeMarkedNodes(){this._removeNodes(H,M,0)}_removeNodes(e,t,i){if(0!==e.length&&!t.done)for(null!=this._index&&this._index.requestUpdate();e.length>0&&!t.done;){const s=e.pop(),r=this._index;1===i&&this.layerView.nodeFadeoutEnabled&&null!=r&&r.isGeometryVisible(s)?this.layerView.fadeNode(s,1,!0):this.layerView.removeNode(s),t.madeProgress()}}_needsUpdate(e){if(e.resources.isEmpty||this._updatingNodes.has(e.index))return!1;const t=this.layerView.getLoadedAttributes(e.index);return null!=t&&t!==this._requiredAttributes}async _updateLoadedNode(e){const t=new AbortController;this._updatingNodes.set(e.index,t),this._evaluateRunning();try{const i=this.layerView.getLoadedAttributes(e.index),s=Q(i,this._requiredAttributes)?this.layerView.getAttributeData(e.index):await this._loadAttributes(e,this._requiredAttributes,t.signal);await this.schedule(()=>this.layerView.updateAttributes(e.index,{loadedAttributes:this._requiredAttributes,attributeData:s},t.signal),t.signal)}catch(i){if(!d(i))return this.layerView.updateAttributes(e.index,{loadedAttributes:this._requiredAttributes,attributeData:{}},t.signal)}this._updatingNodes.delete(e.index),this._evaluateRunning()}_loadNode(e){if(this._loadingNodes.has(e.index))return void i.getLogger(this).error("already loading node "+e.index);const t=new AbortController;this._loadingNodes.set(e.index,t),this._evaluateRunning(),this._loadAndAddNode(e,t.signal).then(i=>{i&&null!=this._index&&this._loadingNodes.get(e.index)===t&&(this._loadingNodes.delete(e.index),this._index.requestUpdate())}).catch(e=>{if(!d(e))throw e}).finally(()=>{this._loadingNodes.get(e.index)===t&&this._loadingNodes.delete(e.index),this._evaluateRunning()})}_loadAndAddNode(e,t){return 1===e.cacheState?this._loadUncached(e,t).then(()=>!1):this._loadCached(e,t).then(t=>!t&&(e.cacheState=1,!0)).catch(t=>!d(t)&&(e.cacheState=1,!0))}_enableFromGPUCache(e,t){if(this._disableMemCache||null==this._index)return!1;if(0===t&&!this._index.useNodeAsHole(e.index))return!0;const i=this._loadCachedGPUData(e);return!!i&&(this.layerView.addCachedGPUData(e,i,t),this._nodeAdded(),!0)}_loadCachedGPUData(e){const t=this.layerView.loadCachedGPUData(e.index);return null!=t?.attributeInfo&&Q(t.attributeInfo.loadedAttributes,this._requiredAttributes)?t:(this.layerView.deleteCachedGPUData(t),null)}_nodeAdded(){null!=this._index&&this._index.requestUpdate(),this._lodHandling.setLodGlobalDirty(),this._evaluateRunning()}updateLoadStatus(e,t){const i=this._index;null!=i&&i.updateChildrenLoaded(e,t?1:-1)}async _loadCached(e,t){if(this._enableFromGPUCache(e,1))return!0;const i=this.layerView;if(this.disableIDBCache||!i.loadCachedNodeData||!i.addCachedNodeData)return!1;const s=(t,i)=>this._nodeLoader.loadTextures(e,t,i),r=t=>this._clientNodeLoader.loadTextures(e,t),a=e.index>=0?s:r,d=await this.schedule(()=>i.loadCachedNodeData(e,t,a),t);if(null==d)return!1;const n=this._requiredAttributes,o=await this.reschedule(()=>this._loadAttributes(e,n,t),t);return await this.reschedule(()=>i.addCachedNodeData(e,d,{loadedAttributes:n,attributeData:o},t),t),this._nodeAdded(),!0}_loadUncached(e,t){return this._downloadingCount++,this._loadNodeData(e,t).then(i=>this.schedule(()=>this.layerView.addNode(e,i,t),t)).finally(()=>this._downloadingCount--).then(()=>{this._nodeAdded(),e.cacheState=2}).catch(t=>{if(!d(t))throw i.getLogger(this).error("#loadNodeData()",this.layer,`Failed to load node '${e.id}'`,t),e.failed=!0,this._index?.requestUpdate(),t})}_updateIdleState(e){e!==this._isIdle&&(this._isIdle=e,this._evaluateRunning())}get test(){}notifyLODUpdate(){this._lodHandling.setLodGlobalDirty(),this._evaluateRunning(),null!=this._index&&this._index.requestUpdate()}geometryFilterChanged(e){const t=this._index;null!=t&&t.layerFilterChanged(e),this._setCameraDirty()}};e([h({readOnly:!0})],U.prototype,"isMeshPyramid",null),e([h({readOnly:!0})],U.prototype,"isGraphics3D",null),e([h({readOnly:!0})],U.prototype,"useMaximumNumberOfFeatures",null),e([h({readOnly:!0})],U.prototype,"indexRequester",null),e([h({readOnly:!0})],U.prototype,"dataRequester",null),e([h({readOnly:!0})],U.prototype,"crsVertex",null),e([h({readOnly:!0})],U.prototype,"crsIndex",null),e([h()],U.prototype,"featureTarget",void 0),e([h()],U.prototype,"fixedFeatureTarget",void 0),e([h()],U.prototype,"layerView",void 0),e([h()],U.prototype,"layer",null),e([h()],U.prototype,"_updatingHandles",void 0),e([h()],U.prototype,"updating",null),e([h()],U.prototype,"running",void 0),e([h()],U.prototype,"updatingProgress",void 0),e([h({readOnly:!0})],U.prototype,"leavesReached",void 0),e([h({constructOnly:!0})],U.prototype,"worker",void 0),e([h({readOnly:!0,dependsOn:[]})],U.prototype,"rootNodeVisible",null),U=e([u("esri.layers.graphics.controllers.I3SOnDemandController")],U);const H=new r({deallocator:null});function Q(e,t){return null!=e&&e.length===t.length&&e.every(e=>j(t,e.name)>=0)}function j(e,t){const i=t.toLowerCase();for(let s=0;s<e.length;s++)if(e[s].name.toLowerCase()===i)return s;return-1}const E=g();export{U as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import{floatEqualAbsolute as e}from"../../core/mathUtils.js";import{equals as n}from"../../geometry/support/spatialReferenceUtils.js";function t(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++){const r=e[t],a=n[t];if(r.length!==a.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==a[e])return!1}return!0}function r(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!t(e[r],n[r]))return!1;return!0}function a(e,t){return e===t||null!=e&&null!=t&&n(e.spatialReference,t.spatialReference)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.m===t.m}function i(t,r,a){return t===r||null!=t&&null!=r&&n(t.spatialReference,r.spatialReference)&&e(t.x,r.x,a)&&e(t.y,r.y,a)&&e(t.z??0,r.z??0,a)&&e(t.m??0,r.m??0,a)}function u(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&r(e.paths,t.paths))}function l(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&r(e.rings,t.rings))}function s(e,r){return e.hasZ===r.hasZ&&e.hasM===r.hasM&&(!!n(e.spatialReference,r.spatialReference)&&t(e.points,r.points))}function f(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&(e.xmin===t.xmin&&e.ymin===t.ymin&&e.zmin===t.zmin&&e.xmax===t.xmax&&e.ymax===t.ymax&&e.zmax===t.zmax))}function c(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.type!==n.type)return!1;switch(e.type){case"point":return a(e,n);case"extent":return f(e,n);case"polyline":return u(e,n);case"polygon":return l(e,n);case"multipoint":return s(e,n);case"mesh":return!1;default:return}}function o(e,n){if(e===n)return!0;if(!e||!n)return!1;const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(const a of t)if(e[a]!==n[a])return!1;return!0}function h(e,n){return e===n||null!=e&&null!=n&&e.objectId===n.objectId&&(!!c(e.geometry,n.geometry)&&!!o(e.attributes,n.attributes))}export{h as equals,c as geometryEquals,a as pointEquals,i as pointNear};
5
+ import{floatEqualAbsolute as e}from"../../core/mathUtils.js";import{equals as n}from"../../geometry/support/spatialReferenceUtils.js";function t(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.length!==n.length)return!1;for(let t=0;t<e.length;t++){const r=e[t],a=n[t];if(r.length!==a.length)return!1;for(let e=0;e<r.length;e++)if(r[e]!==a[e])return!1}return!0}function r(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(!t(e[r],n[r]))return!1;return!0}function a(e,t){return e===t||null!=e&&null!=t&&n(e.spatialReference,t.spatialReference)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.m===t.m}function u(t,r,a){return t===r||null!=t&&null!=r&&n(t.spatialReference,r.spatialReference)&&e(t.x,r.x,a)&&e(t.y,r.y,a)&&e(t.z??0,r.z??0,a)&&e(t.m??0,r.m??0,a)}function i(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&r(e.paths,t.paths))}function l(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&r(e.rings,t.rings))}function s(e,r){return e.hasZ===r.hasZ&&e.hasM===r.hasM&&(!!n(e.spatialReference,r.spatialReference)&&t(e.points,r.points))}function f(e,t){return e.hasZ===t.hasZ&&e.hasM===t.hasM&&(!!n(e.spatialReference,t.spatialReference)&&(e.xmin===t.xmin&&e.ymin===t.ymin&&e.zmin===t.zmin&&e.xmax===t.xmax&&e.ymax===t.ymax&&e.zmax===t.zmax))}function c(e,n){if(e===n)return!0;if(null==e||null==n)return!1;if(e.type!==n.type)return!1;switch(e.type){case"point":return a(e,n);case"extent":return f(e,n);case"polyline":return i(e,n);case"polygon":return l(e,n);case"multipoint":return s(e,n);case"mesh":return!1;default:return}}function o(e,n){if(e===n)return!0;if(!e||!n)return!1;const t=Object.keys(e),r=Object.keys(n);if(t.length!==r.length)return!1;for(const a of t)if(e[a]!==n[a])return!1;return!0}function h(e,n){return e===n||null!=e&&null!=n&&e.objectId===n.objectId&&(!!c(e.geometry,n.geometry)&&!!o(e.attributes,n.attributes))}export{h as equals,c as geometryEquals,a as pointEquals,u as pointNear};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import{baseObjectMemory as e,estimateNumberArrayMemory as t,estimateNestedObjectMemory as s,estimateAttributesMemory as n}from"../../core/memoryEstimations.js";import{generateUID as r}from"../../core/uid.js";import i from"../../geometry/SpatialReference.js";import{empty as o,expandWithNestedArray as a}from"../../geometry/support/aaBoundingBox.js";import{empty as l,expandWithNestedArray as u}from"../../geometry/support/aaBoundingRect.js";import{unquantizePolyline as c,unquantizePolygon as p,unquantizeMultipoint as m,unquantizePoint as h}from"../../geometry/support/quantizationUtils.js";import{featureGeometryTypeKebabDictionary as f}from"../../geometry/support/typeUtils.js";import y from"../support/Field.js";import{getApproximateMaxDensificationSegments as g}from"../../views/2d/layers/graphics/densificationConstants.js";export{equals}from"./dehydratedFeatureComparison.js";class d{constructor(e,t,s){this.uid=e,this.geometry=t,this.attributes=s,this.visible=!0,this.objectId=null,this.centroid=null}}function b(e){return null!=e.geometry}class x{constructor(){this.exceededTransferLimit=!1,this.features=[],this.fields=[],this.hasM=!1,this.hasZ=!1,this.geometryType=null,this.objectIdFieldName=null,this.globalIdFieldName=null,this.geometryProperties=null,this.geohashFieldName=null,this.spatialReference=null,this.transform=null}}function j(e,t){const s=f.fromJSON(e.geometryType),n=i.fromJSON(e.spatialReference),r=e.transform,o=e.objectIdFieldName,a=t?.maxStringAttributeLength,l=t?.maxStringAttributeFields;let u;const g=e.features.map(t=>{const i=N(t,s,n,e.objectIdFieldName),f=i.geometry;if(w(i.attributes,l,a,e=>{u??=[];const t=R(i,o);null!=t&&u.push({objectId:t,attribute:e})}),null!=f&&r)switch(f.type){case"point":i.geometry=h(r,f,f);break;case"multipoint":i.geometry=m(r,f,f);break;case"polygon":i.geometry=p(r,f,f);break;case"polyline":i.geometry=c(r,f,f);break;case"extent":case"mesh":i.geometry=f}return i});return{geometryType:s,features:g,spatialReference:n,fields:e.fields?.map(e=>y.fromJSON(e))??[],objectIdFieldName:e.objectIdFieldName,globalIdFieldName:e.globalIdFieldName,geohashFieldName:e.geohashFieldName,geometryProperties:e.geometryProperties,hasZ:e.hasZ,hasM:e.hasM,exceededTransferLimit:e.exceededTransferLimit,transform:null,missingAttributes:u}}function N(e,t,s,n){return{uid:r(),objectId:n&&e.attributes?e.attributes[n]:null,attributes:e.attributes,geometry:Z(e.geometry,t,s),visible:!0}}function Z(e,t,s){if(null==e)return null;switch(t){case"point":{const t=e;return{x:t.x,y:t.y,z:t.z,m:t.m,hasZ:null!=t.z,hasM:null!=t.m,type:"point",spatialReference:s}}case"polyline":{const t=e;return{paths:t.paths,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"polyline",spatialReference:s}}case"polygon":{const t=e;return{rings:t.rings,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"polygon",spatialReference:s}}case"multipoint":{const t=e;return{points:t.points,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"multipoint",spatialReference:s}}}}function F(n){if(null==n)return 0;switch(n.type){case"point":return e+10+8+24;case"polyline":case"polygon":{let t=0;const r=2+(n.hasZ?1:0)+(n.hasM?1:0),i="polyline"===n.type?n.paths:n.rings,o="polyline"===n.type?n.curvePaths:n.curveRings;if(o?.length){const e=3*g()*128;t=8*e*r+128*e+32*(i.length+1)}else t=s(i);return e+64+t+34}case"multipoint":{const t=s(n.points);return e+t+64+34+32}case"extent":return e+10+64+34;case"mesh":{const s=n.vertexAttributes;return e+t(s.position,s.normal,s.uv,s.tangent)}default:return e}}function I(e){let t=32;return t+=n(e.attributes),t+=3,t+=8+F(e.geometry),t}function k(e){if(null==e)return 0;switch(e.type){case"point":return 1;case"polyline":{let t=0;for(const s of e.paths)t+=s.length;return t}case"polygon":{let t=0;for(const s of e.rings)t+=s.length;return t}case"multipoint":return e.points.length;case"extent":return 2;case"mesh":{const t=e.vertexAttributes&&e.vertexAttributes.position;return t?t.length/3:0}default:return}}function M(e){if(null==e)return!1;switch(e.type){case"extent":case"point":return!0;case"polyline":for(const t of e.paths)if(t.length>0)return!0;return!1;case"polygon":for(const t of e.rings)if(t.length>0)return!0;return!1;case"multipoint":return e.points.length>0;case"mesh":return!e.loaded||e.vertexAttributes.position.length>0}}function v(e,t){switch(o(t),"mesh"===e.type&&(e=e.extent),e.type){case"point":t[0]=t[3]=e.x,t[1]=t[4]=e.y,e.hasZ&&(t[2]=t[5]=e.z);break;case"polyline":for(let s=0;s<e.paths.length;s++)a(t,e.paths[s],!!e.hasZ);break;case"polygon":for(let s=0;s<e.rings.length;s++)a(t,e.rings[s],!!e.hasZ);break;case"multipoint":a(t,e.points,!!e.hasZ);break;case"extent":t[0]=e.xmin,t[1]=e.ymin,t[3]=e.xmax,t[4]=e.ymax,null!=e.zmin&&(t[2]=e.zmin),null!=e.zmax&&(t[5]=e.zmax)}return t}function z(e,t){switch(l(t),"mesh"===e.type&&(e=e.extent),e.type){case"point":t[0]=t[2]=e.x,t[1]=t[3]=e.y;break;case"polyline":for(let s=0;s<e.paths.length;s++)u(t,e.paths[s]);break;case"polygon":for(let s=0;s<e.rings.length;s++)u(t,e.rings[s]);break;case"multipoint":u(t,e.points);break;case"extent":t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax}}function R(e,t){return null!=e.objectId?e.objectId:e.attributes&&t?e.attributes[t]:null}function w(e,t,s,n){if(t?.size&&null!=s&&e)for(const r in e){if(!t.has(r))continue;const i=e[r];"string"==typeof i&&i.length>s&&(n(r),e[r]="")}}export{d as DehydratedFeatureClass,x as DehydratedFeatureSetClass,v as computeAABB,z as computeAABR,F as estimateGeometryMemory,I as estimateSize,j as fromFeatureSetJSON,Z as fromJSONGeometry,R as getObjectId,b as hasGeometry,M as hasVertices,k as numVertices,w as removeLargeStringAttributes};
5
+ import{baseObjectMemory as e,estimateNumberArrayMemory as t,estimateNestedObjectMemory as s,estimateAttributesMemory as n}from"../../core/memoryEstimations.js";import{generateUID as r}from"../../core/uid.js";import i from"../../geometry/SpatialReference.js";import{empty as o,expandWithNestedArray as a}from"../../geometry/support/aaBoundingBox.js";import{empty as l,expandWithNestedArray as u}from"../../geometry/support/aaBoundingRect.js";import{unquantizePolyline as c,unquantizePolygon as p,unquantizeMultipoint as m,unquantizePoint as h}from"../../geometry/support/quantizationUtils.js";import{featureGeometryTypeKebabDictionary as f}from"../../geometry/support/typeUtils.js";import y from"../support/Field.js";import{getApproximateMaxDensificationSegments as g}from"../../views/2d/layers/graphics/densificationConstants.js";export{equals}from"./dehydratedFeatureComparison.js";class d{constructor(e,t,s){this.uid=e,this.geometry=t,this.attributes=s,this.visible=!0,this.objectId=null,this.centroid=null}}function b(e){return null!=e.geometry}class x{constructor(){this.exceededTransferLimit=!1,this.features=[],this.fields=[],this.hasM=!1,this.hasZ=!1,this.geometryType=null,this.objectIdFieldName=null,this.globalIdFieldName=null,this.geometryProperties=null,this.geohashFieldName=null,this.spatialReference=null,this.transform=null}}function j(e,t){const s=f.fromJSON(e.geometryType),n=i.fromJSON(e.spatialReference),r=e.transform,o=e.objectIdFieldName,a=t?.maxStringAttributeLength,l=t?.maxStringAttributeFields;let u;const g=e.features.map(t=>{const i=N(t,s,n,e.objectIdFieldName),f=i.geometry;if(w(i.attributes,l,a,e=>{u??=[];const t=R(i,o);null!=t&&u.push({objectId:t,attribute:e})}),null!=f&&r)switch(f.type){case"point":i.geometry=h(r,f,f);break;case"multipoint":i.geometry=m(r,f,f);break;case"polygon":i.geometry=p(r,f,f);break;case"polyline":i.geometry=c(r,f,f);break;case"extent":case"mesh":i.geometry=f}return i});return{geometryType:s,features:g,spatialReference:n,fields:e.fields?.map(e=>y.fromJSON(e))??[],objectIdFieldName:e.objectIdFieldName,globalIdFieldName:e.globalIdFieldName,geohashFieldName:e.geohashFieldName,geometryProperties:e.geometryProperties,hasZ:e.hasZ,hasM:e.hasM,exceededTransferLimit:e.exceededTransferLimit,transform:null,missingAttributes:u}}function N(e,t,s,n){return{uid:r(),objectId:n&&e.attributes?e.attributes[n]:null,attributes:e.attributes,geometry:Z(e.geometry,t,s),visible:!0}}function Z(e,t,s){if(null==e)return null;switch(t){case"point":{const t=e;return{x:t.x,y:t.y,z:t.z,m:t.m,hasZ:null!=t.z,hasM:null!=t.m,type:"point",spatialReference:s}}case"polyline":{const t=e;return{paths:t.paths,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"polyline",spatialReference:s}}case"polygon":{const t=e;return{rings:t.rings,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"polygon",spatialReference:s}}case"multipoint":{const t=e;return{points:t.points,hasZ:!!t.hasZ,hasM:!!t.hasM,type:"multipoint",spatialReference:s}}}}function F(n){if(null==n)return 0;switch(n.type){case"point":return e+10+8+24;case"polyline":case"polygon":{let t=0;const r=2+(n.hasZ?1:0)+(n.hasM?1:0),i="polyline"===n.type?n.paths:n.rings,o="polyline"===n.type?n.curvePaths:n.curveRings;if(o?.length){const e=3*g()*128;t=8*e*r+128*e+32*(i.length+1)}else t=s(i);return e+64+t+34}case"multipoint":{const t=s(n.points);return e+t+64+34+32}case"extent":return e+10+64+34;case"mesh":{const s=n.vertexAttributes;return e+t(s.position,s.normal,s.uv,s.tangent)}default:return e}}function I(e){let t=32;return t+=n(e.attributes),t+=3,t+=8+F(e.geometry),t}function k(e){if(null==e)return 0;switch(e.type){case"point":return 1;case"polyline":{let t=0;for(const s of e.paths)t+=s.length;return t}case"polygon":{let t=0;for(const s of e.rings)t+=s.length;return t}case"multipoint":return e.points.length;case"extent":return 2;case"mesh":{const t=e.vertexAttributes&&e.vertexAttributes.position;return t?t.length/3:0}default:return}}function M(e){if(null==e)return!1;switch(e.type){case"extent":case"point":return!0;case"polyline":for(const t of e.paths)if(t.length>0)return!0;return!1;case"polygon":for(const t of e.rings)if(t.length>0)return!0;return!1;case"multipoint":return e.points.length>0;case"mesh":return!e.loaded||e.vertexAttributes.position.length>0}}function v(e,t){switch(o(t),"mesh"===e.type&&(e=e.extent),e.type){case"point":t[0]=t[3]=e.x,t[1]=t[4]=e.y,e.hasZ&&(t[2]=t[5]=e.z);break;case"polyline":for(let s=0;s<e.paths.length;s++)a(t,e.paths[s],!!e.hasZ);break;case"polygon":for(let s=0;s<e.rings.length;s++)a(t,e.rings[s],!!e.hasZ);break;case"multipoint":a(t,e.points,!!e.hasZ);break;case"extent":t[0]=e.xmin,t[1]=e.ymin,t[3]=e.xmax,t[4]=e.ymax,null!=e.zmin&&(t[2]=e.zmin),null!=e.zmax&&(t[5]=e.zmax)}return t}function z(e,t){switch(l(t),"mesh"===e.type&&(e=e.extent),e.type){case"point":t[0]=t[2]=e.x,t[1]=t[3]=e.y;break;case"polyline":for(let s=0;s<e.paths.length;s++)u(t,e.paths[s]);break;case"polygon":for(let s=0;s<e.rings.length;s++)u(t,e.rings[s]);break;case"multipoint":u(t,e.points);break;case"extent":t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax}}function R(e,t){return null!=e.objectId?e.objectId:e.attributes&&t?e.attributes[t]:null}function w(e,t,s,n){if(t?.size&&null!=s&&e)for(const r in e){if(!t.has(r))continue;const i=e[r];"string"==typeof i&&i.length>s&&(n(r),e[r]="")}}export{d as DehydratedFeatureClass,x as DehydratedFeatureSetClass,v as computeAABB,z as computeAABR,F as estimateGeometryMemory,I as estimateSize,j as fromFeatureSetJSON,Z as fromJSONGeometry,R as getObjectId,b as hasGeometry,M as hasVertices,k as numVertices,w as removeLargeStringAttributes};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Graphic.js";import"../../core/has.js";import{clone as t}from"../../core/lang.js";import{isFloat32Array as n,isFloat64Array as r}from"../../core/typedArrayUtil.js";import a from"../../geometry/SpatialReference.js";import{fromJSON as s}from"../../geometry/support/jsonUtils.js";import{makeDehydratedPoint as i}from"./dehydratedPoint.js";function o(e){return"declaredClass"in e}function m(e){return"declaredClass"in e}function l(e){return"declaredClass"in e}function c(n,r,a){return n?l(n)?(n.origin!==a&&(n.origin=a),n):new e({layer:r,sourceLayer:r,origin:a,visible:n.visible,symbol:t(n.symbol),attributes:t(n.attributes),geometry:u(n.geometry)}):null}function u(e){return null==e?null:o(e)?e:s(f(e))}function f(e){const{wkid:t,wkt:n,wkt2:r,latestWkid:a}=e.spatialReference,s={wkid:t,wkt:n,wkt2:r,latestWkid:a};switch(e.type){case"point":{const{x:t,y:n,z:r,m:a}=e;return{x:t,y:n,z:r,m:a,spatialReference:s}}case"polygon":{const{rings:t,hasZ:n,hasM:r}=e;return{rings:p(t),hasZ:n,hasM:r,spatialReference:s}}case"polyline":{const{paths:t,hasZ:n,hasM:r}=e;return{paths:p(t),hasZ:n,hasM:r,spatialReference:s}}case"extent":{const{xmin:t,xmax:n,ymin:r,ymax:a,zmin:i,zmax:o,mmin:m,mmax:l,hasZ:c,hasM:u}=e;return{xmin:t,xmax:n,ymin:r,ymax:a,zmin:i,zmax:o,mmin:m,mmax:l,hasZ:c,hasM:u,spatialReference:s}}case"multipoint":{const{points:t,hasZ:n,hasM:r}=e;return{points:d(t)?h(t):t,hasZ:n,hasM:r,spatialReference:s}}default:return}}function p(e){return y(e)?e.map(e=>h(e)):e}function h(e){return e.map(e=>Array.from(e))}function y(e){for(const t of e)if(0!==t.length)return d(t);return!1}function d(e){return e.length>0&&(n(e[0])||r(e[0]))}function x(e,t){if(!e)return null;let n;if(m(e)){if(null==t)return e.clone();if(m(t))return t.copy(e)}return null!=t?(n=t,n.x=e.x,n.y=e.y,n.spatialReference=e.spatialReference,e.hasZ?(n.z=e.z,n.hasZ=e.hasZ):(n.z=void 0,n.hasZ=!1),e.hasM?(n.m=e.m,n.hasM=!0):(n.m=void 0,n.hasM=!1)):(n=i(e.x,e.y,e.z,e.spatialReference),e.hasM&&(n.m=e.m,n.hasM=!0)),n}function k(e){const{wkid:t,wkt:n,wkt2:r,latestWkid:s}=e,i={wkid:t,wkt:n,wkt2:r,latestWkid:s};return a.fromJSON(i)}export{x as clonePoint,u as hydrateGeometry,c as hydrateGraphic,k as hydratedSpatialReference,o as isHydratedGeometry,l as isHydratedGraphic,m as isHydratedPoint};
5
+ import e from"../../Graphic.js";import{clone as t}from"../../core/lang.js";import{isFloat32Array as n,isFloat64Array as r}from"../../core/typedArrayUtil.js";import a from"../../geometry/SpatialReference.js";import{fromJSON as s}from"../../geometry/support/jsonUtils.js";import{makeDehydratedPoint as i}from"./dehydratedPoint.js";function o(e){return"declaredClass"in e}function m(e){return"declaredClass"in e}function l(e){return"declaredClass"in e}function c(n,r,a){return n?l(n)?(n.origin!==a&&(n.origin=a),n):new e({layer:r,sourceLayer:r,origin:a,visible:n.visible,symbol:t(n.symbol),attributes:t(n.attributes),geometry:u(n.geometry)}):null}function u(e){return null==e?null:o(e)?e:s(f(e))}function f(e){const{wkid:t,wkt:n,wkt2:r,latestWkid:a}=e.spatialReference,s={wkid:t,wkt:n,wkt2:r,latestWkid:a};switch(e.type){case"point":{const{x:t,y:n,z:r,m:a}=e;return{x:t,y:n,z:r,m:a,spatialReference:s}}case"polygon":{const{rings:t,hasZ:n,hasM:r}=e;return{rings:p(t),hasZ:n,hasM:r,spatialReference:s}}case"polyline":{const{paths:t,hasZ:n,hasM:r}=e;return{paths:p(t),hasZ:n,hasM:r,spatialReference:s}}case"extent":{const{xmin:t,xmax:n,ymin:r,ymax:a,zmin:i,zmax:o,mmin:m,mmax:l,hasZ:c,hasM:u}=e;return{xmin:t,xmax:n,ymin:r,ymax:a,zmin:i,zmax:o,mmin:m,mmax:l,hasZ:c,hasM:u,spatialReference:s}}case"multipoint":{const{points:t,hasZ:n,hasM:r}=e;return{points:d(t)?h(t):t,hasZ:n,hasM:r,spatialReference:s}}default:return}}function p(e){return y(e)?e.map(e=>h(e)):e}function h(e){return e.map(e=>Array.from(e))}function y(e){for(const t of e)if(0!==t.length)return d(t);return!1}function d(e){return e.length>0&&(n(e[0])||r(e[0]))}function x(e,t){if(!e)return null;let n;if(m(e)){if(null==t)return e.clone();if(m(t))return t.copy(e)}return null!=t?(n=t,n.x=e.x,n.y=e.y,n.spatialReference=e.spatialReference,e.hasZ?(n.z=e.z,n.hasZ=e.hasZ):(n.z=void 0,n.hasZ=!1),e.hasM?(n.m=e.m,n.hasM=!0):(n.m=void 0,n.hasM=!1)):(n=i(e.x,e.y,e.z,e.spatialReference),e.hasM&&(n.m=e.m,n.hasM=!0)),n}function k(e){const{wkid:t,wkt:n,wkt2:r,latestWkid:s}=e,i={wkid:t,wkt:n,wkt2:r,latestWkid:s};return a.fromJSON(i)}export{x as clonePoint,u as hydrateGeometry,c as hydrateGraphic,k as hydratedSpatialReference,o as isHydratedGeometry,l as isHydratedGraphic,m as isHydratedPoint};
@@ -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{deepClone as e}from"../../../arcade/deepClone.js";import"../../../core/has.js";import"../../../core/RandomLCG.js";import"../../../core/Logger.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import a from"../../../geometry/Point.js";import n from"../../../geometry/Polygon.js";import{fromArray as r,intersectLine as i,fromPoints as o}from"../../../geometry/support/plane.js";import s from"./updateElevation.js";import{pointToArray as c,or as m}from"./utils.js";import{worldToImagePanoramic as p,worldToImage as f}from"./worldToImage.js";import{normalizeDegrees as l}from"../../../widgets/OrientedImageryViewer/components/imageNavigationUtils.js";async function g(e,n,r,s=w){const{cameraLocation:p,farPlaneVertices:f}=r,l=c(p),g=new Array;await d(f,r,g);let h=o(g[0],g[1],g[2]),u=e.clone();for(let w=0;w<s;w++){const s=t();if(!i(h,l,c(e),s))break;let f=0,w=null;if(({error:f,imagePoint:w,pointWithZ:u}=await j(n,new a(s,p.spatialReference),r)),f<=1)break;const[d,b]=y(p.spatialReference,g);if(m(d<=1,b<=1))break;g.splice(0,g.length,...await x(d,b,new a(s,p.spatialReference),r)),h=o(g[0],g[1],g[2])}return c(u)}async function h(e,n,o,s=w){const{cameraLocation:p,farPlaneVertices:f}=o,l=c(p),g=new Array;await d(f,o,g);const h=[0,0,0,0];let u=r(h,g.flat(),!1),j=e.clone();for(let w=0;w<s;w++){const s=t();if(!i(h,l,c(e),s)||!u)break;let f,w=0;if(({error:w,imagePoint:f,pointWithZ:j}=await b(n,new a(s,p.spatialReference),o)),w<=1)break;const[d,R]=y(p.spatialReference,g);if(m(d<=1,R<=1))break;g.splice(0,g.length,...await x(d,R,new a(s,p.spatialReference),o)),u=r(h,g.flat(),!1)}return c(j)}const w=10,u=10;function y(e,t){const a=new n({spatialReference:e});a.addRing(t);return[a.extent?.width?a.extent.width/u:1,a.extent?.height?a.extent.height/u:1]}async function d(t,a,n){const r=e(t),i=await s(r,a);n.push(...i.map(c))}async function j(e,t,a){const n=await s(t,a),r=f(n,a);return{error:R(r,e),imagePoint:r,pointWithZ:n}}async function b(e,t,a){const n=await s(t,a),r=p(n,a),i=l(r.heading+a.cameraHeading);return{error:Math.abs(i-e.heading)+Math.abs(r.pitch-e.pitch),imagePoint:r,pointWithZ:n}}const R=(e,t)=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y);async function x(e,t,n,r){const i=[[-e,-t],[e,-t],[e,t],[-e,t]].map(([e,t])=>new a([n.x+e,n.y+t],n.spatialReference));return s(i,r).then(e=>e.map(e=>e.toArray()))}export{g as rectifyMapPoint,h as rectifyMapPointPanoramic};
5
+ import{deepClone as e}from"../../../arcade/deepClone.js";import"../../../core/RandomLCG.js";import"../../../core/Logger.js";import"../../../core/has.js";import{create as t}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import a from"../../../geometry/Point.js";import n from"../../../geometry/Polygon.js";import{fromArray as r,intersectLine as i,fromPoints as o}from"../../../geometry/support/plane.js";import s from"./updateElevation.js";import{pointToArray as c,or as m}from"./utils.js";import{worldToImagePanoramic as p,worldToImage as f}from"./worldToImage.js";import{normalizeDegrees as l}from"../../../widgets/OrientedImageryViewer/components/imageNavigationUtils.js";async function g(e,n,r,s=w){const{cameraLocation:p,farPlaneVertices:f}=r,l=c(p),g=new Array;await d(f,r,g);let h=o(g[0],g[1],g[2]),u=e.clone();for(let w=0;w<s;w++){const s=t();if(!i(h,l,c(e),s))break;let f=0,w=null;if(({error:f,imagePoint:w,pointWithZ:u}=await j(n,new a(s,p.spatialReference),r)),f<=1)break;const[d,b]=y(p.spatialReference,g);if(m(d<=1,b<=1))break;g.splice(0,g.length,...await x(d,b,new a(s,p.spatialReference),r)),h=o(g[0],g[1],g[2])}return c(u)}async function h(e,n,o,s=w){const{cameraLocation:p,farPlaneVertices:f}=o,l=c(p),g=new Array;await d(f,o,g);const h=[0,0,0,0];let u=r(h,g.flat(),!1),j=e.clone();for(let w=0;w<s;w++){const s=t();if(!i(h,l,c(e),s)||!u)break;let f,w=0;if(({error:w,imagePoint:f,pointWithZ:j}=await b(n,new a(s,p.spatialReference),o)),w<=1)break;const[d,R]=y(p.spatialReference,g);if(m(d<=1,R<=1))break;g.splice(0,g.length,...await x(d,R,new a(s,p.spatialReference),o)),u=r(h,g.flat(),!1)}return c(j)}const w=10,u=10;function y(e,t){const a=new n({spatialReference:e});a.addRing(t);return[a.extent?.width?a.extent.width/u:1,a.extent?.height?a.extent.height/u:1]}async function d(t,a,n){const r=e(t),i=await s(r,a);n.push(...i.map(c))}async function j(e,t,a){const n=await s(t,a),r=f(n,a);return{error:R(r,e),imagePoint:r,pointWithZ:n}}async function b(e,t,a){const n=await s(t,a),r=p(n,a),i=l(r.heading+a.cameraHeading);return{error:Math.abs(i-e.heading)+Math.abs(r.pitch-e.pitch),imagePoint:r,pointWithZ:n}}const R=(e,t)=>Math.abs(e.x-t.x)+Math.abs(e.y-t.y);async function x(e,t,n,r){const i=[[-e,-t],[e,-t],[e,t],[-e,t]].map(([e,t])=>new a([n.x+e,n.y+t],n.spatialReference));return s(i,r).then(e=>e.map(e=>e.toArray()))}export{g as rectifyMapPoint,h as rectifyMapPointPanoramic};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/has.js";import{JSONMap as e}from"../../../core/jsonMap.js";import{isIntegerPixelType as t}from"../formats/pixelRangeUtils.js";import a from"../../support/PixelBlock.js";const n=new e({0:"difference",1:"relative-difference",2:"categorical",3:"euclidean-distance",4:"angle-difference",5:"band-with-most-change"},{useNumericKeys:!0}),s=new e({0:"all",1:"changed",2:"unchanged"},{useNumericKeys:!0});function i(e,n,s,i){const[f,h]=e,p=t(s)&&!t(f.pixelType)&&!t(h.pixelType),m=[f.mask,h.mask].filter(e=>e),u=a.combineBandMasks(m),g=e.map(e=>e.pixels[0]),{width:k,height:x}=f,b=a.createEmptyBand(s,k*x);switch(n){case"difference":case"relative-difference":o({bands:g,mask:u,outBand:b,isRoundingNeeded:p,isRelative:"relative-difference"===n});break;case"categorical":c({bands:g,mask:u,outBand:b,...i});break;case"euclidean-distance":l({pixels:e.map(e=>e.pixels),mask:u,outBand:b});break;case"angle-difference":r({pixels:e.map(e=>e.pixels),mask:u,outBand:b});break;case"band-with-most-change":d({pixels:e.map(e=>e.pixels),mask:u,outBand:b})}const B=new a({width:k,height:x,pixels:[b],pixelType:s,mask:u});return B.updateStatistics(),B}function o(e){const{bands:[t,a],mask:n,isRelative:s,isRoundingNeeded:i,outBand:o}=e,c=t.length;for(let l=0;l<c;l++)if(!n||n[l]){let e=t[l]-a[l];if(s){const n=Math.max(Math.abs(t[l])-Math.abs(a[l]));e=n>0?e/n:0}o[l]=i?Math.round(e):e}}function c(e){const{bands:[t,a],categoryIndexLookups:[n,s],classNames:[i,o],mask:c,keepMethod:l,outBand:r}=e,d=t.length,f=i.length,h=o.length,p=f*h,m=p+1,u=p+2;for(let g=0;g<d;g++)if(!c||c[g]){const e=t[g],c=a[g],d=n[e],f=s[c],k=i[d],x=o[f];r[g]=null==d||null==f?p:"changed"===l&&k===x?m:"unchanged"===l&&k!==x?u:d*h+f}}function l(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let c=0;c<i;c++)if(!n||n[c]){let e=0;for(let n=0;n<o;n++){const s=t[n][c]-a[n][c];e+=s*s}s[c]=Math.sqrt(e)}}function r(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let c=0;c<i;c++)if(!n||n[c]){let e=0,n=0,i=0;for(let s=0;s<o;s++){const o=t[s][c],l=a[s][c];e+=o*l,n+=o*o,i+=l*l}const l=Math.sqrt(n*i);s[c]=l?Math.acos(e/l):1.5707963267948966}}function d(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let c=0;c<i;c++)if(!n||n[c]){let e=0,n=0;for(let s=0;s<o;s++){const i=Math.abs(t[s][c]-a[s][c]);i>e&&(e=i,n=s)}s[c]=n}}export{n as changeMethodMap,i as computeChange,s as keepMethodMap};
5
+ import{JSONMap as e}from"../../../core/jsonMap.js";import{isIntegerPixelType as t}from"../formats/pixelRangeUtils.js";import a from"../../support/PixelBlock.js";const n=new e({0:"difference",1:"relative-difference",2:"categorical",3:"euclidean-distance",4:"angle-difference",5:"band-with-most-change"},{useNumericKeys:!0}),s=new e({0:"all",1:"changed",2:"unchanged"},{useNumericKeys:!0});function i(e,n,s,i){const[f,h]=e,p=t(s)&&!t(f.pixelType)&&!t(h.pixelType),u=[f.mask,h.mask].filter(e=>e),m=a.combineBandMasks(u),g=e.map(e=>e.pixels[0]),{width:k,height:x}=f,b=a.createEmptyBand(s,k*x);switch(n){case"difference":case"relative-difference":o({bands:g,mask:m,outBand:b,isRoundingNeeded:p,isRelative:"relative-difference"===n});break;case"categorical":l({bands:g,mask:m,outBand:b,...i});break;case"euclidean-distance":c({pixels:e.map(e=>e.pixels),mask:m,outBand:b});break;case"angle-difference":d({pixels:e.map(e=>e.pixels),mask:m,outBand:b});break;case"band-with-most-change":r({pixels:e.map(e=>e.pixels),mask:m,outBand:b})}const B=new a({width:k,height:x,pixels:[b],pixelType:s,mask:m});return B.updateStatistics(),B}function o(e){const{bands:[t,a],mask:n,isRelative:s,isRoundingNeeded:i,outBand:o}=e,l=t.length;for(let c=0;c<l;c++)if(!n||n[c]){let e=t[c]-a[c];if(s){const n=Math.max(Math.abs(t[c])-Math.abs(a[c]));e=n>0?e/n:0}o[c]=i?Math.round(e):e}}function l(e){const{bands:[t,a],categoryIndexLookups:[n,s],classNames:[i,o],mask:l,keepMethod:c,outBand:d}=e,r=t.length,f=i.length,h=o.length,p=f*h,u=p+1,m=p+2;for(let g=0;g<r;g++)if(!l||l[g]){const e=t[g],l=a[g],r=n[e],f=s[l],k=i[r],x=o[f];d[g]=null==r||null==f?p:"changed"===c&&k===x?u:"unchanged"===c&&k!==x?m:r*h+f}}function c(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let l=0;l<i;l++)if(!n||n[l]){let e=0;for(let n=0;n<o;n++){const s=t[n][l]-a[n][l];e+=s*s}s[l]=Math.sqrt(e)}}function d(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let l=0;l<i;l++)if(!n||n[l]){let e=0,n=0,i=0;for(let s=0;s<o;s++){const o=t[s][l],c=a[s][l];e+=o*c,n+=o*o,i+=c*c}const c=Math.sqrt(n*i);s[l]=c?Math.acos(e/c):1.5707963267948966}}function r(e){const{pixels:[t,a],mask:n,outBand:s}=e,i=t[0].length,o=t.length;for(let l=0;l<i;l++)if(!n||n[l]){let e=0,n=0;for(let s=0;s<o;s++){const i=Math.abs(t[s][l]-a[s][l]);i>e&&(e=i,n=s)}s[l]=n}}export{n as changeMethodMap,i as computeChange,s as keepMethodMap};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/has.js";const e=new Set(["+","-","*","/","(",")"]);function t(t,r){(t=t.replaceAll(" ","")).startsWith("-")&&(t="0"+t),t.startsWith("+")&&(t=t.slice(1));const l=t.split(""),o=[],s=[];let a="";for(let i=0;i<l.length;i++){const t=l[i];e.has(t)?(a.length&&s.push(n(a,r)),o.push(t),a=""):a=a.concat(t)}return a.length&&s.push(n(a,r)),{ops:o,nums:s}}function n(e,t){return e.toLowerCase().startsWith("b")?t[parseInt(e.slice(1),10)-1]:parseFloat(e)}function r(e,t,n,r){if("number"==typeof n&&"number"==typeof r)return n+r;let l,o,s;"number"==typeof n?(s=r,l=s.length,o=new Float32Array(l),o.fill(n)):(l=n.length,o=n,r.constructor===Number?(s=new Float32Array(l),s.fill(r)):s=r);const a=new Float32Array(l);switch(t){case"+":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]+s[t]);break;case"-":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]-s[t]);break;case"*":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]*s[t]);break;case"/":for(let t=0;t<l;t++)(null==e||e[t])&&s[t]&&(a[t]=o[t]/s[t]);break;case"(":case")":throw new Error("encountered error with custom band index equation")}return a}function l(e,t){e.splice(t,1);let n=0,r=0;do{n=0,r=0;for(let t=0;t<e.length;t++)if("("===e[t])n=t;else if(")"===e[t]){r=t;break}r===n+1&&e.splice(n,2)}while(r===n+1);return e}function o(e){if(1===e.length)return{opIndex:0,numIndex:0};let t=0,n=0;for(let s=0;s<e.length;s++)if("("===e[s])t=s;else if(")"===e[s]){n=s;break}const r=0===n?e:e.slice(t+1,n);let l=-1;for(let s=0;s<r.length;s++)if("*"===r[s]||"/"===r[s]){l=s;break}if(l>-1)n>0&&(l+=t+1);else{for(let e=0;e<r.length;e++)if("+"===r[e]||"-"===r[e]){l=e;break}n>0&&(l+=t+1)}let o=0;for(let s=0;s<l;s++)"("===e[s]&&o++;return{opIndex:l,numIndex:l-o}}function s(e,n,s){let a,{ops:i,nums:f}=t(s,n);if(0===i.length){const e=1===f.length?f[0]:n[0];if(e instanceof Float32Array)return[e];const t=new Float32Array(n[0].length);return"number"==typeof e?t.fill(e):t.set(e),[t]}for(;i.length>0;){const{numIndex:t,opIndex:n}=o(i);if(a=r(e,i[n],f[t],f[t+1]),1===i.length)break;i=l(i,n),f.splice(t,2,a)}return[a]}export{s as calculateCustomBandIndex};
5
+ const e=new Set(["+","-","*","/","(",")"]);function t(t,r){(t=t.replaceAll(" ","")).startsWith("-")&&(t="0"+t),t.startsWith("+")&&(t=t.slice(1));const l=t.split(""),o=[],s=[];let a="";for(let f=0;f<l.length;f++){const t=l[f];e.has(t)?(a.length&&s.push(n(a,r)),o.push(t),a=""):a=a.concat(t)}return a.length&&s.push(n(a,r)),{ops:o,nums:s}}function n(e,t){return e.toLowerCase().startsWith("b")?t[parseInt(e.slice(1),10)-1]:parseFloat(e)}function r(e,t,n,r){if("number"==typeof n&&"number"==typeof r)return n+r;let l,o,s;"number"==typeof n?(s=r,l=s.length,o=new Float32Array(l),o.fill(n)):(l=n.length,o=n,r.constructor===Number?(s=new Float32Array(l),s.fill(r)):s=r);const a=new Float32Array(l);switch(t){case"+":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]+s[t]);break;case"-":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]-s[t]);break;case"*":for(let t=0;t<l;t++)(null==e||e[t])&&(a[t]=o[t]*s[t]);break;case"/":for(let t=0;t<l;t++)(null==e||e[t])&&s[t]&&(a[t]=o[t]/s[t]);break;case"(":case")":throw new Error("encountered error with custom band index equation")}return a}function l(e,t){e.splice(t,1);let n=0,r=0;do{n=0,r=0;for(let t=0;t<e.length;t++)if("("===e[t])n=t;else if(")"===e[t]){r=t;break}r===n+1&&e.splice(n,2)}while(r===n+1);return e}function o(e){if(1===e.length)return{opIndex:0,numIndex:0};let t=0,n=0;for(let s=0;s<e.length;s++)if("("===e[s])t=s;else if(")"===e[s]){n=s;break}const r=0===n?e:e.slice(t+1,n);let l=-1;for(let s=0;s<r.length;s++)if("*"===r[s]||"/"===r[s]){l=s;break}if(l>-1)n>0&&(l+=t+1);else{for(let e=0;e<r.length;e++)if("+"===r[e]||"-"===r[e]){l=e;break}n>0&&(l+=t+1)}let o=0;for(let s=0;s<l;s++)"("===e[s]&&o++;return{opIndex:l,numIndex:l-o}}function s(e,n,s){let a,{ops:f,nums:i}=t(s,n);if(0===f.length){const e=1===i.length?i[0]:n[0];if(e instanceof Float32Array)return[e];const t=new Float32Array(n[0].length);return"number"==typeof e?t.fill(e):t.set(e),[t]}for(;f.length>0;){const{numIndex:t,opIndex:n}=o(f);if(a=r(e,f[n],i[t],i[t+1]),1===f.length)break;f=l(f,n),i.splice(t,2,a)}return[a]}export{s as calculateCustomBandIndex};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/has.js";import{JSONMap as t}from"../../../core/jsonMap.js";import{mirror as e}from"./mirror.js";import o from"../../support/PixelBlock.js";const n=new t({1:"min",2:"max",3:"mean",4:"stddev",5:"median",6:"majority",7:"minority"},{useNumericKeys:!0});function s(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{statisticsType:a,kernelRows:c,kernelCols:f}=e,h="stddev"===a,u=s*r,m=new Float64Array(u),d=new Float64Array(u),y=new Uint32Array(u);for(let A=0;A<r;A++){const t=A*s;let e=0,o=0,r=0;for(let s=0;s<f;s++)i&&!i[t+s]||(e+=n[t+s],h&&(o+=n[t+s]**2),r++);m[t]=e,d[t]=o,y[t]=r;for(let l=1;l<=s-f;l++){const s=t+l-1,a=s+f;i?(i[s]&&(r--,e-=n[s],h&&(o-=n[s]**2)),i[a]&&(r++,e+=n[a],h&&(o+=n[a]**2))):(e-=n[s],e+=n[a],h&&(o-=n[s]**2,o+=n[a]**2)),m[t+l]=e,y[t+l]=r,h&&(d[t+l]=o)}}const p=new Float64Array(u),k=new Float64Array(u),w=new Uint32Array(u),M=c*s;for(let A=0;A<=s-f;A++){let t=0,e=0,o=0;for(let n=0;n<c;n++){const r=n*s+A;t+=m[r],o+=y[r],h&&(e+=d[r])}p[A]=t,k[A]=e,w[A]=o;for(let n=1;n<=r-c;n++){const r=(n-1)*s+A,i=r+M;t-=m[r],t+=m[i],o-=y[r],o+=y[i],h&&(e-=d[r],e+=d[i]),p[n*s+A]=t,k[n*s+A]=e,w[n*s+A]=o}}const g=Math.floor(c/2),b=Math.floor(f/2);for(let A=g;A<r-g;A++){const t=A*s;for(let e=b;e<s-b;e++){const n=(A-g)*s+e-b,r=w[n];if(0===r||o&&(!i||i[t+e]))continue;const a=p[n]/r,c=h?Math.sqrt((k[n]-p[n]*a)/r):a;l[t+e]=c,i&&(i[t+e]=255)}}}function r(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c,statisticsType:f}=e,h=Math.floor(a/2),u=Math.floor(c/2),m="min"===f,d=l.slice(),y=new Uint32Array(s*r);for(let p=h;p<r-h;p++){const t=p*s;for(let e=u;e<s-u;e++){let o=m?Number.MAX_VALUE:-Number.MAX_VALUE,r=0;for(let l=0;l<a;l++)for(let a=0;a<c;a++){const c=t+e+(l-h)*s+a-u;i&&!i[c]||(o=m?Math.min(o,n[c]):Math.max(o,n[c]),r++)}i?(d[t+e]=0===r?0:o,y[t+e]=r):l[t+e]=0===r?0:o}}if(i)for(let p=h;p<r-h;p++){const t=p*s;for(let e=u;e<s-u;e++)if(y[t+e]){if(o&&i[t+e])continue;l[t+e]=d[t+e],i[t+e]=255}}}function i(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c}=e,f=Math.floor(a/2),h=Math.floor(c/2),u=l.slice(),m=new Uint32Array(s*r);for(let d=f;d<r-f;d++){const t=d*s;for(let e=h;e<s-h;e++){if(o&&i?.[t+e])continue;const r=[];for(let o=0;o<a;o++)for(let l=0;l<c;l++){const a=t+e+(o-f)*s+l-h;i&&!i[a]||r.push(n[a])}r.length&&(r.sort((t,e)=>t-e),i?(u[t+e]=r[Math.floor((r.length-1)/2)],m[t+e]=r.length):l[t+e]=r[Math.floor((r.length-1)/2)])}}if(i)for(let d=f;d<r-f;d++){const t=d*s;for(let e=h;e<s-h;e++)if(m[t+e]){if(o&&i[t+e])continue;l[t+e]=u[t+e],i[t+e]=255}}}function l(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c}=e,f=Math.floor(a/2),h=Math.floor(c/2),u="majority"===e.statisticsType,m=a*c,d=l.slice(),y=new Uint32Array(s*r);for(let p=f;p<r-f;p++){const t=p*s;for(let e=h;e<s-h;e++){if(o&&i?.[t+e])continue;const r=new Map;for(let o=0;o<a;o++)for(let l=0;l<c;l++){const a=t+e+(o-f)*s+l-h;if(i&&!i[a])continue;const c=n[a];r.set(c,r.has(c)?r.get(c)+1:1)}if(0===r.size)continue;let p=0,k=0,w=u?0:m+1;for(const t of r.keys())k=r.get(t),u===k>w&&(w=k,p=t);i?(d[t+e]=p,y[t+e]=r.size):l[t+e]=p}}if(i)for(let p=f;p<r-f;p++){const t=p*s;for(let e=h;e<s-h;e++)if(y[t+e]){if(o&&i[t+e])continue;l[t+e]=d[t+e],i[t+e]=255}}}function a(t,n){const{mask:a}=t,{fillNoDataOnly:c}=n;if(c&&!a)return t;const{pixels:f,width:h,height:u,bandMasks:m,pixelType:d}=t,y=f.length,p=h*u,k=[],{kernelRows:w,kernelCols:M,statisticsType:g,mirrorEdges:b}=n;if(c&&!a)return t;const A=n.outputPixelType??d,x=[];for(let N=0;N<y;N++){const t=f[N],d=o.createEmptyBand(A,p);c&&d.set(t);const y=m?.[N]??a,j=y?.slice()??null,B={band:t,width:h,height:u,mask:j,outBand:d};switch(g){case"min":case"max":r(B,n);break;case"mean":case"stddev":s(B,n);break;case"median":i(B,n);break;case"majority":case"minority":l(B,n)}b&&!c&&e(d,h,u,w,M),k.push(d),j&&x.push(j)}let j=x[0]??a;x.length!==y&&(x.length=0),y>1&&m?.length&&(j=o.combineBandMasks(m));const B=new o({pixelType:A,width:h,height:u,pixels:k,bandMasks:m&&x.length?x:null,mask:j});return B.updateStatistics(),B}export{a as computeFocalStatistics,n as statisticsTypeMap};
5
+ import{JSONMap as t}from"../../../core/jsonMap.js";import{mirror as e}from"./mirror.js";import o from"../../support/PixelBlock.js";const n=new t({1:"min",2:"max",3:"mean",4:"stddev",5:"median",6:"majority",7:"minority"},{useNumericKeys:!0});function s(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{statisticsType:a,kernelRows:c,kernelCols:f}=e,h="stddev"===a,u=s*r,m=new Float64Array(u),d=new Float64Array(u),y=new Uint32Array(u);for(let A=0;A<r;A++){const t=A*s;let e=0,o=0,r=0;for(let s=0;s<f;s++)i&&!i[t+s]||(e+=n[t+s],h&&(o+=n[t+s]**2),r++);m[t]=e,d[t]=o,y[t]=r;for(let l=1;l<=s-f;l++){const s=t+l-1,a=s+f;i?(i[s]&&(r--,e-=n[s],h&&(o-=n[s]**2)),i[a]&&(r++,e+=n[a],h&&(o+=n[a]**2))):(e-=n[s],e+=n[a],h&&(o-=n[s]**2,o+=n[a]**2)),m[t+l]=e,y[t+l]=r,h&&(d[t+l]=o)}}const k=new Float64Array(u),p=new Float64Array(u),w=new Uint32Array(u),M=c*s;for(let A=0;A<=s-f;A++){let t=0,e=0,o=0;for(let n=0;n<c;n++){const r=n*s+A;t+=m[r],o+=y[r],h&&(e+=d[r])}k[A]=t,p[A]=e,w[A]=o;for(let n=1;n<=r-c;n++){const r=(n-1)*s+A,i=r+M;t-=m[r],t+=m[i],o-=y[r],o+=y[i],h&&(e-=d[r],e+=d[i]),k[n*s+A]=t,p[n*s+A]=e,w[n*s+A]=o}}const g=Math.floor(c/2),b=Math.floor(f/2);for(let A=g;A<r-g;A++){const t=A*s;for(let e=b;e<s-b;e++){const n=(A-g)*s+e-b,r=w[n];if(0===r||o&&(!i||i[t+e]))continue;const a=k[n]/r,c=h?Math.sqrt((p[n]-k[n]*a)/r):a;l[t+e]=c,i&&(i[t+e]=255)}}}function r(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c,statisticsType:f}=e,h=Math.floor(a/2),u=Math.floor(c/2),m="min"===f,d=l.slice(),y=new Uint32Array(s*r);for(let k=h;k<r-h;k++){const t=k*s;for(let e=u;e<s-u;e++){let o=m?Number.MAX_VALUE:-Number.MAX_VALUE,r=0;for(let l=0;l<a;l++)for(let a=0;a<c;a++){const c=t+e+(l-h)*s+a-u;i&&!i[c]||(o=m?Math.min(o,n[c]):Math.max(o,n[c]),r++)}i?(d[t+e]=0===r?0:o,y[t+e]=r):l[t+e]=0===r?0:o}}if(i)for(let k=h;k<r-h;k++){const t=k*s;for(let e=u;e<s-u;e++)if(y[t+e]){if(o&&i[t+e])continue;l[t+e]=d[t+e],i[t+e]=255}}}function i(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c}=e,f=Math.floor(a/2),h=Math.floor(c/2),u=l.slice(),m=new Uint32Array(s*r);for(let d=f;d<r-f;d++){const t=d*s;for(let e=h;e<s-h;e++){if(o&&i?.[t+e])continue;const r=[];for(let o=0;o<a;o++)for(let l=0;l<c;l++){const a=t+e+(o-f)*s+l-h;i&&!i[a]||r.push(n[a])}r.length&&(r.sort((t,e)=>t-e),i?(u[t+e]=r[Math.floor((r.length-1)/2)],m[t+e]=r.length):l[t+e]=r[Math.floor((r.length-1)/2)])}}if(i)for(let d=f;d<r-f;d++){const t=d*s;for(let e=h;e<s-h;e++)if(m[t+e]){if(o&&i[t+e])continue;l[t+e]=u[t+e],i[t+e]=255}}}function l(t,e){const{fillNoDataOnly:o}=e,{band:n,width:s,height:r,mask:i,outBand:l}=t;if(o&&!i)return void l.set(n);const{kernelRows:a,kernelCols:c}=e,f=Math.floor(a/2),h=Math.floor(c/2),u="majority"===e.statisticsType,m=a*c,d=l.slice(),y=new Uint32Array(s*r);for(let k=f;k<r-f;k++){const t=k*s;for(let e=h;e<s-h;e++){if(o&&i?.[t+e])continue;const r=new Map;for(let o=0;o<a;o++)for(let l=0;l<c;l++){const a=t+e+(o-f)*s+l-h;if(i&&!i[a])continue;const c=n[a];r.set(c,r.has(c)?r.get(c)+1:1)}if(0===r.size)continue;let k=0,p=0,w=u?0:m+1;for(const t of r.keys())p=r.get(t),u===p>w&&(w=p,k=t);i?(d[t+e]=k,y[t+e]=r.size):l[t+e]=k}}if(i)for(let k=f;k<r-f;k++){const t=k*s;for(let e=h;e<s-h;e++)if(y[t+e]){if(o&&i[t+e])continue;l[t+e]=d[t+e],i[t+e]=255}}}function a(t,n){const{mask:a}=t,{fillNoDataOnly:c}=n;if(c&&!a)return t;const{pixels:f,width:h,height:u,bandMasks:m,pixelType:d}=t,y=f.length,k=h*u,p=[],{kernelRows:w,kernelCols:M,statisticsType:g,mirrorEdges:b}=n;if(c&&!a)return t;const A=n.outputPixelType??d,x=[];for(let j=0;j<y;j++){const t=f[j],d=o.createEmptyBand(A,k);c&&d.set(t);const y=m?.[j]??a,B=y?.slice()??null,N={band:t,width:h,height:u,mask:B,outBand:d};switch(g){case"min":case"max":r(N,n);break;case"mean":case"stddev":s(N,n);break;case"median":i(N,n);break;case"majority":case"minority":l(N,n)}b&&!c&&e(d,h,u,w,M),p.push(d),B&&x.push(B)}let B=x[0]??a;x.length!==y&&(x.length=0),y>1&&m?.length&&(B=o.combineBandMasks(m));const N=new o({pixelType:A,width:h,height:u,pixels:p,bandMasks:m&&x.length?x:null,mask:B});return N.updateStatistics(),N}export{a as computeFocalStatistics,n as statisticsTypeMap};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../../core/has.js";import{getPixelValueRange as t}from"../formats/pixelRangeUtils.js";import{matchAnyMask as e}from"./pixelUtils.js";import n from"../../support/PixelBlock.js";function r(t,e,r){const s=t.length,a=n.createEmptyBand(r,s);for(let n=0;n<s;n++)if(e[n]){const r=t[n];r<=0?e[n]=0:a[n]=Math.log(r)}return a}function s(e,r,s,a){const i=e.length,o=n.createEmptyBand(s,i),[l,c]=t(s),m=a?.lambda??0,f=a?.shift??0,h=0===m;for(let t=0;t<i;t++)if(r[t]){const n=e[t];if(n<=0)r[t]=0;else if(h)o[t]=Math.log(n+f);else{const e=((n+f)**m-1)/m;o[t]=Math.max(l,Math.min(e,c))}}return o}function a(t,e,r){const s=t.length,a=n.createEmptyBand(r,s);for(let n=0;n<s;n++)if(e[n]){const r=t[n];r<0?e[n]=0:a[n]=Math.sqrt(r)}return a}function i(e,r,s){const a=e.length,i=n.createEmptyBand(s,a),[o,l]=t(s);for(let t=0;t<a;t++)if(!r||r[t]){const n=1/e[t];i[t]=i[t]=Math.max(o,Math.min(n,l))}return i}function o(t,o,l){const{width:c,height:m,pixels:f}=t;let h=[];h=t.bandMasks?t.bandMasks.map(t=>new Uint8Array(t)):f.map(()=>t.mask?new Uint8Array(t.mask):new Uint8Array(c*m).fill(255));const p="f32",u=f.map((t,e)=>{switch(o){case"log":return r(t,h[e],p);case"sqrt":return a(t,h[e],p);case"inverse":return i(t,h[e],p);case"box-cox":return s(t,h[e],p,l);default:return t}}),d="inverse"===o,g=d?t.mask:1===h.length?h[0]:e(h),x=d?t.bandMasks:1===h.length?void 0:h;return new n({width:c,height:m,pixelType:p,bandMasks:x,mask:g,pixels:u})}export{o as transformPixels};
5
+ import{getPixelValueRange as t}from"../formats/pixelRangeUtils.js";import{matchAnyMask as e}from"./pixelUtils.js";import n from"../../support/PixelBlock.js";function r(t,e,r){const a=t.length,s=n.createEmptyBand(r,a);for(let n=0;n<a;n++)if(e[n]){const r=t[n];r<=0?e[n]=0:s[n]=Math.log(r)}return s}function a(e,r,a,s){const i=e.length,o=n.createEmptyBand(a,i),[l,c]=t(a),f=s?.lambda??0,m=s?.shift??0,h=0===f;for(let t=0;t<i;t++)if(r[t]){const n=e[t];if(n<=0)r[t]=0;else if(h)o[t]=Math.log(n+m);else{const e=((n+m)**f-1)/f;o[t]=Math.max(l,Math.min(e,c))}}return o}function s(t,e,r){const a=t.length,s=n.createEmptyBand(r,a);for(let n=0;n<a;n++)if(e[n]){const r=t[n];r<0?e[n]=0:s[n]=Math.sqrt(r)}return s}function i(e,r,a){const s=e.length,i=n.createEmptyBand(a,s),[o,l]=t(a);for(let t=0;t<s;t++)if(!r||r[t]){const n=1/e[t];i[t]=i[t]=Math.max(o,Math.min(n,l))}return i}function o(t,o,l){const{width:c,height:f,pixels:m}=t;let h=[];h=t.bandMasks?t.bandMasks.map(t=>new Uint8Array(t)):m.map(()=>t.mask?new Uint8Array(t.mask):new Uint8Array(c*f).fill(255));const p="f32",u=m.map((t,e)=>{switch(o){case"log":return r(t,h[e],p);case"sqrt":return s(t,h[e],p);case"inverse":return i(t,h[e],p);case"box-cox":return a(t,h[e],p,l);default:return t}}),d="inverse"===o,g=d?t.mask:1===h.length?h[0]:e(h),x=d?t.bandMasks:1===h.length?void 0:h;return new n({width:c,height:f,pixelType:p,bandMasks:x,mask:g,pixels:u})}export{o as transformPixels};
@@ -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{equals as e,difference as r,isSome as a}from"../../core/arrayUtils.js";import"../../core/has.js";import t from"../../core/Error.js";import{updateOrigins as n}from"../../core/accessorSupport/originUtils.js";import{save as s,saveAs as o,getLayerJSON as l,getPortalItem as i,addItem as c,ensureLayerConfig as u,ensureItemConfig as y,setCommonItemProperties as p,createErrorMessage as f}from"./utils.js";import{parse as m}from"../support/arcgisLayerUrl.js";import{fetchFeatureService as d,getLayerModuleType as h}from"../support/fetchService.js";import{isLayerWithFeatureLayerSource as b}from"../support/layerUtils.js";import{createForItemWrite as w}from"../../portal/support/jsonContext.js";import{getWGS84ExtentForItem as T,toggleTypeKeyword as v,typeKeyword as S,removeTypeKeyword as L,hasTypeKeyword as I}from"../../portal/support/portalItemUtils.js";const g="Feature Service",E="feature-layer-utils",P=`${E}-save`,O=`${E}-save-as`,A=`${E}-saveall`,x=`${E}-saveall-as`;function N(e){return{isValid:b(e)&&(!("dynamicDataSource"in e)||!e.dynamicDataSource),errorMessage:"Feature layer should be a layer or table in a map or feature service"}}function $(e,r){const a=w(e,"portal-item");return r?.isTable&&(a.layerContainerType="tables"),a}function j(e){const r=$(e),a=$(e);return a.layerContainerType="tables",{forLayers:r,forTables:a}}function U(e){const r=[],a=[];for(const{layer:t,layerJSON:n}of e)R(t)?a.push(n):r.push(n);return{layers:r,tables:a}}function R(e,r){return e.isTable}function C(e){return U([e])}async function J(e,r){return/\/\d+\/?$/.test(e.url)?C(r[0]):G(r,e)}async function G(e,r){if(e.reverse(),!r)return U(e);const a=await _(r,e);for(const t of e)V(t.layer,t.layerJSON,a);return M(a,e),a}async function _(e,r){let a=await e.fetchData("json");if(D(a)&&!I(e,S.HOSTED_SERVICE))return a;a||={},F(a);const{layer:{url:t,customParameters:n,apiKey:s}}=r[0];return await B(a,{url:t??"",customParameters:n,apiKey:s},r.map(e=>e.layer.layerId)),a}function D(e){return!!(e&&Array.isArray(e.layers)&&Array.isArray(e.tables))}function F(e){e.layers||=[],e.tables||=[]}function M(e,r){const a=[],t=[];for(const{layer:n}of r){const{isTable:e,layerId:r}=n;e?t.push(r):a.push(r)}Y(e.layers,a),Y(e.tables,t)}function Y(r,a){if(r.length<2)return;const t=[];for(const{id:e}of r)t.push(e);e(t.sort(k),a.slice().sort(k))&&r.sort((e,r)=>{const t=a.indexOf(e.id),n=a.indexOf(r.id);return t<n?-1:t>n?1:0})}function k(e,r){return e<r?-1:e>r?1:0}async function B(e,r,a){const{url:t,customParameters:n,apiKey:s}=r,{serviceJSON:o,layersJSON:l}=await d(t,{customParameters:n,apiKey:s}),i=K(e.layers,o.layers,a),c=K(e.tables,o.tables,a);e.layers=i.itemResources,e.tables=c.itemResources;const u=[...i.added,...c.added],y=l?[...l.layers,...l.tables]:[];await z(e,u,t,y)}function K(e,a,t){const n=r(e,a,(e,r)=>e.id===r.id);e=e.filter(e=>!n.removed.some(r=>r.id===e.id));const s=n.added;return s.forEach(({id:r})=>{e.push({id:r})}),{itemResources:e,added:s.filter(({id:e})=>!t.includes(e))}}async function z(e,r,a,t){const n=await H(r),s=r.map(({id:e,type:r})=>new(n.get(r))({url:a,layerId:e,sourceJSON:t.find(({id:r})=>r===e)}));await Promise.allSettled(s.map(e=>e.load())),s.forEach(r=>{const{layerId:a,loaded:t,defaultPopupTemplate:n}=r;if(!t||null==n)return;const s={id:a,popupInfo:n.toJSON()};V(r,"ArcGISFeatureLayer"===r.operationalLayerType?s:{...s,layerType:r.operationalLayerType},e)})}async function H(e){const r=[];e.forEach(({type:e})=>{switch(h(e)){case"CatalogLayer":r.push(import("../CatalogLayer.js").then(e=>e.default));break;case"FeatureLayer":r.push(import("../FeatureLayer.js").then(e=>e.default));break;case"OrientedImageryLayer":r.push(import("../OrientedImageryLayer.js").then(e=>e.default))}});const a=await Promise.all(r),t=new Map;return e.forEach(({type:e},r)=>{t.set(e,a[r])}),t}function V(e,r,a){e.isTable?q(a.tables,r):q(a.layers,r)}function q(e,r){const a=e.findIndex(({id:e})=>e===r.id);-1===a?e.push(r):e[a]=r}function Q(e,r){if(!e.length)throw new t(`${r}:missing-parameters`,"'layers' array should contain at least one feature layer")}function W(e,r){const a=e.map(e=>e.portalItem.id);if(new Set(a).size>1)throw new t(`${r}:invalid-parameters`,"All layers in the 'layers' array should be loaded from the same portal item")}function X(e,r){const a=e.map(e=>e.layerId);if(new Set(a).size!==a.length)throw new t(`${r}:invalid-parameters`,"'layers' array should contain only one instance each of layer or table in a feature service")}async function Z(e){Q(e,A),await Promise.all(e.map(e=>e.load()));for(const r of e)u(r,A,N),y({layer:r,itemType:g,errorNamePrefix:A});W(e,A),X(e,A)}function ee(e){if(!("layerType"in e))return!!e.charts?.length;switch(e.layerType){case"OrientedImageryLayer":return!!e.charts?.length;case"SubtypeGroupLayer":return!!e.layers.some(e=>!!e.charts?.length);case"SubtypeGroupTable":return!!e.tables.some(e=>!!e.charts?.length);case"CatalogLayer":return!!e.footprintLayer?.charts?.length}}function re(e,r){let a=0,t=0,n=0,s=0;for(const o of[...r.layers,...r.tables])if(ee(o)&&s++,"layerType"in o)switch(o.layerType){case"OrientedImageryLayer":a++;break;case"SubtypeGroupLayer":t++;break;case"SubtypeGroupTable":n++}v(e,S.ORIENTED_IMAGERY_LAYER,a>0),v(e,S.SUBTYPE_GROUP_LAYER,t>0),v(e,S.SUBTYPE_GROUP_TABLE,n>0),v(e,S.CHARTS,s>0)}function ae(e,r,a){L(r,S.METADATA),v(r,S.MULTI_LAYER,e.length>1),v(r,S.SINGLE_LAYER,1===e.length),v(r,S.TABLE,a.tables.length>0&&0===a.layers.length),re(r,a)}async function te(e,r,a){re(r,a)}async function ne(e,r,a){const{url:t,layerId:n,title:s,fullExtent:o,isTable:l}=e,i=m(t);r.url=("FeatureServer"===i?.serverType?t:`${t}/${n}`)??null,r.title||=s,r.extent=null,l||null==o||(r.extent=await T(o)),ae([e],r,a)}function se(e,r){for(const o of e){const a=o.parsedUrl.path,n=m(a),s=n?.url.path;if(!s)throw new t(`${r}:invalid-parameters`,f(o,`has unsupported url pattern: ${a}`),{layer:o});const l=n?.serverType;if("FeatureServer"!==l&&"MapServer"!==l)throw new t(`${r}:invalid-parameters`,f(o,`has unsupported server type: ${l}`),{layer:o});if("MapServer"===l&&e.length>1)throw new t(`${r}:invalid-parameters`,"Only one layer or table in a map service can be saved")}const a=m(e[0].parsedUrl.path),n=a?.url.path,s=e.every(e=>{const r=m(e.parsedUrl.path);return r?.url.path===n});if(!s)throw new t(`${r}:invalid-parameters`,"'layers' array should only contain layers or tables that belong to the same feature service")}async function oe(e){Q(e,x),await Promise.all(e.map(e=>e.load()));for(const r of e)u(r,x,N);se(e,x),X(e,x)}function le(e,r){re(e,r),p(e)}async function ie(e,r,t){let n=0;for(const{isTable:a}of e)a||n++;const s=e[0].parsedUrl.path,o=m(s);if(r.url="FeatureServer"===o?.serverType?o.url.path:s,r.title||=o.title,r.extent=null,n>0){const t=e.map(e=>e.fullExtent).filter(a).reduce((e,r)=>e.clone().union(r));t&&(r.extent=await T(t))}ae(e,r,t),p(r)}async function ce(e,r){return s({layer:e,itemType:g,validateLayer:N,createJSONContext:r=>$(r,e),createItemData:(e,r)=>J(r,[e]),errorNamePrefix:P,setItemProperties:te},r)}async function ue(e,r){await Z(e);const a=e[0].portalItem,t=j(a),s=await Promise.all(e.map(e=>l(e,e.isTable?t.forTables:t.forLayers,r))),o=await J(a,e.map((e,r)=>({layer:e,layerJSON:s[r]})));return le(a,o),await a.update({data:o}),await Promise.all(e.slice(1).map(e=>e.portalItem.reload())),n(t.forLayers),n(t.forTables),a.clone()}async function ye(e,r,a){return o({layer:e,itemType:g,validateLayer:N,createJSONContext:r=>$(r,e),createItemData:(e,r)=>Promise.resolve(C(e)),errorNamePrefix:O,newItem:r,setItemProperties:ne},a)}async function pe(e,r,a){await oe(e);const t=i({itemType:g,errorNamePrefix:x,newItem:r}),s=j(t),o=await Promise.all(e.map(e=>l(e,e.isTable?s.forTables:s.forLayers,a))),u=await G(e.map((e,r)=>({layer:e,layerJSON:o[r]})));await ie(e,t,u),await c(t,u,a);for(const n of e)n.portalItem=t.clone();return n(s.forLayers),n(s.forTables),t}export{ce as save,ue as saveAll,pe as saveAllAs,ye as saveAs};
5
+ import{equals as e,difference as r,isSome as a}from"../../core/arrayUtils.js";import t from"../../core/Error.js";import{updateOrigins as n}from"../../core/accessorSupport/originUtils.js";import{save as s,saveAs as o,getLayerJSON as l,getPortalItem as i,addItem as c,ensureLayerConfig as u,ensureItemConfig as y,setCommonItemProperties as p,createErrorMessage as f}from"./utils.js";import{parse as m}from"../support/arcgisLayerUrl.js";import{fetchFeatureService as d,getLayerModuleType as h}from"../support/fetchService.js";import{isLayerWithFeatureLayerSource as b}from"../support/layerUtils.js";import{createForItemWrite as w}from"../../portal/support/jsonContext.js";import{getWGS84ExtentForItem as T,toggleTypeKeyword as v,typeKeyword as S,removeTypeKeyword as L,hasTypeKeyword as I}from"../../portal/support/portalItemUtils.js";const g="Feature Service",E="feature-layer-utils",P=`${E}-save`,O=`${E}-save-as`,A=`${E}-saveall`,x=`${E}-saveall-as`;function N(e){return{isValid:b(e)&&(!("dynamicDataSource"in e)||!e.dynamicDataSource),errorMessage:"Feature layer should be a layer or table in a map or feature service"}}function $(e,r){const a=w(e,"portal-item");return r?.isTable&&(a.layerContainerType="tables"),a}function j(e){const r=$(e),a=$(e);return a.layerContainerType="tables",{forLayers:r,forTables:a}}function U(e){const r=[],a=[];for(const{layer:t,layerJSON:n}of e)R(t)?a.push(n):r.push(n);return{layers:r,tables:a}}function R(e,r){return e.isTable}function C(e){return U([e])}async function J(e,r){return/\/\d+\/?$/.test(e.url)?C(r[0]):G(r,e)}async function G(e,r){if(e.reverse(),!r)return U(e);const a=await _(r,e);for(const t of e)V(t.layer,t.layerJSON,a);return M(a,e),a}async function _(e,r){let a=await e.fetchData("json");if(D(a)&&!I(e,S.HOSTED_SERVICE))return a;a||={},F(a);const{layer:{url:t,customParameters:n,apiKey:s}}=r[0];return await B(a,{url:t??"",customParameters:n,apiKey:s},r.map(e=>e.layer.layerId)),a}function D(e){return!!(e&&Array.isArray(e.layers)&&Array.isArray(e.tables))}function F(e){e.layers||=[],e.tables||=[]}function M(e,r){const a=[],t=[];for(const{layer:n}of r){const{isTable:e,layerId:r}=n;e?t.push(r):a.push(r)}Y(e.layers,a),Y(e.tables,t)}function Y(r,a){if(r.length<2)return;const t=[];for(const{id:e}of r)t.push(e);e(t.sort(k),a.slice().sort(k))&&r.sort((e,r)=>{const t=a.indexOf(e.id),n=a.indexOf(r.id);return t<n?-1:t>n?1:0})}function k(e,r){return e<r?-1:e>r?1:0}async function B(e,r,a){const{url:t,customParameters:n,apiKey:s}=r,{serviceJSON:o,layersJSON:l}=await d(t,{customParameters:n,apiKey:s}),i=K(e.layers,o.layers,a),c=K(e.tables,o.tables,a);e.layers=i.itemResources,e.tables=c.itemResources;const u=[...i.added,...c.added],y=l?[...l.layers,...l.tables]:[];await z(e,u,t,y)}function K(e,a,t){const n=r(e,a,(e,r)=>e.id===r.id);e=e.filter(e=>!n.removed.some(r=>r.id===e.id));const s=n.added;return s.forEach(({id:r})=>{e.push({id:r})}),{itemResources:e,added:s.filter(({id:e})=>!t.includes(e))}}async function z(e,r,a,t){const n=await H(r),s=r.map(({id:e,type:r})=>new(n.get(r))({url:a,layerId:e,sourceJSON:t.find(({id:r})=>r===e)}));await Promise.allSettled(s.map(e=>e.load())),s.forEach(r=>{const{layerId:a,loaded:t,defaultPopupTemplate:n}=r;if(!t||null==n)return;const s={id:a,popupInfo:n.toJSON()};V(r,"ArcGISFeatureLayer"===r.operationalLayerType?s:{...s,layerType:r.operationalLayerType},e)})}async function H(e){const r=[];e.forEach(({type:e})=>{switch(h(e)){case"CatalogLayer":r.push(import("../CatalogLayer.js").then(e=>e.default));break;case"FeatureLayer":r.push(import("../FeatureLayer.js").then(e=>e.default));break;case"OrientedImageryLayer":r.push(import("../OrientedImageryLayer.js").then(e=>e.default))}});const a=await Promise.all(r),t=new Map;return e.forEach(({type:e},r)=>{t.set(e,a[r])}),t}function V(e,r,a){e.isTable?q(a.tables,r):q(a.layers,r)}function q(e,r){const a=e.findIndex(({id:e})=>e===r.id);-1===a?e.push(r):e[a]=r}function Q(e,r){if(!e.length)throw new t(`${r}:missing-parameters`,"'layers' array should contain at least one feature layer")}function W(e,r){const a=e.map(e=>e.portalItem.id);if(new Set(a).size>1)throw new t(`${r}:invalid-parameters`,"All layers in the 'layers' array should be loaded from the same portal item")}function X(e,r){const a=e.map(e=>e.layerId);if(new Set(a).size!==a.length)throw new t(`${r}:invalid-parameters`,"'layers' array should contain only one instance each of layer or table in a feature service")}async function Z(e){Q(e,A),await Promise.all(e.map(e=>e.load()));for(const r of e)u(r,A,N),y({layer:r,itemType:g,errorNamePrefix:A});W(e,A),X(e,A)}function ee(e){if(!("layerType"in e))return!!e.charts?.length;switch(e.layerType){case"OrientedImageryLayer":return!!e.charts?.length;case"SubtypeGroupLayer":return!!e.layers.some(e=>!!e.charts?.length);case"SubtypeGroupTable":return!!e.tables.some(e=>!!e.charts?.length);case"CatalogLayer":return!!e.footprintLayer?.charts?.length}}function re(e,r){let a=0,t=0,n=0,s=0;for(const o of[...r.layers,...r.tables])if(ee(o)&&s++,"layerType"in o)switch(o.layerType){case"OrientedImageryLayer":a++;break;case"SubtypeGroupLayer":t++;break;case"SubtypeGroupTable":n++}v(e,S.ORIENTED_IMAGERY_LAYER,a>0),v(e,S.SUBTYPE_GROUP_LAYER,t>0),v(e,S.SUBTYPE_GROUP_TABLE,n>0),v(e,S.CHARTS,s>0)}function ae(e,r,a){L(r,S.METADATA),v(r,S.MULTI_LAYER,e.length>1),v(r,S.SINGLE_LAYER,1===e.length),v(r,S.TABLE,a.tables.length>0&&0===a.layers.length),re(r,a)}async function te(e,r,a){re(r,a)}async function ne(e,r,a){const{url:t,layerId:n,title:s,fullExtent:o,isTable:l}=e,i=m(t);r.url=("FeatureServer"===i?.serverType?t:`${t}/${n}`)??null,r.title||=s,r.extent=null,l||null==o||(r.extent=await T(o)),ae([e],r,a)}function se(e,r){for(const o of e){const a=o.parsedUrl.path,n=m(a),s=n?.url.path;if(!s)throw new t(`${r}:invalid-parameters`,f(o,`has unsupported url pattern: ${a}`),{layer:o});const l=n?.serverType;if("FeatureServer"!==l&&"MapServer"!==l)throw new t(`${r}:invalid-parameters`,f(o,`has unsupported server type: ${l}`),{layer:o});if("MapServer"===l&&e.length>1)throw new t(`${r}:invalid-parameters`,"Only one layer or table in a map service can be saved")}const a=m(e[0].parsedUrl.path),n=a?.url.path,s=e.every(e=>{const r=m(e.parsedUrl.path);return r?.url.path===n});if(!s)throw new t(`${r}:invalid-parameters`,"'layers' array should only contain layers or tables that belong to the same feature service")}async function oe(e){Q(e,x),await Promise.all(e.map(e=>e.load()));for(const r of e)u(r,x,N);se(e,x),X(e,x)}function le(e,r){re(e,r),p(e)}async function ie(e,r,t){let n=0;for(const{isTable:a}of e)a||n++;const s=e[0].parsedUrl.path,o=m(s);if(r.url="FeatureServer"===o?.serverType?o.url.path:s,r.title||=o.title,r.extent=null,n>0){const t=e.map(e=>e.fullExtent).filter(a).reduce((e,r)=>e.clone().union(r));t&&(r.extent=await T(t))}ae(e,r,t),p(r)}async function ce(e,r){return s({layer:e,itemType:g,validateLayer:N,createJSONContext:r=>$(r,e),createItemData:(e,r)=>J(r,[e]),errorNamePrefix:P,setItemProperties:te},r)}async function ue(e,r){await Z(e);const a=e[0].portalItem,t=j(a),s=await Promise.all(e.map(e=>l(e,e.isTable?t.forTables:t.forLayers,r))),o=await J(a,e.map((e,r)=>({layer:e,layerJSON:s[r]})));return le(a,o),await a.update({data:o}),await Promise.all(e.slice(1).map(e=>e.portalItem.reload())),n(t.forLayers),n(t.forTables),a.clone()}async function ye(e,r,a){return o({layer:e,itemType:g,validateLayer:N,createJSONContext:r=>$(r,e),createItemData:(e,r)=>Promise.resolve(C(e)),errorNamePrefix:O,newItem:r,setItemProperties:ne},a)}async function pe(e,r,a){await oe(e);const t=i({itemType:g,errorNamePrefix:x,newItem:r}),s=j(t),o=await Promise.all(e.map(e=>l(e,e.isTable?s.forTables:s.forLayers,a))),u=await G(e.map((e,r)=>({layer:e,layerJSON:o[r]})));await ie(e,t,u),await c(t,u,a);for(const n of e)n.portalItem=t.clone();return n(s.forLayers),n(s.forTables),t}export{ce as save,ue as saveAll,pe as saveAllAs,ye as saveAs};
@@ -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{EventedAccessor as t}from"../../core/Evented.js";import r from"../../core/Logger.js";import{subclass as o}from"../../core/accessorSupport/decorators.js";import s from"../../geometry/Point.js";import{project as n}from"../../geometry/support/webMercatorUtils.js";let i=class extends t{queryElevation(e){const t=this.projectIfRequired(e,this.spatialReference);if(!t)return null;switch(e.type){case"point":return a(e,t,this);case"polyline":return l(e,t,this);case"multipoint":return p(e,t,this);default:return null}}projectIfRequired(e,t){if(null==e)return null;const o=e.spatialReference;if(o.equals(t))return e;const s=n(e,t);return s||r.getLogger(this).error(`Cannot project geometry spatial reference (wkid:${o.wkid}) to elevation sampler spatial reference (wkid:${t.wkid})`),s}};function a(e,t,r){return e.hasZ=!0,e.z=r.elevationAt(t.x,t.y),e}function l(e,t,r){c.spatialReference=t.spatialReference;const o=e.hasM&&!e.hasZ;for(let s=0;s<e.paths.length;s++){const n=e.paths[s],i=t.paths[s];for(let e=0;e<n.length;e++){const t=n[e],s=i[e];c.x=s[0],c.y=s[1],o&&(t[3]=t[2]),t[2]=r.elevationAt(c.x,c.y)}}return e.hasZ=!0,e}function p(e,t,r){c.spatialReference=t.spatialReference;const o=e.hasM&&!e.hasZ;for(let s=0;s<e.points.length;s++){const n=e.points[s],i=t.points[s];c.x=i[0],c.y=i[1],o&&(n[3]=n[2]),n[2]=r.elevationAt(c.x,c.y)}return e.hasZ=!0,e}i=e([o("esri.layers.support.ElevationSampler")],i);const c=new s;export{i as default};
5
+ import{__decorate as e}from"tslib";import{EventedAccessor as t}from"../../core/Evented.js";import r from"../../core/Logger.js";import{subclass as o}from"../../core/accessorSupport/decorators.js";import s from"../../geometry/Point.js";import{project as n}from"../../geometry/support/webMercatorUtils.js";let i=class extends t{queryElevation(e){const t=this.projectIfRequired(e,this.spatialReference);if(!t)return null;switch(e.type){case"point":return a(e,t,this);case"polyline":return l(e,t,this);case"multipoint":return p(e,t,this);default:return null}}projectIfRequired(e,t){if(null==e)return null;const o=e.spatialReference;if(o.equals(t))return e;const s=n(e,t);return s||r.getLogger(this).error(`Cannot project geometry spatial reference (wkid:${o.wkid}) to elevation sampler spatial reference (wkid:${t.wkid})`),s}};function a(e,t,r){return e.hasZ=!0,e.z=r.elevationAt(t.x,t.y),e}function l(e,t,r){c.spatialReference=t.spatialReference;const o=e.hasM&&!e.hasZ;for(let s=0;s<e.paths.length;s++){const n=e.paths[s],i=t.paths[s];for(let e=0;e<n.length;e++){const t=n[e],s=i[e];c.x=s[0],c.y=s[1],o&&(t[3]=t[2]),t[2]=r.elevationAt(c.x,c.y)}}return e.hasZ=!0,e}function p(e,t,r){c.spatialReference=t.spatialReference;const o=e.hasM&&!e.hasZ;for(let s=0;s<e.points.length;s++){const n=e.points[s],i=t.points[s];c.x=i[0],c.y=i[1],o&&(n[3]=n[2]),n[2]=r.elevationAt(c.x,c.y)}return e.hasZ=!0,e}i=e([o("esri.layers.support.ElevationSampler")],i);const c=new s;export{i as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import{ClonableMixin as r}from"../../core/Clonable.js";import"../../core/has.js";import i from"../../core/Error.js";import{IdentifiableMixin as o}from"../../core/Identifiable.js";import{clone as n}from"../../core/lang.js";import{Loadable as l}from"../../core/Loadable.js";import s from"../../core/Logger.js";import{destroyMaybe as a}from"../../core/maybe.js";import{MultiOriginJSONMixin as p}from"../../core/MultiOriginJSONSupport.js";import{setDeepValue as d}from"../../core/object.js";import{sqlAnd as u}from"../../core/sql.js";import{property as y,subclass as c}from"../../core/accessorSupport/decorators.js";import{excludeTables as m}from"../../core/accessorSupport/layerContainerType.js";import f from"../../form/FormTemplate.js";import h from"../../geometry/SpatialReference.js";import b from"../../graphic/SubtypeGroupGraphicOrigin.js";import{labelsVisible as g,legendEnabled as j,minScale as v,maxScale as w,popupEnabled as F}from"./commonProperties.js";import{createQuery as T,computeDomainFromSubtypes as I}from"./featureLayerUtils.js";import O from"./FeatureTemplate.js";import{defineFieldProperties as S}from"./fieldProperties.js";import{fixRendererFields as C}from"./fieldUtils.js";import E from"./LabelClass.js";import{reader as q}from"./labelingInfo.js";import{rendererReader as A,supportedRendererTypes as x}from"./subtypeGroupLayerUtils.js";import R from"./TitleCreator.js";import P from"../../renderers/SimpleRenderer.js";import L from"../../rest/support/AttachmentQuery.js";import G from"../../rest/support/Query.js";import{createPopupTemplate as _}from"../../support/popupUtils.js";import{defaultPolygonSymbol2D as D,defaultPolylineSymbol2D as N,defaultPointSymbol2D as $}from"../../symbols/support/defaults.js";import U from"../../tables/AttributeTableTemplate.js";import{writer as V}from"../../core/accessorSupport/decorators/writer.js";import{reader as M}from"../../core/accessorSupport/decorators/reader.js";const Q=S();let k=0;function B(e,t){let r=e.json.write;return"object"!=typeof r&&(r=e.json.write={}),r.ignoreOrigin=!0,t?.spatialOnly&&(r.layerContainerTypes=m),e}function H(e){const t={write:{ignoreOrigin:!0}};return e?.name&&(t.name=e.name),"object"==typeof t.write&&(e?.spatialOnly&&(t.write.layerContainerTypes=m),e?.target&&(t.write.target=e.target)),t}function J(e){return new P({symbol:W(e)})}function W(e){switch(e){case"point":case"multipoint":return $.clone();case"polyline":return N.clone();case"polygon":case"multipatch":return D.clone();default:return null}}function z(e,t){return!!t&&("unique-value"===e?.type&&null!=e.field&&e.field.toLowerCase()===t.toLowerCase()&&!e.field2&&!e.field3&&!e.valueExpression)}function K(e,t){return null==e?null:t.subtypes?.find(t=>t.code===e)}function X(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const i={},o=K(e,t);if(null!=o){const{defaultValues:e}=o;for(const t in e)i[t]=e[t]}return i[t.subtypeField]=e,new O({name:"New Feature",drawingTool:r,prototype:{attributes:i}})}let Y=class extends(p(r(o(l)))){constructor(e){super(e),this.attributeTableTemplate=null,this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.graphicOrigin=new b(this),this.id=`${Date.now().toString(16)}-subtype-sublayer-${k++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.templates=null,this.title=null,this.visible=!0}load(e){return C(this.renderer,this.fieldsIndex),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return a(e),new R({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,displayField:this.parent?.displayField??"",fields:this.fields,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}get capabilities(){return this.parent?.capabilities}get effectiveCapabilities(){return this.parent?.effectiveCapabilities}get effectiveEditingEnabled(){const{parent:e}=this;return e?e.effectiveEditingEnabled&&this.editingEnabled:this.editingEnabled}get elevationInfo(){return this.parent?.elevationInfo}get featureTitleFields(){return[...this._titleCreator.requiredFields]}writeFieldOverrides(e,t,r){const{fields:i,parent:o}=this;let l;if(i){l=[];let e=0;i.forEach(({name:t,alias:r,editable:i,visible:n})=>{if(!n)return;const s=o?.fields?.find(e=>e.name===t);if(!s)return;const a={name:t};let p=!1;r!==s.alias&&(a.alias=r,p=!0),i!==s.editable&&(a.editable=i,p=!0),l.push(a),p&&e++}),0===e&&l.length===i.length&&(l=null)}else l=n(e);l?.length&&d(r,l,t)}get fields(){const{parent:e,fieldOverrides:t,subtypeCode:r}=this,i=e?.fields;if(!e||!i?.length)return null;const{subtypes:o,subtypeField:n}=e,l=o?.find(e=>e.code===r),s=l?.defaultValues,a=l?.domains,p=[];for(const d of i){const e=d.clone(),{name:i}=e,o=t?.find(e=>e.name===i);if(e.visible=!t?.length||!!o,o){const{alias:t,editable:r}=o;t&&(e.alias=t),!1===r&&(e.editable=!1)}const l=s?.[i]??null;e.defaultValue=i===n?r:l;const u=a?.[i]??null;e.domain=i===n?null:u?"inherited"===u.type?e.domain:u.clone():null,p.push(e)}return p}get floorInfo(){return this.parent?.floorInfo}get isTable(){return!!this.parent?.isTable}get geometryType(){return this.parent?.geometryType}get globalIdField(){return this.parent?this.parent.globalIdField:(s.getLogger(this).error(te("globalIdField")),null)}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get objectIdField(){return this.parent||s.getLogger(this).error(te("objectIdField")),this.parent?.objectIdField}get defaultPopupTemplate(){return this.createPopupTemplate()}get relationships(){return this.parent?.relationships}set renderer(e){C(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&"mesh"!==e.geometryType?J(e.geometryType):null}readRendererFromService(e,t,r){if("Table"===t.type)return null;const i=t.drawingInfo?.renderer,o=A(i,t,r);let n;const{subtypeCode:l}=this;if(null!=l&&z(o,t.subtypeField)){const e=o.uniqueValueInfos?.find(({value:e})=>(e="number"==typeof e?String(e):e)===String(l));e&&(n=new P({symbol:e.symbol}))}else"simple"!==o?.type||o.visualVariables?.length||(n=o);return n}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;if(i)return A(i,t,r)||void 0}get spatialReference(){return this.parent?.spatialReference??h.WGS84}get subtypeField(){return this.parent?.subtypeField}readTemplatesFromService(e,t){return[X(this.subtypeCode,t)]}readTitleFromService(e,t){const r=K(this.subtypeCode,t);return null!=r?r.name:null}get url(){return this.parent?.url}get userHasUpdateItemPrivileges(){return!!this.parent?.userHasUpdateItemPrivileges}async addAttachment(e,t){const{parent:r}=this;if(!r)throw te("addAttachment");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:addAttachment","The feature provided does not belong to this SubtypeSublayer");return r.addAttachment(e,t)}async updateAttachment(e,t,r){const{parent:o}=this;if(!o)throw te("updateAttachment");if(e.getAttribute(o.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:updateAttachment","The feature provided does not belong to this SubtypeSublayer");return o.updateAttachment(e,t,r)}async deleteAttachments(e,t){const{parent:r}=this;if(!r)throw te("deleteAttachments");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:deleteAttachments","The feature provided does not belong to this SubtypeSublayer");return r.deleteAttachments(e,t)}async applyEdits(e,t){if(!this.parent)throw te("applyEdits");return this.parent.applyEdits(e,t)}createPopupTemplate(e){let t=this;const{parent:r,fields:i,title:o}=this;if(r){const{displayField:e,editFieldsInfo:n,objectIdField:l}=r;t={displayField:e,editFieldsInfo:n,fields:i,objectIdField:l,title:o}}return _(t,e)}createQuery(){if(!this.parent)throw te("createQuery");const e=T(this.parent),t=`${this.parent.subtypeField}=${this.subtypeCode}`;return e.where=u(t,this.parent.definitionExpression),e}getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains&&this.parent){const t=I(this.parent,e);if(t)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){const r=await this.load();if(!r.parent)throw te("queryAttachments");const i=e instanceof L?e.clone():new L(e);return i.where=ee(i.where,r.parent.subtypeField,r.subtypeCode),r.parent.queryAttachments(i,t)}async queryFeatureCount(e,t){const r=await this.load();if(!r.parent)throw te("queryFeatureCount");return r.parent.queryFeatureCount(Z(r.parent,r,e),t)}async queryFeatures(e,t){const r=await this.load();if(!r.parent)throw te("queryFeatures");return r.parent.queryFeatures(Z(r.parent,r,e),t)}async queryObjectIds(e,t){const r=await this.load();if(!r.parent)throw te("queryObjectIds");return r.parent.queryObjectIds(Z(r.parent,r,e),t)}async queryRelatedFeatures(e,t){const r=await this.load();if(!r.parent)throw te("queryRelatedFeatures");return r.parent.queryRelatedFeatures(e,t)}async queryRelatedFeaturesCount(e,t){const r=await this.load();if(!r.parent)throw te("queryRelatedFeaturesCount");return r.parent.queryRelatedFeaturesCount(e,t)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};e([y({clonable:!1,readOnly:!0})],Y.prototype,"_titleCreator",null),e([y({type:U,json:H({name:"attributeTableInfo"})})],Y.prototype,"attributeTableTemplate",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"capabilities",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"effectiveCapabilities",null),e([y({json:H()})],Y.prototype,"charts",void 0),e([y({type:Boolean,nonNullable:!0,json:H({name:"enableEditing"})})],Y.prototype,"editingEnabled",void 0),e([y({type:Boolean,readOnly:!0})],Y.prototype,"effectiveEditingEnabled",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"elevationInfo",null),e([y({clonable:!1,readOnly:!0})],Y.prototype,"featureTitleFields",null),e([y({json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],Y.prototype,"fieldOverrides",void 0),e([V("fieldOverrides")],Y.prototype,"writeFieldOverrides",null),e([y({...Q.fields,readOnly:!0,json:{read:!1}})],Y.prototype,"fields",null),e([y(Q.fieldsIndex)],Y.prototype,"fieldsIndex",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"floorInfo",null),e([y({type:f,json:H({name:"formInfo"})})],Y.prototype,"formTemplate",void 0),e([y({readOnly:!0,clonable:!1})],Y.prototype,"graphicOrigin",void 0),e([y({type:String,clonable:!1,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],Y.prototype,"id",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"isTable",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"geometryType",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"globalIdField",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"type",void 0),e([y(B(n(g)))],Y.prototype,"labelsVisible",void 0),e([y({type:[E],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:q},write:{ignoreOrigin:!0,layerContainerTypes:m}}})],Y.prototype,"labelingInfo",void 0),e([y({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0,layerContainerTypes:m}}})],Y.prototype,"layerType",void 0),e([y(B(n(j)))],Y.prototype,"legendEnabled",void 0),e([y({type:["show","hide"]})],Y.prototype,"listMode",void 0),e([y((()=>{const e=n(v);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],Y.prototype,"minScale",void 0),e([y((()=>{const e=n(w);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],Y.prototype,"maxScale",void 0),e([y({readOnly:!0})],Y.prototype,"effectiveScaleRange",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"objectIdField",null),e([y({type:Number,range:{min:0,max:1},nonNullable:!0,json:H({spatialOnly:!0})})],Y.prototype,"opacity",void 0),e([y({clonable:!1})],Y.prototype,"parent",void 0),e([y(B(n(F)))],Y.prototype,"popupEnabled",void 0),e([y({type:t,json:H({name:"popupInfo"})})],Y.prototype,"popupTemplate",void 0),e([y({readOnly:!0})],Y.prototype,"defaultPopupTemplate",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"relationships",null),e([y({types:x,json:H({target:"layerDefinition.drawingInfo.renderer",spatialOnly:!0})})],Y.prototype,"renderer",null),e([M("service","renderer",["drawingInfo.renderer","subtypeField","type"])],Y.prototype,"readRendererFromService",null),e([M("renderer",["layerDefinition.drawingInfo.renderer"])],Y.prototype,"readRenderer",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"spatialReference",null),e([y({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],Y.prototype,"subtypeCode",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"subtypeField",null),e([y({type:[O],json:H({name:"layerDefinition.templates"})})],Y.prototype,"templates",void 0),e([M("service","templates",["geometryType","subtypeField","subtypes","type"])],Y.prototype,"readTemplatesFromService",null),e([y({type:String,json:H()})],Y.prototype,"title",void 0),e([M("service","title",["subtypes"])],Y.prototype,"readTitleFromService",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"url",null),e([y({readOnly:!0})],Y.prototype,"userHasUpdateItemPrivileges",null),e([y({type:Boolean,nonNullable:!0,json:H({name:"visibility",spatialOnly:!0})})],Y.prototype,"visible",void 0),Y=e([c("esri.layers.support.SubtypeSublayer")],Y);const Z=(e,t,r)=>{if(!r)return t.createQuery();const i=G.from(r);return i.where=ee(i.where,e.subtypeField,t.subtypeCode),i},ee=(e,t,r)=>{const i=new RegExp(`${t}\\s*=\\s*\\d+`),o=`${t}=${r}`,n=e??"";return i.test(n)?n.replace(i,o):u(o,n)},te=e=>new i("subtype-sublayer:parent-missing",`This sublayer must have a parent SubtypeGroupLayer in order to use ${e}`);export{Y as default};
5
+ import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import{ClonableMixin as r}from"../../core/Clonable.js";import i from"../../core/Error.js";import{IdentifiableMixin as n}from"../../core/Identifiable.js";import{clone as o}from"../../core/lang.js";import{Loadable as l}from"../../core/Loadable.js";import s from"../../core/Logger.js";import{destroyMaybe as a}from"../../core/maybe.js";import{MultiOriginJSONMixin as p}from"../../core/MultiOriginJSONSupport.js";import{setDeepValue as d}from"../../core/object.js";import{sqlAnd as u}from"../../core/sql.js";import{property as y,subclass as c}from"../../core/accessorSupport/decorators.js";import{excludeTables as m}from"../../core/accessorSupport/layerContainerType.js";import f from"../../form/FormTemplate.js";import h from"../../geometry/SpatialReference.js";import b from"../../graphic/SubtypeGroupGraphicOrigin.js";import{labelsVisible as g,legendEnabled as j,minScale as v,maxScale as w,popupEnabled as F}from"./commonProperties.js";import{createQuery as T,computeDomainFromSubtypes as I}from"./featureLayerUtils.js";import O from"./FeatureTemplate.js";import{defineFieldProperties as S}from"./fieldProperties.js";import{fixRendererFields as C}from"./fieldUtils.js";import E from"./LabelClass.js";import{reader as q}from"./labelingInfo.js";import{rendererReader as A,supportedRendererTypes as x}from"./subtypeGroupLayerUtils.js";import R from"./TitleCreator.js";import P from"../../renderers/SimpleRenderer.js";import L from"../../rest/support/AttachmentQuery.js";import G from"../../rest/support/Query.js";import{createPopupTemplate as _}from"../../support/popupUtils.js";import{defaultPolygonSymbol2D as D,defaultPolylineSymbol2D as N,defaultPointSymbol2D as $}from"../../symbols/support/defaults.js";import U from"../../tables/AttributeTableTemplate.js";import{writer as V}from"../../core/accessorSupport/decorators/writer.js";import{reader as M}from"../../core/accessorSupport/decorators/reader.js";const Q=S();let k=0;function B(e,t){let r=e.json.write;return"object"!=typeof r&&(r=e.json.write={}),r.ignoreOrigin=!0,t?.spatialOnly&&(r.layerContainerTypes=m),e}function H(e){const t={write:{ignoreOrigin:!0}};return e?.name&&(t.name=e.name),"object"==typeof t.write&&(e?.spatialOnly&&(t.write.layerContainerTypes=m),e?.target&&(t.write.target=e.target)),t}function J(e){return new P({symbol:W(e)})}function W(e){switch(e){case"point":case"multipoint":return $.clone();case"polyline":return N.clone();case"polygon":case"multipatch":return D.clone();default:return null}}function z(e,t){return!!t&&("unique-value"===e?.type&&null!=e.field&&e.field.toLowerCase()===t.toLowerCase()&&!e.field2&&!e.field3&&!e.valueExpression)}function K(e,t){return null==e?null:t.subtypes?.find(t=>t.code===e)}function X(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const i={},n=K(e,t);if(null!=n){const{defaultValues:e}=n;for(const t in e)i[t]=e[t]}return i[t.subtypeField]=e,new O({name:"New Feature",drawingTool:r,prototype:{attributes:i}})}let Y=class extends(p(r(n(l)))){constructor(e){super(e),this.attributeTableTemplate=null,this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.graphicOrigin=new b(this),this.id=`${Date.now().toString(16)}-subtype-sublayer-${k++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.templates=null,this.title=null,this.visible=!0}load(e){return C(this.renderer,this.fieldsIndex),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return a(e),new R({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,displayField:this.parent?.displayField??"",fields:this.fields,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}get capabilities(){return this.parent?.capabilities}get effectiveCapabilities(){return this.parent?.effectiveCapabilities}get effectiveEditingEnabled(){const{parent:e}=this;return e?e.effectiveEditingEnabled&&this.editingEnabled:this.editingEnabled}get elevationInfo(){return this.parent?.elevationInfo}get featureTitleFields(){return[...this._titleCreator.requiredFields]}writeFieldOverrides(e,t,r){const{fields:i,parent:n}=this;let l;if(i){l=[];let e=0;i.forEach(({name:t,alias:r,editable:i,visible:o})=>{if(!o)return;const s=n?.fields?.find(e=>e.name===t);if(!s)return;const a={name:t};let p=!1;r!==s.alias&&(a.alias=r,p=!0),i!==s.editable&&(a.editable=i,p=!0),l.push(a),p&&e++}),0===e&&l.length===i.length&&(l=null)}else l=o(e);l?.length&&d(r,l,t)}get fields(){const{parent:e,fieldOverrides:t,subtypeCode:r}=this,i=e?.fields;if(!e||!i?.length)return null;const{subtypes:n,subtypeField:o}=e,l=n?.find(e=>e.code===r),s=l?.defaultValues,a=l?.domains,p=[];for(const d of i){const e=d.clone(),{name:i}=e,n=t?.find(e=>e.name===i);if(e.visible=!t?.length||!!n,n){const{alias:t,editable:r}=n;t&&(e.alias=t),!1===r&&(e.editable=!1)}const l=s?.[i]??null;e.defaultValue=i===o?r:l;const u=a?.[i]??null;e.domain=i===o?null:u?"inherited"===u.type?e.domain:u.clone():null,p.push(e)}return p}get floorInfo(){return this.parent?.floorInfo}get isTable(){return!!this.parent?.isTable}get geometryType(){return this.parent?.geometryType}get globalIdField(){return this.parent?this.parent.globalIdField:(s.getLogger(this).error(te("globalIdField")),null)}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get objectIdField(){return this.parent||s.getLogger(this).error(te("objectIdField")),this.parent?.objectIdField}get defaultPopupTemplate(){return this.createPopupTemplate()}get relationships(){return this.parent?.relationships}set renderer(e){C(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&"mesh"!==e.geometryType?J(e.geometryType):null}readRendererFromService(e,t,r){if("Table"===t.type)return null;const i=t.drawingInfo?.renderer,n=A(i,t,r);let o;const{subtypeCode:l}=this;if(null!=l&&z(n,t.subtypeField)){const e=n.uniqueValueInfos?.find(({value:e})=>(e="number"==typeof e?String(e):e)===String(l));e&&(o=new P({symbol:e.symbol}))}else"simple"!==n?.type||n.visualVariables?.length||(o=n);return o}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;if(i)return A(i,t,r)||void 0}get spatialReference(){return this.parent?.spatialReference??h.WGS84}get subtypeField(){return this.parent?.subtypeField}readTemplatesFromService(e,t){return[X(this.subtypeCode,t)]}readTitleFromService(e,t){const r=K(this.subtypeCode,t);return null!=r?r.name:null}get url(){return this.parent?.url}get userHasUpdateItemPrivileges(){return!!this.parent?.userHasUpdateItemPrivileges}async addAttachment(e,t){const{parent:r}=this;if(!r)throw te("addAttachment");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:addAttachment","The feature provided does not belong to this SubtypeSublayer");return r.addAttachment(e,t)}async updateAttachment(e,t,r){const{parent:n}=this;if(!n)throw te("updateAttachment");if(e.getAttribute(n.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:updateAttachment","The feature provided does not belong to this SubtypeSublayer");return n.updateAttachment(e,t,r)}async deleteAttachments(e,t){const{parent:r}=this;if(!r)throw te("deleteAttachments");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:deleteAttachments","The feature provided does not belong to this SubtypeSublayer");return r.deleteAttachments(e,t)}async applyEdits(e,t){if(!this.parent)throw te("applyEdits");return this.parent.applyEdits(e,t)}createPopupTemplate(e){let t=this;const{parent:r,fields:i,title:n}=this;if(r){const{displayField:e,editFieldsInfo:o,objectIdField:l}=r;t={displayField:e,editFieldsInfo:o,fields:i,objectIdField:l,title:n}}return _(t,e)}createQuery(){if(!this.parent)throw te("createQuery");const e=T(this.parent),t=`${this.parent.subtypeField}=${this.subtypeCode}`;return e.where=u(t,this.parent.definitionExpression),e}getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains&&this.parent){const t=I(this.parent,e);if(t)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){const r=await this.load();if(!r.parent)throw te("queryAttachments");const i=e instanceof L?e.clone():new L(e);return i.where=ee(i.where,r.parent.subtypeField,r.subtypeCode),r.parent.queryAttachments(i,t)}async queryFeatureCount(e,t){const r=await this.load();if(!r.parent)throw te("queryFeatureCount");return r.parent.queryFeatureCount(Z(r.parent,r,e),t)}async queryFeatures(e,t){const r=await this.load();if(!r.parent)throw te("queryFeatures");return r.parent.queryFeatures(Z(r.parent,r,e),t)}async queryObjectIds(e,t){const r=await this.load();if(!r.parent)throw te("queryObjectIds");return r.parent.queryObjectIds(Z(r.parent,r,e),t)}async queryRelatedFeatures(e,t){const r=await this.load();if(!r.parent)throw te("queryRelatedFeatures");return r.parent.queryRelatedFeatures(e,t)}async queryRelatedFeaturesCount(e,t){const r=await this.load();if(!r.parent)throw te("queryRelatedFeaturesCount");return r.parent.queryRelatedFeaturesCount(e,t)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};e([y({clonable:!1,readOnly:!0})],Y.prototype,"_titleCreator",null),e([y({type:U,json:H({name:"attributeTableInfo"})})],Y.prototype,"attributeTableTemplate",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"capabilities",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"effectiveCapabilities",null),e([y({json:H()})],Y.prototype,"charts",void 0),e([y({type:Boolean,nonNullable:!0,json:H({name:"enableEditing"})})],Y.prototype,"editingEnabled",void 0),e([y({type:Boolean,readOnly:!0})],Y.prototype,"effectiveEditingEnabled",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"elevationInfo",null),e([y({clonable:!1,readOnly:!0})],Y.prototype,"featureTitleFields",null),e([y({json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],Y.prototype,"fieldOverrides",void 0),e([V("fieldOverrides")],Y.prototype,"writeFieldOverrides",null),e([y({...Q.fields,readOnly:!0,json:{read:!1}})],Y.prototype,"fields",null),e([y(Q.fieldsIndex)],Y.prototype,"fieldsIndex",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"floorInfo",null),e([y({type:f,json:H({name:"formInfo"})})],Y.prototype,"formTemplate",void 0),e([y({readOnly:!0,clonable:!1})],Y.prototype,"graphicOrigin",void 0),e([y({type:String,clonable:!1,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],Y.prototype,"id",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"isTable",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"geometryType",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"globalIdField",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"type",void 0),e([y(B(o(g)))],Y.prototype,"labelsVisible",void 0),e([y({type:[E],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:q},write:{ignoreOrigin:!0,layerContainerTypes:m}}})],Y.prototype,"labelingInfo",void 0),e([y({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0,layerContainerTypes:m}}})],Y.prototype,"layerType",void 0),e([y(B(o(j)))],Y.prototype,"legendEnabled",void 0),e([y({type:["show","hide"]})],Y.prototype,"listMode",void 0),e([y((()=>{const e=o(v);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],Y.prototype,"minScale",void 0),e([y((()=>{const e=o(w);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],Y.prototype,"maxScale",void 0),e([y({readOnly:!0})],Y.prototype,"effectiveScaleRange",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"objectIdField",null),e([y({type:Number,range:{min:0,max:1},nonNullable:!0,json:H({spatialOnly:!0})})],Y.prototype,"opacity",void 0),e([y({clonable:!1})],Y.prototype,"parent",void 0),e([y(B(o(F)))],Y.prototype,"popupEnabled",void 0),e([y({type:t,json:H({name:"popupInfo"})})],Y.prototype,"popupTemplate",void 0),e([y({readOnly:!0})],Y.prototype,"defaultPopupTemplate",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"relationships",null),e([y({types:x,json:H({target:"layerDefinition.drawingInfo.renderer",spatialOnly:!0})})],Y.prototype,"renderer",null),e([M("service","renderer",["drawingInfo.renderer","subtypeField","type"])],Y.prototype,"readRendererFromService",null),e([M("renderer",["layerDefinition.drawingInfo.renderer"])],Y.prototype,"readRenderer",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"spatialReference",null),e([y({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],Y.prototype,"subtypeCode",void 0),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"subtypeField",null),e([y({type:[O],json:H({name:"layerDefinition.templates"})})],Y.prototype,"templates",void 0),e([M("service","templates",["geometryType","subtypeField","subtypes","type"])],Y.prototype,"readTemplatesFromService",null),e([y({type:String,json:H()})],Y.prototype,"title",void 0),e([M("service","title",["subtypes"])],Y.prototype,"readTitleFromService",null),e([y({readOnly:!0,json:{read:!1}})],Y.prototype,"url",null),e([y({readOnly:!0})],Y.prototype,"userHasUpdateItemPrivileges",null),e([y({type:Boolean,nonNullable:!0,json:H({name:"visibility",spatialOnly:!0})})],Y.prototype,"visible",void 0),Y=e([c("esri.layers.support.SubtypeSublayer")],Y);const Z=(e,t,r)=>{if(!r)return t.createQuery();const i=G.from(r);return i.where=ee(i.where,e.subtypeField,t.subtypeCode),i},ee=(e,t,r)=>{const i=new RegExp(`${t}\\s*=\\s*\\d+`),n=`${t}=${r}`,o=e??"";return i.test(o)?o.replace(i,n):u(n,o)},te=e=>new i("subtype-sublayer:parent-missing",`This sublayer must have a parent SubtypeGroupLayer in order to use ${e}`);export{Y as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/has.js";import e from"./CodedValueDomain.js";import r from"./Domain.js";import o from"./InheritedDomain.js";import t from"./RangeDomain.js";const n={key:"type",base:r,typeMap:{range:t,"coded-value":e,inherited:o}};function i(r){if(!r?.type)return null;switch(r.type){case"range":return t.fromJSON(r);case"codedValue":return e.fromJSON(r);case"inherited":return o.fromJSON(r)}return null}export{i as fromJSON,n as types};
5
+ import e from"./CodedValueDomain.js";import r from"./Domain.js";import o from"./InheritedDomain.js";import n from"./RangeDomain.js";const t={key:"type",base:r,typeMap:{range:n,"coded-value":e,inherited:o}};function i(r){if(!r?.type)return null;switch(r.type){case"range":return n.fromJSON(r);case"codedValue":return e.fromJSON(r);case"inherited":return o.fromJSON(r)}return null}export{i as fromJSON,t as types};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../request.js";import"../../core/has.js";import{strict as s}from"../../core/jsonMap.js";import{createAbortError as r}from"../../core/promiseUtils.js";import{property as o,subclass as i}from"../../core/accessorSupport/decorators.js";import a from"../../rest/networks/support/ValidateNetworkTopologyResult.js";import{enumeration as n}from"../../core/accessorSupport/decorators/enumeration.js";const l=s()({Pending:"job-waiting",InProgress:"job-executing",Completed:"job-succeeded"});let c=class extends a{constructor(t){super(t),this.statusUrl=null,this.status=null,this.submissionTime=null,this.lastUpdatedTime=null,this._timer=void 0}destroy(){clearInterval(this._timer)}async checkJobStatus(t){const s={...t,query:{f:"json"}},{data:r}=await e(this.statusUrl,s);return this.read(r),this.editsResolver&&this.editsResolver.resolve({edits:null,addedFeatures:[],updatedFeatures:[],deletedFeatures:[],addedAttachments:[],updatedAttachments:[],deletedAttachments:[],exceededTransferLimit:!0,historicMoment:null}),this}async waitForJobCompletion(t={}){const{interval:e=1e3,statusCallback:s}=t;return new Promise((t,o)=>{this._clearTimer();const i=setInterval(()=>{this._timer||o(r()),this.checkJobStatus().then(e=>{const{status:r}=e;switch(this.status=r,r){case"job-succeeded":this._clearTimer(),t(this);break;case"job-waiting":case"job-executing":s&&s(this)}},t=>{this._clearTimer(),o(t)})},e);this._timer=i})}_clearTimer(){clearInterval(this._timer),this._timer=void 0}};t([o()],c.prototype,"editsResolver",void 0),t([o({type:String,json:{write:!0}})],c.prototype,"statusUrl",void 0),t([n(l)],c.prototype,"status",void 0),t([o({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.submissionTime=t?t.getTime():null}}}})],c.prototype,"submissionTime",void 0),t([o({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.lastUpdatedTime=t?t.getTime():null}}}})],c.prototype,"lastUpdatedTime",void 0),c=t([i("esri.networks.support.TopologyValidationJobInfo")],c);const d=c;export{d as default};
5
+ import{__decorate as t}from"tslib";import e from"../../request.js";import{strict as s}from"../../core/jsonMap.js";import{createAbortError as r}from"../../core/promiseUtils.js";import{property as o,subclass as i}from"../../core/accessorSupport/decorators.js";import a from"../../rest/networks/support/ValidateNetworkTopologyResult.js";import{enumeration as n}from"../../core/accessorSupport/decorators/enumeration.js";const l=s()({Pending:"job-waiting",InProgress:"job-executing",Completed:"job-succeeded"});let d=class extends a{constructor(t){super(t),this.statusUrl=null,this.status=null,this.submissionTime=null,this.lastUpdatedTime=null,this._timer=void 0}destroy(){clearInterval(this._timer)}async checkJobStatus(t){const s={...t,query:{f:"json"}},{data:r}=await e(this.statusUrl,s);return this.read(r),this.editsResolver&&this.editsResolver.resolve({edits:null,addedFeatures:[],updatedFeatures:[],deletedFeatures:[],addedAttachments:[],updatedAttachments:[],deletedAttachments:[],exceededTransferLimit:!0,historicMoment:null}),this}async waitForJobCompletion(t={}){const{interval:e=1e3,statusCallback:s}=t;return new Promise((t,o)=>{this._clearTimer();const i=setInterval(()=>{this._timer||o(r()),this.checkJobStatus().then(e=>{const{status:r}=e;switch(this.status=r,r){case"job-succeeded":this._clearTimer(),t(this);break;case"job-waiting":case"job-executing":s&&s(this)}},t=>{this._clearTimer(),o(t)})},e);this._timer=i})}_clearTimer(){clearInterval(this._timer),this._timer=void 0}};t([o()],d.prototype,"editsResolver",void 0),t([o({type:String,json:{write:!0}})],d.prototype,"statusUrl",void 0),t([n(l)],d.prototype,"status",void 0),t([o({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.submissionTime=t?t.getTime():null}}}})],d.prototype,"submissionTime",void 0),t([o({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.lastUpdatedTime=t?t.getTime():null}}}})],d.prototype,"lastUpdatedTime",void 0),d=t([i("esri.networks.support.TopologyValidationJobInfo")],d);const c=d;export{c as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright Esri, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/5.0/esri/copyright.txt for details.
4
4
  */
5
- import{__decorate as t}from"tslib";import e from"../../request.js";import"../../core/has.js";import{strict as s}from"../../core/jsonMap.js";import{createAbortError as r}from"../../core/promiseUtils.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import a from"../../rest/networks/support/TraceResult.js";import{enumeration as c}from"../../core/accessorSupport/decorators/enumeration.js";const n=s()({Pending:"job-waiting",InProgress:"job-executing",Completed:"job-succeeded"});let m=class extends a{constructor(t){super(t),this.statusUrl=null,this.status=null,this.submissionTime=null,this.lastUpdatedTime=null,this._timer=void 0}destroy(){clearInterval(this._timer)}async checkJobStatus(t){const s={...t,query:{f:"json"}},{data:r}=await e(this.statusUrl,s),i=r.traceResults?{...r.traceResults,...r}:r;return this.read(i),this}async waitForJobCompletion(t={}){const{interval:e=1e3,statusCallback:s}=t;return new Promise((t,i)=>{this._clearTimer();const o=setInterval(()=>{this._timer||i(r()),this.checkJobStatus().then(e=>{const{status:r}=e;switch(this.status=r,r){case"job-succeeded":this._clearTimer(),t(this);break;case"job-waiting":case"job-executing":s&&s(this)}},t=>{this._clearTimer(),i(t)})},e);this._timer=o})}_clearTimer(){clearInterval(this._timer),this._timer=void 0}};t([i({type:String,json:{write:!0}})],m.prototype,"statusUrl",void 0),t([c(n)],m.prototype,"status",void 0),t([i({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.submissionTime=t?t.getTime():null}}}})],m.prototype,"submissionTime",void 0),t([i({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.lastUpdatedTime=t?t.getTime():null}}}})],m.prototype,"lastUpdatedTime",void 0),m=t([o("esri.networks.support.TraceJobInfo")],m);export{m as default};
5
+ import{__decorate as t}from"tslib";import e from"../../request.js";import{strict as s}from"../../core/jsonMap.js";import{createAbortError as r}from"../../core/promiseUtils.js";import{property as i,subclass as o}from"../../core/accessorSupport/decorators.js";import a from"../../rest/networks/support/TraceResult.js";import{enumeration as c}from"../../core/accessorSupport/decorators/enumeration.js";const n=s()({Pending:"job-waiting",InProgress:"job-executing",Completed:"job-succeeded"});let m=class extends a{constructor(t){super(t),this.statusUrl=null,this.status=null,this.submissionTime=null,this.lastUpdatedTime=null,this._timer=void 0}destroy(){clearInterval(this._timer)}async checkJobStatus(t){const s={...t,query:{f:"json"}},{data:r}=await e(this.statusUrl,s),i=r.traceResults?{...r.traceResults,...r}:r;return this.read(i),this}async waitForJobCompletion(t={}){const{interval:e=1e3,statusCallback:s}=t;return new Promise((t,i)=>{this._clearTimer();const o=setInterval(()=>{this._timer||i(r()),this.checkJobStatus().then(e=>{const{status:r}=e;switch(this.status=r,r){case"job-succeeded":this._clearTimer(),t(this);break;case"job-waiting":case"job-executing":s&&s(this)}},t=>{this._clearTimer(),i(t)})},e);this._timer=o})}_clearTimer(){clearInterval(this._timer),this._timer=void 0}};t([i({type:String,json:{write:!0}})],m.prototype,"statusUrl",void 0),t([c(n)],m.prototype,"status",void 0),t([i({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.submissionTime=t?t.getTime():null}}}})],m.prototype,"submissionTime",void 0),t([i({type:Date,json:{type:Number,write:{writer:(t,e)=>{e.lastUpdatedTime=t?t.getTime():null}}}})],m.prototype,"lastUpdatedTime",void 0),m=t([o("esri.networks.support.TraceJobInfo")],m);export{m as default};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arcgis/core",
3
- "version": "5.0.0-next.67",
3
+ "version": "5.0.0-next.68",
4
4
  "homepage": "https://js.arcgis.com",
5
5
  "description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
6
6
  "keywords": [
@@ -19,7 +19,7 @@
19
19
  "license": "SEE LICENSE IN copyright.txt",
20
20
  "dependencies": {
21
21
  "@amcharts/amcharts5": "~5.14.4",
22
- "@arcgis/toolkit": "^5.0.0-next.89",
22
+ "@arcgis/toolkit": "^5.0.0-next.90",
23
23
  "@esri/arcgis-html-sanitizer": "~4.1.0",
24
24
  "@esri/calcite-components": "^5.0.0-next.28",
25
25
  "@vaadin/grid": "~24.9.6",