@arcgis/core 6.0.0-next.33 → 6.0.0-next.35

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 (317) hide show
  1. package/Basemap.d.ts +2 -2
  2. package/README.md +2 -2
  3. package/analysis/ShadowCastAnalysis.d.ts +11 -5
  4. package/applications/Urban/meshUtils.d.ts +1 -0
  5. package/applications/Urban/meshUtils.js +1 -1
  6. package/arcgisGlobal.d.ts +1 -0
  7. package/assets/esri/core/libs/libtess/libtess-f32.wasm +0 -0
  8. package/assets/esri/core/libs/libtess/libtess-f64.wasm +0 -0
  9. package/assets/esri/core/workers/RemoteClient.js +1 -1
  10. package/assets/esri/core/workers/chunks/01f55004d64309f8538b.js +1 -0
  11. package/assets/esri/core/workers/chunks/0202eb8c2b2865f99981.js +1 -0
  12. package/assets/esri/core/workers/chunks/{67e533748435253aaba6.js → 0284f608d25c654fcc11.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f3dc0bc0e00635855a7a.js → 03daf6f235c6edef6268.js} +1 -1
  14. package/assets/esri/core/workers/chunks/04a1d08c3b5b1dc7628f.js +1 -0
  15. package/assets/esri/core/workers/chunks/{1eaf8bfdd3765a90ccc2.js → 0523f893870a1546d7d9.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{1ee4df0fd61440cb5f02.js → 06102715e9a8f218e07c.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{6029773458ab98600f67.js → 07e5482e1fc69be5de09.js} +1 -1
  18. package/assets/esri/core/workers/chunks/08140725277de5d2e41a.js +1 -0
  19. package/assets/esri/core/workers/chunks/{72d20d3957d612f86431.js → 0a508e25ec05363e1f04.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{2d9a1f23ec6ce90723ac.js → 0d99bfb75dcb9fa29080.js} +1 -1
  21. package/assets/esri/core/workers/chunks/10ad7b35b6800d40444e.js +1 -0
  22. package/assets/esri/core/workers/chunks/1132e28aaa5825b10b6e.js +1 -0
  23. package/assets/esri/core/workers/chunks/{84038dd85005fea413eb.js → 139e753d95cfc9470e74.js} +1 -1
  24. package/assets/esri/core/workers/chunks/{dd30b02c5978c1c5f511.js → 155861fbd0e5fc2db80c.js} +1 -1
  25. package/assets/esri/core/workers/chunks/15950c2fb173b62ee0ec.js +1 -0
  26. package/assets/esri/core/workers/chunks/165ca7a97b611c8f26c4.js +1 -0
  27. package/assets/esri/core/workers/chunks/{418addce122dbb8897b4.js → 1a614bac5db42c6263f8.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{0cc7fba402a93e6d2455.js → 1ae0c9345626e70affd3.js} +2 -2
  29. package/assets/esri/core/workers/chunks/{58c3ae6030def2ed5f31.js → 1b17f5f720f6cf3f6d73.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{cd355baab983033c3ef0.js → 1ec772eaa63eb6937231.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{f9dc38761b314d33890f.js → 1f51567f47c2e2fc8a23.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{5c04835b0b52461183cd.js → 1fd82fcba2758741996a.js} +1 -1
  33. package/assets/esri/core/workers/chunks/21e1d423ee33f916547e.js +1 -0
  34. package/assets/esri/core/workers/chunks/2211ff0a1f1ae8100231.js +1 -0
  35. package/assets/esri/core/workers/chunks/{096b2bf1c0d69d27f20c.js → 247617c0dbae2386ab3b.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{97ec46605f16333144b7.js → 26ea39dfdf887f357fce.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{85de980c5b296ec69323.js → 279089a6a3f08022c678.js} +1 -1
  38. package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +1 -0
  39. package/assets/esri/core/workers/chunks/2b4dd42920d37b1ff0a9.js +2 -0
  40. package/assets/esri/core/workers/chunks/{8da2a10318f49d0dc73a.js → 31ef7b7074b3e3829763.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{b657363113f4a37e634b.js → 3223f9fbc76ba9ef8d13.js} +1 -1
  42. package/assets/esri/core/workers/chunks/322b22a5d54e404bebd5.js +1 -0
  43. package/assets/esri/core/workers/chunks/{122e75b21699a4e83b15.js → 338d800d4efcc91cead1.js} +1 -1
  44. package/assets/esri/core/workers/chunks/3537fe95b83a13b156cc.js +1 -0
  45. package/assets/esri/core/workers/chunks/{360c944c610efa2051fc.js → 379db67f78161ebd5468.js} +2 -2
  46. package/assets/esri/core/workers/chunks/{f09bc86cd52224febfcb.js → 3b380e64566a6cce59e2.js} +1 -1
  47. package/assets/esri/core/workers/chunks/{be55771758e4bcef0976.js → 3e406043a374ee17475b.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{e3b212f8af448ec29eef.js → 3fe4c89acd325d36618d.js} +1 -1
  49. package/assets/esri/core/workers/chunks/449a2dee17b54946f245.js +1 -0
  50. package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +1 -0
  51. package/assets/esri/core/workers/chunks/{a596779eaeec7310671d.js → 478a89317a12e9b4d146.js} +1 -1
  52. package/assets/esri/core/workers/chunks/{fcc3902d6d9eda6f09f5.js → 48b8b57f559a53c6c513.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{55a9eaeb152a3abada67.js → 4e5405134d079bdf9b7a.js} +1 -1
  54. package/assets/esri/core/workers/chunks/4f3e0d583cfa9d1d6727.js +2 -0
  55. package/assets/esri/core/workers/chunks/{d070fcb73ce274ab80e4.js → 5504ec9bd9ee4d10af07.js} +1 -1
  56. package/assets/esri/core/workers/chunks/552c36b40e5a5ec117fb.js +1 -0
  57. package/assets/esri/core/workers/chunks/5622f3faa59434772857.js +1 -0
  58. package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js → 5864bce1498a13ee5b7e.js} +2 -2
  59. package/assets/esri/core/workers/chunks/59a1b637d2c107504a04.js +1 -0
  60. package/assets/esri/core/workers/chunks/59a88dd53f8806bbec06.js +1 -0
  61. package/assets/esri/core/workers/chunks/{f4d91d470ca5fea0bd26.js → 5bd1414220e42cb8ebcf.js} +1 -1
  62. package/assets/esri/core/workers/chunks/5c2fe67527c9d7b4dba3.js +1 -0
  63. package/assets/esri/core/workers/chunks/5c3aa8386705c5e40358.js +1 -0
  64. package/assets/esri/core/workers/chunks/5d781c2c6204cffffd0d.js +1 -0
  65. package/assets/esri/core/workers/chunks/{176d75e76318bfc25a53.js → 60c8eedd06080edab3e3.js} +1 -1
  66. package/assets/esri/core/workers/chunks/61d36730564c5ac5edab.js +1 -0
  67. package/assets/esri/core/workers/chunks/6604272ef6fe85279032.js +1 -0
  68. package/assets/esri/core/workers/chunks/{29cc6b1705418b1be5d7.js → 687deb918eb48a963c8f.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{0694c7bcfe71692e2ccf.js → 723df53cfa0189837d01.js} +1 -1
  70. package/assets/esri/core/workers/chunks/{90c1d10eae7ae71889b0.js → 7400b8c454b47ee4fb3c.js} +1 -1
  71. package/assets/esri/core/workers/chunks/796c6195b6bf59dcc9bd.js +1 -0
  72. package/assets/esri/core/workers/chunks/7b45ac83e279fe9516a5.js +1 -0
  73. package/assets/esri/core/workers/chunks/{2de077c7b971f2c215a6.js → 7ddbde8fdd1cf3c53f50.js} +1 -1
  74. package/assets/esri/core/workers/chunks/804606b194dc9e71d088.js +1 -0
  75. package/assets/esri/core/workers/chunks/8102f0bf5707c3be3310.js +1 -0
  76. package/assets/esri/core/workers/chunks/{1a8d8274df292d65f82e.js → 81bcc495e6eaf2cf7474.js} +1 -1
  77. package/assets/esri/core/workers/chunks/90360c0bd053d3e3fd77.js +1 -0
  78. package/assets/esri/core/workers/chunks/{d1d6154b4af1c9cc497b.js → 934e1f2153e6fad6ed23.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{e096c1d9d53af74d3207.js → 990e96139b5a1dccb061.js} +1 -1
  80. package/assets/esri/core/workers/chunks/9c3de54513bf8619271c.js +1 -0
  81. package/assets/esri/core/workers/chunks/{f28b63c1179366dac8a2.js → 9e2c30b67bab5795306e.js} +1 -1
  82. package/assets/esri/core/workers/chunks/{9184c947cdefe06bf551.js → a18c3cbe505a19d29569.js} +1 -1
  83. package/assets/esri/core/workers/chunks/aa6ee2aa4ff6e6d41efb.js +1 -0
  84. package/assets/esri/core/workers/chunks/{3fd5c3cd8457ddc68798.js → aa779896fd9e5c341349.js} +1 -1
  85. package/assets/esri/core/workers/chunks/ac10c7d2c4829a150037.js +1 -0
  86. package/assets/esri/core/workers/chunks/{fe6dcb21570395e46ce8.js → afc8a9847f31bb66b13b.js} +1 -1
  87. package/assets/esri/core/workers/chunks/c5bf19da62a3d31009fe.js +2 -0
  88. package/assets/esri/core/workers/chunks/{2226c20c38e20713bcb5.js.LICENSE.txt → c5bf19da62a3d31009fe.js.LICENSE.txt} +1 -1
  89. package/assets/esri/core/workers/chunks/c7adb7b77721c75891f4.js +1 -0
  90. package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +1 -0
  91. package/assets/esri/core/workers/chunks/{bead830a677690eeb6fb.js → ce8ef2eec290e1df6b2a.js} +1 -1
  92. package/assets/esri/core/workers/chunks/d3369ffed19f4c264dcd.js +1 -0
  93. package/assets/esri/core/workers/chunks/d3412518a7b518860fbb.js +1 -0
  94. package/assets/esri/core/workers/chunks/{3048e74e6246324ce6fc.js → d5916500514a41a4758f.js} +1 -1
  95. package/assets/esri/core/workers/chunks/{89dc49e784f7ba3b93ea.js → dac69c0047488fdf986d.js} +1 -1
  96. package/assets/esri/core/workers/chunks/db1f7b2562de495b3401.js +2 -0
  97. package/assets/esri/core/workers/chunks/dcc782e4bf9e8a8202f9.js +1 -0
  98. package/assets/esri/core/workers/chunks/dcdf837a452dc0cac582.js +1 -0
  99. package/assets/esri/core/workers/chunks/e0a37d3bcb9a944e53dd.js +1 -0
  100. package/assets/esri/core/workers/chunks/{19a4fa965b70fc6f78f6.js → e209cb1f3f14bf576ebe.js} +1 -1
  101. package/assets/esri/core/workers/chunks/e67ea2f1714e5abeae44.js +1 -0
  102. package/assets/esri/core/workers/chunks/e8fb2ba7b7a4f0916325.js +1 -0
  103. package/assets/esri/core/workers/chunks/{636e9c4ac1f9ae98f9d1.js → ea81f9d71b0842a4be26.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js → eaa0e906b46ae4c84d72.js} +2 -2
  105. package/assets/esri/core/workers/chunks/efcd38aad9aa667001b2.js +1 -0
  106. package/assets/esri/core/workers/chunks/{3aafdb905c697bc9b1ad.js → f372f4eb5527238c46f5.js} +1 -1
  107. package/assets/esri/core/workers/chunks/f497968055af459c5da4.js +1 -0
  108. package/assets/esri/core/workers/chunks/f7123ba1286f64e13e91.js +1 -0
  109. package/assets/esri/core/workers/chunks/fcb4707c2e95099b9f30.js +1 -0
  110. package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
  111. package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
  112. package/chunks/BlurEmission.glsl.js +9 -4
  113. package/chunks/GlobalIllumination.glsl.js +55 -46
  114. package/chunks/GlobalIlluminationBlur.glsl.js +13 -9
  115. package/chunks/RibbonLine.glsl.js +90 -88
  116. package/chunks/Terrain.glsl.js +9 -9
  117. package/chunks/libtess-f32.js +1 -1
  118. package/chunks/libtess-f64.js +1 -1
  119. package/chunks/lyr3DMain.js +1 -1
  120. package/chunks/lyr3DWorker.js +2 -2
  121. package/config.d.ts +3 -3
  122. package/config.js +1 -1
  123. package/core/has.js +1 -1
  124. package/core/mathUtils.js +1 -1
  125. package/core/workers.d.ts +1 -0
  126. package/form/FormTemplate.d.ts +1 -1
  127. package/geometry/libtess.js +1 -1
  128. package/geometry/projection/projectors.js +1 -1
  129. package/geometry/support/MeshLocalVertexSpace.d.ts +3 -3
  130. package/geometry/support/aaBoundingRect.js +1 -1
  131. package/geometry/support/meshUtils/convertMeshVertexSpace.js +1 -1
  132. package/geometry/support/meshUtils/vertexSpaceConversion.js +1 -1
  133. package/identity/Credential.d.ts +1 -1
  134. package/identity/IdentityManager.d.ts +1 -1
  135. package/identity/IdentityManagerBase.js +1 -1
  136. package/identity/OAuthInfo.d.ts +1 -1
  137. package/identity/ServerInfo.d.ts +1 -1
  138. package/kernel.d.ts +3 -3
  139. package/kernel.js +1 -1
  140. package/layers/CSVLayer.js +1 -1
  141. package/layers/GaussianSplatLayer.js +1 -1
  142. package/layers/IntegratedMesh3DTilesLayer.js +1 -1
  143. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  144. package/layers/VectorTileLayer.d.ts +2 -2
  145. package/layers/VideoLayer.js +1 -1
  146. package/layers/VoxelWasmPerSceneView.js +1 -1
  147. package/layers/WFSLayer.d.ts +8 -4
  148. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  149. package/layers/graphics/sources/CSVSource.js +1 -1
  150. package/layers/graphics/sources/GeoJSONSource.js +1 -1
  151. package/layers/graphics/sources/MemorySource.js +2 -2
  152. package/layers/graphics/sources/WFSSource.js +1 -1
  153. package/layers/graphics/sources/geojson/geojson.js +1 -1
  154. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  155. package/layers/graphics/sources/support/QueryTask.js +1 -1
  156. package/layers/graphics/sources/support/timeQueryUtils.js +2 -0
  157. package/layers/mixins/APIKeyMixin.d.ts +1 -1
  158. package/layers/mixins/ArcGISMapService.d.ts +17 -0
  159. package/layers/mixins/ArcGISMapService.js +1 -1
  160. package/layers/ogc/types.d.ts +1 -1
  161. package/layers/ogc/wfsUtils.d.ts +7 -2
  162. package/layers/ogc/wfsUtils.js +1 -1
  163. package/layers/ogc/xmlUtils.js +1 -1
  164. package/layers/support/TelemetryData.d.ts +28 -4
  165. package/layers/support/TimeInformation.js +1 -1
  166. package/layers/support/tiles3DUtils.js +1 -1
  167. package/layers/support/timeInfoUtils.js +2 -0
  168. package/layers/video/videoUtils.js +1 -1
  169. package/package.json +4 -4
  170. package/rest/query/executeAttributeBinsQuery.js +1 -1
  171. package/rest/query/executeForExtent.js +1 -1
  172. package/rest/query/executeForTopCount.js +1 -1
  173. package/rest/query/executeForTopExtents.js +1 -1
  174. package/rest/query/executeForTopIds.js +1 -1
  175. package/rest/query/executeTopFeaturesQuery.js +1 -1
  176. package/rest/query/operations/query.js +1 -1
  177. package/rest/query/operations/queryAttributeBins.js +1 -1
  178. package/rest/query/operations/queryTopFeatures.js +1 -1
  179. package/rest/route.d.ts +1 -1
  180. package/rest/support/AreasAndLengthsParameters.d.ts +1 -1
  181. package/rest/support/LengthsParameters.d.ts +1 -1
  182. package/rest/support/timeUtils.js +1 -1
  183. package/symbols/TextSymbol.d.ts +0 -1
  184. package/views/2d/engine/webgl/FeatureDisplayList.js +1 -1
  185. package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
  186. package/views/2d/engine/webgl/GlyphWorker.js +1 -1
  187. package/views/2d/engine/webgl/TextureManager.js +1 -1
  188. package/views/2d/engine/webgl/materialKeyUtils.js +2 -0
  189. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  190. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  191. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
  192. package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
  193. package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillMeshWriter.js +1 -1
  194. package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillMeshWriter.js +1 -1
  195. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillMeshWriter.js +1 -1
  196. package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillMeshWriter.js +1 -1
  197. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  198. package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeMeshWriter.js +1 -1
  199. package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineMeshWriter.js +1 -1
  200. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerMeshWriter.js +1 -1
  201. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  202. package/views/2d/layers/VideoLayerView2D.js +1 -1
  203. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  204. package/views/3d/FocusAreasView.js +1 -1
  205. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  206. package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
  207. package/views/3d/analysis/ElevationProfile/ElevationProfileLineSceneComputation.js +1 -1
  208. package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
  209. package/views/3d/analysis/ShadowCast/ShadowCastError.d.ts +40 -0
  210. package/views/3d/analysis/ShadowCast/ShadowCastError.js +2 -0
  211. package/views/3d/analysis/ShadowCast/sunlightUtils.js +2 -0
  212. package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +16 -1
  213. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  214. package/views/3d/camera/constraintUtils/surfaceCollision.js +1 -1
  215. package/views/3d/camera/intersectionUtils.js +1 -1
  216. package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
  217. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  218. package/views/3d/layers/Lyr3DWorker.js +1 -1
  219. package/views/3d/layers/graphics/ElevationAligners.js +1 -1
  220. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  221. package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
  222. package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
  223. package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
  224. package/views/3d/layers/graphics/Graphics3DWaterSymbolLayer.js +1 -1
  225. package/views/3d/layers/graphics/Graphics3DWebStyleSymbol.js +1 -1
  226. package/views/3d/layers/graphics/MeshFastUpdateProcessor.js +1 -1
  227. package/views/3d/layers/graphics/polygonUtils.js +1 -1
  228. package/views/3d/layers/i3s/I3SIndex.js +1 -1
  229. package/views/3d/layers/i3s/I3SViewportQueries.js +1 -1
  230. package/views/3d/layers/support/FeatureMemory.js +1 -1
  231. package/views/3d/layers/support/FeatureTile.js +1 -1
  232. package/views/3d/navigation/modes/GroundNavigationMode3D.js +1 -1
  233. package/views/3d/state/Constraints.js +1 -1
  234. package/views/3d/state/NearFarHeuristic.js +1 -1
  235. package/views/3d/state/ScreenSizePerspective.js +1 -1
  236. package/views/3d/state/ViewStateManager.js +1 -1
  237. package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
  238. package/views/3d/state/utils/groundNavigationUtils.js +1 -1
  239. package/views/3d/support/RenderCoordsHelper.js +1 -1
  240. package/views/3d/support/orientedBoundingBox.js +1 -1
  241. package/views/3d/support/sphereExtentUtils.js +1 -1
  242. package/views/3d/terrain/TerrainRenderer.js +1 -1
  243. package/views/3d/terrain/TerrainSurface.js +1 -1
  244. package/views/3d/terrain/TileRenderer.js +1 -1
  245. package/views/3d/terrain/tileUtils.js +1 -1
  246. package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
  247. package/views/3d/webgl-engine/lib/NavigationDepthCache.js +1 -1
  248. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  249. package/views/3d/webgl-engine/lib/RibbonLineVertexInfo.js +1 -1
  250. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  251. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  252. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  253. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  254. package/views/3d/webgl.d.ts +1 -1
  255. package/views/SceneView.js +1 -1
  256. package/views/support/Scheduler.js +1 -1
  257. package/views/webgl/BufferObject.js +1 -1
  258. package/views/webgl/FramebufferObject.js +1 -1
  259. package/widgets/Directions.d.ts +1 -1
  260. package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
  261. package/widgets/HistogramRangeSlider.d.ts +1 -1
  262. package/assets/esri/core/workers/chunks/0e445ec3523de9f2dfa2.js +0 -1
  263. package/assets/esri/core/workers/chunks/0f6c0d42100c21367e5c.js +0 -1
  264. package/assets/esri/core/workers/chunks/131185d26343a997495e.js +0 -1
  265. package/assets/esri/core/workers/chunks/176d0a06ebff5a29dedf.js +0 -1
  266. package/assets/esri/core/workers/chunks/18776a130d96879a68b1.js +0 -1
  267. package/assets/esri/core/workers/chunks/1a3f71c4d97c36050030.js +0 -1
  268. package/assets/esri/core/workers/chunks/20a698709c3c11ff2c16.js +0 -1
  269. package/assets/esri/core/workers/chunks/2226c20c38e20713bcb5.js +0 -2
  270. package/assets/esri/core/workers/chunks/277263466837e1673f56.js +0 -1
  271. package/assets/esri/core/workers/chunks/2981e904ab62f3ed80d0.js +0 -2
  272. package/assets/esri/core/workers/chunks/32cc59e126df8c96a0cf.js +0 -2
  273. package/assets/esri/core/workers/chunks/379ef56f6b32494832a6.js +0 -1
  274. package/assets/esri/core/workers/chunks/38d852676677e5697864.js +0 -1
  275. package/assets/esri/core/workers/chunks/46453ebfee17b5421d9d.js +0 -1
  276. package/assets/esri/core/workers/chunks/5a9b7eb26f936f03d02e.js +0 -1
  277. package/assets/esri/core/workers/chunks/5bb6c255bdc8aa9ba23e.js +0 -1
  278. package/assets/esri/core/workers/chunks/5f07f52bb8b7721f08d3.js +0 -1
  279. package/assets/esri/core/workers/chunks/654f5441227579d2b6b4.js +0 -1
  280. package/assets/esri/core/workers/chunks/6b5c073dddd89d06ed80.js +0 -1
  281. package/assets/esri/core/workers/chunks/6bb191b19ce43a27f205.js +0 -1
  282. package/assets/esri/core/workers/chunks/6ddc29a144640acb1192.js +0 -1
  283. package/assets/esri/core/workers/chunks/6ebe73f69ae822053b70.js +0 -1
  284. package/assets/esri/core/workers/chunks/6f6d1873753a9c6994aa.js +0 -1
  285. package/assets/esri/core/workers/chunks/7084dd6e10c6c1393e92.js +0 -1
  286. package/assets/esri/core/workers/chunks/7566321c6a2913f2852b.js +0 -1
  287. package/assets/esri/core/workers/chunks/7b5cd150a4d0139850be.js +0 -1
  288. package/assets/esri/core/workers/chunks/7cc9d7a88b64e25fce14.js +0 -1
  289. package/assets/esri/core/workers/chunks/7e211d8a8ad6c6a7cf3e.js +0 -1
  290. package/assets/esri/core/workers/chunks/844eedda8f749972f707.js +0 -2
  291. package/assets/esri/core/workers/chunks/849f446c718e892f39ce.js +0 -1
  292. package/assets/esri/core/workers/chunks/87177e0f82e8a6ae3189.js +0 -1
  293. package/assets/esri/core/workers/chunks/9976eaa81085c0d17e14.js +0 -1
  294. package/assets/esri/core/workers/chunks/a2196a49f89d57a0a1c7.js +0 -1
  295. package/assets/esri/core/workers/chunks/a504a5e06cb89a620799.js +0 -1
  296. package/assets/esri/core/workers/chunks/a65951f1d5702cfd996e.js +0 -1
  297. package/assets/esri/core/workers/chunks/aba259a70bee68d2edb7.js +0 -1
  298. package/assets/esri/core/workers/chunks/b8fd7c3b36981261378b.js +0 -1
  299. package/assets/esri/core/workers/chunks/b9cb92858a576eb6aa06.js +0 -1
  300. package/assets/esri/core/workers/chunks/c33a9635c294c8774977.js +0 -1
  301. package/assets/esri/core/workers/chunks/c570b90995c65bbb2e14.js +0 -1
  302. package/assets/esri/core/workers/chunks/c576bef77e34920af188.js +0 -1
  303. package/assets/esri/core/workers/chunks/cf1ec61eb2ad147bb931.js +0 -1
  304. package/assets/esri/core/workers/chunks/daae21cf77864f3293ef.js +0 -1
  305. package/assets/esri/core/workers/chunks/dc2f93453dfa40f623ab.js +0 -1
  306. package/assets/esri/core/workers/chunks/e81173724e8de8c1e65b.js +0 -1
  307. package/assets/esri/core/workers/chunks/e83f9abee611c5b80009.js +0 -1
  308. package/assets/esri/core/workers/chunks/f39c700f3db7db52b522.js +0 -1
  309. package/assets/esri/core/workers/chunks/f45064066e1ab041a0b2.js +0 -1
  310. package/assets/esri/core/workers/chunks/ffe49d9e7df081bef4a5.js +0 -1
  311. package/views/2d/engine/webgl/hashMosaic.js +0 -2
  312. /package/assets/esri/core/workers/chunks/{0cc7fba402a93e6d2455.js.LICENSE.txt → 1ae0c9345626e70affd3.js.LICENSE.txt} +0 -0
  313. /package/assets/esri/core/workers/chunks/{844eedda8f749972f707.js.LICENSE.txt → 2b4dd42920d37b1ff0a9.js.LICENSE.txt} +0 -0
  314. /package/assets/esri/core/workers/chunks/{32cc59e126df8c96a0cf.js.LICENSE.txt → 4f3e0d583cfa9d1d6727.js.LICENSE.txt} +0 -0
  315. /package/assets/esri/core/workers/chunks/{bd46a04a9ee4ea9e6ef1.js.LICENSE.txt → 5864bce1498a13ee5b7e.js.LICENSE.txt} +0 -0
  316. /package/assets/esri/core/workers/chunks/{2981e904ab62f3ed80d0.js.LICENSE.txt → db1f7b2562de495b3401.js.LICENSE.txt} +0 -0
  317. /package/assets/esri/core/workers/chunks/{164c8eeefa8232b2b191.js.LICENSE.txt → eaa0e906b46ae4c84d72.js.LICENSE.txt} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{clamp as e,floatEqualUlp as t}from"../../core/mathUtils.js";import n from"../Extent.js";function r(e){return e}function i(e=Q){return r([e[0],e[1],e[2],e[3]])}function a(e){return r([e[0],e[1],e[2],e[3]])}function o(e,t){return e!==t&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]),e}function s(e,t,n,r,a=i()){return a[0]=e,a[1]=t,a[2]=n,a[3]=r,a}function c(e,t=i()){return t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax,t}function l(e,t,r=new n){return r.xmin=e[0],r.ymin=e[1],r.xmax=e[2],r.ymax=e[3],r.spatialReference=t,r}function u(e,t){t[0]<e[0]&&(e[0]=t[0]),t[0]>e[2]&&(e[2]=t[0]),t[1]<e[1]&&(e[1]=t[1]),t[1]>e[3]&&(e[3]=t[1])}function d(e,t){t<e[0]&&(e[0]=t),t>e[2]&&(e[2]=t)}function f(e,t){t<e[1]&&(e[1]=t),t>e[3]&&(e[3]=t)}function p(e,{xmin:t,ymin:n,xmax:r,ymax:i}){e[0]=Math.min(e[0],t),e[1]=Math.min(e[1],n),e[2]=Math.max(e[2],r),e[3]=Math.max(e[3],i)}function m(e,t,n){if(t==null)o(n,e);else if(`length`in t)U(t)?(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3])):(t.length===2||t.length===3)&&(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[0]),n[3]=Math.max(e[3],t[1]));else switch(t.type){case`extent`:n[0]=Math.min(e[0],t.xmin),n[1]=Math.min(e[1],t.ymin),n[2]=Math.max(e[2],t.xmax),n[3]=Math.max(e[3],t.ymax);break;case`point`:n[0]=Math.min(e[0],t.x),n[1]=Math.min(e[1],t.y),n[2]=Math.max(e[2],t.x),n[3]=Math.max(e[3],t.y)}}function h(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3])}function g(e,t,n=e){let r=t.length,i=e[0],a=e[1],o=e[2],s=e[3];for(let e=0;e<r;e++){let n=t[e];i=Math.min(i,n[0]),a=Math.min(a,n[1]),o=Math.max(o,n[0]),s=Math.max(s,n[1])}return n[0]=i,n[1]=a,n[2]=o,n[3]=s,n}function _(e){for(let t=0;t<4;t++)if(!isFinite(e[t]))return!1;return!0}function v(e){return e==null||e[0]>=e[2]?0:e[2]-e[0]}function y(e){return e==null||e[1]>=e[3]?0:e[3]-e[1]}function b(e){return v(e)*y(e)}function x(e){return v(e)>0&&y(e)>0}function S(e,t=[0,0]){return t[0]=(e[0]+e[2])/2,t[1]=(e[1]+e[3])/2,t}function C(e){let t=v(e),n=y(e);return Math.sqrt(t*t+n*n)}function w(e,t){return O(e,t[0],t[1])}function T(e,t){let n=t.radius,r=(e[0]+e[2])*.5,i=Math.abs(t.center[0]-r),a=(e[2]-e[0])*.5;if(i>n+a)return!1;let o=(e[1]+e[3])*.5,s=(e[3]-e[1])*.5,c=Math.abs(t.center[1]-o);if(c>n+s)return!1;if(i<a||c<s)return!0;let l=i-a,u=c-s;return l*l+u*u<=n*n}function E(e,t,n){let r=e[0],i=e[1],a=e[2],o=e[3],{x:s,y:c}=t,{x:l,y:u}=n,d=(e,t)=>(u-c)*e+(s-l)*t+(l*c-s*u)<0,f=d(r,o),p=d(a,o),m=d(a,i),h=d(r,i);return!(f===p&&p===m&&m===h&&h===f||s<r&&l<r||s>a&&l>a||c>o&&u>o||c<i&&u<i)}function D(e,t){return e?O(e,t.x,t.y):!1}function O(e,t,n){return t>=e[0]&&n>=e[1]&&t<=e[2]&&n<=e[3]}function k(e,t,n,r){return t>=e[0]-r&&n>=e[1]-r&&t<=e[2]+r&&n<=e[3]+r}function A(e,t,n){return t[0]>=e[0]-n&&t[1]>=e[1]-n&&t[0]<=e[2]+n&&t[1]<=e[3]+n}function j(e,t){return Math.max(t[0],e[0])<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])<=Math.min(t[3],e[3])}function M(e,t,n){return Math.max(t[0],e[0])-n<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])-n<=Math.min(t[3],e[3])}function N(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}function P(e,t,n){return t==null?o(n,e):(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3]),n)}function F(t,n,r){if(n==null)return o(r,t);let i=n[0],a=n[1],s=n[2],c=n[3];return r[0]=e(t[0],i,s),r[1]=e(t[1],a,c),r[2]=e(t[2],i,s),r[3]=e(t[3],a,c),r}function I(e,t){let n=(e[0]+e[2])/2,r=(e[1]+e[3])/2,i=Math.max(Math.abs(t[0]-n)-v(e)/2,0),a=Math.max(Math.abs(t[1]-r)-y(e)/2,0);return Math.sqrt(i*i+a*a)}function L(e,t){t[0]=e[2]-e[0],t[1]=e[3]-e[1]}function R(e,t,n,r){return r??=e,r[0]=e[0]+t,r[1]=e[1]+n,r[2]=e[2]+t,r[3]=e[3]+n,r}function z(e,t,n=e){return n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]+t,n[3]=e[3]+t,n}function B(e,t,n=e){return n[0]=t[0],n[1]=t[1],n!==e&&(n[2]=e[2],n[3]=e[3]),n}function V(e,t,n=e){return n[2]=t[0],n[3]=t[1],n!==e&&(n[0]=e[0],n[1]=e[1]),e}function H(e){return e?o(e,Z):i(Z)}function U(e){return e!=null&&e.length===4}function W(e){return(v(e)===0||!isFinite(e[0]))&&(y(e)===0||!isFinite(e[1]))}function G(e,t){return!U(e)||!U(t)?e==null&&t==null||e===t:e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function K(e,n,r){return e!=null&&n!=null&&e.every((e,i)=>t(e,n[i],r))}function q(e,t,n){return t==null?!1:n?n.contains(e[0],e[2],t[0])&&n.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:N(e,t)}function J(e,t,n){return e==null?!1:n?(n.contains(t[0],t[2],e[0])||n.contains(t[0],t[2],e[2])||n.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):j(e,t)}function Y(e,t){if(t.length!==4||e[0]===e[2]||e[1]===e[3])return!1;for(let n=0;n<t.length;n++){let r=t[n],i=t[(n+1)%t.length];if(r[0]!==e[0]&&r[0]!==e[2]||r[1]!==e[1]&&r[1]!==e[3])return!1;let a=r[1]===i[1]&&r[0]!==i[0],o=r[0]===i[0]&&r[1]!==i[1];if(!a&&!o)return!1}return!0}const X=r([-1/0,-1/0,1/0,1/0]),Z=r([1/0,1/0,-1/0,-1/0]),Q=r([0,0,0,0]),$=r([0,0,1,1]);export{_ as allFinite,K as almostEquals,b as area,S as center,a as clone,N as contains,w as containsPoint,D as containsPointObject,A as containsPointWithMargin,O as containsXY,k as containsXYWithMargin,o as copy,i as create,C as diagonal,I as distance,H as empty,G as equals,Y as equalsPoints,m as expand,p as expandExtentInPlace,u as expandPointInPlace,g as expandWithNestedArray,h as expandWithRect,d as expandXInPlace,f as expandYInPlace,c as fromExtent,s as fromValues,x as hasArea,y as height,F as intersection,j as intersects,E as intersectsSegment,T as intersectsSphere,M as intersectsWithMargin,U as is,W as isPoint,Z as negativeInfinity,R as offset,z as pad,X as positiveInfinity,q as rectangleContainsRectangleCyclicalAware,J as rectanglesIntersectCyclicalAware,V as setMax,B as setMin,L as size,l as toExtent,P as union,$ as unit,v as width,Q as zero};
2
+ import{clamp as e,floatEqualUlp as t}from"../../core/mathUtils.js";import n from"../Extent.js";function r(e){return e}function i(e=$){return r([e[0],e[1],e[2],e[3]])}function a(e){return r([e[0],e[1],e[2],e[3]])}function o(e,t){return e!==t&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3]),e}function s(e,t,n,r,a=i()){return a[0]=e,a[1]=t,a[2]=n,a[3]=r,a}function c(e,t=i()){return t[0]=e.xmin,t[1]=e.ymin,t[2]=e.xmax,t[3]=e.ymax,t}function l(e,t,r=new n){return r.xmin=e[0],r.ymin=e[1],r.xmax=e[2],r.ymax=e[3],r.spatialReference=t,r}function u(e,t){d(e,t[0],t[1])}function d(e,t,n){f(e,t),p(e,n)}function f(e,t){t<e[0]&&(e[0]=t),t>e[2]&&(e[2]=t)}function p(e,t){t<e[1]&&(e[1]=t),t>e[3]&&(e[3]=t)}function m(e,{xmin:t,ymin:n,xmax:r,ymax:i}){e[0]=Math.min(e[0],t),e[1]=Math.min(e[1],n),e[2]=Math.max(e[2],r),e[3]=Math.max(e[3],i)}function h(e,t,n){if(t==null)o(n,e);else if(`length`in t)W(t)?(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3])):(t.length===2||t.length===3)&&(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[0]),n[3]=Math.max(e[3],t[1]));else switch(t.type){case`extent`:n[0]=Math.min(e[0],t.xmin),n[1]=Math.min(e[1],t.ymin),n[2]=Math.max(e[2],t.xmax),n[3]=Math.max(e[3],t.ymax);break;case`point`:n[0]=Math.min(e[0],t.x),n[1]=Math.min(e[1],t.y),n[2]=Math.max(e[2],t.x),n[3]=Math.max(e[3],t.y)}}function g(e,t){e[0]=Math.min(e[0],t[0]),e[1]=Math.min(e[1],t[1]),e[2]=Math.max(e[2],t[2]),e[3]=Math.max(e[3],t[3])}function _(e,t,n=e){let r=t.length,i=e[0],a=e[1],o=e[2],s=e[3];for(let e=0;e<r;e++){let n=t[e];i=Math.min(i,n[0]),a=Math.min(a,n[1]),o=Math.max(o,n[0]),s=Math.max(s,n[1])}return n[0]=i,n[1]=a,n[2]=o,n[3]=s,n}function v(e){for(let t=0;t<4;t++)if(!isFinite(e[t]))return!1;return!0}function y(e){return e==null||e[0]>=e[2]?0:e[2]-e[0]}function b(e){return e==null||e[1]>=e[3]?0:e[3]-e[1]}function x(e){return y(e)*b(e)}function S(e){return y(e)>0&&b(e)>0}function C(e,t=[0,0]){return t[0]=(e[0]+e[2])/2,t[1]=(e[1]+e[3])/2,t}function w(e){let t=y(e),n=b(e);return Math.sqrt(t*t+n*n)}function T(e,t){return k(e,t[0],t[1])}function E(e,t){let n=t.radius,r=(e[0]+e[2])*.5,i=Math.abs(t.center[0]-r),a=(e[2]-e[0])*.5;if(i>n+a)return!1;let o=(e[1]+e[3])*.5,s=(e[3]-e[1])*.5,c=Math.abs(t.center[1]-o);if(c>n+s)return!1;if(i<a||c<s)return!0;let l=i-a,u=c-s;return l*l+u*u<=n*n}function D(e,t,n){let r=e[0],i=e[1],a=e[2],o=e[3],{x:s,y:c}=t,{x:l,y:u}=n,d=(e,t)=>(u-c)*e+(s-l)*t+(l*c-s*u)<0,f=d(r,o),p=d(a,o),m=d(a,i),h=d(r,i);return!(f===p&&p===m&&m===h&&h===f||s<r&&l<r||s>a&&l>a||c>o&&u>o||c<i&&u<i)}function O(e,t){return e?k(e,t.x,t.y):!1}function k(e,t,n){return t>=e[0]&&n>=e[1]&&t<=e[2]&&n<=e[3]}function A(e,t,n,r){return t>=e[0]-r&&n>=e[1]-r&&t<=e[2]+r&&n<=e[3]+r}function j(e,t,n){return t[0]>=e[0]-n&&t[1]>=e[1]-n&&t[0]<=e[2]+n&&t[1]<=e[3]+n}function M(e,t){return Math.max(t[0],e[0])<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])<=Math.min(t[3],e[3])}function N(e,t,n){return Math.max(t[0],e[0])-n<=Math.min(t[2],e[2])&&Math.max(t[1],e[1])-n<=Math.min(t[3],e[3])}function P(e,t){return t[0]>=e[0]&&t[2]<=e[2]&&t[1]>=e[1]&&t[3]<=e[3]}function F(e,t,n){return t==null?o(n,e):(n[0]=Math.min(e[0],t[0]),n[1]=Math.min(e[1],t[1]),n[2]=Math.max(e[2],t[2]),n[3]=Math.max(e[3],t[3]),n)}function I(t,n,r){if(n==null)return o(r,t);let i=n[0],a=n[1],s=n[2],c=n[3];return r[0]=e(t[0],i,s),r[1]=e(t[1],a,c),r[2]=e(t[2],i,s),r[3]=e(t[3],a,c),r}function L(e,t){let n=(e[0]+e[2])/2,r=(e[1]+e[3])/2,i=Math.max(Math.abs(t[0]-n)-y(e)/2,0),a=Math.max(Math.abs(t[1]-r)-b(e)/2,0);return Math.sqrt(i*i+a*a)}function R(e,t){t[0]=e[2]-e[0],t[1]=e[3]-e[1]}function z(e,t,n,r){return r??=e,r[0]=e[0]+t,r[1]=e[1]+n,r[2]=e[2]+t,r[3]=e[3]+n,r}function B(e,t,n=e){return n[0]=e[0]-t,n[1]=e[1]-t,n[2]=e[2]+t,n[3]=e[3]+t,n}function V(e,t,n=e){return n[0]=t[0],n[1]=t[1],n!==e&&(n[2]=e[2],n[3]=e[3]),n}function H(e,t,n=e){return n[2]=t[0],n[3]=t[1],n!==e&&(n[0]=e[0],n[1]=e[1]),e}function U(e){return e?o(e,Q):i(Q)}function W(e){return e!=null&&e.length===4}function G(e){return(y(e)===0||!isFinite(e[0]))&&(b(e)===0||!isFinite(e[1]))}function K(e,t){return!W(e)||!W(t)?e==null&&t==null||e===t:e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]}function q(e,n,r){return e!=null&&n!=null&&e.every((e,i)=>t(e,n[i],r))}function J(e,t,n){return t==null?!1:n?n.contains(e[0],e[2],t[0])&&n.contains(e[0],e[2],t[2])&&t[1]>e[1]&&t[3]<e[3]:P(e,t)}function Y(e,t,n){return e==null?!1:n?(n.contains(t[0],t[2],e[0])||n.contains(t[0],t[2],e[2])||n.contains(e[0],e[2],t[0]))&&!(e[1]>t[3]||e[3]<t[1]):M(e,t)}function X(e,t){if(t.length!==4||e[0]===e[2]||e[1]===e[3])return!1;for(let n=0;n<t.length;n++){let r=t[n],i=t[(n+1)%t.length];if(r[0]!==e[0]&&r[0]!==e[2]||r[1]!==e[1]&&r[1]!==e[3])return!1;let a=r[1]===i[1]&&r[0]!==i[0],o=r[0]===i[0]&&r[1]!==i[1];if(!a&&!o)return!1}return!0}const Z=r([-1/0,-1/0,1/0,1/0]),Q=r([1/0,1/0,-1/0,-1/0]),$=r([0,0,0,0]),ee=r([0,0,1,1]);export{v as allFinite,q as almostEquals,x as area,C as center,a as clone,P as contains,T as containsPoint,O as containsPointObject,j as containsPointWithMargin,k as containsXY,A as containsXYWithMargin,o as copy,i as create,w as diagonal,L as distance,U as empty,K as equals,X as equalsPoints,h as expand,m as expandExtentInPlace,u as expandPointInPlace,_ as expandWithNestedArray,g as expandWithRect,f as expandXInPlace,d as expandXYInPlace,p as expandYInPlace,c as fromExtent,s as fromValues,S as hasArea,b as height,I as intersection,M as intersects,D as intersectsSegment,E as intersectsSphere,N as intersectsWithMargin,W as is,G as isPoint,Q as negativeInfinity,z as offset,B as pad,Z as positiveInfinity,J as rectangleContainsRectangleCyclicalAware,Y as rectanglesIntersectCyclicalAware,H as setMax,V as setMin,R as size,l as toExtent,F as union,ee as unit,y as width,$ as zero};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../core/Error.js";import{clone as t}from"../../../core/lang.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import r from"../MeshVertexAttributes.js";import{addMeshCloneContext as i}from"./meshCloneUtils.js";import{convertVertexSpace as a}from"./vertexSpaceConversion.js";async function o(o,s,c){await Promise.resolve(),n(c);let l=a(o,s,{useEllipsoid:c?.useEllipsoid});if(!l)throw new e(`meshUtils:convertVertexSpace()`,`Failed to convert to provided vertex space due to projection errors`);return o.clone(i(void 0,{vertexAttributes:new r({...l,uv:t(o.vertexAttributes.uv),color:t(o.vertexAttributes.color)}),vertexSpace:s,transform:null}))}export{o as convertMeshVertexSpace};
2
+ import e from"../../../core/Error.js";import{clone as t}from"../../../core/lang.js";import{throwIfAborted as n}from"../../../core/promiseUtils.js";import r from"../MeshVertexAttributes.js";import{addMeshCloneContext as i}from"./meshCloneUtils.js";import{convertVertexSpace as a}from"./vertexSpaceConversion.js";async function o(o,s,c){await Promise.resolve(),n(c);let l=a(o,s);if(!l)throw new e(`meshUtils:convertVertexSpace()`,`Failed to convert to provided vertex space due to projection errors`);return o.clone(i(void 0,{vertexAttributes:new r({...l,uv:t(o.vertexAttributes.uv),color:t(o.vertexAttributes.color)}),vertexSpace:s,transform:null}))}export{o as convertMeshVertexSpace};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../../../core/Logger.js";import{floatEqualUlp as t}from"../../../core/mathUtils.js";import{getMetersPerCartesianUnitForSR as n,convertUnit as r}from"../../../core/units.js";import{normalFromMat4 as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{exactEquals as o,scale as s,invert as c,copy as l,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as d,create as f}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{negate as p,subtract as m,transformMat4 as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isEarth as _}from"../../ellipsoidUtils.js";import{WGS84ECEFSpatialReference as v,getSphericalPCPF as y}from"../../spatialReferenceEllipsoidUtils.js";import{computeTranslationToOriginAndRotation as b}from"../../projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../projection/projectPointToVector.js";import{isRelativeVertexSpace as ee,vertexSpaceEquals as te}from"../meshVertexSpaceUtils.js";import{a as S,t as C,b as w}from"../../../chunks/vec3.js";import{logProjectionError as T,projectToPCPF as E,projectNormalToPCPF as D,projectTangentToPCPF as O,transformNormal as k,transformTangent as A,projectFromPCPF as ne,projectNormalFromPCPF as j,projectTangentFromPCPF as M}from"./projection.js";const N=()=>e.getLogger(`esri.geometry.support.meshUtils.vertexSpaceConversion`);function P(e,t,{vertexSpace:n,spatialReference:r}){if(n.type===`georeferenced`){let i=e;if(!x(t,i,r))return!1;let{origin:a}=n;return m(e,i,a),!0}let i=y(r),a=e;if(!x(t,a,i))return!1;let{origin:o}=n,s=$;if(!b(r,o,s,i))return!1;let l=c($,s);return l!=null&&(h(e,a,l),!0)}function F(e,t,n){let{vertexSpace:r,transform:i,vertexAttributes:a}=e,s=ee(r)?i:null,c=q(e.spatialReference,n,3);if(te(r,t)&&(!s||o(s.localMatrix,d))&&J(c)){let{position:e,normal:t,tangent:r}=a,i=n?.allowBufferReuse;return{position:i?e:e.slice(),normal:i?t:t?.slice(),tangent:i?r:r?.slice()}}switch(e.vertexSpace.type){case`local`:return t.type===`local`?V(e,e.vertexSpace,t.origin,n):R(e,e.vertexSpace,t.origin,n);case`georeferenced`:return t.type===`local`?z(e,e.vertexSpace,t.origin,n):I(e,e.vertexSpace,t.origin,n)}}function I({vertexAttributes:e,transform:t,spatialReference:n},{origin:r},i,a){let o=q(n,a,3),s=r||!J(o)?l(X,t?.localMatrix??d):null;s&&K(s,n,a,3);let{position:c,normal:u,tangent:f}=s?H(e,s):e,m=a?.allowBufferReuse,h=m?c:new Float64Array(c.length),g=c;if(r&&(g=S(h,g,r)),i){let e=p(Q,i);g=S(h,g,e)}return{position:g===e.position&&!m?g.slice():g,normal:u===e.normal&&!m?u?.slice():u,tangent:f===e.tangent&&!m?f?.slice():f}}function L(e,t){return t?.useEllipsoid&&_(e)?v:y(e)}function R({spatialReference:e,vertexAttributes:t,transform:n},{origin:r},i,a){let o=L(e,a);if(!b(e,r,X,o))return T(N(),e,o),null;n&&u(X,X,n.localMatrix),K(X,e,a,1);let s=new Float64Array(t.position.length),c=U(t.position,X,e,s,o);if(!c)return null;let l=W(c,e,s,o,t.normal,X);if(t.normal&&!l)return null;let d=G(c,e,s,o,t.tangent,X);if(t.tangent&&!d)return null;if(i){let e=p(Q,i);S(c,c,e)}return{position:c,normal:l,tangent:d}}function z({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},a,o){let l=L(t,o);if(!b(t,a,X,l))return T(N(),t,l),null;let u=1/q(t,o,2);s(X,X,[u,u,u]);let d=c(Z,X),{position:f,normal:p,tangent:m}=B(e,r,n),h=new Float64Array(f.length),g=re(f,t,d,h,l);if(!g)return null;let _=i(oe,d),v=ie(p,f,t,h,l,_,p===e.normal?void 0:p);if(!v&&p)return null;let y=ae(m,f,t,h,l,_,m===e.tangent?void 0:m);return!y&&m?null:{position:g,normal:v,tangent:y}}function B(e,t,n){if(!t)return e;if(!n){let{position:n,normal:r,tangent:i}=e;return{position:S(new Float64Array(n.length),n,t),tangent:i,normal:r}}let r=H(e,n.localMatrix);return S(r.position,r.position,t),r}function V({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},i,a){let o=L(t,a);if(!b(t,r,X,o))return T(N(),t,o),null;if(n&&u(X,X,n.localMatrix),!b(t,i,Z,o))return T(N(),o,t),null;c(Z,Z);let s=u(X,Z,X);return K(s,t,a,3),H(e,s)}function H(e,t){let n=new Float64Array(e.position.length);C(n,e.position,t);let r=e.normal?new Float32Array(e.normal.length):null,i=e.tangent?new Float32Array(e.tangent.length):null;return r&&e.normal&&k(e.normal,r,t),i&&e.tangent&&A(e.tangent,i,t),{position:n,normal:r,tangent:i}}function U(e,t,n,r,i){C(r,e,t);let a=new Float64Array(e.length);return ne(r,i,a,n)?a:(T(N(),i,n),null)}function W(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return k(i,o,a),j(o,e,t,n,r,o)?o:(T(N(),r,t),null)}function G(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return A(i,o,a),M(o,e,t,n,r,o)?o:(T(N(),r,t),null)}function K(e,t,n,r){let i=q(t,n,r);J(i)||s(e,e,[i,i,i])}function q(e,t,n){let r=!!(n&1),i=!!(n&2),a=t?.sourceUnit,o=t?.targetUnit;if(!a&&!o)return 1;let s=Y(a,e);!r&&a&&!J(s)&&(N().warn(`source unit conversion not supported`),s=1);let c=1/Y(o,e);return!i&&o&&!J(c)&&(N().warn(`target unit conversion not supported`),c=1),s*c}function J(e){return t(e,1)}function re(e,t,n,r,i){let a=E(e,t,r,i);if(!a)return T(N(),t,i),null;let o=new Float64Array(a.length);return C(o,a,n),o}function ie(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return D(e,t,n,r,i,s)?(w(s,s,a),s):(T(N(),n,i),null)}function ae(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return O(e,t,n,r,i,s)?(w(s,s,a,4),s):(T(N(),n,i),null)}function Y(e,t){if(e==null)return 1;let i=n(t);return 1/r(i,`meters`,e)}const X=f(),Z=f(),oe=a(),Q=g(),$=f();export{F as convertVertexSpace,Y as getUnitToSpatialReferenceScaleConversion,P as projectPointToVertexSpace};
2
+ import e from"../../../core/Logger.js";import{floatEqualUlp as t}from"../../../core/mathUtils.js";import{getMetersPerCartesianUnitForSR as n,convertUnit as r}from"../../../core/units.js";import{normalFromMat4 as i}from"../../../core/libs/gl-matrix-2/math/mat3.js";import{create as a}from"../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{exactEquals as o,scale as s,invert as c,copy as l,multiply as u}from"../../../core/libs/gl-matrix-2/math/mat4.js";import{IDENTITY as d,create as f}from"../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{negate as p,subtract as m,transformMat4 as h}from"../../../core/libs/gl-matrix-2/math/vec3.js";import{create as g}from"../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{isEarth as _}from"../../ellipsoidUtils.js";import{WGS84ECEFSpatialReference as v,getSphericalPCPF as y}from"../../spatialReferenceEllipsoidUtils.js";import{computeTranslationToOriginAndRotation as b}from"../../projection/computeTranslationToOriginAndRotation.js";import{projectPointToVector as x}from"../../projection/projectPointToVector.js";import{isRelativeVertexSpace as S,vertexSpaceEquals as C}from"../meshVertexSpaceUtils.js";import{a as w,t as T,b as E}from"../../../chunks/vec3.js";import{logProjectionError as D,projectToPCPF as O,projectNormalToPCPF as k,projectTangentToPCPF as ee,transformNormal as A,transformTangent as j,projectFromPCPF as M,projectNormalFromPCPF as N,projectTangentFromPCPF as P}from"./projection.js";const F=()=>e.getLogger(`esri.geometry.support.meshUtils.vertexSpaceConversion`);function te(e,t,{vertexSpace:n,spatialReference:r}){if(n.type===`georeferenced`){let i=e;if(!x(t,i,r))return!1;let{origin:a}=n;return m(e,i,a),!0}let i=I(r),a=e;if(!x(t,a,i))return!1;let{origin:o}=n,s=$;if(!b(r,o,s,i))return!1;let l=c($,s);return l!=null&&(h(e,a,l),!0)}function ne(e,t,n){let{vertexSpace:r,transform:i,vertexAttributes:a}=e,s=S(r)?i:null,c=q(e.spatialReference,n,3);if(C(r,t)&&(!s||o(s.localMatrix,d))&&J(c)){let{position:e,normal:t,tangent:r}=a,i=n?.allowBufferReuse;return{position:i?e:e.slice(),normal:i?t:t?.slice(),tangent:i?r:r?.slice()}}switch(e.vertexSpace.type){case`local`:return t.type===`local`?V(e,e.vertexSpace,t.origin,n):ie(e,e.vertexSpace,t.origin,n);case`georeferenced`:return t.type===`local`?z(e,e.vertexSpace,t.origin,n):re(e,e.vertexSpace,t.origin,n)}}function re({vertexAttributes:e,transform:t,spatialReference:n},{origin:r},i,a){let o=q(n,a,3),s=r||!J(o)?l(X,t?.localMatrix??d):null;s&&K(s,n,a,3);let{position:c,normal:u,tangent:f}=s?H(e,s):e,m=a?.allowBufferReuse,h=m?c:new Float64Array(c.length),g=c;if(r&&(g=w(h,g,r)),i){let e=p(Q,i);g=w(h,g,e)}return{position:g===e.position&&!m?g.slice():g,normal:u===e.normal&&!m?u?.slice():u,tangent:f===e.tangent&&!m?f?.slice():f}}function I(e){return e==null||_(e)?v:y(e)}function ie(e,t,n,r){let{spatialReference:i,vertexAttributes:a}=e,o=I(i),s=R(e,t,r);if(!s)return null;let c=new Float64Array(a.position.length),l=U(a.position,s,i,c,o);if(!l)return null;let u=W(l,i,c,o,a.normal,s);if(a.normal&&!u)return null;let d=G(l,i,c,o,a.tangent,s);if(a.tangent&&!d)return null;if(n){let e=p(Q,n);w(l,l,e)}return{position:l,normal:u,tangent:d}}function L(e,t,n){let r=R(e,t);if(!r)return null;let i=H(e.vertexAttributes,r),a=I(e.spatialReference);return M(i.position,a,i.position,n)?i:(D(F(),a,n),null)}function R({spatialReference:e,transform:t},{origin:n},r){let i=I(e);return b(e,n,X,i)?(t&&u(X,X,t.localMatrix),K(X,e,r,1),X):(D(F(),e,i),null)}function z({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},a,o){let l=I(t);if(!b(t,a,X,l))return D(F(),t,l),null;let u=1/q(t,o,2);s(X,X,[u,u,u]);let d=c(Z,X),{position:f,normal:p,tangent:m}=B(e,r,n),h=new Float64Array(f.length),g=ae(f,t,d,h,l);if(!g)return null;let _=i(ce,d),v=oe(p,f,t,h,l,_,p===e.normal?void 0:p);if(!v&&p)return null;let y=se(m,f,t,h,l,_,m===e.tangent?void 0:m);return!y&&m?null:{position:g,normal:v,tangent:y}}function B(e,t,n){if(!t)return e;if(!n){let{position:n,normal:r,tangent:i}=e;return{position:w(new Float64Array(n.length),n,t),tangent:i,normal:r}}let r=H(e,n.localMatrix);return w(r.position,r.position,t),r}function V({vertexAttributes:e,spatialReference:t,transform:n},{origin:r},i,a){let o=I(t);if(!b(t,r,X,o))return D(F(),t,o),null;if(n&&u(X,X,n.localMatrix),!b(t,i,Z,o))return D(F(),o,t),null;c(Z,Z);let s=u(X,Z,X);return K(s,t,a,3),H(e,s)}function H(e,t){let n=new Float64Array(e.position.length);T(n,e.position,t);let r=e.normal?new Float32Array(e.normal.length):null,i=e.tangent?new Float32Array(e.tangent.length):null;return r&&e.normal&&A(e.normal,r,t),i&&e.tangent&&j(e.tangent,i,t),{position:n,normal:r,tangent:i}}function U(e,t,n,r,i){T(r,e,t);let a=new Float64Array(e.length);return M(r,i,a,n)?a:(D(F(),i,n),null)}function W(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return A(i,o,a),N(o,e,t,n,r,o)?o:(D(F(),r,t),null)}function G(e,t,n,r,i,a){if(i==null)return null;let o=new Float32Array(i.length);return j(i,o,a),P(o,e,t,n,r,o)?o:(D(F(),r,t),null)}function K(e,t,n,r){let i=q(t,n,r);J(i)||s(e,e,[i,i,i])}function q(e,t,n){let r=!!(n&1),i=!!(n&2),a=t?.sourceUnit,o=t?.targetUnit;if(!a&&!o)return 1;let s=Y(a,e);!r&&a&&!J(s)&&(F().warn(`source unit conversion not supported`),s=1);let c=1/Y(o,e);return!i&&o&&!J(c)&&(F().warn(`target unit conversion not supported`),c=1),s*c}function J(e){return t(e,1)}function ae(e,t,n,r,i){let a=O(e,t,r,i);if(!a)return D(F(),t,i),null;let o=new Float64Array(a.length);return T(o,a,n),o}function oe(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return k(e,t,n,r,i,s)?(E(s,s,a),s):(D(F(),n,i),null)}function se(e,t,n,r,i,a,o){if(e==null)return null;let s=o??new Float32Array(e.length);return ee(e,t,n,r,i,s)?(E(s,s,a,4),s):(D(F(),n,i),null)}function Y(e,t){if(e==null)return 1;let i=n(t);return 1/r(i,`meters`,e)}const X=f(),Z=f(),ce=a(),Q=g(),$=f();export{ne as convertVertexSpace,Y as getUnitToSpatialReferenceScaleConversion,L as projectLocalVertexSpaceToPCPF,te as projectPointToVertexSpace};
@@ -20,7 +20,7 @@ export interface CredentialEvents {
20
20
  *
21
21
  * @since 4.0
22
22
  * @see [Access ArcGIS Online items using OAuth 2.0](https://developers.arcgis.com/javascript/latest/sample-code/identity-oauth-basic/)
23
- * @see [Access Secure Services](https://developers.arcgis.com/javascript/latest/secure-resources/)
23
+ * @see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/)
24
24
  * @see [Authentication and OAuth 2](https://developers.arcgis.com/authentication/)
25
25
  * @see [Guide topic - Proxy pages](https://developers.arcgis.com/javascript/latest/proxies/)
26
26
  * @see [ArcGIS Organization portals](https://developers.arcgis.com/javascript/latest/arcgis-organization-portals/)
@@ -18,7 +18,7 @@
18
18
  * > The IdentityManager module is slightly different than other modules in the API. Instead of returning a class constructor, it returns a singleton instance that has already been created by this module.
19
19
  *
20
20
  * @since 4.0
21
- * @see [Access Secure Services](https://developers.arcgis.com/javascript/latest/guide/secure-resources/)
21
+ * @see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/)
22
22
  * @see [Authentication and OAuth 2](https://developers.arcgis.com/authentication/)
23
23
  * @see [Guide topic - Proxy pages](https://developers.arcgis.com/javascript/latest/proxies/)
24
24
  * @see [ArcGIS Organization portals](https://developers.arcgis.com/javascript/latest/arcgis-organization-portals/)
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import e from"../config.js";import t from"../request.js";import n from"../core/Error.js";import{Evented as r}from"../core/Evented.js";import{on as i}from"../core/events.js";import{fixJson as a}from"../core/lang.js";import{getDeepValue as o}from"../core/object.js";import{onAbort as s,isAborted as c}from"../core/promiseUtils.js";import{urlToObject as l,hasSameOrigin as u,Url as d,queryToObject as f,base64UrlEncode as p,objectToQuery as m,normalize as h,getProxyRule as g,makeAbsolute as _,addQueryParameters as v}from"../core/urlUtils.js";import y from"./Credential.js";import b from"./IdentityModal.js";import x from"./OAuthCredential.js";import S from"./OAuthInfo.js";import C from"./ServerInfo.js";import{isSecureProxyService as w,normalizeArcGISOnlineOrgDomain as T,parseKnownArcGISOnlineDomain as E}from"../portal/support/urlUtils.js";const D={},O=e=>{let t=new d(e.owningSystemUrl).host,n=new d(e.server).host,r=/.+\.arcgis\.com$/i;return r.test(t)&&r.test(n)},k=(e,t)=>!!(O(e)&&t&&t.some(t=>t.test(e.server)));let A=null,j=null;try{A=window.localStorage,j=window.sessionStorage}catch{}class M extends r{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin=window.origin===`null`?window.location.origin:window.origin,this._appUrlObj=l(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl=`/sharing/rest/generateToken`,this._agsRest=`/rest/services`,this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:`maps.arcgis.com`,tokenServiceUrl:`https://www.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:`mapsdev.arcgis.com`,tokenServiceUrl:`https://dev.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:`mapsdevext.arcgis.com`,tokenServiceUrl:`https://devext.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:`mapsqa.arcgis.com`,tokenServiceUrl:`https://qaext.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:`maps.arcgis.com`,tokenServiceUrl:`https://www.arcgis.com/sharing/rest/generateToken`}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer|3DTilesServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener(`pageshow`,e=>{this._pageShowHandler(e)})}registerServers(e){let t=this.serverInfos;t?(e=e.filter(e=>!this.findServerInfo(e.server)),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach(e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)})}registerOAuthInfos(e){let t=this.oAuthInfos;if(t){for(let n of e){let e=this.findOAuthInfo(n.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};let t=this._sanitizeUrl(e.server),n=this._isServerRsrc(t),r=this.findServerInfo(t),i=!0,a;r||(r=new C,r.server=this._getServerInstanceRoot(t),n?r.hasServer=!0:(r.tokenServiceUrl=this._getTokenSvcUrl(t),r.hasPortal=!0),this.registerServers([r])),a=this._findCredential(t),a?(delete e.server,Object.assign(a,e),i=!1):(a=new y({userId:e.userId,server:r.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:n?`server`:`portal`}),a.resources=[t],this.credentials.push(a)),a.emitTokenChange(!1),i||a.refreshServerTokens()}toJSON(){return a({serverInfos:this.serverInfos.map(e=>e.toJSON()),oAuthInfos:this.oAuthInfos.map(e=>e.toJSON()),credentials:this.credentials.map(e=>e.toJSON())})}initialize(e){if(!e)return;typeof e==`string`&&(e=JSON.parse(e));let t=e.serverInfos,n=e.oAuthInfos,r=e.credentials;if(t){let e=[];t.forEach(t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new C(t))}),e.length&&this.registerServers(e)}if(n){let e=[];n.forEach(t=>{t.appId&&e.push(t.declaredClass?t:new S(t))}),e.length&&this.registerOAuthInfos(e)}r&&r.forEach(e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&(e=e.declaredClass?e:new y(e),e.emitTokenChange(),this.credentials.push(e))})}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(let n of this.serverInfos)if(this._hasSameServerInstance(n.server,e)){t=n;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(let n of this.oAuthInfos)if(this._hasSameServerInstance(n.portalUrl,e)){t=n;break}return t}findCredential(e,t){if(!e)return;let n;e=this._sanitizeUrl(e);let r=this._isServerRsrc(e)?`server`:`portal`;if(t){for(let i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===r){n=i;break}}else for(let t of this.credentials)if(this._hasSameServerInstance(t.server,e)&&this._getIdenticalSvcIdx(e,t)!==-1&&t.scope===r){n=t;break}return n}getCredential(e,t){let r=!1,i,a=!0;t&&(r=!!(t.token||t.credential),i=t.error,a=t.prompt!==!1),t={...t},e=this._sanitizeUrl(e);let o=new AbortController,l=Promise.withResolvers();if(t.signal&&s(t.signal,()=>{o.abort()}),s(o,()=>{l.reject(new n(`identity-manager:user-aborted`,`ABORTED`))}),c(o))return l.promise;t.signal=o.signal;let d=this._isAdminResource(e),f=r?this.findCredential(e):null,p;if(f&&i?.details?.httpStatus===498)f.destroy();else if(f)return p=new n(`identity-manager:not-authorized`,`You are currently signed in as: '`+f.userId+`'. You do not have access to this resource: `+e,{error:i}),l.reject(p),l.promise;let m=this._findCredential(e,t);if(m)return l.resolve(m),l.promise;let h=this.findServerInfo(e);if(h)!h.hasPortal&&h.server&&h.owningSystemUrl&&this._hasSameServerInstance(h.server,h.owningSystemUrl)&&(h.hasPortal=!0),!h.hasServer&&this._isServerRsrc(e)&&(h._restInfoPms=this._getTokenSvcUrl(e),h.hasServer=!0);else{let t=this._getTokenSvcUrl(e);if(!t)return p=new n(`identity-manager:unknown-resource`,`Unknown resource - could not find token service endpoint.`),l.reject(p),l.promise;h=new C,h.server=this._getServerInstanceRoot(e),typeof t==`string`?(h.tokenServiceUrl=t,h.hasPortal=!0):(h._restInfoPms=t,h.hasServer=!0),this.registerServers([h])}return h.hasPortal&&h._selfReq===void 0&&(a||u(h.tokenServiceUrl,this._appOrigin)||this._gwDomains.some(e=>e.tokenServiceUrl===h.tokenServiceUrl))&&(h._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(h.tokenServiceUrl.replace(this._rePortalTokenSvc,`/sharing/rest/portals/self`),e)}),this._enqueue(e,h,t,l,d)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,``).replace(this._regexServerType,``)||``:this._gwUser.test(e)&&e.replace(this._gwUser,`$1`)||this._gwItem.test(e)&&e.replace(this._gwItem,`$1`)||this._gwGroup.test(e)&&e.replace(this._gwGroup,`$1`)||``}generateToken(e,r,i){let a=this._rePortalTokenSvc.test(e.tokenServiceUrl),o=new d(this._appOrigin),s=e.shortLivedTokenValidity,c,l,f,p,m,h,g,_;r&&(_=this.tokenValidity||s||this._defaultTokenValidity,_>s&&s>0&&(_=s)),i&&(c=i.isAdmin,l=i.serverUrl,f=i.token,h=i.signal,g=i.ssl,e.customParameters=i.customParameters),c?p=e.adminTokenServiceUrl:(p=e.tokenServiceUrl,m=new d(p.toLowerCase()),e.webTierAuth&&i?.serverUrl&&!g&&o.scheme===`http`&&(u(o.uri,p,!0)||m.scheme===`https`&&o.host===m.host&&o.port===`7080`&&m.port===`7443`)&&(p=p.replace(/^https:/i,`http:`).replace(/:7443/i,`:7080`)));let v={query:{request:`getToken`,username:r?.username,password:r?.password,serverUrl:l,token:f,expiration:_,referer:c||a?this._appOrigin:null,client:c?`referer`:null,f:`json`,...e.customParameters},method:`post`,authMode:`anonymous`,useProxy:this._useProxy(e,i),signal:h};return a||(v.withCredentials=!1),t(p,v).then(t=>{let i=t.data;if(!i?.token)return new n(`identity-manager:authentication-failed`,`Unable to generate token`);let a=e.server;return D[a]||(D[a]={}),r&&(D[a][r.username]=r.password),i.validity=_,i})}isBusy(){return!!this._busy}async checkSignInStatus(e){return(await this.checkAppAccess(e,``)).credential}checkAppAccess(e,r,i){let a=!1;return this.getCredential(e,{prompt:!1}).then(o=>{let s,c={f:`json`};if(o.scope===`portal`){if(r&&(this._doPortalSignIn(e)||i?.force))s=o.server+`/sharing/rest/oauth2/validateAppAccess`,c.client_id=r;else if(o.token)s=o.server+`/sharing/rest`;else return{credential:o}}else if(o.token)s=o.server+`/rest/services`;else return{credential:o};return o.token&&(c.token=o.token),t(s,{query:c,authMode:`anonymous`}).then(e=>{if(e.data.valid===!1)throw new n(`identity-manager:not-authorized`,`You are currently signed in as: '${o.userId}'.`,e.data);return a=!!e.data.viewOnlyUserTypeApp,{credential:o}}).catch(e=>{if(e.name===`identity-manager:not-authorized`)throw e;let t=e.details?.httpStatus;if(t===498)throw o.destroy(),new n(`identity-manager:not-authenticated`,`User is not signed in.`);if(t===400)throw new n(`identity-manager:invalid-request`,`Bad request`);return{credential:o}})}).then(e=>({credential:e.credential,viewOnly:a}))}setOAuthResponseHash(e){e&&(e.startsWith(`#`)&&(e=e.slice(1)),this._processOAuthPopupParams(f(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,r={}){let i=Promise.withResolvers(),a=()=>{l?.remove(),u?.remove(),this.dialog?.destroy(),this.dialog=l=u=null},o=()=>{a(),this._oAuthDfd=null,i.reject(new n(`identity-manager:user-aborted`,`ABORTED`))};r.signal&&s(r.signal,()=>{o()});let c=new b({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=c,this.emit(`dialog-create`);let l=c.on(`cancel`,o),u=c.on(`submit`,e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then(n=>{a();let o=new y({userId:e.username,server:t.server??void 0,token:n.token,expires:n.expires==null?null:Number(n.expires),ssl:!!n.ssl,isAdmin:r.isAdmin,validity:n.validity});i.resolve(o)}).catch(e=>{c.error=e,c.signingIn=!1})});return i.promise}oAuthSignIn(e,t,r,i){this._oAuthDfd=Promise.withResolvers();let a=this._oAuthDfd;i?.signal&&s(i.signal,()=>{let e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&d()}),a.resUrl_=e,a.sinfo_=t,a.oinfo_=r;let o,c=r._oAuthCred;if(c.storage&&(r.flowType===`authorization-code`||r.flowType===`auto`&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));o=p(e),c.codeVerifier=o,e=crypto.getRandomValues(new Uint8Array(32)),c.stateUID=p(e),c.save()||(c.codeVerifier=o=null)}else c.codeVerifier=null;this._getCodeChallenge(o).then(n=>{let a=!i||i.oAuthPopupConfirmation!==!1;if(!r.popup||!a){this._doOAuthSignIn(e,t,r,n);return}let o=new b({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit(`dialog-create`),l=o.on(`cancel`,d),u=o.on(`submit`,()=>{f(),this._doOAuthSignIn(e,t,r,n)})});let l,u,d=()=>{f(),this._oAuthDfd=null,a.reject(new n(`identity-manager:user-aborted`,`ABORTED`))},f=()=>{l?.remove(),u?.remove(),this.dialog?.destroy(),this.dialog=null};return a.promise}async refreshToken(e){let t=this.findServerInfo(e.server),n=t?.owningSystemUrl,r=!!n&&e.scope===`server`,i=r&&k(t,this._legacyFed),a=t.webTierAuth,o=a&&this.normalizeWebTierAuth,s=D[e.server]?.[e.userId],c=e.resources&&e.resources[0],l=r?this.findServerInfo(n):null,u={username:e.userId,password:s},d;if(a&&!o)return;r&&!l&&this.serverInfos.some(e=>(this._isIdProvider(n,e.server)&&(l=e),!!l));let f=l?this.findCredential(l.server,e.userId):null;if(!r||f){if(i)f?.refreshToken();else{if(r)d={serverUrl:c,token:f?.token,ssl:f?.ssl};else if(o)u=null,d={ssl:e.ssl};else if(s)e.isAdmin&&(d={isAdmin:!0});else{let n;return c&&(c=this._sanitizeUrl(c),e._enqueued=1,n=this._enqueue(c,t,null,null,e.isAdmin,e),n.then(()=>{e._enqueued=0,e.refreshServerTokens()}).catch(()=>{e._enqueued=0})),n}return this.generateToken(r?l:t,r?null:u,d).then(t=>{e.token=t.token,e.expires=t.expires==null?null:Number(t.expires),e.creationTime=Date.now(),e.validity=t.validity,e.emitTokenChange(),e.refreshServerTokens()}).catch(()=>{})}}}refreshServerTokens(e){e.scope===`portal`&&this.credentials.forEach(t=>{let n=this.findServerInfo(t.server),r=n?.owningSystemUrl;t!==e&&t.userId===e.userId&&r&&t.scope===`server`&&(this._hasSameServerInstance(e.server,r)||this._isIdProvider(r,e.server))&&(k(n,this._legacyFed)?(t.token=e.token,t.expires=e.expires,t.creationTime=e.creationTime,t.validity=e.validity,t.emitTokenChange()):t.refreshToken())})}destroyCredentials(){this.credentials&&this.credentials.slice().forEach(e=>{e.destroy()}),this.emit(`credentials-destroy`)}enablePostMessageAuth(e=`https://www.arcgis.com/sharing/rest`){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=i(window,`message`,t=>{if((t.origin===this._appOrigin||t.origin.endsWith(`.arcgis.com`))&&t.data?.type===`arcgis:auth:requestCredential`){let n=t.source;this.getCredential(e).then(e=>{n.postMessage({type:`arcgis:auth:credential`,credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)}).catch(e=>{n.postMessage({type:`arcgis:auth:error`,error:{name:e.name,message:e.message}},t.origin)})}})}disablePostMessageAuth(){this._postMessageAuthHandle&&=(this._postMessageAuthHandle.remove(),null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){e.startsWith(`#`)&&(e=e.slice(1));let t=f(e),n=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty(`username`))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,n=!0)}catch{}else if(t.error&&t.error_description&&(console.log(`IdentityManager OAuth Error: `,t.error,` - `,t.error_description),t.error===`access_denied`&&(n=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}n&&(window.location.hash=t.state?.hash||``)}let t=window.location.search;if(t){t.startsWith(`?`)&&(t=t.slice(1));let e=f(t),n=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,n=!0)}catch{}else if(e.error&&e.error_description&&(console.log(`IdentityManager OAuth Error: `,e.error,` - `,e.error_description),e.error===`access_denied`&&(n=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(n){let t={...e};[`code`,`error`,`error_description`,`message_code`,`persist`,`state`].forEach(e=>{delete t[e]});let n=m(t),r=window.location.pathname+(n?`?${n}`:``)+(e.state?.hash||``);window.history.replaceState(window.history.state,``,r)}}}_getOAuthToken(e,n,r,i,a){return e=e.replace(/^http:/i,`https:`),t(`${e}/sharing/rest/oauth2/token`,{authMode:`anonymous`,method:`post`,query:i&&a?{grant_type:`authorization_code`,code:n,redirect_uri:i,client_id:r,code_verifier:a}:{grant_type:`refresh_token`,refresh_token:n,client_id:r}}).then(e=>e.data)}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return p(new Uint8Array(n))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){let e=new n(`identity-manager:user-aborted`,`ABORTED`);this._errbackFunc(e)}}_findCredential(e,t){let n=-1,r,i,a,o,s=t?.token,c=t?.resource,l=this._isServerRsrc(e)?`server`:`portal`,u=this.credentials.filter(t=>this._hasSameServerInstance(t.server,e)&&t.scope===l);if(e=c||e,u.length){if(u.length===1){if(r=u[0],a=this.findServerInfo(r.server),i=a?.owningSystemUrl,o=i?this.findCredential(i,r.userId):void 0,n=this._getIdenticalSvcIdx(e,r),s)n!==-1&&(r.resources.splice(n,1),this._removeResource(e,o));else return n===-1&&r.resources.push(e),this._addResource(e,o),r}else{let t,r;if(u.some(s=>(r=this._getIdenticalSvcIdx(e,s),r!==-1&&(t=s,a=this.findServerInfo(t.server),i=a?.owningSystemUrl,o=i?this.findCredential(i,t.userId):void 0,n=r,!0))),s)t&&(t.resources.splice(n,1),this._removeResource(e,o));else if(t)return this._addResource(e,o),t}}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t){for(let n of this.oAuthInfos)if(this._isIdProvider(n.portalUrl,e)){t=n;break}}return t}_addResource(e,t){t&&this._getIdenticalSvcIdx(e,t)===-1&&t.resources.push(e)}_removeResource(e,t){let n=-1;t&&(n=this._getIdenticalSvcIdx(e,t),n>-1&&t.resources.splice(n,1))}_useProxy(e,t){return t?.isAdmin&&!u(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&String(e.currentVersion)===`10.1`&&!u(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){let t=new d(e);return t.scheme+`://`+t.host+(t.port==null?``:`:`+t.port)}_getServerInstanceRoot(e){let t=e.toLowerCase(),n=t.indexOf(this._agsRest);return n===-1&&this._isAdminResource(e)&&(n=this._agsAdmin.test(e)?e.replace(this._agsAdmin,`$1`).length:e.search(this._adminSvcs)),n===-1&&!w(t)&&(n=t.indexOf(`/sharing`)),n===-1&&t.endsWith(`/`)&&(n=t.length-1),n>-1?e.slice(0,n):e}_hasSameServerInstance(e,t){return e.endsWith(`/`)&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=T(e),t=T(t),e=e.slice(Math.max(0,e.indexOf(`:`))),t=t.slice(Math.max(0,t.indexOf(`:`))),e===t}_sanitizeUrl(t){let n=(e.request.proxyUrl||``).toLowerCase(),r=n?t.toLowerCase().indexOf(n+`?`):-1;return r!==-1&&(t=t.slice(r+n.length+1)),t=h(t),l(t).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let n=!1;if(this._isRESTService(e)&&this._isRESTService(t)){let r=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(n=r===i,!n){let e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;n=r.replaceAll(e,`$1`)===i.replaceAll(e,`$1`)}}else(this._isAdminResource(e)&&this._isAdminResource(t)||!this._isServerRsrc(e)&&!this._isServerRsrc(t)&&this._isPortalDomain(e))&&(n=!0);return n}_isPortalDomain(t){let n=new d(t.toLowerCase()),r=this._portalConfig,i=this._gwDomains.some(e=>e.regex.test(n.uri));return!i&&r&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(r.restBaseUrl),n.uri)),i||e.portalUrl&&(i=u(n,e.portalUrl,!0)),i||=this._portals.some(e=>this._hasSameServerInstance(e,n.uri)),i||=this._agsPortal.test(n.path),i}_isIdProvider(e,t){let n=-1,r=-1;this._gwDomains.forEach((i,a)=>{n===-1&&i.regex.test(e)&&(n=a),r===-1&&i.regex.test(t)&&(r=a)});let i=!1;if(n>-1&&r>-1&&(n===0||n===4?(r===0||r===4)&&(i=!0):n===1?(r===1||r===2)&&(i=!0):n===2?r===2&&(i=!0):n===3&&r===3&&(i=!0)),!i){let n=this.findServerInfo(t),r=n?.owningSystemUrl;r&&O(n)&&this._isPortalDomain(r)&&this._isIdProvider(e,r)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let n=-1;for(let r=0;r<t.resources.length;r++){let i=t.resources[r];if(this._isIdenticalService(e,i)){n=r;break}}return n}_getSuffix(e){return e.replace(this._regexSDirUrl,``).replace(this._regexServerType,`$1`)}_getTokenSvcUrl(e){let n,r,i;if(this._isRESTService(e)||this._isAdminResource(e)){let i=this._getServerInstanceRoot(e);return n=i+`/admin/generateToken`,e=i+`/rest/info`,r=t(e,{query:{f:`json`}}).then(e=>e.data),{adminUrl:n,promise:r}}if(this._isPortalDomain(e)){let t=``;if(this._gwDomains.some(n=>(n.regex.test(e)&&(t=n.tokenServiceUrl),!!t)),t||this._portals.some(n=>(this._hasSameServerInstance(n,e)&&(t=n+this._gwTokenUrl),!!t)),t||(i=e.toLowerCase().indexOf(`/sharing`),i!==-1&&(t=e.slice(0,i)+this._gwTokenUrl)),t||=this._getOrigin(e)+this._gwTokenUrl,t){let n=new d(e).port;/^http:\/\//i.test(e)&&n===`7080`&&(t=t.replace(/:7080/i,`:7443`)),t=t.replace(/http:/i,`https:`)}return t}}_processOAuthResponseParams(e,t,n){let r=t._oAuthCred;if(e.code){let i=r.codeVerifier;return r.codeVerifier=null,r.stateUID=null,r.save(),this._getOAuthToken(n.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then(i=>{let a=new y({userId:i.username,server:n.server??void 0,token:i.access_token,expires:Date.now()+i.expires_in*1e3,ssl:i.ssl,oAuthState:e.state,_oAuthCred:r});return t.userId=a.userId,r.storage=i.persist?A:j,r.refreshToken=i.refresh_token,r.token=null,r.expires=i.refresh_token_expires_in?Date.now()+i.refresh_token_expires_in*1e3:null,r.userId=a.userId,r.ssl=a.ssl,r.save(),a})}let i=new y({userId:e.username,server:n.server??void 0,token:e.access_token,expires:Date.now()+Number(e.expires_in)*1e3,ssl:e.ssl===`true`,oAuthState:e.state,_oAuthCred:r});return t.userId=i.userId,r.storage=e.persist?A:j,r.refreshToken=null,r.token=i.token,r.expires=i.expires,r.userId=i.userId,r.ssl=i.ssl,r.save(),Promise.resolve(i)}_processOAuthPopupParams(e){let t=this._oAuthDfd;if(this._oAuthDfd=null,t){if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){let r=e.error===`access_denied`,i=new n(r?`identity-manager:user-aborted`:`identity-manager:authentication-failed`,r?`ABORTED`:`OAuth: `+e.error+` - `+e.error_description);t.reject(i)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)})}}_setOAuthResponseQueryString(e){e&&(e.startsWith(`?`)&&(e=e.slice(1)),this._processOAuthPopupParams(f(e)))}async _exchangeToken(e,n,r){return(await t(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:`anonymous`,method:`post`,query:{f:`json`,client_id:n,token:r}})).data.token}async _getPlatformSelf(e,n){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,`https:`);try{let r=await t(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:`anonymous`,headers:{"X-Esri-Auth-Client-Id":n,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,``)},method:`post`,query:{f:`json`,expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,r.data}catch(e){throw e.details?.messageCode===`OAUTH_0066`&&(this._getPlatformSelfError=[e,Date.now()]),e}}_getPortalSelf(e,n){let r;return this._gwDomains.some(t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r)),r?Promise.resolve({allSSL:!0,currentVersion:`8.4`,customBaseUrl:r,portalMode:`multitenant`,supportsOAuth:!0}):(this._appOrigin.startsWith(`https:`)?e=e.replace(/^http:/i,`https:`).replace(/:7080/i,`:7443`):/^http:/i.test(n)&&(e=e.replace(/^https:/i,`http:`).replace(/:7443/i,`:7080`)),t(e,{query:{f:`json`},authMode:`anonymous`,withCredentials:!0}).then(e=>e.data))}_doPortalSignIn(e){let t=this._portalConfig,n=window.location.href,r=this.findServerInfo(e);return!!((t||this._isPortalDomain(n))&&(r?r.hasPortal||r.owningSystemUrl&&this._isPortalDomain(r.owningSystemUrl):this._isPortalDomain(e))&&(this._isIdProvider(n,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||u(n,e,!0)))}_checkProtocol(e,t,r,i){let a=!0,o=i?t.adminTokenServiceUrl:t.tokenServiceUrl;return o.trim().toLowerCase().startsWith(`https:`)&&!this._appOrigin.startsWith(`https:`)&&g(o)&&(a=this._protocolFunc?!!this._protocolFunc({resourceUrl:e,serverInfo:t}):!1,a||r(new n(`identity-manager:aborted`,`Aborted the Sign-In process to avoid sending password over insecure connection.`))),a}_enqueue(e,t,n,r,i,a){return r||=Promise.withResolvers(),r.resUrl_=e,r.sinfo_=t,r.options_=n,r.admin_=i,r.refresh_=a,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(r)):this._xoReqs.push(r):this._doSignIn(r),r.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;let t=(t,n=!1)=>{let r=e.options_?.resource,i=e.resUrl_,a=e.refresh_,o=n;this.credentials.includes(t)||(a&&this.credentials.includes(a)?(a.userId=t.userId,a.token=t.token,a.expires=t.expires,a.validity=t.validity,a.ssl=t.ssl,a.creationTime=t.creationTime,o=!0,t=a):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(i)||t.resources.push(i),r&&!t.resources.includes(r)&&t.resources.push(r),t.scope=this._isServerRsrc(i)?`server`:`portal`,n||t.emitTokenChange();let s=this._soReqs,c={};this._soReqs=[],s.forEach(e=>{if(!this._isIdenticalService(i,e.resUrl_)){let n=this._getSuffix(e.resUrl_);c[n]||(c[n]=!0,t.resources.push(e.resUrl_))}}),e.resolve(t),s.forEach(e=>{this._hasSameServerInstance(this._getServerInstanceRoot(i),e.resUrl_)?e.resolve(t):this._soReqs.push(e)}),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,o||this.emit(`credential-create`,{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},r=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},a=(o,c,l,d)=>{let f=e.sinfo_,p=!e.options_||e.options_.prompt!==!1,m=f.hasPortal&&this._findOAuthInfo(e.resUrl_),h,g;if(o)t(new y({userId:o,server:f.server??void 0,token:l??void 0,expires:d==null?null:Number(d),ssl:!!c}));else if(window!==window.parent&&this._appUrlObj.query?.[`arcgis-auth-origin`]&&this._appUrlObj.query?.[`arcgis-auth-portal`]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query[`arcgis-auth-portal`]),e.resUrl_)){window.parent.postMessage({type:`arcgis:auth:requestCredential`},this._appUrlObj.query[`arcgis-auth-origin`]);let a=i(window,`message`,e=>{e.source===window.parent&&e.data&&(e.data.type===`arcgis:auth:credential`?(a.remove(),e.data.credential.expires<Date.now()?r(new n(`identity-manager:credential-request-failed`,`Parent application's token has expired.`)):t(new y(e.data.credential))):e.data.type===`arcgis:auth:error`&&(a.remove(),e.data.error.name===`tokenExpiredError`?r(new n(`identity-manager:credential-request-failed`,`Parent application's token has expired.`)):r(n.fromJSON(e.data.error))))});s(e.options_?.signal,()=>{a.remove()})}else if(m){let i=m._oAuthCred;if(!i){let e=new x(m,A),t=new x(m,j);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,m._oAuthCred=i}if(i.isValid()){h=new y({userId:i.userId??void 0,server:f.server??void 0,token:i.token??void 0,expires:i.expires,ssl:i.ssl??void 0,_oAuthCred:i});let n=m.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);n||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(f.server,i.refreshToken,i.appId).then(e=>(h.expires=Date.now()+e.expires_in*1e3,h.token=e.access_token,h)):Promise.resolve(h),e._pendingDfd.then(e=>n?this._exchangeToken(e.server,m.appId,e.token).then(t=>(e.token=t,e)).catch(()=>e):e).then(e=>{t(e)}).catch(e=>{let t=e.details?.httpStatus;t>0&&t!==404?(i.destroy(),a()):r(e)})):t(h)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(m.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){let n=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(n,m,f).then(e=>{t(e)}).catch(r)}else{let i=()=>{p?e._pendingDfd=this.oAuthSignIn(e.resUrl_,f,m,e.options_).then(t,r):(g=new n(`identity-manager:not-authenticated`,`User is not signed in.`),r(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(f.server,m.appId).then(e=>{u(e.portalUrl,this._appOrigin,!0)?(h=new y({userId:e.username,server:f.server??void 0,expires:Date.now()+e.expires_in*1e3,token:e.token}),t(h)):i()}).catch(i):i()}}else if(!p)g=new n(`identity-manager:not-authenticated`,`User is not signed in.`),r(g);else if(this._checkProtocol(e.resUrl_,f,r,e.admin_)){let n=e.options_;e.admin_&&(n||={},n.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,f,n).then(t,r)}},c=()=>{let n=e.sinfo_,i=n.owningSystemUrl,a=e.options_,o,s,c;if(a&&(o=a.token,s=a.prompt),c=this._findCredential(i,{resource:e.resUrl_}),!c){for(let e of this.credentials)if(this._isIdProvider(i,e.server)){c=e;break}}if(c){let i=this.findCredential(e.resUrl_,c.userId);if(i)t(i);else if(k(n,this._legacyFed)){let e=c.toJSON();e.server=n.server,e.resources=null,t(new y(e))}else(e._pendingDfd=this.generateToken(this.findServerInfo(c.server),null,{serverUrl:e.resUrl_,token:c.token,signal:e.options_.signal,ssl:c.ssl})).then(r=>{t(new y({userId:c?.userId,server:n.server??void 0,token:r.token,expires:r.expires==null?null:Number(r.expires),ssl:!!r.ssl,isAdmin:e.admin_,validity:r.validity}))},r)}else this._busy=null,o&&(e.options_.token=null),(e._pendingDfd=this.getCredential(i.replace(/\/?$/,`/sharing`),{resource:e.resUrl_,owningTenant:n.owningTenant,signal:e.options_.signal,prompt:s})).then(()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)},t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)})};if(this._errbackFunc=r,e.options_?.signal?.aborted){r(new n(`identity-manager:user-aborted`,`ABORTED`));return}if(!e.refresh_&&!e.options_?.token&&!e.options_?.credential){let n=this._findCredential(e.resUrl_,e.options_);if(n){t(n,!0);return}}let l=e.sinfo_.owningSystemUrl,d=this._isServerRsrc(e.resUrl_),f=e.sinfo_._restInfoPms;f?f.promise.then(t=>{let n=e.sinfo_;if(n._restInfoPms){n.adminTokenServiceUrl=n._restInfoPms.adminUrl,n._restInfoPms=null,n.tokenServiceUrl=(o(`authInfo.tokenServicesUrl`,t)||o(`authInfo.tokenServiceUrl`,t)||o(`tokenServiceUrl`,t))??null,n.shortLivedTokenValidity=o(`authInfo.shortLivedTokenValidity`,t)??null,n.currentVersion=t.currentVersion,n.owningTenant=t.owningTenant;let e=n.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}d&&n.owningSystemUrl?c():a()},()=>{e.sinfo_._restInfoPms=null;let t=new n(`identity-manager:server-identification-failed`,`Unknown resource - could not find token service endpoint.`);r(t)}):d&&l?c():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then(t=>{let n={},r,i,a,o;return t&&(r=t.user?.username,n.username=r,n.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),t.portalMode===`multitenant`&&(a=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!r,r&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:n.allSSL}).catch(()=>null).then(e=>(n.portalToken=e?.token,n.tokenExpiration=e?.expires,n)):!r&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:a,owningTenant:e.sinfo_._selfReq.owningTenant}).catch(()=>null).then(()=>n):n}).catch(()=>null).then(t=>{e.sinfo_._selfReq=null,t?a(t.username,t.allSSL,t.portalToken,t.tokenExpiration):a()}):a()}_generateOAuthInfo(e){let n,r=null,i=e.portalUrl,a=e.customBaseUrl,o=e.owningTenant,s=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(s){r=this._appUrlObj.path;let e=r.search(/\/(apps|home)\//);r=e>-1?r.slice(0,e):null}return s&&r?(this._hasTestedIfAppIsOnPortal=!0,n=t(r+`/sharing/rest`,{query:{f:`json`}}).then(()=>{this._defaultOAuthInfo=new S({appId:`arcgisonline`,popupCallbackUrl:r+`/home/oauth-callback.html`})})):n=Promise.resolve(),n.then(()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,`https:`),t(i+`/sharing/rest/oauth2/validateRedirectUri`,{query:{accountId:o,client_id:this._defaultOAuthInfo.appId,redirect_uri:_(this._defaultOAuthInfo.popupCallbackUrl),f:`json`}}).then(e=>{if(e.data.valid){let t=this._defaultOAuthInfo.clone();t.portalUrl=e.data.urlKey&&a?`https://`+e.data.urlKey.toLowerCase()+`.`+a:i,t.popup=window!==window.top||!(u(i,this._appOrigin)||this._gwDomains.some(e=>e.regex.test(i)&&e.regex.test(this._appOrigin))),this.oAuthInfos.push(t)}})})}_doOAuthSignIn(e,t,r,a){let o=r._oAuthCred,s={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(s.hash=window.location.hash),o.stateUID&&(s.uid=o.stateUID);let c={client_id:r.appId,response_type:o.codeVerifier?`code`:`token`,state:JSON.stringify(s),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!o.codeVerifier)};r.forceLogin&&(c.force_login=!0),r.forceUserId&&r.userId&&(c.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(c.redirectToUserOrgUrl=!0),o.codeVerifier&&(c.code_challenge=a||o.codeVerifier,c.code_challenge_method=a?`S256`:`plain`);let l=this._getAuthorizeUrl(r.portalUrl),u=l+`?`+m(c);if(r.popup){let e=window.open(u,`esriJSAPIOAuth`,r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval(()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();let e=this._oAuthDfd;if(e){let t=new n(`identity-manager:user-aborted`,`ABORTED`);e.reject(t)}}},500),this._oAuthOnPopupHandle=i(window,[`arcgis:auth:hash`,`arcgis:auth:location:search`],e=>{e.type===`arcgis:auth:hash`?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)});else{let e=new n(`identity-manager:popup-blocked`,`ABORTED`);this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:c,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=u}_getAuthorizeUrl(e){let t=e.replace(/^http:/i,`https:`)+`/sharing/oauth2/authorize`,n=E(t);if(n?.portalHostname){let{customBaseUrl:e,portalHostname:t,urlKey:r}=n}return t}_getRedirectURI(e,t){let n=window.location.href.replace(/#.*$/,``);if(e.popup)return _(e.popupCallbackUrl);if(t){let e=l(n);return e.query&&[`code`,`error`,`error_description`,`message_code`,`persist`,`state`].forEach(t=>{delete e.query[t]}),v(e.path,e.query)}return n}}M.prototype.declaredClass=`esri.identity.IdentityManagerBase`;export{M as IdentityManagerBase};
2
+ import e from"../config.js";import t from"../request.js";import n from"../core/Error.js";import{Evented as r}from"../core/Evented.js";import{on as i}from"../core/events.js";import{fixJson as a}from"../core/lang.js";import{getDeepValue as o}from"../core/object.js";import{onAbort as s,isAborted as c}from"../core/promiseUtils.js";import{urlToObject as l,hasSameOrigin as u,Url as d,queryToObject as f,base64UrlEncode as p,objectToQuery as m,normalize as h,getProxyRule as g,makeAbsolute as _,addQueryParameters as v}from"../core/urlUtils.js";import y from"./Credential.js";import b from"./IdentityModal.js";import x from"./OAuthCredential.js";import S from"./OAuthInfo.js";import C from"./ServerInfo.js";import{isSecureProxyService as w,normalizeArcGISOnlineOrgDomain as T,parseKnownArcGISOnlineDomain as E}from"../portal/support/urlUtils.js";const D={},O=e=>{let t=new d(e.owningSystemUrl).host,n=new d(e.server).host,r=/.+\.arcgis\.com$/i;return r.test(t)&&r.test(n)},k=(e,t)=>!!(O(e)&&t&&t.some(t=>t.test(e.server)));let A=null,j=null;try{A=window.localStorage,j=window.sessionStorage}catch{}class M extends r{constructor(){super(),this._portalConfig=globalThis.esriGeowConfig,this.serverInfos=[],this.oAuthInfos=[],this.credentials=[],this._soReqs=[],this._xoReqs=[],this._portals=[],this._defaultOAuthInfo=null,this._defaultTokenValidity=60,this.dialog=null,this.tokenValidity=null,this.normalizeWebTierAuth=!1,this._appOrigin=window.origin===`null`?window.location.origin:window.origin,this._appUrlObj=l(window.location.href),this._busy=null,this._rejectOnPersistedPageShow=!1,this._oAuthLocationParams=null,this._gwTokenUrl=`/sharing/rest/generateToken`,this._agsRest=`/rest/services`,this._agsPortal=/\/sharing(\/|$)/i,this._agsAdmin=/(https?:\/\/[^/]+\/[^/]+)\/admin\/?(\/.*)?$/i,this._adminSvcs=/\/rest\/admin\/services(\/|$)/i,this._gwDomains=[{regex:/^https?:\/\/www\.arcgis\.com/i,customBaseUrl:`maps.arcgis.com`,tokenServiceUrl:`https://www.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:dev|[a-z\d-]+\.mapsdev)\.arcgis\.com/i,customBaseUrl:`mapsdev.arcgis.com`,tokenServiceUrl:`https://dev.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:devext|[a-z\d-]+\.mapsdevext)\.arcgis\.com/i,customBaseUrl:`mapsdevext.arcgis.com`,tokenServiceUrl:`https://devext.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/(?:qaext|[a-z\d-]+\.mapsqa)\.arcgis\.com/i,customBaseUrl:`mapsqa.arcgis.com`,tokenServiceUrl:`https://qaext.arcgis.com/sharing/rest/generateToken`},{regex:/^https?:\/\/[a-z\d-]+\.maps\.arcgis\.com/i,customBaseUrl:`maps.arcgis.com`,tokenServiceUrl:`https://www.arcgis.com/sharing/rest/generateToken`}],this._legacyFed=[],this._regexSDirUrl=/http.+\/rest\/services\/?/gi,this._regexServerType=/(\/(FeatureServer|GPServer|GeoDataServer|GeocodeServer|GeoenrichmentServer|GeometryServer|GlobeServer|ImageServer|KnowledgeGraphServer|MapServer|MissionServer|MobileServer|NAServer|NetworkDiagramServer|OGCFeatureServer|ParcelFabricServer|RelationalCatalogServer|SceneServer|StreamServer|UtilityNetworkServer|ValidationServer|VectorTileServer|VersionManagementServer|VideoServer|3DTilesServer)).*/gi,this._gwUser=/http.+\/users\/([^/]+).*/i,this._gwItem=/http.+\/items\/([^/]+).*/i,this._gwGroup=/http.+\/groups\/([^/]+).*/i,this._rePortalTokenSvc=/\/sharing(\/rest)?\/generatetoken/i,this._createDefaultOAuthInfo=!0,this._hasTestedIfAppIsOnPortal=!1,this._getPlatformSelfError=null,this._getOAuthLocationParams(),window.addEventListener(`pageshow`,e=>{this._pageShowHandler(e)})}registerServers(e){let t=this.serverInfos;t?(e=e.filter(e=>!this.findServerInfo(e.server)),this.serverInfos=t.concat(e)):this.serverInfos=e,e.forEach(e=>{e.owningSystemUrl&&this._portals.push(e.owningSystemUrl),e.hasPortal&&this._portals.push(e.server)})}registerOAuthInfos(e){let t=this.oAuthInfos;if(t){for(let n of e){let e=this.findOAuthInfo(n.portalUrl);e&&t.splice(t.indexOf(e),1)}this.oAuthInfos=t.concat(e)}else this.oAuthInfos=e}registerToken(e){e={...e};let t=this._sanitizeUrl(e.server),n=this._isServerRsrc(t),r=this.findServerInfo(t),i=!0,a;r||(r=new C,r.server=this._getServerInstanceRoot(t),n?r.hasServer=!0:(r.tokenServiceUrl=this._getTokenSvcUrl(t),r.hasPortal=!0),this.registerServers([r])),a=this._findCredential(t),a?(delete e.server,Object.assign(a,e),i=!1):(a=new y({userId:e.userId,server:r.server??void 0,token:e.token,expires:e.expires,ssl:e.ssl,scope:n?`server`:`portal`}),a.resources=[t],this.credentials.push(a)),a.emitTokenChange(!1),i||a.refreshServerTokens()}toJSON(){return a({serverInfos:this.serverInfos.map(e=>e.toJSON()),oAuthInfos:this.oAuthInfos.map(e=>e.toJSON()),credentials:this.credentials.map(e=>e.toJSON())})}initialize(e){if(!e)return;typeof e==`string`&&(e=JSON.parse(e));let t=e.serverInfos,n=e.oAuthInfos,r=e.credentials;if(t){let e=[];t.forEach(t=>{t.server&&t.tokenServiceUrl&&e.push(t.declaredClass?t:new C(t))}),e.length&&this.registerServers(e)}if(n){let e=[];n.forEach(t=>{t.appId&&e.push(t.declaredClass?t:new S(t))}),e.length&&this.registerOAuthInfos(e)}r&&r.forEach(e=>{e.server&&e.token&&e.expires&&e.expires>Date.now()&&(e=e.declaredClass?e:new y(e),e.emitTokenChange(),this.credentials.push(e))})}findServerInfo(e){let t;e=this._sanitizeUrl(e);for(let n of this.serverInfos)if(this._hasSameServerInstance(n.server,e)){t=n;break}return t}findOAuthInfo(e){let t;e=this._sanitizeUrl(e);for(let n of this.oAuthInfos)if(this._hasSameServerInstance(n.portalUrl,e)){t=n;break}return t}findCredential(e,t){if(!e)return;let n;e=this._sanitizeUrl(e);let r=this._isServerRsrc(e)?`server`:`portal`;if(t){for(let i of this.credentials)if(this._hasSameServerInstance(i.server,e)&&t===i.userId&&i.scope===r){n=i;break}}else for(let t of this.credentials)if(this._hasSameServerInstance(t.server,e)&&this._getIdenticalSvcIdx(e,t)!==-1&&t.scope===r){n=t;break}return n}getCredential(e,t){let r=!1,i,a=!0;t&&(r=!!(t.token||t.credential),i=t.error,a=t.prompt!==!1),t={...t},e=this._sanitizeUrl(e);let o=new AbortController,l=Promise.withResolvers();if(t.signal&&s(t.signal,()=>{o.abort()}),s(o,()=>{l.reject(new n(`identity-manager:user-aborted`,`ABORTED`))}),c(o))return l.promise;t.signal=o.signal;let d=this._isAdminResource(e),f=r?this.findCredential(e):null,p;if(f&&i?.details?.httpStatus===498)f.destroy();else if(f)return p=new n(`identity-manager:not-authorized`,`You are currently signed in as: '`+f.userId+`'. You do not have access to this resource: `+e,{error:i}),l.reject(p),l.promise;let m=this._findCredential(e,t);if(m)return l.resolve(m),l.promise;let h=this.findServerInfo(e);if(h)!h.hasPortal&&h.server&&h.owningSystemUrl&&this._hasSameServerInstance(h.server,h.owningSystemUrl)&&(h.hasPortal=!0),!h.hasServer&&this._isServerRsrc(e)&&(h._restInfoPms=this._getTokenSvcUrl(e),h.hasServer=!0);else{let t=this._getTokenSvcUrl(e);if(!t)return p=new n(`identity-manager:unknown-resource`,`Unknown resource - could not find token service endpoint.`),l.reject(p),l.promise;h=new C,h.server=this._getServerInstanceRoot(e),typeof t==`string`?(h.tokenServiceUrl=t,h.hasPortal=!0):(h._restInfoPms=t,h.hasServer=!0),this.registerServers([h])}return h.hasPortal&&h._selfReq===void 0&&(a||u(h.tokenServiceUrl,this._appOrigin)||this._gwDomains.some(e=>e.tokenServiceUrl===h.tokenServiceUrl))&&(h._selfReq={owningTenant:t?.owningTenant,selfDfd:this._getPortalSelf(h.tokenServiceUrl.replace(this._rePortalTokenSvc,`/sharing/rest/portals/self`),e)}),this._enqueue(e,h,t,l,d)}getResourceName(e){return this._isRESTService(e)?e.replace(this._regexSDirUrl,``).replace(this._regexServerType,``)||``:this._gwUser.test(e)&&e.replace(this._gwUser,`$1`)||this._gwItem.test(e)&&e.replace(this._gwItem,`$1`)||this._gwGroup.test(e)&&e.replace(this._gwGroup,`$1`)||``}generateToken(e,r,i){let a=this._rePortalTokenSvc.test(e.tokenServiceUrl),o=new d(this._appOrigin),s=e.shortLivedTokenValidity,c,l,f,p,m,h,g,_;r&&(_=this.tokenValidity||s||this._defaultTokenValidity,_>s&&s>0&&(_=s)),i&&(c=i.isAdmin,l=i.serverUrl,f=i.token,h=i.signal,g=i.ssl,e.customParameters=i.customParameters),c?p=e.adminTokenServiceUrl:(p=e.tokenServiceUrl,m=new d(p.toLowerCase()),e.webTierAuth&&i?.serverUrl&&!g&&o.scheme===`http`&&(u(o.uri,p,!0)||m.scheme===`https`&&o.host===m.host&&o.port===`7080`&&m.port===`7443`)&&(p=p.replace(/^https:/i,`http:`).replace(/:7443/i,`:7080`)));let v={query:{request:`getToken`,username:r?.username,password:r?.password,serverUrl:l,token:f,expiration:_,referer:c||a?this._appOrigin:null,client:c?`referer`:null,f:`json`,...e.customParameters},method:`post`,authMode:`anonymous`,useProxy:this._useProxy(e,i),signal:h};return a||(v.withCredentials=!1),t(p,v).then(t=>{let i=t.data;if(!i?.token)return new n(`identity-manager:authentication-failed`,`Unable to generate token`);let a=e.server;return D[a]||(D[a]={}),r&&(D[a][r.username]=r.password),i.validity=_,i})}isBusy(){return!!this._busy}async checkSignInStatus(e){return(await this.checkAppAccess(e,``)).credential}checkAppAccess(e,r,i){let a=!1;return this.getCredential(e,{prompt:!1}).then(o=>{let s,c={f:`json`};if(o.scope===`portal`){if(r&&(this._doPortalSignIn(e)||i?.force))s=o.server+`/sharing/rest/oauth2/validateAppAccess`,c.client_id=r;else if(o.token)s=o.server+`/sharing/rest`;else return{credential:o}}else if(o.token)s=o.server+`/rest/services`;else return{credential:o};return o.token&&(c.token=o.token),t(s,{query:c,authMode:`anonymous`}).then(e=>{if(e.data.valid===!1)throw new n(`identity-manager:not-authorized`,`You are currently signed in as: '${o.userId}'.`,e.data);return a=!!e.data.viewOnlyUserTypeApp,{credential:o}}).catch(e=>{if(e.name===`identity-manager:not-authorized`)throw e;let t=e.details?.httpStatus;if(t===498)throw o.destroy(),new n(`identity-manager:not-authenticated`,`User is not signed in.`);if(t===400)throw new n(`identity-manager:invalid-request`,`Bad request`);return{credential:o}})}).then(e=>({credential:e.credential,viewOnly:a}))}setOAuthResponseHash(e){e&&(e.startsWith(`#`)&&(e=e.slice(1)),this._processOAuthPopupParams(f(e)))}setOAuthRedirectionHandler(e){this._oAuthRedirectFunc=e}setProtocolErrorHandler(e){this._protocolFunc=e}signIn(e,t,r={}){let i=Promise.withResolvers(),a=()=>{l?.remove(),u?.remove(),this.dialog?.destroy(),this.dialog=l=u=null},o=()=>{a(),this._oAuthDfd=null,i.reject(new n(`identity-manager:user-aborted`,`ABORTED`))};r.signal&&s(r.signal,()=>{o()});let c=new b({open:!0,resource:this.getResourceName(e),server:t.server});this.dialog=c,this.emit(`dialog-create`);let l=c.on(`cancel`,o),u=c.on(`submit`,e=>{this.generateToken(t,e,{isAdmin:r.isAdmin,signal:r.signal}).then(n=>{a();let o=new y({userId:e.username,server:t.server??void 0,token:n.token,expires:n.expires==null?null:Number(n.expires),ssl:!!n.ssl,isAdmin:r.isAdmin,validity:n.validity});i.resolve(o)}).catch(e=>{c.error=e,c.signingIn=!1})});return i.promise}oAuthSignIn(e,t,r,i){this._oAuthDfd=Promise.withResolvers();let a=this._oAuthDfd;i?.signal&&s(i.signal,()=>{let e=this._oAuthDfd&&this._oAuthDfd.oAuthWin_;e&&!e.closed?e.close():this.dialog&&d()}),a.resUrl_=e,a.sinfo_=t,a.oinfo_=r;let o,c=r._oAuthCred;if(c.storage&&(r.flowType===`authorization-code`||r.flowType===`auto`&&t.currentVersion>=8.4)){let e=crypto.getRandomValues(new Uint8Array(32));o=p(e),c.codeVerifier=o,e=crypto.getRandomValues(new Uint8Array(32)),c.stateUID=p(e),c.save()||(c.codeVerifier=o=null)}else c.codeVerifier=null;this._getCodeChallenge(o).then(n=>{let a=!i||i.oAuthPopupConfirmation!==!1;if(!r.popup||!a){this._doOAuthSignIn(e,t,r,n);return}let o=new b({oAuthPrompt:!0,server:t.server,open:!0});this.dialog=o,this.emit(`dialog-create`),l=o.on(`cancel`,d),u=o.on(`submit`,()=>{f(),this._doOAuthSignIn(e,t,r,n)})});let l,u,d=()=>{f(),this._oAuthDfd=null,a.reject(new n(`identity-manager:user-aborted`,`ABORTED`))},f=()=>{l?.remove(),u?.remove(),this.dialog?.destroy(),this.dialog=null};return a.promise}async refreshToken(e){let t=this.findServerInfo(e.server),n=t?.owningSystemUrl,r=!!n&&e.scope===`server`,i=r&&k(t,this._legacyFed),a=t.webTierAuth,o=a&&this.normalizeWebTierAuth,s=D[e.server]?.[e.userId],c=e.resources&&e.resources[0],l=r?this.findServerInfo(n):null,u={username:e.userId,password:s},d;if(a&&!o)return;r&&!l&&this.serverInfos.some(e=>(this._isIdProvider(n,e.server)&&(l=e),!!l));let f=l?this.findCredential(l.server,e.userId):null;if(!r||f){if(i)f?.refreshToken();else{if(r)d={serverUrl:c,token:f?.token,ssl:f?.ssl};else if(o)u=null,d={ssl:e.ssl};else if(s)e.isAdmin&&(d={isAdmin:!0});else{let n;return c&&(c=this._sanitizeUrl(c),e._enqueued=1,n=this._enqueue(c,t,null,null,e.isAdmin,e),n.then(()=>{e._enqueued=0,e.refreshServerTokens()}).catch(()=>{e._enqueued=0})),n}return this.generateToken(r?l:t,r?null:u,d).then(t=>{e.token=t.token,e.expires=t.expires==null?null:Number(t.expires),e.creationTime=Date.now(),e.validity=t.validity,e.emitTokenChange(),e.refreshServerTokens()}).catch(()=>{})}}}refreshServerTokens(e){e.scope===`portal`&&this.credentials.forEach(t=>{let n=this.findServerInfo(t.server),r=n?.owningSystemUrl;t!==e&&t.userId===e.userId&&r&&t.scope===`server`&&(this._hasSameServerInstance(e.server,r)||this._isIdProvider(r,e.server))&&(k(n,this._legacyFed)?(t.token=e.token,t.expires=e.expires,t.creationTime=e.creationTime,t.validity=e.validity,t.emitTokenChange()):t.refreshToken())})}destroyCredentials(){this.credentials&&this.credentials.slice().forEach(e=>{e.destroy()}),this.emit(`credentials-destroy`)}enablePostMessageAuth(e=`https://www.arcgis.com/sharing/rest`){this._postMessageAuthHandle&&this._postMessageAuthHandle.remove(),this._postMessageAuthHandle=i(window,`message`,t=>{if((t.origin===this._appOrigin||t.origin.endsWith(`.arcgis.com`))&&t.data?.type===`arcgis:auth:requestCredential`){let n=t.source;this.getCredential(e).then(e=>{n.postMessage({type:`arcgis:auth:credential`,credential:{expires:e.expires,server:e.server,ssl:e.ssl,token:e.token,userId:e.userId}},t.origin)}).catch(e=>{n.postMessage({type:`arcgis:auth:error`,error:{name:e.name,message:e.message}},t.origin)})}})}disablePostMessageAuth(){this._postMessageAuthHandle&&=(this._postMessageAuthHandle.remove(),null)}_getOAuthLocationParams(){let e=window.location.hash;if(e){e.startsWith(`#`)&&(e=e.slice(1));let t=f(e),n=!1;if(t.access_token&&t.expires_in&&t.state&&t.hasOwnProperty(`username`))try{t.state=JSON.parse(t.state),t.state.portalUrl&&(this._oAuthLocationParams=t,n=!0)}catch{}else if(t.error&&t.error_description&&(console.log(`IdentityManager OAuth Error: `,t.error,` - `,t.error_description),t.error===`access_denied`&&(n=!0,t.state)))try{t.state=JSON.parse(t.state)}catch{}n&&(window.location.hash=t.state?.hash||``)}let t=window.location.search;if(t){t.startsWith(`?`)&&(t=t.slice(1));let e=f(t),n=!1;if(e.code&&e.state)try{e.state=JSON.parse(e.state),e.state.portalUrl&&e.state.uid&&(this._oAuthLocationParams=e,n=!0)}catch{}else if(e.error&&e.error_description&&(console.log(`IdentityManager OAuth Error: `,e.error,` - `,e.error_description),e.error===`access_denied`&&(n=!0,e.state)))try{e.state=JSON.parse(e.state)}catch{}if(n){let t={...e};[`code`,`error`,`error_description`,`message_code`,`persist`,`state`].forEach(e=>{delete t[e]});let n=m(t),r=window.location.pathname+(n?`?${n}`:``)+(e.state?.hash||``);window.history.replaceState(window.history.state,``,r)}}}_getOAuthToken(e,n,r,i,a){return e=e.replace(/^http:/i,`https:`),t(`${e}/sharing/rest/oauth2/token`,{authMode:`anonymous`,method:`post`,query:i&&a?{grant_type:`authorization_code`,code:n,redirect_uri:i,client_id:r,code_verifier:a}:{grant_type:`refresh_token`,refresh_token:n,client_id:r}}).then(e=>e.data)}async _getCodeChallenge(e){if(e&&globalThis.isSecureContext){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return p(new Uint8Array(n))}return null}_pageShowHandler(e){if(e.persisted&&this.isBusy()&&this._rejectOnPersistedPageShow){let e=new n(`identity-manager:user-aborted`,`ABORTED`);this._errbackFunc(e)}}_findCredential(e,t){let n=-1,r,i,a,o,s=t?.token,c=t?.resource,l=this._isServerRsrc(e)?`server`:`portal`,u=this.credentials.filter(t=>this._hasSameServerInstance(t.server,e)&&t.scope===l);if(e=c||e,u.length){if(u.length===1){if(r=u[0],a=this.findServerInfo(r.server),i=a?.owningSystemUrl,o=i?this.findCredential(i,r.userId):void 0,n=this._getIdenticalSvcIdx(e,r),s)n!==-1&&(r.resources.splice(n,1),this._removeResource(e,o));else return n===-1&&r.resources.push(e),this._addResource(e,o),r}else{let t,r;if(u.some(s=>(r=this._getIdenticalSvcIdx(e,s),r!==-1&&(t=s,a=this.findServerInfo(t.server),i=a?.owningSystemUrl,o=i?this.findCredential(i,t.userId):void 0,n=r,!0))),s)t&&(t.resources.splice(n,1),this._removeResource(e,o));else if(t)return this._addResource(e,o),t}}}_findOAuthInfo(e){let t=this.findOAuthInfo(e);if(!t){for(let n of this.oAuthInfos)if(this._isIdProvider(n.portalUrl,e)){t=n;break}}return t}_addResource(e,t){t&&this._getIdenticalSvcIdx(e,t)===-1&&t.resources.push(e)}_removeResource(e,t){let n=-1;t&&(n=this._getIdenticalSvcIdx(e,t),n>-1&&t.resources.splice(n,1))}_useProxy(e,t){return t?.isAdmin&&!u(e.adminTokenServiceUrl,this._appOrigin)||!this._isPortalDomain(e.tokenServiceUrl)&&String(e.currentVersion)===`10.1`&&!u(e.tokenServiceUrl,this._appOrigin)}_getOrigin(e){let t=new d(e);return t.scheme+`://`+t.host+(t.port==null?``:`:`+t.port)}_getServerInstanceRoot(e){let t=e.toLowerCase(),n=t.indexOf(this._agsRest);return n===-1&&this._isAdminResource(e)&&(n=this._agsAdmin.test(e)?e.replace(this._agsAdmin,`$1`).length:e.search(this._adminSvcs)),n===-1&&!w(t)&&(n=t.indexOf(`/sharing`)),n===-1&&t.endsWith(`/`)&&(n=t.length-1),n>-1?e.slice(0,n):e}_hasSameServerInstance(e,t){return e.endsWith(`/`)&&(e=e.slice(0,-1)),e=e.toLowerCase(),t=this._getServerInstanceRoot(t).toLowerCase(),e=T(e),t=T(t),e=e.slice(Math.max(0,e.indexOf(`:`))),t=t.slice(Math.max(0,t.indexOf(`:`))),e===t}_sanitizeUrl(t){let n=(e.request.proxyUrl||``).toLowerCase(),r=n?t.toLowerCase().indexOf(n+`?`):-1;return r!==-1&&(t=t.slice(r+n.length+1)),t=h(t),l(t).path}_isRESTService(e){return e.includes(this._agsRest)}_isAdminResource(e){return this._agsAdmin.test(e)||this._adminSvcs.test(e)}_isServerRsrc(e){return this._isRESTService(e)||this._isAdminResource(e)}_isIdenticalService(e,t){let n=!1;if(this._isRESTService(e)&&this._isRESTService(t)){let r=this._getSuffix(e).toLowerCase(),i=this._getSuffix(t).toLowerCase();if(n=r===i,!n){let e=/(.*)\/(MapServer|FeatureServer|UtilityNetworkServer).*/gi;n=r.replaceAll(e,`$1`)===i.replaceAll(e,`$1`)}}else(this._isAdminResource(e)&&this._isAdminResource(t)||!this._isServerRsrc(e)&&!this._isServerRsrc(t)&&this._isPortalDomain(e))&&(n=!0);return n}_isPortalDomain(t){let n=new d(t.toLowerCase()),r=this._portalConfig,i=this._gwDomains.some(e=>e.regex.test(n.uri));return!i&&r&&(i=this._hasSameServerInstance(this._getServerInstanceRoot(r.restBaseUrl),n.uri)),i||e.portalUrl&&(i=u(n,e.portalUrl,!0)),i||=this._portals.some(e=>this._hasSameServerInstance(e,n.uri)),i||=this._agsPortal.test(n.path),i}_isIdProvider(e,t){let n=-1,r=-1;this._gwDomains.forEach((i,a)=>{n===-1&&i.regex.test(e)&&(n=a),r===-1&&i.regex.test(t)&&(r=a)});let i=!1;if(n>-1&&r>-1&&(n===0||n===4?(r===0||r===4)&&(i=!0):n===1?(r===1||r===2)&&(i=!0):n===2?r===2&&(i=!0):n===3&&r===3&&(i=!0)),!i){let n=this.findServerInfo(t),r=n?.owningSystemUrl;r&&O(n)&&this._isPortalDomain(r)&&this._isIdProvider(e,r)&&(i=!0)}return i}_getIdenticalSvcIdx(e,t){let n=-1;for(let r=0;r<t.resources.length;r++){let i=t.resources[r];if(this._isIdenticalService(e,i)){n=r;break}}return n}_getSuffix(e){return e.replace(this._regexSDirUrl,``).replace(this._regexServerType,`$1`)}_getTokenSvcUrl(e){let n,r,i;if(this._isRESTService(e)||this._isAdminResource(e)){let i=this._getServerInstanceRoot(e);return n=i+`/admin/generateToken`,e=i+`/rest/info`,r=t(e,{query:{f:`json`}}).then(e=>e.data),{adminUrl:n,promise:r}}if(this._isPortalDomain(e)){let t=``;if(this._gwDomains.some(n=>(n.regex.test(e)&&(t=n.tokenServiceUrl),!!t)),t||this._portals.some(n=>(this._hasSameServerInstance(n,e)&&(t=n+this._gwTokenUrl),!!t)),t||(i=e.toLowerCase().indexOf(`/sharing`),i!==-1&&(t=e.slice(0,i)+this._gwTokenUrl)),t||=this._getOrigin(e)+this._gwTokenUrl,t){let n=new d(e).port;/^http:\/\//i.test(e)&&n===`7080`&&(t=t.replace(/:7080/i,`:7443`)),t=t.replace(/http:/i,`https:`)}return t}}_processOAuthResponseParams(e,t,n){let r=t._oAuthCred;if(e.code){let i=r.codeVerifier;return r.codeVerifier=null,r.stateUID=null,r.save(),this._getOAuthToken(n.server,e.code,t.appId,this._getRedirectURI(t,!0),i).then(i=>{let a=new y({userId:i.username,server:n.server??void 0,token:i.access_token,expires:Date.now()+i.expires_in*1e3,ssl:i.ssl,oAuthState:e.state,_oAuthCred:r});return t.userId=a.userId,r.storage=i.persist?A:j,r.refreshToken=i.refresh_token,r.token=null,r.expires=i.refresh_token_expires_in?Date.now()+i.refresh_token_expires_in*1e3:null,r.userId=a.userId,r.ssl=a.ssl,r.save(),a})}let i=new y({userId:e.username,server:n.server??void 0,token:e.access_token,expires:Date.now()+Number(e.expires_in)*1e3,ssl:e.ssl===`true`,oAuthState:e.state,_oAuthCred:r});return t.userId=i.userId,r.storage=e.persist?A:j,r.refreshToken=null,r.token=i.token,r.expires=i.expires,r.userId=i.userId,r.ssl=i.ssl,r.save(),Promise.resolve(i)}_processOAuthPopupParams(e){let t=this._oAuthDfd;if(this._oAuthDfd=null,t){if(clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle?.remove(),e.error){let r=e.error===`access_denied`,i=new n(r?`identity-manager:user-aborted`:`identity-manager:authentication-failed`,r?`ABORTED`:`OAuth: `+e.error+` - `+e.error_description);t.reject(i)}else this._processOAuthResponseParams(e,t.oinfo_,t.sinfo_).then(e=>{t.resolve(e)}).catch(e=>{t.reject(e)})}}_setOAuthResponseQueryString(e){e&&(e.startsWith(`?`)&&(e=e.slice(1)),this._processOAuthPopupParams(f(e)))}async _exchangeToken(e,n,r){return(await t(`${e}/sharing/rest/oauth2/exchangeToken`,{authMode:`anonymous`,method:`post`,query:{f:`json`,client_id:n,token:r}})).data.token}async _getPlatformSelf(e,n){if(this._getPlatformSelfError&&Date.now()-this._getPlatformSelfError[1]<1e3)throw this._getPlatformSelfError[0];e=e.replace(/^http:/i,`https:`);try{let r=await t(`${e}/sharing/rest/oauth2/platformSelf`,{authMode:`anonymous`,headers:{"X-Esri-Auth-Client-Id":n,"X-Esri-Auth-Redirect-Uri":window.location.href.replace(/#.*$/,``)},method:`post`,query:{f:`json`,expiration:30},withCredentials:!0});return this._getPlatformSelfError=null,r.data}catch(e){throw e.details?.messageCode===`OAUTH_0066`&&(this._getPlatformSelfError=[e,Date.now()]),e}}_getPortalSelf(e,n){let r;return this._gwDomains.some(t=>(t.regex.test(e)&&(r=t.customBaseUrl),!!r)),r?Promise.resolve({allSSL:!0,currentVersion:`8.4`,customBaseUrl:r,portalMode:`multitenant`,supportsOAuth:!0}):(this._appOrigin.startsWith(`https:`)?e=e.replace(/^http:/i,`https:`).replace(/:7080/i,`:7443`):/^http:/i.test(n)&&(e=e.replace(/^https:/i,`http:`).replace(/:7443/i,`:7080`)),t(e,{query:{f:`json`},authMode:`anonymous`,withCredentials:!0}).then(e=>e.data))}_doPortalSignIn(e){let t=this._portalConfig,n=window.location.href,r=this.findServerInfo(e);return!!((t||this._isPortalDomain(n))&&(r?r.hasPortal||r.owningSystemUrl&&this._isPortalDomain(r.owningSystemUrl):this._isPortalDomain(e))&&(this._isIdProvider(n,e)||t&&(this._hasSameServerInstance(this._getServerInstanceRoot(t.restBaseUrl),e)||this._isIdProvider(t.restBaseUrl,e))||u(n,e,!0)))}_checkProtocol(e,t,r,i){let a=!0,o=i?t.adminTokenServiceUrl:t.tokenServiceUrl;return o.trim().toLowerCase().startsWith(`https:`)&&!this._appOrigin.startsWith(`https:`)&&g(o)&&(a=this._protocolFunc?!!this._protocolFunc({resourceUrl:e,serverInfo:t}):!1,a||r(new n(`identity-manager:aborted`,`Aborted the Sign-In process to avoid sending password over insecure connection.`))),a}_enqueue(e,t,n,r,i,a){return r||=Promise.withResolvers(),r.resUrl_=e,r.sinfo_=t,r.options_=n??{},r.admin_=i,r.refresh_=a,this._busy?this._hasSameServerInstance(this._getServerInstanceRoot(e),this._busy.resUrl_)?(this._oAuthDfd&&this._oAuthDfd.oAuthWin_&&this._oAuthDfd.oAuthWin_.focus(),this._soReqs.push(r)):this._xoReqs.push(r):this._doSignIn(r),r.promise}_doSignIn(e){this._busy=e,this._rejectOnPersistedPageShow=!1;let t=(t,n=!1)=>{let r=e.options_?.resource,i=e.resUrl_,a=e.refresh_,o=n;this.credentials.includes(t)||(a&&this.credentials.includes(a)?(a.userId=t.userId,a.token=t.token,a.expires=t.expires,a.validity=t.validity,a.ssl=t.ssl,a.creationTime=t.creationTime,o=!0,t=a):this.credentials.push(t)),t.resources||(t.resources=[]),t.resources.includes(i)||t.resources.push(i),r&&!t.resources.includes(r)&&t.resources.push(r),t.scope=this._isServerRsrc(i)?`server`:`portal`,n||t.emitTokenChange();let s=this._soReqs,c={};this._soReqs=[],s.forEach(e=>{if(!this._isIdenticalService(i,e.resUrl_)){let n=this._getSuffix(e.resUrl_);c[n]||(c[n]=!0,t.resources.push(e.resUrl_))}}),e.resolve(t),s.forEach(e=>{this._hasSameServerInstance(this._getServerInstanceRoot(i),e.resUrl_)?e.resolve(t):this._soReqs.push(e)}),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,o||this.emit(`credential-create`,{credential:t}),this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},r=t=>{e.reject(t),this._busy=e.resUrl_=e.sinfo_=e.refresh_=null,this._soReqs.length?this._doSignIn(this._soReqs.shift()):this._xoReqs.length&&this._doSignIn(this._xoReqs.shift())},a=(o,c,l,d)=>{let f=e.sinfo_,p=!e.options_||e.options_.prompt!==!1,m=f.hasPortal&&this._findOAuthInfo(e.resUrl_),h,g;if(o)t(new y({userId:o,server:f.server??void 0,token:l??void 0,expires:d==null?null:Number(d),ssl:!!c}));else if(window!==window.parent&&this._appUrlObj.query?.[`arcgis-auth-origin`]&&this._appUrlObj.query?.[`arcgis-auth-portal`]&&this._hasSameServerInstance(this._getServerInstanceRoot(this._appUrlObj.query[`arcgis-auth-portal`]),e.resUrl_)){window.parent.postMessage({type:`arcgis:auth:requestCredential`},this._appUrlObj.query[`arcgis-auth-origin`]);let a=i(window,`message`,e=>{e.source===window.parent&&e.data&&(e.data.type===`arcgis:auth:credential`?(a.remove(),e.data.credential.expires<Date.now()?r(new n(`identity-manager:credential-request-failed`,`Parent application's token has expired.`)):t(new y(e.data.credential))):e.data.type===`arcgis:auth:error`&&(a.remove(),e.data.error.name===`tokenExpiredError`?r(new n(`identity-manager:credential-request-failed`,`Parent application's token has expired.`)):r(n.fromJSON(e.data.error))))});s(e.options_?.signal,()=>{a.remove()})}else if(m){let i=m._oAuthCred;if(!i){let e=new x(m,A),t=new x(m,j);e.isValid()&&t.isValid()?e.expires>t.expires?(i=e,t.destroy()):(i=t,e.destroy()):i=e.isValid()?e:t,m._oAuthCred=i}if(i.isValid()){h=new y({userId:i.userId??void 0,server:f.server??void 0,token:i.token??void 0,expires:i.expires,ssl:i.ssl??void 0,_oAuthCred:i});let n=m.appId!==i.appId&&this._doPortalSignIn(e.resUrl_);n||i.refreshToken?(e._pendingDfd=i.refreshToken?this._getOAuthToken(f.server,i.refreshToken,i.appId).then(e=>(h.expires=Date.now()+e.expires_in*1e3,h.token=e.access_token,h)):Promise.resolve(h),e._pendingDfd.then(e=>n?this._exchangeToken(e.server,m.appId,e.token).then(t=>(e.token=t,e)).catch(()=>e):e).then(e=>{t(e)}).catch(e=>{let t=e.details?.httpStatus;t>0&&t!==404?(i.destroy(),a()):r(e)})):t(h)}else if(this._oAuthLocationParams&&this._hasSameServerInstance(m.portalUrl,this._oAuthLocationParams.state.portalUrl)&&(this._oAuthLocationParams.access_token||this._oAuthLocationParams.code&&this._oAuthLocationParams.state.uid===i.stateUID&&i.codeVerifier)){let n=this._oAuthLocationParams;this._oAuthLocationParams=null,e._pendingDfd=this._processOAuthResponseParams(n,m,f).then(e=>{t(e)}).catch(r)}else{let i=()=>{p?e._pendingDfd=this.oAuthSignIn(e.resUrl_,f,m,e.options_).then(t,r):(g=new n(`identity-manager:not-authenticated`,`User is not signed in.`),r(g))};this._doPortalSignIn(e.resUrl_)?e._pendingDfd=this._getPlatformSelf(f.server,m.appId).then(e=>{u(e.portalUrl,this._appOrigin,!0)?(h=new y({userId:e.username,server:f.server??void 0,expires:Date.now()+e.expires_in*1e3,token:e.token}),t(h)):i()}).catch(i):i()}}else if(!p)g=new n(`identity-manager:not-authenticated`,`User is not signed in.`),r(g);else if(this._checkProtocol(e.resUrl_,f,r,e.admin_)){let n=e.options_;e.admin_&&(n||={},n.isAdmin=!0),e._pendingDfd=this.signIn(e.resUrl_,f,n).then(t,r)}},c=()=>{let n=e.sinfo_,i=n.owningSystemUrl,a=e.options_,o,s,c;if(a&&(o=a.token,s=a.prompt),c=this._findCredential(i,{resource:e.resUrl_}),!c){for(let e of this.credentials)if(this._isIdProvider(i,e.server)){c=e;break}}if(c){let i=this.findCredential(e.resUrl_,c.userId);if(i)t(i);else if(k(n,this._legacyFed)){let e=c.toJSON();e.server=n.server,e.resources=null,t(new y(e))}else(e._pendingDfd=this.generateToken(this.findServerInfo(c.server),null,{serverUrl:e.resUrl_,token:c.token,signal:e.options_.signal,ssl:c.ssl})).then(r=>{t(new y({userId:c?.userId,server:n.server??void 0,token:r.token,expires:r.expires==null?null:Number(r.expires),ssl:!!r.ssl,isAdmin:e.admin_,validity:r.validity}))},r)}else this._busy=null,o&&(e.options_.token=null),(e._pendingDfd=this.getCredential(i.replace(/\/?$/,`/sharing`),{resource:e.resUrl_,owningTenant:n.owningTenant,signal:e.options_.signal,prompt:s})).then(()=>{this._enqueue(e.resUrl_,e.sinfo_,e.options_,e,e.admin_)},t=>{e.resUrl_=e.sinfo_=e.refresh_=null,e.reject(t)})};if(this._errbackFunc=r,e.options_?.signal?.aborted){r(new n(`identity-manager:user-aborted`,`ABORTED`));return}if(!e.refresh_&&!e.options_?.token&&!e.options_?.credential){let n=this._findCredential(e.resUrl_,e.options_);if(n){t(n,!0);return}}let l=e.sinfo_.owningSystemUrl,d=this._isServerRsrc(e.resUrl_),f=e.sinfo_._restInfoPms;f?f.promise.then(t=>{let n=e.sinfo_;if(n._restInfoPms){n.adminTokenServiceUrl=n._restInfoPms.adminUrl,n._restInfoPms=null,n.tokenServiceUrl=(o(`authInfo.tokenServicesUrl`,t)||o(`authInfo.tokenServiceUrl`,t)||o(`tokenServiceUrl`,t))??null,n.shortLivedTokenValidity=o(`authInfo.shortLivedTokenValidity`,t)??null,n.currentVersion=t.currentVersion,n.owningTenant=t.owningTenant;let e=n.owningSystemUrl=t.owningSystemUrl;e&&this._portals.push(e)}d&&n.owningSystemUrl?c():a()},()=>{e.sinfo_._restInfoPms=null;let t=new n(`identity-manager:server-identification-failed`,`Unknown resource - could not find token service endpoint.`);r(t)}):d&&l?c():e.sinfo_._selfReq?e.sinfo_._selfReq.selfDfd.then(t=>{let n={},r,i,a,o;return t&&(r=t.user?.username,n.username=r,n.allSSL=t.allSSL,i=t.supportsOAuth,o=parseFloat(t.currentVersion),t.portalMode===`multitenant`&&(a=t.customBaseUrl),e.sinfo_.currentVersion=o),e.sinfo_.webTierAuth=!!r,r&&this.normalizeWebTierAuth?this.generateToken(e.sinfo_,null,{ssl:n.allSSL}).catch(()=>null).then(e=>(n.portalToken=e?.token,n.tokenExpiration=e?.expires,n)):!r&&i&&o>=4.4&&!this._findOAuthInfo(e.resUrl_)?this._generateOAuthInfo({portalUrl:e.sinfo_.server,customBaseUrl:a,owningTenant:e.sinfo_._selfReq.owningTenant}).catch(()=>null).then(()=>n):n}).catch(()=>null).then(t=>{e.sinfo_._selfReq=null,t?a(t.username,t.allSSL,t.portalToken,t.tokenExpiration):a()}):a()}_generateOAuthInfo(e){let n,r=null,i=e.portalUrl,a=e.customBaseUrl,o=e.owningTenant,s=!this._defaultOAuthInfo&&this._createDefaultOAuthInfo&&!this._hasTestedIfAppIsOnPortal;if(s){r=this._appUrlObj.path;let e=r.search(/\/(apps|home)\//);r=e>-1?r.slice(0,e):null}return s&&r?(this._hasTestedIfAppIsOnPortal=!0,n=t(r+`/sharing/rest`,{query:{f:`json`}}).then(()=>{this._defaultOAuthInfo=new S({appId:`arcgisonline`,popupCallbackUrl:r+`/home/oauth-callback.html`})})):n=Promise.resolve(),n.then(()=>{if(this._defaultOAuthInfo)return i=i.replace(/^http:/i,`https:`),t(i+`/sharing/rest/oauth2/validateRedirectUri`,{query:{accountId:o,client_id:this._defaultOAuthInfo.appId,redirect_uri:_(this._defaultOAuthInfo.popupCallbackUrl),f:`json`}}).then(e=>{if(e.data.valid){let t=this._defaultOAuthInfo.clone();t.portalUrl=e.data.urlKey&&a?`https://`+e.data.urlKey.toLowerCase()+`.`+a:i,t.popup=window!==window.top||!(u(i,this._appOrigin)||this._gwDomains.some(e=>e.regex.test(i)&&e.regex.test(this._appOrigin))),this.oAuthInfos.push(t)}})})}_doOAuthSignIn(e,t,r,a){let o=r._oAuthCred,s={portalUrl:r.portalUrl};!r.popup&&r.preserveUrlHash&&window.location.hash&&(s.hash=window.location.hash),o.stateUID&&(s.uid=o.stateUID);let c={client_id:r.appId,response_type:o.codeVerifier?`code`:`token`,state:JSON.stringify(s),expiration:r.expiration,locale:r.locale,redirect_uri:this._getRedirectURI(r,!!o.codeVerifier)};r.forceLogin&&(c.force_login=!0),r.forceUserId&&r.userId&&(c.prepopulatedusername=r.userId),!r.popup&&this._doPortalSignIn(e)&&(c.redirectToUserOrgUrl=!0),o.codeVerifier&&(c.code_challenge=a||o.codeVerifier,c.code_challenge_method=a?`S256`:`plain`);let l=this._getAuthorizeUrl(r.portalUrl),u=l+`?`+m(c);if(r.popup){let e=window.open(u,`esriJSAPIOAuth`,r.popupWindowFeatures);if(e)e.focus(),this._oAuthDfd.oAuthWin_=e,this._oAuthIntervalId=setInterval(()=>{if(e.closed){clearInterval(this._oAuthIntervalId),this._oAuthOnPopupHandle.remove();let e=this._oAuthDfd;if(e){let t=new n(`identity-manager:user-aborted`,`ABORTED`);e.reject(t)}}},500),this._oAuthOnPopupHandle=i(window,[`arcgis:auth:hash`,`arcgis:auth:location:search`],e=>{e.type===`arcgis:auth:hash`?this.setOAuthResponseHash(e.detail):this._setOAuthResponseQueryString(e.detail)});else{let e=new n(`identity-manager:popup-blocked`,`ABORTED`);this._oAuthDfd.reject(e)}}else this._rejectOnPersistedPageShow=!0,this._oAuthRedirectFunc?this._oAuthRedirectFunc({authorizeParams:c,authorizeUrl:l,resourceUrl:e,serverInfo:t,oAuthInfo:r}):window.location.href=u}_getAuthorizeUrl(e){let t=e.replace(/^http:/i,`https:`)+`/sharing/oauth2/authorize`,n=E(t);if(n?.portalHostname){let{customBaseUrl:e,portalHostname:t,urlKey:r}=n}return t}_getRedirectURI(e,t){let n=window.location.href.replace(/#.*$/,``);if(e.popup)return _(e.popupCallbackUrl);if(t){let e=l(n);return e.query&&[`code`,`error`,`error_description`,`message_code`,`persist`,`state`].forEach(t=>{delete e.query[t]}),v(e.path,e.query)}return n}}M.prototype.declaredClass=`esri.identity.IdentityManagerBase`;export{M as IdentityManagerBase};
@@ -14,7 +14,7 @@ export interface OAuthInfoProperties extends Partial<Pick<OAuthInfo, "appId" | "
14
14
  *
15
15
  * @since 4.0
16
16
  * @see [Sample - Access ArcGIS Online items using OAuth 2.0](https://developers.arcgis.com/javascript/latest/sample-code/identity-oauth-basic/)
17
- * @see [Authentication and secure resources](https://developers.arcgis.com/javascript/latest/secure-resources/)
17
+ * @see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/)
18
18
  * @see [Authentication and OAuth 2](https://developers.arcgis.com/authentication/)
19
19
  * @see [Proxy pages with the API](https://developers.arcgis.com/javascript/latest/proxies/)
20
20
  * @see [ArcGIS portals](https://developers.arcgis.com/javascript/latest/arcgis-organization-portals/)
@@ -7,7 +7,7 @@ export interface ServerInfoProperties extends Partial<Pick<ServerInfo, "adminTok
7
7
  *
8
8
  * @since 4.0
9
9
  * @see [IdentityManager](https://developers.arcgis.com/javascript/latest/references/core/identity/IdentityManager/)
10
- * @see [Access Secure Services](https://developers.arcgis.com/javascript/latest/secure-resources/)
10
+ * @see [Authentication and access tokens](https://developers.arcgis.com/javascript/latest/authentication/access-tokens/)
11
11
  * @see [Authentication and OAuth 2](https://developers.arcgis.com/authentication/)
12
12
  * @see [Guide topic - Proxy pages](https://developers.arcgis.com/javascript/latest/proxies/)
13
13
  * @see [Guide topic - CORS](https://developers.arcgis.com/javascript/latest/cors/)
package/kernel.d.ts CHANGED
@@ -9,10 +9,10 @@
9
9
  *
10
10
  * ```js
11
11
  * const esriNS = await $arcgis.import("@arcgis/core/kernel.js");
12
- * console.log(esriNS.version); // e.g. "5.2"
12
+ * console.log(esriNS.version); // e.g. "6.0"
13
13
  * ```
14
14
  *
15
- * @default "5.2"
15
+ * @default "6.0"
16
16
  */
17
17
  export const version: string;
18
18
 
@@ -21,7 +21,7 @@ export const version: string;
21
21
  *
22
22
  * ```js
23
23
  * const esriNS = await $arcgis.import("@arcgis/core/kernel.js");
24
- * console.log(esriNS.fullVersion); // e.g. "5.2.0" or "5.2.0-next.1"
24
+ * console.log(esriNS.fullVersion); // e.g. "6.0.0" or "6.0.0-next.1"
25
25
  * ```
26
26
  *
27
27
  * @since 4.27
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`5.2`;let n=`5.2`;n=`6.0.0-next.33`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
2
+ import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`6.0`;let n=`6.0`;n=`6.0.0-next.35`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import n from"../core/Error.js";import{MultiOriginJSONSupportMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as i}from"../core/promiseUtils.js";import{urlToObject as a}from"../core/urlUtils.js";import{property as o,subclass as s}from"../core/accessorSupport/decorators.js";import{excludeTables as c}from"../core/accessorSupport/layerContainerType.js";import l from"../geometry/SpatialReference.js";import u from"../graphic/CSVGraphicOrigin.js";import d from"./Layer.js";import{CSVSource as f}from"./graphics/sources/CSVSource.js";import{createCapabilities as p}from"./graphics/sources/support/clientSideDefaults.js";import{BlendLayer as m}from"./mixins/BlendLayer.js";import{CustomParametersMixin as h}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as g}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as _}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as v}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{OrderedLayer as b}from"./mixins/OrderedLayer.js";import{PortalLayer as x}from"./mixins/PortalLayer.js";import{RefreshableLayer as S}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as w}from"./mixins/TemporalLayer.js";import{TrackableLayer as T}from"./mixins/TrackableLayer.js";import{attributeTableTemplate as E,elevationInfo as D,labelsVisible as O,legendEnabled as k,maxScale as A,minScale as j,opacityDrawingInfo as M,popupEnabled as N,screenSizePerspectiveEnabled as P,timeInfo as F,url as I}from"./support/commonProperties.js";import{validateBinsQuery as L}from"./support/featureLayerUtils.js";import R from"./support/Field.js";import{defineFieldProperties as z}from"./support/fieldProperties.js";import{fixRendererFields as B,fixTimeInfoFields as V}from"./support/fieldUtils.js";import H from"./support/LabelClass.js";import{reader as U}from"./support/labelingInfo.js";import W from"./support/LayerFloorInfo.js";import{webSceneRendererTypes as G,rendererTypes as K}from"../renderers/support/typeUtils.js";import q from"../rest/support/Query.js";import{createPopupTemplate as J}from"../support/popupUtils.js";import{fromTimeReference as Y}from"../time/timeZoneUtils.js";import{reader as X}from"../core/accessorSupport/decorators/reader.js";const Z=z();let Q=class extends b(g(h(v(_(m(w(T(C(S(y(x(r(d))))))))))))){constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=p(!1,!1),this.copyright=null,this.definitionExpression=null,this.delimiter=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.fullExtent=null,this.geometryType=`point`,this.graphicOrigin=new u(this),this.labelingInfo=null,this.labelsVisible=!0,this.latitudeField=null,this.legendEnabled=!0,this.locationType=`coordinates`,this.longitudeField=null,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.opacity=1,this.operationalLayerType=`CSV`,this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new f,this.spatialReference=l.WGS84,this.timeInfo=null,this.type=`csv`}load(e){let t=this.loadFromPortal({supportedTypes:[`CSV`],supportsData:!1},e).catch(i).then(()=>(this.source.loadOptions={delimiter:this.delimiter,fields:this.fields,latitudeField:this.latitudeField??void 0,longitudeField:this.longitudeField??void 0,spatialReference:this.spatialReference??void 0,timeInfo:this.timeInfo??void 0,url:this.url},this.source.customParameters=this.customParameters??void 0,this.source.load(e))).then(()=>{this.read({layerDefinition:this.source.sourceJSON,locationInfo:this.source.locationInfo,columnDelimiter:this.source.delimiter},{origin:`service`,portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}),B(this.renderer,this.fieldsIndex),V(this.timeInfo,this.fieldsIndex)});return this.addResolvingPromise(t),Promise.resolve(this)}destroy(){this.source?.destroy()}get createQueryVersion(){return this.commitProperty(`definitionExpression`),this.commitProperty(`timeExtent`),this.commitProperty(`timeOffset`),this.commitProperty(`geometryType`),this.commitProperty(`capabilities`),(this._get(`createQueryVersion`)||0)+1}get defaultPopupTemplate(){return this.createPopupTemplate()}get isTable(){return this.loaded&&this.geometryType==null}readWebMapLabelsVisible(e,t){return t.showLabels??!!t.layerDefinition?.drawingInfo?.labelingInfo}get portalItem(){return super.portalItem}set portalItem(e){super.portalItem=e}set renderer(e){B(e,this.fieldsIndex),this._set(`renderer`,e)}set url(e){if(!e){this._set(`url`,e);return}let t=a(e);this._set(`url`,t.path),t.query&&(this.customParameters={...this.customParameters,...t.query})}createPopupTemplate(e){return J(this,e)}createQuery(){let e=new q,t=this.capabilities?.data;e.returnGeometry=!0,t?.supportsZ&&(e.returnZ=!0),e.outFields=[`*`],e.where=this.definitionExpression||`1=1`;let{timeOffset:n,timeExtent:r}=this;return e.timeExtent=n&&r?r.offset(-n.value,n.unit):r??null,e}getFieldDomain(e,t){return this.getField(e)?.domain}getField(e){return this.fieldsIndex.get(e)}async queryAttributeBins(e,t){let{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new n(`CSVLayer`,`Layer source does not support queryAttributeBins capability`);L(e,i,`CSVLayer`);let{default:a}=await import(`../rest/support/AttributeBinsQuery.js`),o=await r.queryAttributeBins(a.from(e),t),s=this.graphicOrigin;if(o.features)for(let e of o.features)e.layer=e.sourceLayer=this,e.origin=s;return o}queryFeatures(e,t){return this.load().then(()=>this.source.queryFeatures(q.from(e)||this.createQuery())).then(e=>{let t=this.graphicOrigin;if(e.features)for(let n of e.features)n.layer=n.sourceLayer=this,n.origin=t;return e})}async queryObjectIds(e,t){return await this.load(),this.source.queryObjectIds(q.from(e)||this.createQuery())}queryFeatureCount(e,t){return this.load().then(()=>this.source.queryFeatureCount(q.from(e)||this.createQuery()))}queryExtent(e,t){return this.load().then(()=>this.source.queryExtent(q.from(e)||this.createQuery()))}read(e,t){super.read(e,t),t?.origin===`service`&&([`objectIdField`,`fields`,`timeInfo`,`dateFieldsTimeZone`,`latitudeField`,`longitudeField`].forEach(e=>this.revertToOrigin(e,`service`)),this.spatialReference||this.revertToOrigin(`spatialReference`,`service`))}async hasDataChanged(){try{let{dataChanged:e,updates:t}=await this.source.refresh(this.customParameters);return t!=null&&this.read(t,{origin:`service`,url:this.parsedUrl,ignoreDefaults:!0}),e}catch{}return!1}};e([o(E)],Q.prototype,`attributeTableTemplate`,void 0),e([o({readOnly:!0,json:{read:!1,write:!1}})],Q.prototype,`capabilities`,void 0),e([o({type:String,json:{origins:{service:{read:{source:`copyrightText`}}}}})],Q.prototype,`copyright`,void 0),e([o({readOnly:!0})],Q.prototype,`createQueryVersion`,null),e([o({json:{name:`layerDefinition.dateFieldsTimeReference`,read:{reader:Y}}})],Q.prototype,`dateFieldsTimeZone`,void 0),e([o({readOnly:!0})],Q.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{name:`layerDefinition.definitionExpression`,write:{enabled:!0,allowNull:!0}}})],Q.prototype,`definitionExpression`,void 0),e([o({type:[`,`,` `,`;`,`|`,` `],json:{name:`columnDelimiter`,write:{ignoreOrigin:!0}}})],Q.prototype,`delimiter`,void 0),e([o({type:String})],Q.prototype,`displayField`,void 0),e([o(D)],Q.prototype,`elevationInfo`,void 0),e([o({type:[R],json:{name:`layerDefinition.fields`,write:{ignoreOrigin:!0}}})],Q.prototype,`fields`,void 0),e([o(Z.fieldsIndex)],Q.prototype,`fieldsIndex`,void 0),e([o({type:W,json:{name:`layerDefinition.floorInfo`,write:{layerContainerTypes:c}}})],Q.prototype,`floorInfo`,void 0),e([o({json:{origins:{service:{name:`layerDefinition.extent`}}}})],Q.prototype,`fullExtent`,void 0),e([o({readOnly:!0,json:{read:!1}})],Q.prototype,`geometryType`,void 0),e([o({readOnly:!0})],Q.prototype,`graphicOrigin`,void 0),e([o({readOnly:!0})],Q.prototype,`isTable`,null),e([o({type:[H],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:{reader:U},write:!0}})],Q.prototype,`labelingInfo`,void 0),e([o(O)],Q.prototype,`labelsVisible`,void 0),e([X(`web-map`,`labelsVisible`,[`layerDefinition.drawingInfo.labelingInfo`,`showLabels`])],Q.prototype,`readWebMapLabelsVisible`,null),e([o({type:String,json:{name:`locationInfo.latitudeFieldName`,write:{ignoreOrigin:!0}}})],Q.prototype,`latitudeField`,void 0),e([o(k)],Q.prototype,`legendEnabled`,void 0),e([o({type:[`show`,`hide`]})],Q.prototype,`listMode`,void 0),e([o({type:[`coordinates`],json:{name:`locationInfo.locationType`,write:{ignoreOrigin:!0,isRequired:!0}}})],Q.prototype,`locationType`,void 0),e([o({type:String,json:{name:`locationInfo.longitudeFieldName`,write:{ignoreOrigin:!0}}})],Q.prototype,`longitudeField`,void 0),e([o(A)],Q.prototype,`maxScale`,void 0),e([o(j)],Q.prototype,`minScale`,void 0),e([o({type:String,json:{name:`layerDefinition.objectIdField`,origins:{"web-map":{write:{target:`layerDefinition.objectIdField`,ignoreOrigin:!0}}}}})],Q.prototype,`objectIdField`,void 0),e([o(M)],Q.prototype,`opacity`,void 0),e([o({type:[`CSV`]})],Q.prototype,`operationalLayerType`,void 0),e([o()],Q.prototype,`outFields`,void 0),e([o(N)],Q.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:!0}})],Q.prototype,`popupTemplate`,void 0),e([o({types:K,json:{name:`layerDefinition.drawingInfo.renderer`,origins:{"web-scene":{types:G,name:`layerDefinition.drawingInfo.renderer`,write:!0}},write:{ignoreOrigin:!0,layerContainerTypes:c}}})],Q.prototype,`renderer`,null),e([o(P)],Q.prototype,`screenSizePerspectiveEnabled`,void 0),e([o({readOnly:!0})],Q.prototype,`source`,void 0),e([o({type:l,json:{origins:{service:{name:`layerDefinition.extent.spatialReference`}}}})],Q.prototype,`spatialReference`,void 0),e([o(F({name:`layerDefinition.timeInfo`,alwaysWriteNonItemOrigin:!0}))],Q.prototype,`timeInfo`,void 0),e([o({type:String,json:{origins:{service:{name:`layerDefinition.name`},"web-document":{name:`title`,write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],Q.prototype,`title`,void 0),e([o({json:{read:!1},value:`csv`,readOnly:!0})],Q.prototype,`type`,void 0),e([o(I)],Q.prototype,`url`,null),Q=e([s(`esri.layers.CSVLayer`)],Q);const $=Q;export{$ as default};
2
+ import{__decorate as e}from"tslib";import t from"../PopupTemplate.js";import n from"../core/Error.js";import{MultiOriginJSONSupportMixin as r}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as i}from"../core/promiseUtils.js";import{urlToObject as a}from"../core/urlUtils.js";import{property as o,subclass as s}from"../core/accessorSupport/decorators.js";import{excludeTables as c}from"../core/accessorSupport/layerContainerType.js";import l from"../geometry/SpatialReference.js";import u from"../graphic/CSVGraphicOrigin.js";import d from"./Layer.js";import{CSVSource as f}from"./graphics/sources/CSVSource.js";import{createCapabilities as p}from"./graphics/sources/support/clientSideDefaults.js";import{BlendLayer as m}from"./mixins/BlendLayer.js";import{CustomParametersMixin as h}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as g}from"./mixins/DisplayFilteredLayer.js";import{FeatureEffectLayer as _}from"./mixins/FeatureEffectLayer.js";import{FeatureReductionLayer as v}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{OrderedLayer as b}from"./mixins/OrderedLayer.js";import{PortalLayer as x}from"./mixins/PortalLayer.js";import{RefreshableLayer as S}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as C}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as w}from"./mixins/TemporalLayer.js";import{TrackableLayer as T}from"./mixins/TrackableLayer.js";import{attributeTableTemplate as E,elevationInfo as D,labelsVisible as O,legendEnabled as k,maxScale as A,minScale as j,opacityDrawingInfo as M,popupEnabled as N,screenSizePerspectiveEnabled as P,timeInfo as F,url as I}from"./support/commonProperties.js";import{validateBinsQuery as L}from"./support/featureLayerUtils.js";import R from"./support/Field.js";import{defineFieldProperties as z}from"./support/fieldProperties.js";import{fixRendererFields as B,fixTimeInfoFields as V}from"./support/fieldUtils.js";import H from"./support/LabelClass.js";import{reader as U}from"./support/labelingInfo.js";import W from"./support/LayerFloorInfo.js";import{webSceneRendererTypes as G,rendererTypes as K}from"../renderers/support/typeUtils.js";import q from"../rest/support/Query.js";import{createPopupTemplate as J}from"../support/popupUtils.js";import{fromTimeReference as Y}from"../time/timeZoneUtils.js";import{reader as X}from"../core/accessorSupport/decorators/reader.js";const Z=z();let Q=class extends b(g(h(v(_(m(w(T(C(S(y(x(r(d))))))))))))){constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=p(!1,!1),this.copyright=null,this.definitionExpression=null,this.delimiter=null,this.displayField=null,this.elevationInfo=null,this.fields=null,this.fieldsIndex=null,this.floorInfo=null,this.fullExtent=null,this.geometryType=`point`,this.graphicOrigin=new u(this),this.labelingInfo=null,this.labelsVisible=!0,this.latitudeField=null,this.legendEnabled=!0,this.locationType=`coordinates`,this.longitudeField=null,this.maxScale=0,this.minScale=0,this.objectIdField=null,this.opacity=1,this.operationalLayerType=`CSV`,this.outFields=null,this.popupEnabled=!0,this.popupTemplate=null,this.screenSizePerspectiveEnabled=!0,this.source=new f({layer:this}),this.spatialReference=l.WGS84,this.timeInfo=null,this.type=`csv`}load(e){let t=this.loadFromPortal({supportedTypes:[`CSV`],supportsData:!1},e).catch(i).then(()=>(this.source.loadOptions={delimiter:this.delimiter,fields:this.fields,latitudeField:this.latitudeField??void 0,longitudeField:this.longitudeField??void 0,spatialReference:this.spatialReference??void 0,timeInfo:this.timeInfo??void 0,url:this.url},this.source.customParameters=this.customParameters??void 0,this.source.load(e))).then(()=>{this.read({layerDefinition:this.source.sourceJSON,locationInfo:this.source.locationInfo,columnDelimiter:this.source.delimiter},{origin:`service`,portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl}),B(this.renderer,this.fieldsIndex),V(this.timeInfo,this.fieldsIndex)});return this.addResolvingPromise(t),Promise.resolve(this)}destroy(){this.source?.destroy()}get createQueryVersion(){return this.commitProperty(`definitionExpression`),this.commitProperty(`timeExtent`),this.commitProperty(`timeOffset`),this.commitProperty(`geometryType`),this.commitProperty(`capabilities`),(this._get(`createQueryVersion`)||0)+1}get defaultPopupTemplate(){return this.createPopupTemplate()}get isTable(){return this.loaded&&this.geometryType==null}readWebMapLabelsVisible(e,t){return t.showLabels??!!t.layerDefinition?.drawingInfo?.labelingInfo}get portalItem(){return super.portalItem}set portalItem(e){super.portalItem=e}set renderer(e){B(e,this.fieldsIndex),this._set(`renderer`,e)}set url(e){if(!e){this._set(`url`,e);return}let t=a(e);this._set(`url`,t.path),t.query&&(this.customParameters={...this.customParameters,...t.query})}createPopupTemplate(e){return J(this,e)}createQuery(){let e=new q,t=this.capabilities?.data;e.returnGeometry=!0,t?.supportsZ&&(e.returnZ=!0),e.outFields=[`*`],e.where=this.definitionExpression||`1=1`;let{timeOffset:n,timeExtent:r}=this;return e.timeExtent=n&&r?r.offset(-n.value,n.unit):r??null,e}getFieldDomain(e,t){return this.getField(e)?.domain}getField(e){return this.fieldsIndex.get(e)}async queryAttributeBins(e,t){let{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new n(`CSVLayer`,`Layer source does not support queryAttributeBins capability`);L(e,i,`CSVLayer`);let{default:a}=await import(`../rest/support/AttributeBinsQuery.js`),o=await r.queryAttributeBins(a.from(e),t),s=this.graphicOrigin;if(o.features)for(let e of o.features)e.layer=e.sourceLayer=this,e.origin=s;return o}queryFeatures(e,t){return this.load().then(()=>this.source.queryFeatures(q.from(e)||this.createQuery())).then(e=>{let t=this.graphicOrigin;if(e.features)for(let n of e.features)n.layer=n.sourceLayer=this,n.origin=t;return e})}async queryObjectIds(e,t){return await this.load(),this.source.queryObjectIds(q.from(e)||this.createQuery())}queryFeatureCount(e,t){return this.load().then(()=>this.source.queryFeatureCount(q.from(e)||this.createQuery()))}queryExtent(e,t){return this.load().then(()=>this.source.queryExtent(q.from(e)||this.createQuery()))}read(e,t){super.read(e,t),t?.origin===`service`&&([`objectIdField`,`fields`,`timeInfo`,`dateFieldsTimeZone`,`latitudeField`,`longitudeField`].forEach(e=>this.revertToOrigin(e,`service`)),this.spatialReference||this.revertToOrigin(`spatialReference`,`service`))}async hasDataChanged(){try{let{dataChanged:e,updates:t}=await this.source.refresh(this.customParameters);return t!=null&&this.read(t,{origin:`service`,url:this.parsedUrl,ignoreDefaults:!0}),e}catch{}return!1}};e([o(E)],Q.prototype,`attributeTableTemplate`,void 0),e([o({readOnly:!0,json:{read:!1,write:!1}})],Q.prototype,`capabilities`,void 0),e([o({type:String,json:{origins:{service:{read:{source:`copyrightText`}}}}})],Q.prototype,`copyright`,void 0),e([o({readOnly:!0})],Q.prototype,`createQueryVersion`,null),e([o({json:{name:`layerDefinition.dateFieldsTimeReference`,read:{reader:Y}}})],Q.prototype,`dateFieldsTimeZone`,void 0),e([o({readOnly:!0})],Q.prototype,`defaultPopupTemplate`,null),e([o({type:String,json:{name:`layerDefinition.definitionExpression`,write:{enabled:!0,allowNull:!0}}})],Q.prototype,`definitionExpression`,void 0),e([o({type:[`,`,` `,`;`,`|`,` `],json:{name:`columnDelimiter`,write:{ignoreOrigin:!0}}})],Q.prototype,`delimiter`,void 0),e([o({type:String})],Q.prototype,`displayField`,void 0),e([o(D)],Q.prototype,`elevationInfo`,void 0),e([o({type:[R],json:{name:`layerDefinition.fields`,write:{ignoreOrigin:!0}}})],Q.prototype,`fields`,void 0),e([o(Z.fieldsIndex)],Q.prototype,`fieldsIndex`,void 0),e([o({type:W,json:{name:`layerDefinition.floorInfo`,write:{layerContainerTypes:c}}})],Q.prototype,`floorInfo`,void 0),e([o({json:{origins:{service:{name:`layerDefinition.extent`}}}})],Q.prototype,`fullExtent`,void 0),e([o({readOnly:!0,json:{read:!1}})],Q.prototype,`geometryType`,void 0),e([o({readOnly:!0})],Q.prototype,`graphicOrigin`,void 0),e([o({readOnly:!0})],Q.prototype,`isTable`,null),e([o({type:[H],json:{name:`layerDefinition.drawingInfo.labelingInfo`,read:{reader:U},write:!0}})],Q.prototype,`labelingInfo`,void 0),e([o(O)],Q.prototype,`labelsVisible`,void 0),e([X(`web-map`,`labelsVisible`,[`layerDefinition.drawingInfo.labelingInfo`,`showLabels`])],Q.prototype,`readWebMapLabelsVisible`,null),e([o({type:String,json:{name:`locationInfo.latitudeFieldName`,write:{ignoreOrigin:!0}}})],Q.prototype,`latitudeField`,void 0),e([o(k)],Q.prototype,`legendEnabled`,void 0),e([o({type:[`show`,`hide`]})],Q.prototype,`listMode`,void 0),e([o({type:[`coordinates`],json:{name:`locationInfo.locationType`,write:{ignoreOrigin:!0,isRequired:!0}}})],Q.prototype,`locationType`,void 0),e([o({type:String,json:{name:`locationInfo.longitudeFieldName`,write:{ignoreOrigin:!0}}})],Q.prototype,`longitudeField`,void 0),e([o(A)],Q.prototype,`maxScale`,void 0),e([o(j)],Q.prototype,`minScale`,void 0),e([o({type:String,json:{name:`layerDefinition.objectIdField`,origins:{"web-map":{write:{target:`layerDefinition.objectIdField`,ignoreOrigin:!0}}}}})],Q.prototype,`objectIdField`,void 0),e([o(M)],Q.prototype,`opacity`,void 0),e([o({type:[`CSV`]})],Q.prototype,`operationalLayerType`,void 0),e([o()],Q.prototype,`outFields`,void 0),e([o(N)],Q.prototype,`popupEnabled`,void 0),e([o({type:t,json:{name:`popupInfo`,write:!0}})],Q.prototype,`popupTemplate`,void 0),e([o({types:K,json:{name:`layerDefinition.drawingInfo.renderer`,origins:{"web-scene":{types:G,name:`layerDefinition.drawingInfo.renderer`,write:!0}},write:{ignoreOrigin:!0,layerContainerTypes:c}}})],Q.prototype,`renderer`,null),e([o(P)],Q.prototype,`screenSizePerspectiveEnabled`,void 0),e([o({readOnly:!0})],Q.prototype,`source`,void 0),e([o({type:l,json:{origins:{service:{name:`layerDefinition.extent.spatialReference`}}}})],Q.prototype,`spatialReference`,void 0),e([o(F({name:`layerDefinition.timeInfo`,alwaysWriteNonItemOrigin:!0}))],Q.prototype,`timeInfo`,void 0),e([o({type:String,json:{origins:{service:{name:`layerDefinition.name`},"web-document":{name:`title`,write:{isRequired:!0,ignoreOrigin:!0,writerEnsuresNonNull:!0}}}}})],Q.prototype,`title`,void 0),e([o({json:{read:!1},value:`csv`,readOnly:!0})],Q.prototype,`type`,void 0),e([o(I)],Q.prototype,`url`,null),Q=e([s(`esri.layers.CSVLayer`)],Q);const $=Q;export{$ as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import n from"../core/Error.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a}from"../core/promiseUtils.js";import{property as o,subclass as s}from"../core/accessorSupport/decorators.js";import c from"../geometry/Extent.js";import l from"../geometry/SpatialReference.js";import u from"./Layer.js";import{APIKeyMixin as d}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as p}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as g}from"./mixins/ScaleRangeLayer.js";import{url as _,elevationInfo as v}from"./support/commonProperties.js";import{default3DTilesFullExtent as y,default3DTilesSpatialReference as b,initFullExtent as x,hasEsriCrs as S}from"./support/tiles3DUtils.js";import{logInvalidElevationInfoWarning as C,elevationModeRequiredMessage as w,featureExpressionUnsupportedMessage as T}from"../support/elevationInfoUtils.js";let E=class extends f(m(h(g(i(p(d(u))))))){constructor(e){super(e),this.operationalLayerType=`GaussianSplatLayer`,this.type=`gaussian-splat`,this.opacity=1,this.minScale=0,this.maxScale=0,this.url=null,this.rootTilesetJSON=null,this.fullExtent=y,this.spatialReference=b,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[l.WGS84]:[l.WGS84,this.esriCrsSpatialReference]}get fullExtents(){return!this.initialized||!this.esriCrsFullExtent?[y]:[y,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){let r=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`GaussianSplat`))return!0;throw new n(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service`})}},e)}catch(e){a(e)}this.url&&await t(this.url,{query:{...this.customParameters,token:this.apiKey},responseType:`json`,signal:r}).then(e=>{this.rootTilesetJSON=e.data,this.fullExtent=x(this.rootTilesetJSON,!1),S(this.rootTilesetJSON)&&(this.esriCrsFullExtent=x(this.rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference)},e=>{a(e)})}_validateElevationInfo(e){let t=`Gaussian Splat layers`;C(r.getLogger(this),w(t,`absolute-height`,e)),C(r.getLogger(this),T(t,e))}};e([o({type:[`GaussianSplatLayer`]})],E.prototype,`operationalLayerType`,void 0),e([o({readOnly:!0})],E.prototype,`type`,void 0),e([o({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],E.prototype,`opacity`,void 0),e([o({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],E.prototype,`minScale`,void 0),e([o({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],E.prototype,`maxScale`,void 0),e([o(_)],E.prototype,`url`,void 0),e([o({type:c})],E.prototype,`fullExtent`,void 0),e([o({type:l})],E.prototype,`spatialReference`,void 0),e([o({readOnly:!0})],E.prototype,`supportedSpatialReferences`,null),e([o({type:[c]})],E.prototype,`fullExtents`,null),e([o({type:[`show`,`hide`]})],E.prototype,`listMode`,void 0),e([o(v)],E.prototype,`elevationInfo`,null),E=e([s(`esri.layers.GaussianSplatLayer`)],E);const D=E;export{D as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import n from"../core/Error.js";import r from"../core/Logger.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a}from"../core/promiseUtils.js";import{property as o,subclass as s}from"../core/accessorSupport/decorators.js";import c from"../geometry/Extent.js";import l from"../geometry/SpatialReference.js";import u from"./Layer.js";import{APIKeyMixin as d}from"./mixins/APIKeyMixin.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{CustomParametersMixin as p}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as g}from"./mixins/ScaleRangeLayer.js";import{url as _,elevationInfo as v}from"./support/commonProperties.js";import{default3DTilesFullExtent as y,default3DTilesSpatialReference as b,initFullExtent as x,hasEsriCrs as S}from"./support/tiles3DUtils.js";import{logInvalidElevationInfoWarning as C,elevationModeRequiredMessage as w,featureExpressionUnsupportedMessage as T}from"../support/elevationInfoUtils.js";let E=class extends f(m(h(g(i(p(d(u))))))){constructor(e){super(e),this.operationalLayerType=`GaussianSplatLayer`,this.type=`gaussian-splat`,this.opacity=1,this.minScale=0,this.maxScale=0,this.url=null,this.rootTilesetJSON=null,this.fullExtent=y,this.spatialReference=b,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[l.WGS84]:[l.WGS84,this.esriCrsSpatialReference]}get fullExtents(){let e=this.fullExtent??y;return!this.initialized||!this.esriCrsFullExtent?[e]:[e,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}async _doLoad(e){let r=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`GaussianSplat`))return!0;throw new n(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service`})}},e)}catch(e){a(e)}this.url&&await t(this.url,{query:{...this.customParameters,token:this.apiKey},responseType:`json`,signal:r}).then(e=>{this.rootTilesetJSON=e.data,this.fullExtent=x(this.rootTilesetJSON,!1),S(this.rootTilesetJSON)&&(this.esriCrsFullExtent=x(this.rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference)},e=>{a(e)})}_validateElevationInfo(e){let t=`Gaussian Splat layers`;C(r.getLogger(this),w(t,`absolute-height`,e)),C(r.getLogger(this),T(t,e))}};e([o({type:[`GaussianSplatLayer`]})],E.prototype,`operationalLayerType`,void 0),e([o({readOnly:!0})],E.prototype,`type`,void 0),e([o({readOnly:!0,json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}}})],E.prototype,`opacity`,void 0),e([o({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],E.prototype,`minScale`,void 0),e([o({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],E.prototype,`maxScale`,void 0),e([o(_)],E.prototype,`url`,void 0),e([o({type:c})],E.prototype,`fullExtent`,void 0),e([o({type:l})],E.prototype,`spatialReference`,void 0),e([o({readOnly:!0})],E.prototype,`supportedSpatialReferences`,null),e([o({type:[c]})],E.prototype,`fullExtents`,null),e([o({type:[`show`,`hide`]})],E.prototype,`listMode`,void 0),e([o(v)],E.prototype,`elevationInfo`,null),E=e([s(`esri.layers.GaussianSplatLayer`)],E);const D=E;export{D as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as T,default3DTilesFullExtent as E,initFullExtent as D,hasEsriCrs as O}from"./support/tiles3DUtils.js";import k from"../portal/Portal.js";import{getElevationOffsetInMeters as A,logInvalidElevationInfoWarning as j,elevationModeRequiredMessage as M,featureExpressionUnsupportedMessage as N}from"../support/elevationInfoUtils.js";import{isGround as P}from"../support/groundInstanceUtils.js";import{f as F}from"../chunks/persistableUrlUtils.js";import{isBasemap as I}from"../support/userTypeGuards/isBasemap.js";import{initialize as L,switchMeshModificationPolygonVCSSync as R}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as z,fromWasmModification as B}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as V}from"../core/accessorSupport/decorators/reader.js";let H=class extends _(y(b(x(a(v(g(n(h)))))))){readModifications(e,t,n){this._modificationsSource={url:F(e,n),context:n}}initialize(){this.addHandles([s(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},c),l(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType=`IntegratedMesh3DTilesLayer`,this.modifications=null,this._modificationsSource=null,this.spatialReference=T,this.fullExtent=E,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type=`integrated-mesh-3dtiles`,this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[m.WGS84]:[m.WGS84,this.esriCrsSpatialReference]}get fullExtents(){return!this.initialized||!this.esriCrsFullExtent?[E]:[E,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){let t=[e];for(;t?.length>0;){let e=t.pop();if(!e)return;for(let[n,r]of Object.entries(e)){if(n===`uri`)try{let e=new URL(`https://tmp`+r).searchParams.get(`session`);if(e)return e}catch{}typeof r==`object`&&r&&t.push(r)}}return null}async requestRootAndSession(e){let n=(e,t)=>new r(`3dtiles-init:`+e,t);return this._rootRequestPromise||=new Promise((r,a)=>{this.url||a(n(`url-missing`,`Layer url missing`)),this._key=this.customParameters?this.customParameters.key:null,new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){let i=this.portalItem?.portal||this.parent?.portalItem?.portal||k.getDefault();i.signIn().then(()=>{i.g3dTilesEnabled?t(i.restUrl+`/portals/self/modules/g3dtiles`,{responseType:`json`,query:{f:`json`}}).then(t=>{this._key=t.data.keyString,e()},()=>r(n(`g3dtiles-key-error`,`Error fetching Google 3D Tiles key from portal`))):r(n(`g3dTilesEnabled-false`,`Google 3D Tiles are not enabled on Portal `+i.url))},()=>r(n(`sign-in-failed`,`Error signing in to Portal`)))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:`array-buffer`,signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse(new TextDecoder().decode(e.data))}catch(e){a(n(`root-parse-failed`,`Error parsing root tile, details: `+e));return}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=D(this._rootTilesetJSON),O(this._rootTilesetJSON)&&(this.esriCrsFullExtent=D(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),r(),this._rootRequestPromise=null):a(n(`root-is-null`,`Root tile is null.`))},e=>{o(e),a(n(`root-load-failed`,`Error loading root tile`)),this._rootRequestPromise=null,i.getLogger(`IntegratedMesh3DTilesLayer`).error(`Layer loading failed`,e)})},e=>a(e))}),this._rootRequestPromise}_haveWGS84ZModifications(e){for(let t of e)if(!t.geometry?.spatialReference||t.geometry?.spatialReference.vcsWkid===115700&&t.geometry?.spatialReference.wkid===4326)return!0;return!1}async _doLoad(e){let t=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`IntegratedMesh`))return!0;throw new r(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service containing IntegratedMesh`})}},e)}catch(e){o(e)}if(this._modificationsSource!=null){let t=await w.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await L();try{let e=z(null,t.toArray(),m.WGS84),n=R({modifications:e,inVCS:115700});n.success&&n.modifications&&B(n.modifications,t)}catch(e){i.getLogger(this).error(`convert-mesh-modification-z-error`,`Error when converting:`,e)}}this.setAtOrigin(`modifications`,t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(this._modificationsSource==null){let{modifications:e}=this;e&&e.length>0&&await L()}else await this.load().then(()=>{},()=>{})}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.queryElevationCallback!=null,A(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){let t=`Integrated mesh 3d tiles layers`;j(i.getLogger(this),M(t,`absolute-height`,e)),j(i.getLogger(this),N(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return has(`enable-feature:im-as-ground`)?I(this.parent)||P(this.parent):I(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!(this.url?.match(/.+\.googleapis.com/)??!1)}get test(){}};e([u({type:[`IntegratedMesh3DTilesLayer`]})],H.prototype,`operationalLayerType`,void 0),e([u({type:w,clonable:e=>e?.clone()??null}),f({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],H.prototype,`modifications`,void 0),e([u({clonable:e=>e?{...e}:null})],H.prototype,`_modificationsSource`,void 0),e([V([`web-scene`,`portal-item`],`modifications`)],H.prototype,`readModifications`,null),e([u({type:m})],H.prototype,`spatialReference`,void 0),e([u({type:p})],H.prototype,`fullExtent`,void 0),e([u({readOnly:!0})],H.prototype,`supportedSpatialReferences`,null),e([u({type:[p]})],H.prototype,`fullExtents`,null),e([u(S)],H.prototype,`elevationInfo`,null),e([u({type:[`show`,`hide`]})],H.prototype,`listMode`,void 0),e([u(C)],H.prototype,`url`,void 0),e([u({readOnly:!0})],H.prototype,`type`,void 0),e([u({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],H.prototype,`path`,void 0),e([u({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],H.prototype,`minScale`,void 0),e([u({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],H.prototype,`maxScale`,void 0),e([u()],H.prototype,`queryElevationCallback`,void 0),e([u()],H.prototype,`_modificationsGeneration`,void 0),e([u()],H.prototype,`memoizedElevationQueryDependencies`,null),e([u({readOnly:!0})],H.prototype,`hasAttributionData`,null),e([u()],H.prototype,`replacesTerrain`,null),e([u()],H.prototype,`isUsedAsGroundLayer`,null),e([u()],H.prototype,`hasGoogleUrl`,null),e([u()],H.prototype,`_simulateGoogleUrl`,void 0),H=e([d(`esri.layers.IntegratedMesh3DTilesLayer`)],H);const U=H;export{U as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as T,default3DTilesFullExtent as E,initFullExtent as D,hasEsriCrs as O}from"./support/tiles3DUtils.js";import k from"../portal/Portal.js";import{getElevationOffsetInMeters as A,logInvalidElevationInfoWarning as j,elevationModeRequiredMessage as M,featureExpressionUnsupportedMessage as N}from"../support/elevationInfoUtils.js";import{isGround as P}from"../support/groundInstanceUtils.js";import{f as F}from"../chunks/persistableUrlUtils.js";import{isBasemap as I}from"../support/userTypeGuards/isBasemap.js";import{initialize as L,switchMeshModificationPolygonVCSSync as R}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as z,fromWasmModification as B}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as V}from"../core/accessorSupport/decorators/reader.js";let H=class extends _(y(b(x(a(v(g(n(h)))))))){readModifications(e,t,n){this._modificationsSource={url:F(e,n),context:n}}initialize(){this.addHandles([s(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},c),l(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType=`IntegratedMesh3DTilesLayer`,this.modifications=null,this._modificationsSource=null,this.spatialReference=T,this.fullExtent=E,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type=`integrated-mesh-3dtiles`,this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[m.WGS84]:[m.WGS84,this.esriCrsSpatialReference]}get fullExtents(){let e=this.fullExtent??E;return!this.initialized||!this.esriCrsFullExtent?[e]:[e,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){let t=[e];for(;t?.length>0;){let e=t.pop();if(!e)return;for(let[n,r]of Object.entries(e)){if(n===`uri`)try{let e=new URL(`https://tmp`+r).searchParams.get(`session`);if(e)return e}catch{}typeof r==`object`&&r&&t.push(r)}}return null}async requestRootAndSession(e){let n=(e,t)=>new r(`3dtiles-init:`+e,t);return this._rootRequestPromise||=new Promise((r,a)=>{this.url||a(n(`url-missing`,`Layer url missing`)),this._key=this.customParameters?this.customParameters.key:null,new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){let i=this.portalItem?.portal||this.parent?.portalItem?.portal||k.getDefault();i.signIn().then(()=>{i.g3dTilesEnabled?t(i.restUrl+`/portals/self/modules/g3dtiles`,{responseType:`json`,query:{f:`json`}}).then(t=>{this._key=t.data.keyString,e()},()=>r(n(`g3dtiles-key-error`,`Error fetching Google 3D Tiles key from portal`))):r(n(`g3dTilesEnabled-false`,`Google 3D Tiles are not enabled on Portal `+i.url))},()=>r(n(`sign-in-failed`,`Error signing in to Portal`)))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:`array-buffer`,signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse(new TextDecoder().decode(e.data))}catch(e){a(n(`root-parse-failed`,`Error parsing root tile, details: `+e));return}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=D(this._rootTilesetJSON),O(this._rootTilesetJSON)&&(this.esriCrsFullExtent=D(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),r(),this._rootRequestPromise=null):a(n(`root-is-null`,`Root tile is null.`))},e=>{o(e),a(n(`root-load-failed`,`Error loading root tile`)),this._rootRequestPromise=null,i.getLogger(`IntegratedMesh3DTilesLayer`).error(`Layer loading failed`,e)})},e=>a(e))}),this._rootRequestPromise}_haveWGS84ZModifications(e){for(let t of e)if(!t.geometry?.spatialReference||t.geometry?.spatialReference.vcsWkid===115700&&t.geometry?.spatialReference.wkid===4326)return!0;return!1}async _doLoad(e){let t=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`IntegratedMesh`))return!0;throw new r(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service containing IntegratedMesh`})}},e)}catch(e){o(e)}if(this._modificationsSource!=null){let t=await w.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await L();try{let e=z(null,t.toArray(),m.WGS84),n=R({modifications:e,inVCS:115700});n.success&&n.modifications&&B(n.modifications,t)}catch(e){i.getLogger(this).error(`convert-mesh-modification-z-error`,`Error when converting:`,e)}}this.setAtOrigin(`modifications`,t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(this._modificationsSource==null){let{modifications:e}=this;e&&e.length>0&&await L()}else await this.load().then(()=>{},()=>{})}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.queryElevationCallback!=null,A(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){let t=`Integrated mesh 3d tiles layers`;j(i.getLogger(this),M(t,`absolute-height`,e)),j(i.getLogger(this),N(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return has(`enable-feature:im-as-ground`)?I(this.parent)||P(this.parent):I(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!(this.url?.match(/.+\.googleapis.com/)??!1)}get test(){}};e([u({type:[`IntegratedMesh3DTilesLayer`]})],H.prototype,`operationalLayerType`,void 0),e([u({type:w,clonable:e=>e?.clone()??null}),f({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],H.prototype,`modifications`,void 0),e([u({clonable:e=>e?{...e}:null})],H.prototype,`_modificationsSource`,void 0),e([V([`web-scene`,`portal-item`],`modifications`)],H.prototype,`readModifications`,null),e([u({type:m})],H.prototype,`spatialReference`,void 0),e([u({type:p})],H.prototype,`fullExtent`,void 0),e([u({readOnly:!0})],H.prototype,`supportedSpatialReferences`,null),e([u({type:[p]})],H.prototype,`fullExtents`,null),e([u(S)],H.prototype,`elevationInfo`,null),e([u({type:[`show`,`hide`]})],H.prototype,`listMode`,void 0),e([u(C)],H.prototype,`url`,void 0),e([u({readOnly:!0})],H.prototype,`type`,void 0),e([u({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],H.prototype,`path`,void 0),e([u({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],H.prototype,`minScale`,void 0),e([u({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],H.prototype,`maxScale`,void 0),e([u()],H.prototype,`queryElevationCallback`,void 0),e([u()],H.prototype,`_modificationsGeneration`,void 0),e([u()],H.prototype,`memoizedElevationQueryDependencies`,null),e([u({readOnly:!0})],H.prototype,`hasAttributionData`,null),e([u()],H.prototype,`replacesTerrain`,null),e([u()],H.prototype,`isUsedAsGroundLayer`,null),e([u()],H.prototype,`hasGoogleUrl`,null),e([u()],H.prototype,`_simulateGoogleUrl`,void 0),H=e([d(`esri.layers.IntegratedMesh3DTilesLayer`)],H);const U=H;export{U as default};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import n from"../core/Accessor.js";import r from"../core/Error.js";import i from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as o,isAborted as s,isAbortError as c}from"../core/promiseUtils.js";import l from"../core/ReactiveMap.js";import{watch as u}from"../core/reactiveUtils.js";import{signal as d}from"../core/signal.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import m from"../geometry/SpatialReference.js";import{isGeographic as h}from"../geometry/support/spatialReferenceUtils.js";import g from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as _,elevQueriesFull as v,elevQueriesGenericFail as y,invalidLayerView as b}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as x}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as S}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as C}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as w}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as T}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as E}from"../views/support/Scheduler.js";import{Yield as D}from"../views/support/Yield.js";const O=3857,k=4326,A=5773;let j=class extends n{get _frozen(){return this._frozenLayerViewCount>0}constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._frozenLayerViewCount=0,this._elevationQueries=new l,this._pendingJobCompleted=[],this._pendingJobFailed=[],this._pendingRenderableCreated=[],this._pulseDeferred=d(!1),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=0,this._wasmNotLoaded=`method requiring WASM was called when WASM isn't loaded`,this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,n,r=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){let e=r?`[js] ${n}`:`${n}`;t===0||t===1?i.getLogger(this).error(e):t===2&&i.getLogger(this).warn(e),i.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(i.getLogger(this).level=`info`),this._debugLog(0,3,`Lyr3DWasmPerSceneView.initialize()`),this.addHandles([u(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),u(()=>this.view.state?.contentCamera.relativeElevation,()=>this._updateWasmCameraElevation()),this.view.resourceController.addUpdatingObject(this)]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(E.LYR3D,this)}destroy(){this._debugLog(0,3,`Lyr3DWasmPerSceneView.destroy()`),this._lyr3DMain&&=(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,t)=>{this._lyr3DMain.cancel_elevation_query(t),e.rejectCallback(o())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;let e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}get updating(){return this._elevationQueries.size>0}runTask(e){return this._pulseTask(e),D}_hasPendingPulseWork(){return this._lyr3DMain?!this._frozen&&this._cameraDirty||!this._frozen&&this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)):!1}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,`Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized`),{wasmLayerId:_})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._is3DTilesIMLayerView(e)&&e.freeze&&this.decrementFrozenLayerViewCount(e),this._doRemoveLayerView(e);let t=this._layers.size;return t===0&&(this._debugLog(0,3,`Lyr3DWasmPerSceneView.remove3DTilesLayerView() no Lyr3D layers left after removing a layer, destroying`),this.destroy()),t}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(t=>{t.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_enabled(e.wasmLayerId,t),n.needMemoryUsageUpdate=!0;let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);n&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),n.needFrame=!0,n.layerView.updatingFlagChanged())}getAttributionText(){return this._lyr3DMain?this._lyr3DMain.get_current_attribution_text().split(`|`):(this._debugLog(0,1,this._wasmNotLoaded),[])}onRenderableEvicted(e,t,n){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,n):this._debugLog(0,1,this._wasmNotLoaded)}setMeshModifications(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,t);let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;let t=this._layers.get(e);return t?this._isUpdating(t):!1}incrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&(this._frozenLayerViewCount+=1)}decrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&--this._frozenLayerViewCount}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,`Lyr3DWasmPerSceneView.initializeWasm()`),this._lyr3DMainPromise||=C().then(n=>{this._lyr3DMain=n,this._lyr3DMainPromise=null;let r=this._lyr3DMain.addFunction(this._onNewJob.bind(this),`vi`),i=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),`vi`),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),`vi`),o=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),`vi`),s=this._lyr3DMain.addFunction(this._onWasmError.bind(this),`viiii`),c=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),`vi`);if(!this.view.renderSpatialReference){this._lyr3DMain=null;return}this._viewSR=this.view.renderSpatialReference?.toJSON();let l=this.view.viewingMode===`global`?6:4;l===6?(this._viewSR.wkid=this._viewSR.latestWkid=k,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A,this._viewSR.wkt=``):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=S(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=O,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):this.view.renderSpatialReference?.wkid===32662?(this._viewSR.wkid=this._viewSR.latestWkid=k,l=3,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):!this._viewSR.vcsWkid&&!this._viewSR.latestVcsWkid&&(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));let u=has(`esri-lyr3D-max-concurrent-requests`)??16;if(!this._lyr3DMain.initialize_lyr3d_wasm(s,r,i,a,o,c,e,t,l,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),u))this._lyr3DMain=null,this._debugLog(0,0,`Lyr3d Main WASM failed to initialize`,!1);else if(this._workerHandle=new x(T(this.view.resourceController)),this._workerHandle.promise)return this._workerHandle.promise}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)}),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);let n=this._layers.get(e.wasmLayerId);n&&(n.needFrame=!0,n.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{e.layerView.type===`gaussian-splat-3d`&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,n){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(t.coordinates.length===0)return Promise.reject(`no coordinates for elevation query`);let r=this.view.viewingMode===`global`?m.WGS84:this._viewSR.wkid===O?m.WebMercator:m.PlateCarree,i=t.projectSync(r);i&&(t=i);let a=t.coordinates.length*2,o=this._lyr3DMain._malloc(a*8),s=new Float64Array(this._lyr3DMain.HEAPF64.buffer,o,a);for(let e=0;e<t.coordinates.length;++e){let n=t.coordinates[e];s[e*2]=n.x,s[e*2+1]=n.y}let c=n?.maxGeometricError??0,l=this._lyr3DMain.create_elevation_query(e.wasmLayerId,c,o,a);if(this._lyr3DMain._free(o),l===v)return Promise.reject(`max mesh elevation query limit exceeded`);if(l===y)return Promise.reject(`elevation query failed`);let u={wasmLayerId:e.wasmLayerId,descriptor:t,signal:n?.signal,resolveCallback:null,rejectCallback:null},d=new Promise((e,t)=>{u.resolveCallback=e,u.rejectCallback=t});return this._elevationQueries.set(l,u),d}_checkForAbortedElevationQueries(){let e=[];this._elevationQueries.forEach((t,n)=>{s(t.signal)&&(this._lyr3DMain.cancel_elevation_query(n),t.rejectCallback(o()),e.push(n))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_cancelElevationQueriesForLayer(e){let t=[];this._elevationQueries.forEach((n,r)=>{n.wasmLayerId===e&&(this._lyr3DMain.cancel_elevation_query(r),n.rejectCallback(o()),t.push(r))}),t.forEach(e=>this._elevationQueries.delete(e))}_pulseTask(e){let t=this._lyr3DMain;if(t){if(this._frozen){this._checkForAbortedElevationQueries(),this._flushPendingWasmCalls(e);return}if(this._cameraDirty){let e=this.view.state?.contentCamera;if(e){let{eye:n,center:r,up:i,near:a,far:o,fovY:s}=e,c=[e.screenViewport[2],e.screenViewport[3]],l={eye:n,center:r,up:i,near:a,far:o,fov:s,aspectRatio:e.width/e.height,viewport:c};t.set_camera_parameters(l),this._cameraDirty=!1}}if(this._cameraElevationDirty){let e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e),this._cameraElevationDirty=!1}if(this._checkForAbortedElevationQueries(),!this._pulseDeferred.value&&(this._flushPendingWasmCalls(e),e.done))return;let n=0,r=0;this._layers.forEach(e=>{n+=e.layerView.usedMemory,r+=e.layerView.cachedMemory}),n/=1048576,r/=1048576;let i=this.view.resourceController.memoryController,a=i.usedMemory*i.maxMemory-n-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(i.memoryFactor,n,r,a,i.maxMemory),this._pulseDeferred.value=!1,this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange(`isTerrainReady`)),e.madeProgress(),this._flushPendingWasmCalls(e)}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||!this._frozen&&(e.needFrame||this._cameraDirty||this._cameraElevationDirty||this._pulseDeferred.value||this._lyr3DBusyCount>0)}_incrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);e.outstandingJobCount+=1,n||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);--e.outstandingJobCount,n!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){let t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){let t=this._isUpdating(e);--e.outstandingRenderableCount,t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,t){for(;!t.done&&e.length>0;){let n=e.shift();this._pulseDeferred.value=!0,n(this._lyr3DMain),t.madeProgress()}}_decrementJobCountIfLayerExists(e,t){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementJobCount(e,t)}_decrementRenderableCountIfLayerExists(e){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementRenderableCount(e)}_onJobFailed(e,t,n){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_onJobSucceeded(e,t,n){if(e.layerView.destroyed){this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n);return}let{data:r}=t;this._lyr3DMain?this._pendingJobCompleted.push(i=>{try{let e=r.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(i.HEAPU8.buffer,a,e).set(r),i.on_job_completed(n.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,n,r,i){let a=[];for(let o of e){let e=new URL(o);if(i.type===`integrated-mesh-3dtiles`){if(e.origin===r.origin&&e.pathname===r.pathname){if(i.rootTileset){a.push(Promise.resolve(i.rootTileset.slice()));continue}}else i.session&&e.searchParams.set(`session`,i.session)}a.push(t(e.toString(),n).then(e=>e.data))}return a}_getInitialPromise(e,t,n,r,i,a,o){let s=this._getRequestPromises(e.urls,t,n,r);return Promise.all(s).then(e=>(i.inputs=e,this._workerHandle.invoke(i,a))).then(e=>e).catch(t=>{let n=1;return c(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):o&&t.details?.httpStatus===400?(n=3,this._debugLog(1,2,`Session expired, trying to create new Session.`)):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:n,error:``,jobDescJson:``,data:new Uint8Array,missingInputUrls:[],inputs:[]}})}async _onNewJob(e){let t;try{t=this._lyr3DMain.Emval.toValue(e);let n=this._layers.get(t.layerId);if(!n)return;this._incrementJobCount(n,t);let r=n.abortController.signal,i=n.layerView.layer,a=i.type===`integrated-mesh-3dtiles`?i.key:null,o=i.type===`integrated-mesh-3dtiles`?i.session:null,s={responseType:`array-buffer`,signal:r,query:{...n.customParameters,token:n.apiKey,key:a}},l={id:t.jobId,inputs:[],jobDescJson:t.desc.slice(),isMissingResourceCase:!1},u=new URL(i.url),d=e=>{if(e.status===1)this._onJobFailed(n,e,t);else if(e.status===0)this._onJobSucceeded(n,e,t);else if(e.status===2){let a=this._getRequestPromises(e.missingInputUrls,s,u,i);Promise.all(a).then(t=>{l.jobDescJson=e.jobDescJson,e.originalInputs?l.inputs=e.originalInputs:l.inputs=[],l.isMissingResourceCase=!0;for(let e of t)l.inputs.push(e);return this._workerHandle.invoke(l,r)}).then(e=>{e.status===1?this._onJobFailed(n,e,t):e.status===0&&this._onJobSucceeded(n,e,t)}).catch(e=>{c(e)?this._debugLog(1,2,`job ${t.jobId} was cancelled.`):this._debugLog(1,1,`job ${t.jobId} failed with error ${e}.`),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)})}};try{let e=await this._getInitialPromise(t,s,u,i,l,r,o);e.status===3&&i.type===`integrated-mesh-3dtiles`?(o===i.session&&i.session!==null&&await i.requestRootAndSession(r),d(await this._getInitialPromise(t,s,u,i,l,r,i.session))):d(e)}catch(e){e&&this._debugLog(1,1,e.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onNewRenderable(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);n&&(this._incrementRenderableCount(n),n.layerView.createRenderable(t).then(e=>{this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(r=>{try{let{layerId:n,handle:i}=t,a=e();r.on_renderable_created(!0,n,i,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}).catch(e=>{c(e)||this._debugLog(2,1,`createRenderable failed with error ${e}.`),this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(e=>{try{let{layerId:n,handle:r}=t;e.on_renderable_created(!1,n,r,0,0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}))}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_freeRenderables(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||!n)return;let r=n.layerView;for(let e=0;e<t.handles.length;++e)r.freeRenderable(t.handles[e])}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_setRenderableVisibility(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||t.visibility.length!==t.handles.length||!n)return;let r=n.layerView,i=[],a=[];for(let e=0;e<t.handles.length;++e)i.push(t.handles[e]),a.push(!!(t.visibility[e]&1));r.setRenderableVisibility(i,a,t.handles.length)}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onWasmError(e,t,n,r){if(this._lyr3DMain)try{this._debugLog(n,r,this._lyr3DMain.UTF8ToString(e,t),!1)}catch{}}_onElevQueryComplete(e){try{let t=this._lyr3DMain.Emval.toValue(e),{queryId:n}=t,i=this._elevationQueries.get(n);if(!i){this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${n}.`);return}if(!t.succeeded||!t.zs)i.rejectCallback(new r(`elevation-query:error`,t?.error??`Elevation query failed`)),this._elevationQueries.delete(n);else{let{zs:e}=t,r=i.descriptor.clone();for(let t=0;t<e.length;++t)r.coordinates[t].z=e[t];this._debugLog(2,3,`Success EQ ${n}, number points ${e.length}.`),i.resolveCallback(r),this._elevationQueries.delete(n)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_doRemoveLayerView(e){let t=this._layers.get(e.wasmLayerId);return t?(t.abortController.abort(),this._cancelElevationQueriesForLayer(e.wasmLayerId),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)),this._layers.delete(e.wasmLayerId),!0):!1}_is3DTilesIMLayerView(e){return e.layer.type===`integrated-mesh-3dtiles`}_is3DTilesIMLayer(e){return e.type===`integrated-mesh-3dtiles`}_isGaussianSplatLayerView(e){return e.layer.type===`gaussian-splat`}_isGaussianSplatLayer(e){return e.type===`gaussian-splat`}_toWasmQuality(e){switch(e){case`low`:return 1;case`medium`:return 2;case`high`:return 3}}_addLayerView(e){let t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:b};let n=t.type===`integrated-mesh-3dtiles`?0:2,r=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),n);if(r.errorCode!==0)return{wasmLayerId:b,check:r};let a=this._lyr3DMain.get_next_layer_id(),o=new AbortController;this._layers.set(a,{layerView:e,abortController:o,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});let s=w(t.elevationInfo),c=this._toWasmQuality(this.view?.qualityProfile),l=e=>i.getLogger(this).error(`add-spatial-reference-error`,`Error when adding SR:`,e),u=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let n=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){n=t.esriCrsSpatialReference;let r=h(n),i=1,a=1;!r&&n.wkid&&n.wkid!==-1&&(i=g.values[g[n.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(n)),r,i,a).catch(l),!this._haveAddedViewSRForNoOpPrj&&n.vcsWkid&&this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==-1&&this._viewSR.vcsWkid!==n.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(l),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?u=this._lyr3DMain.add_gaussian_splat_layer(c,t.url,a,s):this._is3DTilesIMLayerView(e)&&(u=this._lyr3DMain.add_3dtiles_layer(c,t.url,a,s,e.replacesTerrain),u&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)))}return u?(this._updateWasmCamera(),this._is3DTilesIMLayerView(e)&&e.freeze&&this.incrementFrozenLayerViewCount(e),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:b})}_updateWasmCamera(){this.view.state?.contentCamera&&this._lyr3DMain&&(this._cameraDirty=!0,this._frozen||this._markAllLayerViewsUpdating())}_updateWasmCameraElevation(){this._cameraElevationDirty=!0,this._frozen||this._markAllLayerViewsUpdating()}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{let t=this._isUpdating(e);e.needFrame=!0,t||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??``}}_cleanUpSR(e){return e?.wkid===-1&&e.latestWkid&&e.latestWkid!==-1?e.wkid=e.latestWkid:e?.latestWkid===-1&&e.wkid&&e.wkid!==-1&&(e.latestWkid=e.wkid),e?.vcsWkid===-1&&e.latestVcsWkid&&e.latestVcsWkid!==-1?e.vcsWkid=e.latestVcsWkid:e?.latestVcsWkid===-1&&e.vcsWkid&&e.vcsWkid!==-1&&(e.latestVcsWkid=e.vcsWkid),e}};e([f({constructOnly:!0})],j.prototype,`view`,void 0),e([f()],j.prototype,`updating`,null),e([f({readOnly:!0})],j.prototype,`isTerrainReady`,null),j=e([p(`esri.layers.Lyr3DWasmPerSceneView`)],j);const M=j;export{M as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import n from"../core/Accessor.js";import r from"../core/Error.js";import i from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as o,isAborted as s,isAbortError as c}from"../core/promiseUtils.js";import l from"../core/ReactiveMap.js";import{watch as u}from"../core/reactiveUtils.js";import{signal as d}from"../core/signal.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import m from"../geometry/SpatialReference.js";import{isGeographic as h}from"../geometry/support/spatialReferenceUtils.js";import g from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as _,elevQueriesFull as v,elevQueriesGenericFail as y,invalidLayerView as b}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as x}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as S}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as C}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as w}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as T}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as E}from"../views/support/Scheduler.js";import{Yield as D}from"../views/support/Yield.js";const O=3857,k=4326,A=5773;let j=class extends n{get _frozen(){return this._frozenLayerViewCount>0}constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._frozenLayerViewCount=0,this._elevationQueries=new l,this._pendingJobCompleted=[],this._pendingJobFailed=[],this._pendingRenderableCreated=[],this._pulseDeferred=d(!1),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=0,this._wasmNotLoaded=`method requiring WASM was called when WASM isn't loaded`,this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,n,r=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){let e=r?`[js] ${n}`:`${n}`;t===0||t===1?i.getLogger(this).error(e):t===2&&i.getLogger(this).warn(e),i.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(i.getLogger(this).level=`info`),this._debugLog(0,3,`Lyr3DWasmPerSceneView.initialize()`),this.addHandles([u(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),u(()=>this.view.state?.contentCamera.relativeElevation,()=>this._updateWasmCameraElevation()),this.view.resourceController.addUpdatingObject(this)]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(E.LYR3D,this)}destroy(){this._debugLog(0,3,`Lyr3DWasmPerSceneView.destroy()`),this._lyr3DMain&&=(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,t)=>{this._lyr3DMain.cancel_elevation_query(t),e.rejectCallback(o())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;let e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}get updating(){return this._elevationQueries.size>0}runTask(e){return this._pulseTask(e),D}_hasPendingPulseWork(){return this._lyr3DMain?!this._frozen&&this._cameraDirty||!this._frozen&&this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)):!1}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,`Lyr3DWasmPerSceneView.addLayerView() called when WASM wasn't initialized`),{wasmLayerId:_})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._is3DTilesIMLayerView(e)&&e.freeze&&this.decrementFrozenLayerViewCount(e),this._doRemoveLayerView(e);let t=this._layers.size;return t===0&&(this._debugLog(0,3,`Lyr3DWasmPerSceneView.removeLayerView() no Lyr3D layers left after removing a layer, destroying`),this.destroy()),t}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(t=>{t.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_enabled(e.wasmLayerId,t),n.needMemoryUsageUpdate=!0;let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);n&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),n.needFrame=!0,n.layerView.updatingFlagChanged())}getAttributionText(){return this._lyr3DMain?this._lyr3DMain.get_current_attribution_text().split(`|`):(this._debugLog(0,1,this._wasmNotLoaded),[])}onRenderableEvicted(e,t,n){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,n):this._debugLog(0,1,this._wasmNotLoaded)}setMeshModifications(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,t);let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;let t=this._layers.get(e);return t?this._isUpdating(t):!1}incrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&(this._frozenLayerViewCount+=1)}decrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&--this._frozenLayerViewCount}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,`Lyr3DWasmPerSceneView.initializeWasm()`),this._lyr3DMainPromise||=C().then(n=>{this._lyr3DMain=n,this._lyr3DMainPromise=null;let r=this._lyr3DMain.addFunction(this._onNewJob.bind(this),`vi`),i=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),`vi`),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),`vi`),o=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),`vi`),s=this._lyr3DMain.addFunction(this._onWasmError.bind(this),`viiii`),c=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),`vi`);if(!this.view.renderSpatialReference){this._lyr3DMain=null;return}this._viewSR=this.view.renderSpatialReference?.toJSON();let l=this.view.viewingMode===`global`?6:4;l===6?(this._viewSR.wkid=this._viewSR.latestWkid=k,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A,this._viewSR.wkt=``):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=S(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=O,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):this.view.renderSpatialReference?.wkid===32662?(this._viewSR.wkid=this._viewSR.latestWkid=k,l=3,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):!this._viewSR.vcsWkid&&!this._viewSR.latestVcsWkid&&(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));let u=has(`esri-lyr3D-max-concurrent-requests`)??16;if(!this._lyr3DMain.initialize_lyr3d_wasm(s,r,i,a,o,c,e,t,l,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),u))this._lyr3DMain=null,this._debugLog(0,0,`Lyr3d Main WASM failed to initialize`,!1);else if(this._workerHandle=new x(T(this.view.resourceController)),this._workerHandle.promise)return this._workerHandle.promise}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)}),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);let n=this._layers.get(e.wasmLayerId);n&&(n.needFrame=!0,n.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{e.layerView.type===`gaussian-splat-3d`&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,n){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(t.coordinates.length===0)return Promise.reject(`no coordinates for elevation query`);let r=this.view.viewingMode===`global`?m.WGS84:this._viewSR.wkid===O?m.WebMercator:m.PlateCarree,i=t.projectSync(r);i&&(t=i);let a=t.coordinates.length*2,o=this._lyr3DMain._malloc(a*8),s=new Float64Array(this._lyr3DMain.HEAPF64.buffer,o,a);for(let e=0;e<t.coordinates.length;++e){let n=t.coordinates[e];s[e*2]=n.x,s[e*2+1]=n.y}let c=n?.maxGeometricError??0,l=this._lyr3DMain.create_elevation_query(e.wasmLayerId,c,o,a);if(this._lyr3DMain._free(o),l===v)return Promise.reject(`max mesh elevation query limit exceeded`);if(l===y)return Promise.reject(`elevation query failed`);let u={wasmLayerId:e.wasmLayerId,descriptor:t,signal:n?.signal,resolveCallback:null,rejectCallback:null},d=new Promise((e,t)=>{u.resolveCallback=e,u.rejectCallback=t});return this._elevationQueries.set(l,u),d}_checkForAbortedElevationQueries(){let e=[];this._elevationQueries.forEach((t,n)=>{s(t.signal)&&(this._lyr3DMain.cancel_elevation_query(n),t.rejectCallback(o()),e.push(n))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_cancelElevationQueriesForLayer(e){let t=[];this._elevationQueries.forEach((n,r)=>{n.wasmLayerId===e&&(this._lyr3DMain.cancel_elevation_query(r),n.rejectCallback(o()),t.push(r))}),t.forEach(e=>this._elevationQueries.delete(e))}_pulseTask(e){let t=this._lyr3DMain;if(t){if(this._frozen){this._checkForAbortedElevationQueries(),this._flushPendingWasmCalls(e);return}if(this._cameraDirty){let e=this.view.state?.contentCamera;if(e){let{eye:n,center:r,up:i,near:a,far:o,fovY:s}=e,c=[e.screenViewport[2],e.screenViewport[3]],l={eye:n,center:r,up:i,near:a,far:o,fov:s,aspectRatio:e.width/e.height,viewport:c};t.set_camera_parameters(l),this._cameraDirty=!1}}if(this._cameraElevationDirty){let e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e),this._cameraElevationDirty=!1}if(this._checkForAbortedElevationQueries(),!this._pulseDeferred.value&&(this._flushPendingWasmCalls(e),e.done))return;let n=0,r=0;this._layers.forEach(e=>{n+=e.layerView.usedMemory,r+=e.layerView.cachedMemory}),n/=1048576,r/=1048576;let i=this.view.resourceController.memoryController,a=i.usedMemory*i.maxMemory-n-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(i.memoryFactor,n,r,a,i.maxMemory),this._pulseDeferred.value=!1,this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange(`isTerrainReady`)),e.madeProgress(),this._flushPendingWasmCalls(e)}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||!this._frozen&&(e.needFrame||this._cameraDirty||this._cameraElevationDirty||this._pulseDeferred.value||this._lyr3DBusyCount>0)}_incrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);e.outstandingJobCount+=1,n||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);--e.outstandingJobCount,n!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){let t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){let t=this._isUpdating(e);--e.outstandingRenderableCount,t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,t){for(;!t.done&&e.length>0;){let n=e.shift();this._pulseDeferred.value=!0,n(this._lyr3DMain),t.madeProgress()}}_decrementJobCountIfLayerExists(e,t){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementJobCount(e,t)}_decrementRenderableCountIfLayerExists(e){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementRenderableCount(e)}_onJobFailed(e,t,n){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_onJobSucceeded(e,t,n){if(e.layerView.destroyed){this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n);return}let{data:r}=t;this._lyr3DMain?this._pendingJobCompleted.push(i=>{try{let e=r.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(i.HEAPU8.buffer,a,e).set(r),i.on_job_completed(n.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,n,r,i){let a=[];for(let o of e){let e=new URL(o.url);if(i.type===`integrated-mesh-3dtiles`){if(e.origin===r.origin&&e.pathname===r.pathname){if(i.rootTileset){a.push(Promise.resolve(i.rootTileset.slice()));continue}}else i.session&&e.searchParams.set(`session`,i.session)}a.push(t(e.toString(),n).then(e=>e.data))}return a}_getInitialPromise(e,t,n,r,i,a,o){let s=this._getRequestPromises(e.inputs,t,n,r);return Promise.all(s).then(e=>(i.inputs=e,this._workerHandle.invoke(i,a))).then(e=>e).catch(t=>{let n=1;return c(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):o&&t.details?.httpStatus===400?(n=3,this._debugLog(1,2,`Session expired, trying to create new Session.`)):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:n,error:``,jobDescJson:``,data:new Uint8Array,missingInputs:[],inputs:[]}})}async _onNewJob(e){let t;try{t=this._lyr3DMain.Emval.toValue(e);let n=this._layers.get(t.layerId);if(!n)return;this._incrementJobCount(n,t);let r=n.abortController.signal,i=n.layerView.layer,a=i.type===`integrated-mesh-3dtiles`?i.key:null,o=i.type===`integrated-mesh-3dtiles`?i.session:null,s={responseType:`array-buffer`,signal:r,query:{...n.customParameters,token:n.apiKey,key:a}},l={id:t.jobId,inputs:[],jobDescJson:t.desc.slice(),isMissingResourceCase:!1},u=new URL(i.url),d=e=>{if(e.status===1)this._onJobFailed(n,e,t);else if(e.status===0)this._onJobSucceeded(n,e,t);else if(e.status===2){let a=this._getRequestPromises(e.missingInputs,s,u,i);Promise.all(a).then(t=>{l.jobDescJson=e.jobDescJson,e.originalInputs?l.inputs=e.originalInputs:l.inputs=[],l.isMissingResourceCase=!0;for(let e of t)l.inputs.push(e);return this._workerHandle.invoke(l,r)}).then(e=>{e.status===1?this._onJobFailed(n,e,t):e.status===0&&this._onJobSucceeded(n,e,t)}).catch(e=>{c(e)?this._debugLog(1,2,`job ${t.jobId} was cancelled.`):this._debugLog(1,1,`job ${t.jobId} failed with error ${e}.`),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)})}};try{let e=await this._getInitialPromise(t,s,u,i,l,r,o);e.status===3&&i.type===`integrated-mesh-3dtiles`?(o===i.session&&i.session!==null&&await i.requestRootAndSession(r),d(await this._getInitialPromise(t,s,u,i,l,r,i.session))):d(e)}catch(e){e&&this._debugLog(1,1,e.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onNewRenderable(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);n&&(this._incrementRenderableCount(n),n.layerView.createRenderable(t).then(e=>{this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(r=>{try{let{layerId:n,handle:i}=t,a=e();r.on_renderable_created(!0,n,i,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}).catch(e=>{c(e)||this._debugLog(2,1,`createRenderable failed with error ${e}.`),this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(e=>{try{let{layerId:n,handle:r}=t;e.on_renderable_created(!1,n,r,0,0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}))}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_freeRenderables(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||!n)return;let r=n.layerView;for(let e=0;e<t.handles.length;++e)r.freeRenderable(t.handles[e])}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_setRenderableVisibility(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||t.visibility.length!==t.handles.length||!n)return;let r=n.layerView,i=[],a=[];for(let e=0;e<t.handles.length;++e)i.push(t.handles[e]),a.push(!!(t.visibility[e]&1));r.setRenderableVisibility(i,a,t.handles.length)}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onWasmError(e,t,n,r){if(this._lyr3DMain)try{this._debugLog(n,r,this._lyr3DMain.UTF8ToString(e,t),!1)}catch{}}_onElevQueryComplete(e){try{let t=this._lyr3DMain.Emval.toValue(e),{queryId:n}=t,i=this._elevationQueries.get(n);if(!i){this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${n}.`);return}if(!t.succeeded||!t.zs)i.rejectCallback(new r(`elevation-query:error`,t?.error??`Elevation query failed`)),this._elevationQueries.delete(n);else{let{zs:e}=t,r=i.descriptor.clone();for(let t=0;t<e.length;++t)r.coordinates[t].z=e[t];this._debugLog(2,3,`Success EQ ${n}, number points ${e.length}.`),i.resolveCallback(r),this._elevationQueries.delete(n)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_doRemoveLayerView(e){let t=this._layers.get(e.wasmLayerId);return t?(t.abortController.abort(),this._cancelElevationQueriesForLayer(e.wasmLayerId),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)),this._layers.delete(e.wasmLayerId),!0):!1}_is3DTilesIMLayerView(e){return e.layer.type===`integrated-mesh-3dtiles`}_is3DTilesIMLayer(e){return e.type===`integrated-mesh-3dtiles`}_isGaussianSplatLayerView(e){return e.layer.type===`gaussian-splat`}_isGaussianSplatLayer(e){return e.type===`gaussian-splat`}_toWasmQuality(e){switch(e){case`low`:return 1;case`medium`:return 2;case`high`:return 3}}_addLayerView(e){let t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:b};let n=t.type===`integrated-mesh-3dtiles`?0:2,r=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),n);if(r.errorCode!==0)return{wasmLayerId:b,check:r};let a=this._lyr3DMain.get_next_layer_id(),o=new AbortController;this._layers.set(a,{layerView:e,abortController:o,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});let s=w(t.elevationInfo),c=this._toWasmQuality(this.view?.qualityProfile),l=e=>i.getLogger(this).error(`add-spatial-reference-error`,`Error when adding SR:`,e),u=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let n=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){n=t.esriCrsSpatialReference;let r=h(n),i=1,a=1;!r&&n.wkid&&n.wkid!==-1&&(i=g.values[g[n.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(n)),r,i,a).catch(l),!this._haveAddedViewSRForNoOpPrj&&n.vcsWkid&&this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==-1&&this._viewSR.vcsWkid!==n.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(l),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?u=this._lyr3DMain.add_gaussian_splat_layer(c,t.url,a,s):this._is3DTilesIMLayerView(e)&&(u=this._lyr3DMain.add_3dtiles_layer(c,t.url,a,s,e.replacesTerrain),u&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)))}return u?(this._updateWasmCamera(),this._is3DTilesIMLayerView(e)&&e.freeze&&this.incrementFrozenLayerViewCount(e),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:b})}_updateWasmCamera(){this.view.state?.contentCamera&&this._lyr3DMain&&(this._cameraDirty=!0,this._frozen||this._markAllLayerViewsUpdating())}_updateWasmCameraElevation(){this._cameraElevationDirty=!0,this._frozen||this._markAllLayerViewsUpdating()}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{let t=this._isUpdating(e);e.needFrame=!0,t||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??``}}_cleanUpSR(e){return e?.wkid===-1&&e.latestWkid&&e.latestWkid!==-1?e.wkid=e.latestWkid:e?.latestWkid===-1&&e.wkid&&e.wkid!==-1&&(e.latestWkid=e.wkid),e?.vcsWkid===-1&&e.latestVcsWkid&&e.latestVcsWkid!==-1?e.vcsWkid=e.latestVcsWkid:e?.latestVcsWkid===-1&&e.vcsWkid&&e.vcsWkid!==-1&&(e.latestVcsWkid=e.vcsWkid),e}};e([f({constructOnly:!0})],j.prototype,`view`,void 0),e([f()],j.prototype,`updating`,null),e([f({readOnly:!0})],j.prototype,`isTerrainReady`,null),j=e([p(`esri.layers.Lyr3DWasmPerSceneView`)],j);const M=j;export{M as default};