@arcgis/core 5.1.0-next.113 → 5.1.0-next.115

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 (428) hide show
  1. package/Graphic.d.ts +1 -0
  2. package/Map.js +1 -1
  3. package/analysis/ShadowCast/MinDurationOptions.d.ts +3 -5
  4. package/analysis/ShadowCastAnalysis.d.ts +1 -1
  5. package/arcgisGlobal.d.ts +4 -0
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/{31a8bc25aa1441c70caa.js → 009250a7bded12099dd1.js} +1 -1
  8. package/assets/esri/core/workers/chunks/05c47ca3a266a271974b.js +1 -0
  9. package/assets/esri/core/workers/chunks/{29bbc0d6d847b065d10e.js → 062aadf426fe97a76bbb.js} +1 -1
  10. package/assets/esri/core/workers/chunks/0954e82f739d25001bcb.js +1 -0
  11. package/assets/esri/core/workers/chunks/0a530fbbb4486c670ea2.js +1 -0
  12. package/assets/esri/core/workers/chunks/0aaee272520c6e5bb617.js +1 -0
  13. package/assets/esri/core/workers/chunks/{12053c1213465d07d2f6.js → 0b445c1cf281f158c1f1.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{14b7b55c42af65ffa024.js → 0bd2b035c6ee89c725f9.js} +1 -1
  15. package/assets/esri/core/workers/chunks/0ded5c114cbb7574f2f4.js +1 -0
  16. package/assets/esri/core/workers/chunks/102ff3710db4ba5f083d.js +1 -0
  17. package/assets/esri/core/workers/chunks/{7dafe608c224b9d48ffa.js → 115664cb7d7b22a315bb.js} +1 -1
  18. package/assets/esri/core/workers/chunks/123a67e84ed68b96ac59.js +1 -0
  19. package/assets/esri/core/workers/chunks/163ce1be8bfe20e77f97.js +1 -0
  20. package/assets/esri/core/workers/chunks/16713986893adfbc9331.js +1 -0
  21. package/assets/esri/core/workers/chunks/{054ae729e7cefa2c7778.js → 170f8dc97614e9609443.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{9bd713d96502ddc2ce25.js → 1765042635084f75d2b3.js} +1 -1
  23. package/assets/esri/core/workers/chunks/185c670eb99474906836.js +1 -0
  24. package/assets/esri/core/workers/chunks/18ebf1d3ed05c8057f7d.js +1 -0
  25. package/assets/esri/core/workers/chunks/{4a65bc9091d7ea7e80df.js → 19f07c8d0f32ec889861.js} +1 -1
  26. package/assets/esri/core/workers/chunks/1da2c34743897d1b6a24.js +1 -0
  27. package/assets/esri/core/workers/chunks/{ca92176d5348e2c533d7.js → 224a9f39876aa426a9bc.js} +1 -1
  28. package/assets/esri/core/workers/chunks/22d4521637806a8b828f.js +1 -0
  29. package/assets/esri/core/workers/chunks/233ff588798c8a5eedf4.js +1 -0
  30. package/assets/esri/core/workers/chunks/24d9e4f1c7b8ff0d2cce.js +1 -0
  31. package/assets/esri/core/workers/chunks/2562d8905bd05ef6fd07.js +1 -0
  32. package/assets/esri/core/workers/chunks/{8aac1155b8ac071cd2ad.js → 2855357a2c1f2ab03fb7.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{e5d969214d9eda5c0b4c.js → 2a5dbed88bbd96cfac9f.js} +1 -1
  34. package/assets/esri/core/workers/chunks/{33329f5d88e60b4ec568.js → 2a8f198f6c272f92bad5.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{cb3004998eff7c60930e.js → 2b2a09ce14d00b4b1187.js} +1 -1
  36. package/assets/esri/core/workers/chunks/2bcd4d395bfe6a19ccc8.js +1 -0
  37. package/assets/esri/core/workers/chunks/{bd17ac2e6f1eb8cf7abf.js → 2fa080539d039c92ce08.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{ee635172be7fdea69367.js → 3109b05fe4fc40d4f25b.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{92db9a6d273ae2862883.js → 315bf08dff4757ffbed3.js} +1 -1
  40. package/assets/esri/core/workers/chunks/3192586ec7fc73ed1165.js +1 -0
  41. package/assets/esri/core/workers/chunks/{593772bd8b19ac664b29.js → 35527a01d61cabbfd33e.js} +1 -1
  42. package/assets/esri/core/workers/chunks/38ca59db0e8f45bd7811.js +1 -0
  43. package/assets/esri/core/workers/chunks/3b10a962e4ff2f3da5bc.js +1 -0
  44. package/assets/esri/core/workers/chunks/3e9709e61015993b1c7d.js +1 -0
  45. package/assets/esri/core/workers/chunks/41074d383af3662673ca.js +1 -0
  46. package/assets/esri/core/workers/chunks/425c04b26a6ec6d04b08.js +1 -0
  47. package/assets/esri/core/workers/chunks/4364a3e706294bb6ae41.js +1 -0
  48. package/assets/esri/core/workers/chunks/44e52fe98ffafe6a2807.js +1 -0
  49. package/assets/esri/core/workers/chunks/49675e77a351abda2728.js +1 -0
  50. package/assets/esri/core/workers/chunks/4cecc582513b8a83f194.js +1 -0
  51. package/assets/esri/core/workers/chunks/5022413f5a41b5d435ea.js +1 -0
  52. package/assets/esri/core/workers/chunks/{8ade869fa9bae446266a.js → 51816d79c6be15e4bfcf.js} +1 -1
  53. package/assets/esri/core/workers/chunks/{cf9b0ba30a75c030ca92.js → 5524a71d1abc9568ce26.js} +1 -1
  54. package/assets/esri/core/workers/chunks/{ba31616de9d73d83d867.js → 557e39e5156b313597f9.js} +1 -1
  55. package/assets/esri/core/workers/chunks/{5ef37f37e405b3bb5450.js → 59dafa1e1340ea4043e6.js} +1 -1
  56. package/assets/esri/core/workers/chunks/{77ac243d4dcd901c2eec.js → 621d71d26bd20e296138.js} +1 -1
  57. package/assets/esri/core/workers/chunks/624b1bb269744142b835.js +1 -0
  58. package/assets/esri/core/workers/chunks/{52a91c314afec70199bc.js → 62b5972d0ef9bf173308.js} +1 -1
  59. package/assets/esri/core/workers/chunks/641b8622fbb93c84671d.js +1 -0
  60. package/assets/esri/core/workers/chunks/643c7506f8fe8e06acd2.js +1 -0
  61. package/assets/esri/core/workers/chunks/65f02eca694cc1c9f5a7.js +1 -0
  62. package/assets/esri/core/workers/chunks/{7e203e947846d40f897e.js → 67dffb896b6ef4b2038b.js} +1 -1
  63. package/assets/esri/core/workers/chunks/696967c8c6f53b94f851.js +1 -0
  64. package/assets/esri/core/workers/chunks/6d696beddcc5fbed5875.js +1 -0
  65. package/assets/esri/core/workers/chunks/7014e73dfd3c8baa704c.js +1 -0
  66. package/assets/esri/core/workers/chunks/728ad5bbbcbf88d6249f.js +1 -0
  67. package/assets/esri/core/workers/chunks/76a9b64fd573775bf6cd.js +1 -0
  68. package/assets/esri/core/workers/chunks/{0d2bc1be5802681666a4.js → 77859a61d059738d057f.js} +1 -1
  69. package/assets/esri/core/workers/chunks/{03a4543b94f9adeb1852.js → 7a3b05e25de2ff150f38.js} +1 -1
  70. package/assets/esri/core/workers/chunks/7bbffe07e62897928773.js +1 -0
  71. package/assets/esri/core/workers/chunks/7c292f7b181f3b93352b.js +1 -0
  72. package/assets/esri/core/workers/chunks/7c2d7df4ef4d775cd648.js +1 -0
  73. package/assets/esri/core/workers/chunks/{6d20d741b8ae1a45b422.js → 7dc2c21d61ba66a3f461.js} +1 -1
  74. package/assets/esri/core/workers/chunks/7df05c3c82cd27b77300.js +1 -0
  75. package/assets/esri/core/workers/chunks/{6c79e8e840c1d027fbb2.js → 7e0daf0864005cdd63c5.js} +1 -1
  76. package/assets/esri/core/workers/chunks/7eb94fc75926bc739233.js +1 -0
  77. package/assets/esri/core/workers/chunks/8461f50e9875db4ccfec.js +1 -0
  78. package/assets/esri/core/workers/chunks/{71e12db99589c98a4357.js → 8477b5fdd99c6ac5c27b.js} +1 -1
  79. package/assets/esri/core/workers/chunks/{be1e4c3ec53fc92a26f1.js → 8598997340682113a2a5.js} +1 -1
  80. package/assets/esri/core/workers/chunks/{2dc2487d05381de07e3f.js → 86229634bf008f53dad4.js} +1 -1
  81. package/assets/esri/core/workers/chunks/86443e47ad99e555753a.js +1 -0
  82. package/assets/esri/core/workers/chunks/8795c4895df229cb471c.js +1 -0
  83. package/assets/esri/core/workers/chunks/87a40e7f79f97ca637a9.js +1 -0
  84. package/assets/esri/core/workers/chunks/{7bc746ea17f4e336e0b0.js → 8b5ee6be52e892fbd325.js} +1 -1
  85. package/assets/esri/core/workers/chunks/{27d6ad4ca5ab8c9d62cd.js → 8c443c52c846a096a250.js} +1 -1
  86. package/assets/esri/core/workers/chunks/{86161025b53b916328ff.js → 8ca88cfc0b9f84dc5832.js} +1 -1
  87. package/assets/esri/core/workers/chunks/{340f2c996f62f7f5ceae.js → 8e7ce4835b3106349684.js} +1 -1
  88. package/assets/esri/core/workers/chunks/90b0fe5584fb6fc99766.js +1 -0
  89. package/assets/esri/core/workers/chunks/9133c1b7cc1c9da27deb.js +1 -0
  90. package/assets/esri/core/workers/chunks/{d4749eb8a47869477037.js → 9250615c78f8570a9cda.js} +1 -1
  91. package/assets/esri/core/workers/chunks/927c8ca7fd385b28a1b7.js +640 -0
  92. package/assets/esri/core/workers/chunks/92a7735973b2f82a66ce.js +1 -0
  93. package/assets/esri/core/workers/chunks/942e527b9b92999886c7.js +1 -0
  94. package/assets/esri/core/workers/chunks/94a5a834e32fc6cc6ed4.js +1 -0
  95. package/assets/esri/core/workers/chunks/986d8c3907aeeb18c4f6.js +1 -0
  96. package/assets/esri/core/workers/chunks/98e489c2b85feded7776.js +1 -0
  97. package/assets/esri/core/workers/chunks/{eb1d6614eeac6d26bb9c.js → 9a3344f1dd22c425b8cc.js} +1 -1
  98. package/assets/esri/core/workers/chunks/9a6e62ef984e9c5babc4.js +1 -0
  99. package/assets/esri/core/workers/chunks/{271e42b7cd3c3441839e.js → 9eab1e1535494ff2050d.js} +10 -22
  100. package/assets/esri/core/workers/chunks/{466c250537415f12eb59.js → a01f0ffbe555f690bdca.js} +1 -1
  101. package/assets/esri/core/workers/chunks/a03c4c0bf138734a002e.js +1 -0
  102. package/assets/esri/core/workers/chunks/a0b6eef4890cc61609dc.js +1 -0
  103. package/assets/esri/core/workers/chunks/{f37be7e517f0892014e3.js → a320c69bc7528ff0d0cf.js} +1 -1
  104. package/assets/esri/core/workers/chunks/{660713adb5a845dfa2ef.js → a40003dfe3c081d1a1d2.js} +1 -1
  105. package/assets/esri/core/workers/chunks/a814069325125466506b.js +1 -0
  106. package/assets/esri/core/workers/chunks/{e4b2120d7ee1c998b1fc.js → aa03f770178693167aa0.js} +1 -1
  107. package/assets/esri/core/workers/chunks/aea439d4c2308f88b295.js +1 -0
  108. package/assets/esri/core/workers/chunks/{7995e6983456c779adf9.js → b002304a45856b024b46.js} +1 -1
  109. package/assets/esri/core/workers/chunks/b0c242c4f5412e4cce73.js +1 -0
  110. package/assets/esri/core/workers/chunks/b44f1d08784f2e50c853.js +1 -0
  111. package/assets/esri/core/workers/chunks/b5937ce657c1fff3864f.js +1 -0
  112. package/assets/esri/core/workers/chunks/b7a0a5b895ddd2d3d038.js +1 -0
  113. package/assets/esri/core/workers/chunks/{f3161c47a572194f6017.js → c06ae3a6ecc4a4fc67b2.js} +1 -1
  114. package/assets/esri/core/workers/chunks/c1b6de0d728d25d7905a.js +1 -0
  115. package/assets/esri/core/workers/chunks/{970e91de5dfbbc247afb.js → c5b7ff8650235c464dbf.js} +1 -1
  116. package/assets/esri/core/workers/chunks/c8dedc010fcc2382af24.js +1 -0
  117. package/assets/esri/core/workers/chunks/{f8b884b529064df4a30a.js → caf80facb0322be054ab.js} +1 -1
  118. package/assets/esri/core/workers/chunks/{5a6523c903b11dea77d4.js → cdef9c3f80588ae45a04.js} +1 -1
  119. package/assets/esri/core/workers/chunks/{25d795a1697803d77e56.js → ce0e627a5e1cb78adce8.js} +1 -1
  120. package/assets/esri/core/workers/chunks/{e973cab79ec2541cb81b.js → d19600336cb6023d3e34.js} +1 -1
  121. package/assets/esri/core/workers/chunks/{10491b5b106bc5ad0b2b.js → d66f68a811c90739951a.js} +1 -1
  122. package/assets/esri/core/workers/chunks/{63378b0b4265a547656b.js → d8ec0afb2b91ccf32e55.js} +1 -1
  123. package/assets/esri/core/workers/chunks/d97c0c18202b8c578f8c.js +1 -0
  124. package/assets/esri/core/workers/chunks/da3c54e27a808f4fcc18.js +1 -0
  125. package/assets/esri/core/workers/chunks/db012650fb34c10cecd0.js +1 -0
  126. package/assets/esri/core/workers/chunks/dc6d50e1097a920ff820.js +1 -0
  127. package/assets/esri/core/workers/chunks/dce37324a2382d2eef0d.js +1 -0
  128. package/assets/esri/core/workers/chunks/e0bd550b10dd402c48f1.js +1 -0
  129. package/assets/esri/core/workers/chunks/{63513e706fe55a1def15.js → e227ae2c1a63e30e62d9.js} +1 -1
  130. package/assets/esri/core/workers/chunks/{e4c350dc65aae121171d.js → e29d182460564c2a52ad.js} +1 -1
  131. package/assets/esri/core/workers/chunks/e2ba57f7119b7182ba02.js +279 -0
  132. package/assets/esri/core/workers/chunks/e755477dc78e9d6038d4.js +1 -0
  133. package/assets/esri/core/workers/chunks/ea4057090cf15d602585.js +1 -0
  134. package/assets/esri/core/workers/chunks/ea8f642b1db933d2c26f.js +1 -0
  135. package/assets/esri/core/workers/chunks/eabd4a78221b7e733793.js +1 -0
  136. package/assets/esri/core/workers/chunks/eb16976b4eb7f1300f4a.js +1 -0
  137. package/assets/esri/core/workers/chunks/efae58f746b108163a50.js +1 -0
  138. package/assets/esri/core/workers/chunks/f0b5c140a5ba174572b6.js +1 -0
  139. package/assets/esri/core/workers/chunks/f231548c8ac7ecb59927.js +1 -0
  140. package/assets/esri/core/workers/chunks/{ce3b5b83237cf37ff523.js → f286680e363eefdf27df.js} +1 -1
  141. package/assets/esri/core/workers/chunks/f7698c855800e0af3038.js +1 -0
  142. package/assets/esri/core/workers/chunks/f931d560f3f14598f454.js +1 -0
  143. package/assets/esri/core/workers/chunks/fe2325efd0d8ad8369ed.js +1 -0
  144. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core-simd.wasm +0 -0
  145. package/assets/esri/rest/knowledgeGraph/wasmInterface/arcgis-knowledge-client-core.wasm +0 -0
  146. package/assets/esri/themes/base/widgets/_BatchAttributeForm.scss +26 -3
  147. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +4 -13
  148. package/assets/esri/themes/dark/main.css +1 -1
  149. package/assets/esri/themes/light/main.css +1 -1
  150. package/assets/esri/themes/light/view.css +1 -1
  151. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery.json +1 -1
  152. package/assets/esri/widgets/BasemapGallery/t9n/BasemapGallery_en.json +1 -1
  153. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm.json +1 -1
  154. package/assets/esri/widgets/BatchAttributeForm/t9n/BatchAttributeForm_en.json +1 -1
  155. package/chunks/GlobalIllumination.glsl.js +22 -34
  156. package/chunks/Path.glsl.js +22 -17
  157. package/config.js +1 -1
  158. package/core/screenUtils.js +1 -1
  159. package/core/typedArrayUtil.js +1 -1
  160. package/editing/templates/TemplateListing.d.ts +32 -0
  161. package/editing/templates/TemplateListing.js +2 -0
  162. package/geometry/support/DoubleArray.js +1 -1
  163. package/geometry/support/Indices.js +1 -1
  164. package/geometry/support/buffer/BufferView.js +1 -1
  165. package/geometry/support/heightModelInfoUtils.js +1 -1
  166. package/interfaces.d.ts +14 -0
  167. package/kernel.js +1 -1
  168. package/layers/AnnotationLayer.d.ts +42 -0
  169. package/layers/AnnotationLayer.js +2 -0
  170. package/layers/DimensionFeatureLayer.d.ts +36 -1
  171. package/layers/DimensionFeatureLayer.js +1 -1
  172. package/layers/DimensionLayer.d.ts +22 -0
  173. package/layers/FeatureLayer.d.ts +15 -12
  174. package/layers/FeatureLayer.js +1 -1
  175. package/layers/GaussianSplatLayer.d.ts +22 -0
  176. package/layers/LineOfSightLayer.d.ts +22 -0
  177. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  178. package/layers/PointCloudLayer.d.ts +22 -0
  179. package/layers/ViewshedLayer.d.ts +22 -0
  180. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  181. package/layers/graphics/sources/support/MemorySourceWorker.js +1 -1
  182. package/layers/support/Field.d.ts +1 -0
  183. package/layers/support/Field.js +1 -1
  184. package/layers/support/SceneModification.js +1 -1
  185. package/layers/support/types.d.ts +1 -1
  186. package/layers/types.d.ts +2 -1
  187. package/networks/support/networkFieldUtils.js +1 -1
  188. package/package.json +1 -1
  189. package/rest/support/OutDistance.js +1 -1
  190. package/rest/support/Query.d.ts +1 -0
  191. package/rest/support/Query.js +1 -1
  192. package/support/basemapEnsureType.js +1 -1
  193. package/support/revision.js +1 -1
  194. package/symbols/cim/CIMOperators.js +1 -1
  195. package/symbols/cim/CIMSymbolHelper.js +1 -1
  196. package/symbols/cim/animationUtils.js +1 -1
  197. package/symbols/cim/defaultCIMValues.js +1 -1
  198. package/symbols/cim/utils.js +1 -1
  199. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  200. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  201. package/views/2d/engine/webgl/mesh/factories/FeatureMeshFactory.js +1 -1
  202. package/views/2d/engine/webgl/mesh/factories/ResourceProxy.js +1 -1
  203. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  204. package/views/2d/engine/webgl/shaderGraph/techniques/createTestMeshData.js +1 -1
  205. package/views/2d/engine/webgl/shaderGraph/techniques/featureTechniqueUtils.js +1 -1
  206. package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
  207. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriter.js +1 -1
  208. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
  209. package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ViewInfo.js +1 -1
  210. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  211. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  212. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  213. package/views/2d/engine/webgl/util/AnnotationMatcher.js +2 -0
  214. package/views/2d/engine/webgl/util/DimensionMatcher.js +2 -0
  215. package/views/2d/engine/webgl/util/Matcher.js +1 -1
  216. package/views/2d/engine/webgl/util/createMatcher.js +1 -1
  217. package/views/2d/layerViewModuleImportUtils.js +1 -1
  218. package/views/2d/layers/AnnotationLayerView2D.js +2 -0
  219. package/views/2d/layers/{DimensionLayerView2D.js → DimensionFeatureLayerView2D.js} +1 -1
  220. package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
  221. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  222. package/views/2d/layers/RouteLayerView2D.js +1 -1
  223. package/views/2d/layers/TileLayerView2D.js +1 -1
  224. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  225. package/views/2d/layers/features/FeatureContainer.js +1 -1
  226. package/views/2d/layers/features/Processor.js +1 -1
  227. package/views/2d/layers/features/layerAdapters/AnnotationLayerAdapter.js +2 -0
  228. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  229. package/views/2d/layers/features/layerAdapters/DimensionLayerAdapter.js +1 -1
  230. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  231. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  232. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  233. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  234. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  235. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  236. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  237. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  238. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  239. package/views/2d/layers/features/sources/strategies/support/queryAdapters.js +1 -1
  240. package/views/2d/layers/features/support/FeatureMetadata.js +1 -1
  241. package/views/2d/layers/features/support/FeatureSetReaderAnnotationJSON.js +2 -0
  242. package/views/2d/layers/features/support/FeatureSetReaderDimensionJSON.js +2 -0
  243. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  244. package/views/2d/layers/support/annodime/DimensionInfo.js +2 -0
  245. package/views/2d/layers/support/annodime/DimensionMatcherSchema.js +2 -0
  246. package/views/2d/layers/support/annodime/PrivateDimensionEffect.js +2 -0
  247. package/views/2d/layers/support/annodime/PrivatePlacementMultipoint.js +2 -0
  248. package/views/2d/layers/support/annodime/annotationGraphic.js +2 -0
  249. package/views/2d/layers/support/annodime/annotationSchema.js +2 -0
  250. package/views/2d/layers/support/annodime/annotationUtils.js +2 -0
  251. package/views/2d/layers/support/annodime/cimAnnotations.js +2 -0
  252. package/views/2d/layers/support/annodime/dimensionSchema.js +2 -0
  253. package/views/2d/layers/support/annodime/dimensionSymbols.js +2 -0
  254. package/views/2d/layers/support/annodime/dimensionUtils.js +2 -0
  255. package/views/2d/layers/support/annodime/fields.js +2 -0
  256. package/views/2d/layers/support/annodime/unsupported.js +2 -0
  257. package/views/2d/layers/support/annodime/utils.js +2 -0
  258. package/views/2d/layers/support/annodime/virtualFields.js +2 -0
  259. package/views/2d/support/clippingUtils.js +1 -1
  260. package/views/2d/support/hitTestUtils.js +1 -1
  261. package/views/2d/types.d.ts +5 -1
  262. package/views/3d/analysis/ShadowCast/ShadowCastTooltip.js +1 -1
  263. package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
  264. package/views/3d/input/SceneInputManager.js +1 -1
  265. package/views/3d/layerViewModuleImportUtils.js +1 -1
  266. package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
  267. package/views/3d/layers/IntegratedMesh3DTilesLayerWorkerHandle.js +1 -1
  268. package/views/3d/layers/MapImageLayerView3D.js +1 -1
  269. package/views/3d/layers/TileLayerView3D.js +1 -1
  270. package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
  271. package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
  272. package/views/3d/layers/graphics/Graphics3DPolygonFillSymbolLayer.js +1 -1
  273. package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
  274. package/views/3d/layers/graphics/extrudeUtils.js +1 -1
  275. package/views/3d/layers/graphics/tessellationUtils.js +1 -1
  276. package/views/3d/support/engineContent/line.js +1 -1
  277. package/views/3d/support/renderInfoUtils/polygon.js +1 -1
  278. package/views/3d/terrain/isTerrainSurfaceLayer.js +1 -1
  279. package/views/3d/types.d.ts +2 -0
  280. package/views/3d/webgl-engine/collections/Component/RenderSubmitSystem.js +1 -1
  281. package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
  282. package/views/3d/webgl-engine/core/shaderLibrary/TextureBackedBufferFields.glsl.js +8 -8
  283. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathEvaluate.glsl.js +225 -0
  284. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexInfo.glsl.js +19 -0
  285. package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +55 -40
  286. package/views/3d/webgl-engine/core/shaderModules/Float2sPassUniform.js +2 -0
  287. package/views/3d/webgl-engine/core/shaderModules/IntegersPassUniform.js +2 -0
  288. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  289. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  290. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  291. package/views/3d/webgl-engine/lib/PathEvaluator.js +1 -1
  292. package/views/3d/webgl-engine/lib/PathExtruder.js +1 -1
  293. package/views/3d/webgl-engine/lib/PathGeometryData.js +1 -1
  294. package/views/3d/webgl-engine/lib/PathProfile.js +1 -1
  295. package/views/3d/webgl-engine/lib/PathVertex.js +1 -1
  296. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  297. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  298. package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBackedBufferFieldCreation.js +1 -1
  299. package/views/3d/webgl-engine/materials/PathLayouts.js +1 -1
  300. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  301. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  302. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  303. package/views/3d/webgl-engine/shaders/ditherNoise.glsl.js +18 -1
  304. package/views/PopupView.d.ts +3 -3
  305. package/views/PopupView.js +1 -1
  306. package/views/SceneView.js +1 -1
  307. package/views/View2D.d.ts +1 -1
  308. package/views/View2D.js +1 -1
  309. package/views/draw/DrawTool.d.ts +34 -1
  310. package/views/input/EventMatch.js +1 -1
  311. package/views/layers/AnnotationLayerView.d.ts +18 -0
  312. package/views/layers/AnnotationLayerView.js +2 -0
  313. package/views/layers/DimensionFeatureLayerView.d.ts +18 -0
  314. package/views/layers/DimensionFeatureLayerView.js +2 -0
  315. package/views/layers/FeatureLikeLayerView.d.ts +2 -1
  316. package/views/layers/FeatureLikeLayerView.js +1 -1
  317. package/views/layers/ImageryLayerView.js +1 -1
  318. package/views/layers/ImageryTileLayerView.js +1 -1
  319. package/views/layers/WMSLayerView.js +1 -1
  320. package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
  321. package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
  322. package/widgets/BatchAttributeForm/css.js +1 -1
  323. package/widgets/BatchAttributeForm/rendered-content/RelationshipDetails.js +2 -0
  324. package/widgets/BatchAttributeForm/templates/support/createBatchFormTemplate.js +1 -1
  325. package/widgets/BatchAttributeForm.js +1 -1
  326. package/widgets/Directions/DirectionsViewModel.js +1 -1
  327. package/widgets/Directions.js +1 -1
  328. package/widgets/FeatureForm.js +1 -1
  329. package/widgets/FeatureTable/FeatureTableViewModel.d.ts +7 -1
  330. package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
  331. package/widgets/FeatureTable/support/FeatureStore.js +1 -1
  332. package/widgets/FeatureTable/support/types.d.ts +11 -1
  333. package/widgets/FeatureTable.d.ts +7 -1
  334. package/widgets/FeatureTable.js +1 -1
  335. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  336. package/widgets/OrientedImageryViewer/css.js +1 -1
  337. package/widgets/OrientedImageryViewer.js +1 -1
  338. package/widgets/support/iconUtils.js +1 -1
  339. package/assets/esri/core/workers/chunks/0175098da590a7109539.js +0 -1
  340. package/assets/esri/core/workers/chunks/01c70c27aa3a955e2928.js +0 -262
  341. package/assets/esri/core/workers/chunks/02c0640005b09007bb70.js +0 -1
  342. package/assets/esri/core/workers/chunks/040884cec4b84dd1bb17.js +0 -1
  343. package/assets/esri/core/workers/chunks/04ea806b933d4dd41609.js +0 -1
  344. package/assets/esri/core/workers/chunks/0550dc63b6b1274242b8.js +0 -1
  345. package/assets/esri/core/workers/chunks/0c8e6ccb5a8174718d62.js +0 -640
  346. package/assets/esri/core/workers/chunks/13a8346abe5509167578.js +0 -1
  347. package/assets/esri/core/workers/chunks/13d43a0683c42b94feb6.js +0 -1
  348. package/assets/esri/core/workers/chunks/13f0e08de2dfab07d212.js +0 -1
  349. package/assets/esri/core/workers/chunks/1c0e8808d14d8e6dde2c.js +0 -1
  350. package/assets/esri/core/workers/chunks/1c8c8050d60205cf2156.js +0 -1
  351. package/assets/esri/core/workers/chunks/1ebb613bbe09fcf274d8.js +0 -1
  352. package/assets/esri/core/workers/chunks/23119a1b1310b7dab2aa.js +0 -1
  353. package/assets/esri/core/workers/chunks/282f3d364411efac7b80.js +0 -1
  354. package/assets/esri/core/workers/chunks/2b9661700743d1f9717e.js +0 -1
  355. package/assets/esri/core/workers/chunks/2f0a3b22fc46d832e240.js +0 -1
  356. package/assets/esri/core/workers/chunks/2ffffc1931b2e27c6617.js +0 -1
  357. package/assets/esri/core/workers/chunks/313a89b334e3518d30a4.js +0 -1
  358. package/assets/esri/core/workers/chunks/34c11e7c8762fe0c19fb.js +0 -1
  359. package/assets/esri/core/workers/chunks/3835097520296b0517af.js +0 -1
  360. package/assets/esri/core/workers/chunks/389e57aab12d52d72695.js +0 -1
  361. package/assets/esri/core/workers/chunks/3fed503185ea1913fb84.js +0 -1
  362. package/assets/esri/core/workers/chunks/4020f95d8131493f799e.js +0 -1
  363. package/assets/esri/core/workers/chunks/4255ad7601c7a7621b71.js +0 -1
  364. package/assets/esri/core/workers/chunks/453c3b265481c80fc625.js +0 -1
  365. package/assets/esri/core/workers/chunks/4605a68e40c5c3ac6e3e.js +0 -1
  366. package/assets/esri/core/workers/chunks/4a41f98210f1da3b5041.js +0 -1
  367. package/assets/esri/core/workers/chunks/4afe76de6e82e86fe697.js +0 -1
  368. package/assets/esri/core/workers/chunks/4b130db9b7b4e2e32ea4.js +0 -1
  369. package/assets/esri/core/workers/chunks/4c5cdd2712c938fafc5d.js +0 -1
  370. package/assets/esri/core/workers/chunks/4fa3840672c33adb9171.js +0 -1
  371. package/assets/esri/core/workers/chunks/5a85cbc04c64091d7f46.js +0 -1
  372. package/assets/esri/core/workers/chunks/5d60253ea3d247cdb3d1.js +0 -1
  373. package/assets/esri/core/workers/chunks/5e5c7cc74ff1c9603aff.js +0 -1
  374. package/assets/esri/core/workers/chunks/5ea0096a282e87a269bd.js +0 -1
  375. package/assets/esri/core/workers/chunks/601edefd8da4eb2eda28.js +0 -1
  376. package/assets/esri/core/workers/chunks/63ea9035dcf9ce45560c.js +0 -1
  377. package/assets/esri/core/workers/chunks/66fe1634c6e8f72fc653.js +0 -1
  378. package/assets/esri/core/workers/chunks/6b66a6f69aa03338c346.js +0 -1
  379. package/assets/esri/core/workers/chunks/6d59a9cf533ebc590f70.js +0 -1
  380. package/assets/esri/core/workers/chunks/6f02681bcaa9bef501fc.js +0 -1
  381. package/assets/esri/core/workers/chunks/7b66691d133dabd87ce6.js +0 -1
  382. package/assets/esri/core/workers/chunks/7c077e1a63ab97bf3e87.js +0 -1
  383. package/assets/esri/core/workers/chunks/7dc9ff66e1eceadbae24.js +0 -1
  384. package/assets/esri/core/workers/chunks/825db2ea15308ee6e5dc.js +0 -1
  385. package/assets/esri/core/workers/chunks/85a200aecc7a844c9566.js +0 -1
  386. package/assets/esri/core/workers/chunks/89250d268dc2554a9ece.js +0 -1
  387. package/assets/esri/core/workers/chunks/8c8fed53c12fb80ef2ed.js +0 -1
  388. package/assets/esri/core/workers/chunks/8ff83c59462dea6e3427.js +0 -1
  389. package/assets/esri/core/workers/chunks/958617c3a9854ea04e06.js +0 -1
  390. package/assets/esri/core/workers/chunks/9890c85a238879490926.js +0 -1
  391. package/assets/esri/core/workers/chunks/a001e7e8a39f27284d87.js +0 -1
  392. package/assets/esri/core/workers/chunks/a5b9ae4c93f9af7589f2.js +0 -1
  393. package/assets/esri/core/workers/chunks/a93a058678c8c8996d54.js +0 -1
  394. package/assets/esri/core/workers/chunks/a9c9c00432ee41ec91ba.js +0 -1
  395. package/assets/esri/core/workers/chunks/acb8cff06142f828fb78.js +0 -1
  396. package/assets/esri/core/workers/chunks/af762422a65c551dcd54.js +0 -1
  397. package/assets/esri/core/workers/chunks/b041c22885193bdd3004.js +0 -1
  398. package/assets/esri/core/workers/chunks/b3e8ab68fc38306f13c6.js +0 -1
  399. package/assets/esri/core/workers/chunks/b432a5a829e309837db6.js +0 -1
  400. package/assets/esri/core/workers/chunks/b4badbcf1bdb7823d825.js +0 -1
  401. package/assets/esri/core/workers/chunks/b891d95b7858665cd6c1.js +0 -1
  402. package/assets/esri/core/workers/chunks/bb2f6b0fcdfb8b158e26.js +0 -1
  403. package/assets/esri/core/workers/chunks/c0c693c2e0043ecba4a5.js +0 -1
  404. package/assets/esri/core/workers/chunks/c5ab346a226df1894302.js +0 -1
  405. package/assets/esri/core/workers/chunks/c91d4f1b42cfe474df52.js +0 -1
  406. package/assets/esri/core/workers/chunks/cedf3e316d6f89cf7005.js +0 -1
  407. package/assets/esri/core/workers/chunks/d33a08e5f589355c57a3.js +0 -1
  408. package/assets/esri/core/workers/chunks/d52172439db02a349542.js +0 -1
  409. package/assets/esri/core/workers/chunks/dd29fd1b3da90d3ca6b1.js +0 -1
  410. package/assets/esri/core/workers/chunks/e393fd61deb2e7f22ee6.js +0 -1
  411. package/assets/esri/core/workers/chunks/e8518bd3596543b387f8.js +0 -1
  412. package/assets/esri/core/workers/chunks/ecf4d07917efc97eb991.js +0 -1
  413. package/assets/esri/core/workers/chunks/eda51e512eff551ad858.js +0 -1
  414. package/assets/esri/core/workers/chunks/ee56290e600cbeb25a00.js +0 -1
  415. package/assets/esri/core/workers/chunks/f14e3693cd644265f909.js +0 -1
  416. package/assets/esri/core/workers/chunks/f52c6efc5a2abf5ac845.js +0 -1
  417. package/assets/esri/core/workers/chunks/f635a8e3b0bfeda99ed5.js +0 -1
  418. package/assets/esri/core/workers/chunks/f91a2c69a93295cf4de6.js +0 -1
  419. package/assets/esri/core/workers/chunks/fec3fffcf854a6226df4.js +0 -1
  420. package/symbols/dimensions/effects/LinearDimensionArrowEffect.js +0 -2
  421. package/symbols/dimensions/effects/LinearDimensionExtensionLineEffect.js +0 -2
  422. package/symbols/dimensions/effects/LinearDimensionLeaderLineEffect.js +0 -2
  423. package/symbols/dimensions/effects/LinearDimensionLineEffect.js +0 -2
  424. package/symbols/dimensions/effects/LinearDimensionPointEffect.js +0 -2
  425. package/symbols/dimensions/effects/LinearDimensionTextEffect.js +0 -2
  426. package/views/2d/layers/features/support/FeatureSetReaderDimension.js +0 -2
  427. package/views/3d/webgl-engine/effects/globalIllumination/BlueNoise.js +0 -2
  428. package/views/layers/support/dimensionUtils.js +0 -2
@@ -0,0 +1,42 @@
1
+ import type { __FeatureLayerSansType } from "./FeatureLayer.js";
2
+ import type FeatureLayer from "./FeatureLayer.js";
3
+ import type { FeatureLayerProperties } from "./FeatureLayer.js";
4
+
5
+ export interface AnnotationLayerProperties extends FeatureLayerProperties {}
6
+
7
+ export default class AnnotationLayer extends __FeatureLayerSansType {
8
+ /**
9
+ * @example
10
+ * const annotationLayer = new AnnotationLayer({
11
+ * url: "..."
12
+ * });
13
+ * @see [Client-side FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#client-side)
14
+ * @example
15
+ * // Typical usage
16
+ * // Create featurelayer from feature service
17
+ * const layer = new FeatureLayer({
18
+ * // URL to the service
19
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0"
20
+ * });
21
+ *
22
+ * // Typical usage
23
+ * // Create featurelayer from client-side graphics
24
+ * const layer = new FeatureLayer({
25
+ * source: graphics,
26
+ * fields: [{
27
+ * name: "ObjectID",
28
+ * alias: "ObjectID",
29
+ * type: "oid"
30
+ * }, {
31
+ * name: "place",
32
+ * alias: "Place",
33
+ * type: "string"
34
+ * }],
35
+ * objectIdField: "ObjectID",
36
+ * geometryType: "point"
37
+ * });
38
+ */
39
+ constructor(properties?: AnnotationLayerProperties);
40
+ /** The layer type provides a convenient way to check the type of the layer without the need to import specific layer modules. */
41
+ get type(): "annotation";
42
+ }
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import r from"../core/Error.js";import{join as o}from"../core/urlUtils.js";import{subclass as a}from"../core/accessorSupport/decorators.js";import{property as s}from"../core/accessorSupport/decorators/property.js";import n from"./FeatureLayer.js";let i=class extends n{constructor(e){super(e),this.supportedSourceTypes=new Set(["Annotation Layer","Annotation SubLayer"]),this.type="annotation",this._dataElementPromise=null}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const a=o(this.url,"queryDataElements"),s={f:"json",layers:this.layerId};return this._dataElementPromise=t(a,{...e,responseType:"json",query:s}).then(e=>{const t=e.data.layerDataElements,o=this.layerId,a=t.find(e=>e.layerId===o);if(!a)throw new r("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return a.dataElement}),this._dataElementPromise}};e([s({json:{read:!1},value:"annotation",readOnly:!0})],i.prototype,"type",void 0),i=e([a("esri.layers.AnnotationLayer")],i);const l=i;export{l as default};
@@ -1,7 +1,42 @@
1
1
  import type { __FeatureLayerSansType } from "./FeatureLayer.js";
2
2
  import type FeatureLayer from "./FeatureLayer.js";
3
+ import type { FeatureLayerProperties } from "./FeatureLayer.js";
3
4
 
4
- export default abstract class DimensionFeatureLayer extends __FeatureLayerSansType {
5
+ export interface DimensionFeatureLayerProperties extends FeatureLayerProperties {}
6
+
7
+ export default class DimensionFeatureLayer extends __FeatureLayerSansType {
8
+ /**
9
+ * @example
10
+ * const dimensionFeatureLayer = new DimensionFeatureLayer({
11
+ * url: "..."
12
+ * });
13
+ * @see [Client-side FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#client-side)
14
+ * @example
15
+ * // Typical usage
16
+ * // Create featurelayer from feature service
17
+ * const layer = new FeatureLayer({
18
+ * // URL to the service
19
+ * url: "https://sampleserver6.arcgisonline.com/arcgis/rest/services/USA/MapServer/0"
20
+ * });
21
+ *
22
+ * // Typical usage
23
+ * // Create featurelayer from client-side graphics
24
+ * const layer = new FeatureLayer({
25
+ * source: graphics,
26
+ * fields: [{
27
+ * name: "ObjectID",
28
+ * alias: "ObjectID",
29
+ * type: "oid"
30
+ * }, {
31
+ * name: "place",
32
+ * alias: "Place",
33
+ * type: "string"
34
+ * }],
35
+ * objectIdField: "ObjectID",
36
+ * geometryType: "point"
37
+ * });
38
+ */
39
+ constructor(properties?: DimensionFeatureLayerProperties);
5
40
  /** The layer type provides a convenient way to check the type of the layer without the need to import specific layer modules. */
6
41
  get type(): "dimension-feature";
7
42
  }
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{subclass as r}from"../core/accessorSupport/decorators.js";import{property as o}from"../core/accessorSupport/decorators/property.js";import t from"./FeatureLayer.js";let s=class extends t{constructor(){super(...arguments),this.type="dimension-feature",this.supportedSourceTypes=new Set(["Dimension Layer"])}};e([o({json:{read:!1},value:"dimension-feature",readOnly:!0})],s.prototype,"type",void 0),s=e([r("esri.layers.DimensionFeatureLayer")],s);const p=s;export{p as default};
2
+ import{__decorate as e}from"tslib";import r from"../request.js";import t from"../core/Error.js";import{join as o}from"../core/urlUtils.js";import{subclass as s}from"../core/accessorSupport/decorators.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import i from"./FeatureLayer.js";let n=class extends i{constructor(e){super(e),this.supportedSourceTypes=new Set(["Dimension Layer","Dimension SubLayer"]),this.type="dimension-feature",this._dataElementPromise=null}async fetchDataElement(e){if(this._dataElementPromise)return this._dataElementPromise;if(!this.url)throw new Error("InternalError: A URL is required to retrieve the data element for this layer.");const s=o(this.url,"queryDataElements"),a={f:"json",layers:this.layerId};return this._dataElementPromise=r(s,{...e,responseType:"json",query:a}).then(e=>{const r=e.data.layerDataElements,o=this.layerId,s=r.find(e=>e.layerId===o);if(!s)throw new t("fetchDataElement:not-available","A data element for this layer could not be retrieved.");return s.dataElement}),this._dataElementPromise}};e([a({json:{read:!1},value:"dimension-feature",readOnly:!0})],n.prototype,"type",void 0),n=e([s("esri.layers.DimensionFeatureLayer")],n);const l=n;export{l as default};
@@ -117,6 +117,28 @@ export default class DimensionLayer extends DimensionLayerSuperclass {
117
117
  * });
118
118
  */
119
119
  get fullExtent(): Extent | null | undefined;
120
+ /**
121
+ * The opacity of the layer. This value can range between `1` and `0`, where `0` is 100 percent
122
+ * transparent and `1` is completely opaque.
123
+ *
124
+ * > [!WARNING]
125
+ * >
126
+ * > **Known Limitations**
127
+ * >
128
+ * > In a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/), modifying opacity is not supported for
129
+ * > [DimensionLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionLayer/),
130
+ * > [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/),
131
+ * > [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/),
132
+ * > [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
133
+ * > [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
134
+ * > [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/), and [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/).
135
+ *
136
+ * @default 1
137
+ * @example
138
+ * // Makes the layer 50% transparent
139
+ * layer.opacity = 0.5;
140
+ */
141
+ get opacity(): number;
120
142
  /**
121
143
  * The [DimensionAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/DimensionAnalysis/) associated with the layer that stores the dimension shapes.
122
144
  * Assigning a null value will create a new empty analysis.
@@ -20,7 +20,6 @@ import type AttributeTableTemplate from "../tables/AttributeTableTemplate.js";
20
20
  import type { ClonableMixin } from "../core/Clonable.js";
21
21
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
22
22
  import type { MultiOriginJSONSupportMixin } from "../core/MultiOriginJSONSupport.js";
23
- import type { debounce } from "../core/promiseUtils.js";
24
23
  import type { EditOptions, Edits, EditsResult, FeatureEditResult } from "../editing/types.js";
25
24
  import type { LayerEvents, LayerProperties } from "./Layer.js";
26
25
  import type { LayerSaveAsOptions, LayerSaveOptions, FeatureTitleOptions } from "./types.js";
@@ -68,7 +67,7 @@ import type { SimpleRendererProperties } from "../renderers/SimpleRenderer.js";
68
67
  import type { FeatureTemplateProperties } from "./support/FeatureTemplate.js";
69
68
  import type { FeatureTypeProperties } from "./support/FeatureType.js";
70
69
 
71
- export interface FeatureLayerProperties extends LayerProperties, APIKeyMixinProperties, CustomParametersMixinProperties, PortalLayerProperties, OperationalLayerProperties, RefreshableLayerProperties, ScaleRangeLayerProperties, TrackableLayerProperties, TemporalLayerProperties, OrderedLayerProperties, BlendLayerProperties, DisplayFilteredLayerProperties, PublishableLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, FeatureLayerBaseProperties, Partial<Pick<FeatureLayer, "charts" | "editingEnabled" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled" | "reload" | "screenSizePerspectiveEnabled" | "typeIdField" | "uniqueIdFields">> {
70
+ export interface FeatureLayerProperties extends LayerProperties, APIKeyMixinProperties, CustomParametersMixinProperties, PortalLayerProperties, OperationalLayerProperties, RefreshableLayerProperties, ScaleRangeLayerProperties, TrackableLayerProperties, TemporalLayerProperties, OrderedLayerProperties, BlendLayerProperties, DisplayFilteredLayerProperties, PublishableLayerProperties, FeatureEffectLayerProperties, FeatureReductionLayerProperties, FeatureLayerBaseProperties, Partial<Pick<FeatureLayer, "charts" | "editingEnabled" | "labelsVisible" | "legendEnabled" | "outFields" | "popupEnabled" | "screenSizePerspectiveEnabled" | "typeIdField" | "uniqueIdFields">> {
72
71
  /**
73
72
  * This property is used to configure the associated layer's [Feature Table](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-feature-table/). It is meant to configure how the columns display within the table in regard to visibility, column order, and sorting.
74
73
  *
@@ -1162,15 +1161,6 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1162
1161
  * layer.refreshInterval = 1;
1163
1162
  */
1164
1163
  accessor refreshInterval: number;
1165
- /**
1166
- * Reloads the schema of the layer and the properties from the [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#portalItem) and feature service.
1167
- *
1168
- * Returns `true` when the layer was updated with data from the portal item and service.
1169
- * Returns `false` when the layer wasn't updated, isn't loaded, or made of client-side features.
1170
- *
1171
- * @since 5.1
1172
- */
1173
- reload: ReturnType<typeof debounce>;
1174
1164
  /**
1175
1165
  * Indicates if the layer is in the process of reloading its properties and schema, after a call to `reload()`.
1176
1166
  *
@@ -1179,7 +1169,7 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1179
1169
  *
1180
1170
  * @default false
1181
1171
  * @since 5.1
1182
- * @see [reload](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#reload)
1172
+ * @see [reload()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#reload)
1183
1173
  * @example
1184
1174
  * layer.reload();
1185
1175
  *
@@ -2160,6 +2150,19 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
2160
2150
  * @see [refresh event](https://developers.arcgis.com/javascript/latest/references/core/layers/mixins/RefreshableLayer/#event-refresh)
2161
2151
  */
2162
2152
  refresh(): void;
2153
+ /**
2154
+ * Reloads the schema of the layer and the properties from the [portalItem](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#portalItem) and feature service.
2155
+ *
2156
+ * Returns `true` when the layer is successfully updated with data from the portal item or service.
2157
+ * Returns `false` when the layer is not updated, not loaded, or composed of client-side features.
2158
+ *
2159
+ * This method is debounced to prevent redundant, concurrent network requests.
2160
+ * If called while an update is already in progress, a single subsequent execution is queued,
2161
+ * and any other intermediate calls are discarded.
2162
+ *
2163
+ * @since 5.1
2164
+ */
2165
+ reload(): Promise<boolean>;
2163
2166
  /**
2164
2167
  * Saves the layer to its existing portal item in the [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/)
2165
2168
  * authenticated within the user's current session. If the layer is not saved to a
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import o from"../request.js";import{ClonableMixin as s}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p,abortHandle as u}from"../core/handleUtils.js";import{clone as d}from"../core/lang.js";import y from"../core/Logger.js";import{destroyMaybe as c}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as m}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as h}from"../core/object.js";import{debounce as f,throwIfAbortError as b,whenOrAbort as g,onAbort as w}from"../core/promiseUtils.js";import{sqlAnd as v}from"../core/sql.js";import{property as F,subclass as T}from"../core/accessorSupport/decorators.js";import{excludeTables as j}from"../core/accessorSupport/layerContainerType.js";import S from"../form/FormTemplate.js";import I from"../geometry/SpatialReference.js";import E from"../graphic/FeatureGraphicOrigin.js";import L from"./Layer.js";import{MemorySource as D}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as _}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{BlendLayer as P}from"./mixins/BlendLayer.js";import{CustomParametersMixin as O}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as x}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as q}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as M}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as A}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as Q}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as R}from"./mixins/OperationalLayer.js";import{OrderedLayer as U}from"./mixins/OrderedLayer.js";import{PortalLayer as V}from"./mixins/PortalLayer.js";import{PublishableLayer as N}from"./mixins/PublishableLayer.js";import{RefreshableLayer as G}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as J}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as B}from"./mixins/TemporalLayer.js";import{TrackableLayer as W}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as H,parse as Z,cleanTitle as $}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as k,id as z,labelsVisible as K,opacityDrawingInfo as X,legendEnabled as Y,listMode as ee,popupEnabled as te,screenSizePerspectiveEnabled as re}from"./support/commonProperties.js";import{ensureLayerCredential as ie,computeEffectiveEditingEnabled as oe,readGlobalIdField as se,readObjectIdField as ae,createDefaultRenderer as ne,addAttachment as le,updateAttachment as pe,applyEdits as ue,uploadAssets as de,createQuery as ye,deleteAttachments as ce,fetchRecomputedExtents as me,getFeatureType as he,getFieldDomain as fe,queryAttachments as be,queryObjectIds as ge,queryFeatureCount as we,queryExtent as ve,queryRelatedFeatures as Fe,queryRelatedFeaturesCount as Te,validateBinsQuery as je,hasDataChanged as Se,geometryTypeKebabDict as Ie}from"./support/featureLayerUtils.js";import Ee from"./support/FeatureTemplate.js";import Le from"./support/FeatureType.js";import De from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as _e,fieldConfigurationsFromPopupTemplate as Ce,fieldConfigurationsFromFields as Pe}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Oe}from"./support/fieldProperties.js";import{fixRendererFields as xe,fixTimeInfoFields as qe}from"./support/fieldUtils.js";import Me from"./support/LabelClass.js";import{reader as Ae}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Qe}from"./support/serviceCapabilitiesUtils.js";import Re from"./support/SymbolLayerDrawing.js";import Ue from"./support/TimeInfo.js";import Ve from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Ne}from"./support/versionUtils.js";import{read as Ge}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Je}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Be,rendererTypes as We}from"../renderers/support/typeUtils.js";import He from"../rest/layerSources/DynamicDataLayer.js";import Ze from"../rest/support/FeatureSet.js";import $e from"../rest/support/Query.js";import{isNumber as ke}from"../support/guards.js";import{createPopupTemplate as ze}from"../support/popupUtils.js";import{symbolTypes as Ke}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Xe}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as Ye}from"../webdoc/support/unsupportedErrors.js";import{reader as et}from"../core/accessorSupport/decorators/reader.js";import{writer as tt}from"../core/accessorSupport/decorators/writer.js";const rt="FeatureLayer";function it(e){return e&&e instanceof a}const ot=Oe();function st(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let at=class extends(A(Q(M(N(q(x(P(U(B(W(J(G(C(R(V(m(O(_(s(L)))))))))))))))))))){constructor(...e){super(...e),this.reload=f(async()=>{if(this.destroyed||!this.loaded||this._hasMemorySource())return!1;const e=new AbortController,t=u(e);this.addHandles(t,"reload"),this._set("reloading",!0);try{const t=await this.reloadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]});return t&&(this.sourceJSON=null,await this.initLayerProperties(await this.createGraphicsSource(e.signal))),e.signal.throwIfAborted(),t}finally{this.removeHandles("reload"),this._set("reloading",!1)}}),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new E(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.symbolLayerDrawing=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.reloading=!1,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=I.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=f(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(b).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new n("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>ie(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return c(e),new Ve({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Qe(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return oe(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=_e(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Ce(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&h(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return se(t.layerDefinition||t)}readObjectIdField(e,t){return ae(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){xe(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Ge(i,t,r)??void 0;return e||y.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return ne(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof a)&&(e=new D({layer:this,items:e})),it(t)&&this._resetMemorySource(t),it(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ze.fromJSON(t.featureSet);return new D({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>Ee.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?H(this.url,r):r;let e=r;if(!e&&this.url){const t=Z(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),$(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Le.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await le(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await pe(this,e,t,r,rt);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return ue(this,e,t)}async uploadAssets(e,t){return de(this,e,t)}createFieldConfigurations(){return Pe(this)}createPopupTemplate(e){return ze(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{if(this._hasMemorySource()&&this.source)return this.source.load({signal:r});const{default:t}=await g(import("./graphics/sources/FeatureLayerSource.js"),r),o=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(w(r,()=>o.cancelLoad())??p()),!1);return await o.load({signal:r}),o}catch(o){i.error=o,i.hasError=!0}finally{t(i)}}createQuery(){const e=ye(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=v(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ce(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return me(this,e,rt)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return he(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return fe(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return be(this,e,t,rt)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures($e.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ge(this,e,t,rt)}async queryFeatureCount(e,t){return we(this,e,t,rt)}async queryExtent(e,t){return ve(this,e,t,rt)}async queryRelatedFeatures(e,t){return Fe(this,e,t,rt)}async queryRelatedFeaturesCount(e,t){return Te(this,e,t,rt)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new n(rt,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),s=await r.queryPivot(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),s=await r.queryTopFeatures(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new n(rt,"Layer source does not support queryAttributeBins capability");je(e,i,rt);const o=await import("../rest/support/AttributeBinsQuery.js"),s=await r.queryAttributeBins(o.default.from(e),t),a=this.graphicOrigin;if(s.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(ke)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone","uniqueIdFields"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return Ye(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return Ye(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return Ye(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return Ye(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new n(rt,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Ne(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";h("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return o(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),xe(this.renderer,this.fieldsIndex),qe(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Je(this,{origin:"service"})}async hasDataChanged(){return Se(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new n("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new n("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};r([F({clonable:!1,readOnly:!0})],at.prototype,"_titleCreator",null),r([F(k)],at.prototype,"attributeTableTemplate",void 0),r([et("service","capabilities")],at.prototype,"readCapabilities",null),r([F({json:{origins:{"web-scene":{write:!1}},write:!0}})],at.prototype,"charts",void 0),r([F({readOnly:!0})],at.prototype,"createQueryVersion",null),r([F({json:{read:{source:"layerDefinition.copyrightText"}}})],at.prototype,"copyright",void 0),r([F({json:{read:{source:"layerDefinition.displayField"}}})],at.prototype,"displayField",void 0),r([F({types:Ke,readOnly:!0})],at.prototype,"defaultSymbol",void 0),r([F({type:He})],at.prototype,"dynamicDataSource",void 0),r([F({type:Boolean})],at.prototype,"editingEnabled",null),r([et(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],at.prototype,"readEditingEnabled",null),r([et("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],at.prototype,"readEditingEnabledFromWebMap",null),r([tt(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabled",null),r([tt("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabledToWebMap",null),r([F({readOnly:!0})],at.prototype,"effectiveEditingEnabled",null),r([F({clonable:!1,readOnly:!0})],at.prototype,"featureTitleFields",null),r([F({type:[De],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],at.prototype,"fieldConfigurations",null),r([F({...ot.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:st}}}}})],at.prototype,"fields",void 0),r([F(ot.fieldsIndex)],at.prototype,"fieldsIndex",void 0),r([F({type:S,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],at.prototype,"formTemplate",void 0),r([F({json:{read:{source:"layerDefinition.extent"}}})],at.prototype,"fullExtent",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:st,writer(e,t,r){const i=e?Ie.toJSON(e):null;i&&h(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Ie.read}}})],at.prototype,"geometryType",void 0),r([F({readOnly:!0,clonable:!1})],at.prototype,"graphicOrigin",void 0),r([F({json:{read:{source:"layerDefinition.hasM"}}})],at.prototype,"hasM",void 0),r([F({json:{read:{source:"layerDefinition.hasZ"}}})],at.prototype,"hasZ",void 0),r([F(z)],at.prototype,"id",void 0),r([F({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],at.prototype,"infoFor3D",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],at.prototype,"isTable",void 0),r([et("service","isTable",["type","geometryType"]),et("isTable",["layerDefinition.type","layerDefinition.geometryType"])],at.prototype,"readIsTable",null),r([tt("web-map","isTable")],at.prototype,"writeIsTable",null),r([F(K)],at.prototype,"labelsVisible",void 0),r([F({type:[Me],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ae,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ae,write:{layerContainerTypes:j}}})],at.prototype,"labelingInfo",void 0),r([F({type:Re,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],at.prototype,"symbolLayerDrawing",void 0),r([F((()=>{const e=d(X);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){h(r,Xe(e),t)}}},e})())],at.prototype,"opacity",void 0),r([F(Y)],at.prototype,"legendEnabled",void 0),r([F({type:["show","hide"],json:(()=>{const e=d(ee.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],at.prototype,"listMode",void 0),r([et("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],at.prototype,"readGlobalIdField",null),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:st}}}}})],at.prototype,"objectIdField",void 0),r([et("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],at.prototype,"readObjectIdField",null),r([F({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:j}}})],at.prototype,"operationalLayerType",void 0),r([F(ot.outFields)],at.prototype,"outFields",void 0),r([F({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],at.prototype,"path",void 0),r([F(te)],at.prototype,"popupEnabled",void 0),r([F({type:i,json:{name:"popupInfo",write:!0}})],at.prototype,"popupTemplate",void 0),r([tt("popupTemplate")],at.prototype,"writePopupTemplate",null),r([F({readOnly:!0})],at.prototype,"defaultPopupTemplate",null),r([F({types:We,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Be,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:j,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}})],at.prototype,"renderer",null),r([et("service","renderer",["drawingInfo.renderer","defaultSymbol"]),et("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],at.prototype,"readRenderer",null),r([F()],at.prototype,"resourceInfo",void 0),r([F((()=>{const e=d(re);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],at.prototype,"screenSizePerspectiveEnabled",void 0),r([F({clonable:!1})],at.prototype,"source",null),r([et("portal-item","source",["featureSet"]),et("web-map","source",["featureSet"])],at.prototype,"readSource",null),r([F({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],at.prototype,"spatialReference",void 0),r([F({type:Number})],at.prototype,"subtypeCode",void 0),r([F({readOnly:!1})],at.prototype,"subtypeField",void 0),r([F({readOnly:!1})],at.prototype,"subtypes",void 0),r([F({type:[Ee]})],at.prototype,"templates",void 0),r([et("templates",["editFieldsInfo","creatorField","editorField","templates"])],at.prototype,"readTemplates",null),r([F({type:Ue})],at.prototype,"timeInfo",void 0),r([F()],at.prototype,"title",void 0),r([et("service","title",["name"]),et("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],at.prototype,"readTitle",null),r([et("web-map","title",["layerDefinition.name","title"])],at.prototype,"readTitleFromWebMap",null),r([F({type:String})],at.prototype,"sublayerTitleMode",void 0),r([F({json:{read:!1}})],at.prototype,"type",void 0),r([F({type:String})],at.prototype,"typeIdField",void 0),r([et("service","typeIdField"),et("typeIdField",["layerDefinition.typeIdField"])],at.prototype,"readTypeIdField",null),r([F({type:[Le]})],at.prototype,"types",void 0),r([et("service","types",["types"]),et("types",["layerDefinition.types"])],at.prototype,"readTypes",null),r([F({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:j}}}}})],at.prototype,"visible",void 0),r([et("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],at.prototype,"readVisible",null),at=r([T("esri.layers.FeatureLayer")],at);export{at as default};
2
+ import{__addDisposableResource as e,__disposeResources as t,__decorate as r}from"tslib";import i from"../PopupTemplate.js";import o from"../request.js";import{ClonableMixin as s}from"../core/Clonable.js";import a from"../core/Collection.js";import n from"../core/Error.js";import{disposable as l,makeHandle as p,abortHandle as u}from"../core/handleUtils.js";import{clone as d}from"../core/lang.js";import y from"../core/Logger.js";import{destroyMaybe as c}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as m}from"../core/MultiOriginJSONSupport.js";import{setDeepValue as h}from"../core/object.js";import{debounce as f,throwIfAbortError as b,whenOrAbort as g,onAbort as w}from"../core/promiseUtils.js";import{sqlAnd as v}from"../core/sql.js";import{property as F,subclass as T}from"../core/accessorSupport/decorators.js";import{excludeTables as j}from"../core/accessorSupport/layerContainerType.js";import S from"../form/FormTemplate.js";import I from"../geometry/SpatialReference.js";import E from"../graphic/FeatureGraphicOrigin.js";import L from"./Layer.js";import{MemorySource as D}from"./graphics/sources/MemorySource.js";import{APIKeyMixin as _}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{BlendLayer as P}from"./mixins/BlendLayer.js";import{CustomParametersMixin as O}from"./mixins/CustomParametersMixin.js";import{DisplayFilteredLayer as x}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as q}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as M}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as A}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as R}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as Q}from"./mixins/OperationalLayer.js";import{OrderedLayer as U}from"./mixins/OrderedLayer.js";import{PortalLayer as V}from"./mixins/PortalLayer.js";import{PublishableLayer as N}from"./mixins/PublishableLayer.js";import{RefreshableLayer as G}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as J}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as B}from"./mixins/TemporalLayer.js";import{TrackableLayer as W}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as H,parse as Z,cleanTitle as $}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as k,id as z,labelsVisible as K,opacityDrawingInfo as X,legendEnabled as Y,listMode as ee,popupEnabled as te,screenSizePerspectiveEnabled as re}from"./support/commonProperties.js";import{ensureLayerCredential as ie,computeEffectiveEditingEnabled as oe,readGlobalIdField as se,readObjectIdField as ae,createDefaultRenderer as ne,addAttachment as le,updateAttachment as pe,applyEdits as ue,uploadAssets as de,createQuery as ye,deleteAttachments as ce,fetchRecomputedExtents as me,getFeatureType as he,getFieldDomain as fe,queryAttachments as be,queryObjectIds as ge,queryFeatureCount as we,queryExtent as ve,queryRelatedFeatures as Fe,queryRelatedFeaturesCount as Te,validateBinsQuery as je,hasDataChanged as Se,geometryTypeKebabDict as Ie}from"./support/featureLayerUtils.js";import Ee from"./support/FeatureTemplate.js";import Le from"./support/FeatureType.js";import De from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as _e,fieldConfigurationsFromPopupTemplate as Ce,fieldConfigurationsFromFields as Pe}from"./support/fieldConfigUtils.js";import{defineFieldProperties as Oe}from"./support/fieldProperties.js";import{fixRendererFields as xe,fixTimeInfoFields as qe}from"./support/fieldUtils.js";import Me from"./support/LabelClass.js";import{reader as Ae}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Re}from"./support/serviceCapabilitiesUtils.js";import Qe from"./support/SymbolLayerDrawing.js";import Ue from"./support/TimeInfo.js";import Ve from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Ne}from"./support/versionUtils.js";import{read as Ge}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Je}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as Be,rendererTypes as We}from"../renderers/support/typeUtils.js";import He from"../rest/layerSources/DynamicDataLayer.js";import Ze from"../rest/support/FeatureSet.js";import $e from"../rest/support/Query.js";import{isNumber as ke}from"../support/guards.js";import{createPopupTemplate as ze}from"../support/popupUtils.js";import{symbolTypes as Ke}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Xe}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as Ye}from"../webdoc/support/unsupportedErrors.js";import{reader as et}from"../core/accessorSupport/decorators/reader.js";import{writer as tt}from"../core/accessorSupport/decorators/writer.js";const rt="FeatureLayer";function it(e){return e&&e instanceof a}const ot=Oe();function st(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let at=class extends(A(R(M(N(q(x(P(U(B(W(J(G(C(Q(V(m(O(_(s(L)))))))))))))))))))){constructor(...e){super(...e),this._debounceReload=f(async()=>{if(this.destroyed||!this.loaded||this._hasMemorySource())return!1;const e=new AbortController,t=u(e);this.addHandles(t,"reload"),this._set("reloading",!0);try{const t=await this.reloadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]});return t&&(this.sourceJSON=null,await this.initLayerProperties(await this.createGraphicsSource(e.signal))),e.signal.throwIfAborted(),t}finally{this.removeHandles("reload"),this._set("reloading",!1)}}),this.attributeTableTemplate=null,this.charts=null,this.copyright=null,this.displayField=null,this.dynamicDataSource=null,this.fields=null,this.fieldsIndex=null,this.formTemplate=null,this.fullExtent=null,this.geometryType=null,this.graphicOrigin=new E(this),this.hasM=void 0,this.hasZ=void 0,this.infoFor3D=null,this.isTable=!1,this.labelsVisible=!0,this.labelingInfo=null,this.symbolLayerDrawing=null,this.legendEnabled=!0,this.objectIdField=null,this.operationalLayerType="ArcGISFeatureLayer",this.outFields=null,this.path=null,this.popupEnabled=!0,this.popupTemplate=null,this.reloading=!1,this.resourceInfo=null,this.screenSizePerspectiveEnabled=!0,this.spatialReference=I.WGS84,this.subtypeCode=null,this.subtypeField=null,this.subtypes=null,this.supportedSourceTypes=new Set(["Feature Layer","Oriented Imagery Layer","Table","Catalog Layer"]),this.templates=null,this.timeInfo=null,this.title=null,this.sublayerTitleMode="item-title",this.type="feature",this.typeIdField=null,this.types=null,this.visible=!0,this._debouncedSaveOperations=f(async(e,t,r)=>{const{save:i,saveAs:o}=await import("./save/featureLayerUtils.js");switch(e){case 0:return i(this,t);case 1:return o(this,r,t)}})}destroy(){this.source?.destroy()}normalizeCtorArgs(e,t){return"string"==typeof e?{url:e,...t}:e}load(e){const t=null!=e?e.signal:null;if(this.portalItem?.loaded&&this.source)return this.addResolvingPromise(this.createGraphicsSource(t).then(e=>this.initLayerProperties(e))),Promise.resolve(this);const r=this.loadFromPortal({supportedTypes:["Feature Service","Feature Collection","Scene Service"]},e).catch(b).then(async()=>{if(this.url&&null==this.layerId&&/FeatureServer|MapServer\/*$/i.test(this.url)){const e=await this._fetchFirstValidLayerId(t);null!=e&&(this.layerId=e)}if(!this.url&&!this._hasMemorySource())throw new n("feature-layer:missing-url-or-source","Feature layer must be created with either a url or a source");return this.initLayerProperties(await this.createGraphicsSource(t))}).then(()=>ie(this,"load",e));return this.addResolvingPromise(r),Promise.resolve(this)}reload(){return this._debounceReload()}get _titleCreator(){const e=this._get("_titleCreator");return c(e),new Ve({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,fields:this.fields,displayField:this.displayField,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}readCapabilities(e,t){return t=t.layerDefinition||t,Re(t,this.url)}get createQueryVersion(){return this.commitProperty("definitionExpression"),this.commitProperty("dynamicDataSource"),this.commitProperty("timeExtent"),this.commitProperty("timeOffset"),this.commitProperty("geometryType"),this.commitProperty("gdbVersion"),this.commitProperty("historicMoment"),this.commitProperty("returnZ"),this.commitProperty("capabilities"),this.commitProperty("returnM"),(this._get("createQueryVersion")??0)+1}get editingEnabled(){return!(this.loaded&&!this.capabilities?.operations.supportsEditing)&&(this._isOverridden("editingEnabled")?this._get("editingEnabled"):this._hasMemorySource()||this.userHasEditingPrivileges)}set editingEnabled(e){this._overrideIfSome("editingEnabled",e)}readEditingEnabled(e,t){return this._readEditingEnabled(t,!1)}readEditingEnabledFromWebMap(e,t,r){return this._readEditingEnabled(t,!0,r)}writeEditingEnabled(e,t){this._writeEditingEnabled(e,t,!1)}writeEditingEnabledToWebMap(e,t,r,i){this._writeEditingEnabled(e,t,!0,i)}get effectiveEditingEnabled(){return oe(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=_e(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Ce(this)||null}readIsTable(e,t){return"Table"===(t=t?.layerDefinition??t).type||!t.geometryType}writeIsTable(e,t,r,i){i?.writeLayerSchema&&h(r,e?"Table":"Feature Layer",t)}readGlobalIdField(e,t){return se(t.layerDefinition||t)}readObjectIdField(e,t){return ae(t.layerDefinition||t)}writePopupTemplate(e,t,r,i){e&&(t[r]=e.toJSON({...i,writeFieldFormat:!i?.writeLayerSchema}))}get defaultPopupTemplate(){return this.createPopupTemplate()}set renderer(e){xe(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Ge(i,t,r)??void 0;return e||y.getLogger(this).error("Failed to create renderer",{rendererDefinition:t.drawingInfo.renderer,layer:this,context:r}),e}return ne(t,r)}get source(){return this._get("source")}set source(e){e||(e=null);const t=this._get("source");t!==e&&((Array.isArray(e)||e instanceof a)&&(e=new D({layer:this,items:e})),it(t)&&this._resetMemorySource(t),it(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=Ze.fromJSON(t.featureSet);return new D({layer:this,items:r?.features??[]})}readTemplates(e,t){const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e=e?.map(e=>Ee.fromJSON(e)),this._fixTemplates(e,i),this._fixTemplates(e,o),e}readTitle(e,t){const r=t.layerDefinition?.name??t.name,i=t.title||t.layerDefinition?.title;if(r){if("item-title"===this.sublayerTitleMode)return this.url?H(this.url,r):r;let e=r;if(!e&&this.url){const t=Z(this.url);null!=t&&(e=t.title)}if(!e)return;const t=this.portalItem?.title;return"item-title-and-service-name"===this.sublayerTitleMode&&t&&t!==e&&(e=t+" - "+e),$(e)}if("item-title"===this.sublayerTitleMode&&i)return i}readTitleFromWebMap(e,t){return t.title||t.layerDefinition?.name}readTypeIdField(e,t){let r=(t=t.layerDefinition||t).typeIdField;if(r&&t.fields){r=r.toLowerCase();const e=t.fields.find(e=>e.name.toLowerCase()===r);e&&(r=e.name)}return r}readTypes(e,t){e=(t=t.layerDefinition||t).types;const r=t.editFieldsInfo,i=r?.creatorField,o=r?.editorField;return e?.map(e=>(e=Le.fromJSON(e),this._fixTemplates(e.templates,i),this._fixTemplates(e.templates,o),e))}readVisible(e,t){return null!=t.layerDefinition?.defaultVisibility?!!t.layerDefinition.defaultVisibility:null!=t.visibility?!!t.visibility:void 0}async addAttachment(e,t){const r=await le(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await pe(this,e,t,r,rt);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return ue(this,e,t)}async uploadAssets(e,t){return de(this,e,t)}createFieldConfigurations(){return Pe(this)}createPopupTemplate(e){return ze(this,e)}async createGraphicsSource(r){const i={stack:[],error:void 0,hasError:!1};try{if(this._hasMemorySource()&&this.source)return this.source.load({signal:r});const{default:t}=await g(import("./graphics/sources/FeatureLayerSource.js"),r),o=new t({layer:this,supportedSourceTypes:this.supportedSourceTypes});e(i,l(w(r,()=>o.cancelLoad())??p()),!1);return await o.load({signal:r}),o}catch(o){i.error=o,i.hasError=!0}finally{t(i)}}createQuery(){const e=ye(this);e.dynamicDataSource=this.dynamicDataSource;const t=null!=this.subtypeCode?`${this.subtypeField} = ${this.subtypeCode}`:null,r=v(this.definitionExpression,t);return e.where=r||"1=1",e}async deleteAttachments(e,t){const r=await ce(this,e,t,rt);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return me(this,e,rt)}async getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}async getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getFeatureType(e){return he(this.types,this.typeIdField,e)}getFieldAlias(e){const t=this.getField(e);if(t)return this.getFieldConfiguration(t.name)?.alias||t.alias}getFieldConfiguration(e){return e=e.toLowerCase(),this.fieldConfigurations?.find(t=>t.name.toLowerCase()===e)}getFieldDomain(e,t){return fe(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return be(this,e,t,rt)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures($e.from(e)??r.createQuery(),t),o=this.graphicOrigin;if(i?.features)for(const s of i.features)s.layer=s.sourceLayer=r,s.origin=o;return i}async queryObjectIds(e,t){return await ge(this,e,t,rt)}async queryFeatureCount(e,t){return we(this,e,t,rt)}async queryExtent(e,t){return ve(this,e,t,rt)}async queryRelatedFeatures(e,t){return Fe(this,e,t,rt)}async queryRelatedFeaturesCount(e,t){return Te(this,e,t,rt)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new n(rt,"Layer source does not support queryPivot capability");const o=await import("../rest/support/PivotQuery.js"),s=await r.queryPivot(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopFeatures(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopFeatures||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopFeatures capability");const o=await import("../rest/support/TopFeaturesQuery.js"),s=await r.queryTopFeatures(o.default.from(e),t),a=this.graphicOrigin;if(s?.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryAttributeBins(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryAttributeBins)throw new n(rt,"Layer source does not support queryAttributeBins capability");je(e,i,rt);const o=await import("../rest/support/AttributeBinsQuery.js"),s=await r.queryAttributeBins(o.default.from(e),t),a=this.graphicOrigin;if(s.features)for(const n of s.features)n.layer=n.sourceLayer=this,n.origin=a;return s}async queryTopObjectIds(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopObjectIds||!i?.query.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopObjectIds capability");const o=await import("../rest/support/TopFeaturesQuery.js");return(await r.queryTopObjectIds(o.default.from(e),t)).filter(ke)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryTopExtents capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopExtents(o.default.from(e),t)}async queryTopFeatureCount(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopCount||!i?.query?.supportsTopFeaturesQuery)throw new n(rt,"Layer source does not support queryFeatureCount capability");const o=await import("../rest/support/TopFeaturesQuery.js");return r.queryTopCount(o.default.from(e),t)}read(e,t){const r=e.featureCollection;if((r||"Feature Collection"===e.type)&&(this.resourceInfo=e),r){const{layers:e,showLegend:i}=r;1===e?.length&&(super.read(e[0],t),null!=i&&super.read({showLegend:i},t))}super.read(e,t),"service"===t?.origin&&(["objectIdField","fields","timeInfo","dateFieldsTimeZone","uniqueIdFields"].forEach(e=>this.revertToOrigin(e,"service")),this.spatialReference||this.revertToOrigin("spatialReference","service"))}write(e,t){t={...t,origin:t?.origin??void 0,writeLayerSchema:t?.writeLayerSchema??this._hasMemorySource()};const{origin:r,layerContainerType:i}=t;if(this.dynamicDataSource)return Ye(t,this,"a dynamic data source cannot be written to web scenes, web maps and feature service items"),null;if(this.isTable){if(("web-map"===r||"web-scene"===r)&&"tables"!==i)return Ye(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return Ye(t,this,"an in-memory table source cannot be written to web scenes and web maps"),null}else if(this.loaded&&("web-map"===r||"web-scene"===r)&&"tables"===i)return Ye(t,this,"a non-table source cannot be written to tables in web maps or web scenes"),null;return super.write(e,t)}clone(){if(this._hasMemorySource())throw new n(rt,`FeatureLayer (title: ${this.title}, id: ${this.id}) created using in-memory source cannot be cloned`);return super.clone()}serviceSupportsSpatialReference(e){return!!this.loaded&&("memory"===this.source?.type||Ne(this,e))}async save(e){return this._debouncedSaveOperations(0,e)}async saveAs(e,t){return this._debouncedSaveOperations(1,t,e)}_readEditingEnabled(e,t,r){let i=e.layerDefinition?.capabilities;return i?this._hasEditingCapability(i):(i=e.capabilities,t&&"web-map"===r?.origin&&!this._hasMemorySource()&&i?this._hasEditingCapability(i):void 0)}_hasEditingCapability(e){return e.toLowerCase().split(",").map(e=>e.trim()).includes("editing")}_writeEditingEnabled(e,t,r,i){if(!e){const e=this.capabilities?.operations?.supportsSync?"Query,Sync":"Query";h("layerDefinition.capabilities",e,t),r&&!i?.writeLayerSchema&&(t.capabilities=e)}}_fetchFirstValidLayerId(e){return o(this.url??"",{query:{f:"json",...this.customParameters,token:this.apiKey},responseType:"json",signal:e}).then(e=>{const t=e.data;if(t)return this.applyPreferredHost(t),this.findFirstValidLayerId(t)})}async initLayerProperties(e){return this._set("source",e),e.sourceJSON&&(this.sourceJSON=e.sourceJSON,this.read(e.sourceJSON,{origin:"service",portalItem:this.portalItem,portal:this.portalItem?.portal,url:this.parsedUrl})),this._verifySource(),this._verifyFields(),xe(this.renderer,this.fieldsIndex),qe(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Je(this,{origin:"service"})}async hasDataChanged(){return Se(this)}async fetchPublishingStatus(){const e=this.source;return e?.fetchPublishingStatus?e.fetchPublishingStatus():"unavailable"}_verifyFields(){const e=this.parsedUrl?.path??"undefined";this.objectIdField||console.log("FeatureLayer: 'objectIdField' property is not defined (url: "+e+")"),this.isTable||this._hasMemorySource()||-1!==e.search(/\/FeatureServer\//i)||this.fields?.some(e=>"geometry"===e.type)||console.log("FeatureLayer: unable to find field of type 'geometry' in the layer 'fields' list. If you are using a map service layer, features will not have geometry (url: "+e+")")}_fixTemplates(e,t){e&&e.forEach(e=>{const r=e.prototype?.attributes;r&&t&&delete r[t]})}_verifySource(){if(this._hasMemorySource()){if(this.url)throw new n("feature-layer:mixed-source-and-url","FeatureLayer cannot be created with both an in-memory source and a url")}else if(!this.url)throw new n("feature-layer:source-or-url-required","FeatureLayer requires either a url, a valid portal item or a source")}_initMemorySource(e){e.forEach(e=>{e.layer=this,e.sourceLayer=this}),this.addHandles([e.on("after-add",e=>{e.item.layer=this,e.item.sourceLayer=this}),e.on("after-remove",e=>{e.item.layer=null,e.item.sourceLayer=null})],"fl-source")}_resetMemorySource(e){e.forEach(e=>{e.layer=null,e.sourceLayer=null}),this.removeHandles("fl-source")}_hasMemorySource(){return!(this.url||!this.source)}findFirstValidLayerId(e){const t=[...e.layers||[],...e.tables||[]];return t.find(({type:e})=>!e||this.supportedSourceTypes.has(e))?.id}};r([F({clonable:!1,readOnly:!0})],at.prototype,"_titleCreator",null),r([F(k)],at.prototype,"attributeTableTemplate",void 0),r([et("service","capabilities")],at.prototype,"readCapabilities",null),r([F({json:{origins:{"web-scene":{write:!1}},write:!0}})],at.prototype,"charts",void 0),r([F({readOnly:!0})],at.prototype,"createQueryVersion",null),r([F({json:{read:{source:"layerDefinition.copyrightText"}}})],at.prototype,"copyright",void 0),r([F({json:{read:{source:"layerDefinition.displayField"}}})],at.prototype,"displayField",void 0),r([F({types:Ke,readOnly:!0})],at.prototype,"defaultSymbol",void 0),r([F({type:He})],at.prototype,"dynamicDataSource",void 0),r([F({type:Boolean})],at.prototype,"editingEnabled",null),r([et(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],at.prototype,"readEditingEnabled",null),r([et("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],at.prototype,"readEditingEnabledFromWebMap",null),r([tt(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabled",null),r([tt("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],at.prototype,"writeEditingEnabledToWebMap",null),r([F({readOnly:!0})],at.prototype,"effectiveEditingEnabled",null),r([F({clonable:!1,readOnly:!0})],at.prototype,"featureTitleFields",null),r([F({type:[De],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],at.prototype,"fieldConfigurations",null),r([F({...ot.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:st}}}}})],at.prototype,"fields",void 0),r([F(ot.fieldsIndex)],at.prototype,"fieldsIndex",void 0),r([F({type:S,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],at.prototype,"formTemplate",void 0),r([F({json:{read:{source:"layerDefinition.extent"}}})],at.prototype,"fullExtent",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:st,writer(e,t,r){const i=e?Ie.toJSON(e):null;i&&h(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Ie.read}}})],at.prototype,"geometryType",void 0),r([F({readOnly:!0,clonable:!1})],at.prototype,"graphicOrigin",void 0),r([F({json:{read:{source:"layerDefinition.hasM"}}})],at.prototype,"hasM",void 0),r([F({json:{read:{source:"layerDefinition.hasZ"}}})],at.prototype,"hasZ",void 0),r([F(z)],at.prototype,"id",void 0),r([F({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],at.prototype,"infoFor3D",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],at.prototype,"isTable",void 0),r([et("service","isTable",["type","geometryType"]),et("isTable",["layerDefinition.type","layerDefinition.geometryType"])],at.prototype,"readIsTable",null),r([tt("web-map","isTable")],at.prototype,"writeIsTable",null),r([F(K)],at.prototype,"labelsVisible",void 0),r([F({type:[Me],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Ae,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Ae,write:{layerContainerTypes:j}}})],at.prototype,"labelingInfo",void 0),r([F({type:Qe,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],at.prototype,"symbolLayerDrawing",void 0),r([F((()=>{const e=d(X);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){h(r,Xe(e),t)}}},e})())],at.prototype,"opacity",void 0),r([F(Y)],at.prototype,"legendEnabled",void 0),r([F({type:["show","hide"],json:(()=>{const e=d(ee.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],at.prototype,"listMode",void 0),r([et("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],at.prototype,"readGlobalIdField",null),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:st}}}}})],at.prototype,"objectIdField",void 0),r([et("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],at.prototype,"readObjectIdField",null),r([F({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:j}}})],at.prototype,"operationalLayerType",void 0),r([F(ot.outFields)],at.prototype,"outFields",void 0),r([F({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],at.prototype,"path",void 0),r([F(te)],at.prototype,"popupEnabled",void 0),r([F({type:i,json:{name:"popupInfo",write:!0}})],at.prototype,"popupTemplate",void 0),r([tt("popupTemplate")],at.prototype,"writePopupTemplate",null),r([F({readOnly:!0})],at.prototype,"defaultPopupTemplate",null),r([F({types:We,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:Be,name:"layerDefinition.drawingInfo.renderer",write:{layerContainerTypes:j,overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}},write:{target:"layerDefinition.drawingInfo.renderer",overridePolicy:(e,t,r)=>({ignoreOrigin:r?.writeLayerSchema,layerContainerTypes:j})}}})],at.prototype,"renderer",null),r([et("service","renderer",["drawingInfo.renderer","defaultSymbol"]),et("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],at.prototype,"readRenderer",null),r([F()],at.prototype,"resourceInfo",void 0),r([F((()=>{const e=d(re);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],at.prototype,"screenSizePerspectiveEnabled",void 0),r([F({clonable:!1})],at.prototype,"source",null),r([et("portal-item","source",["featureSet"]),et("web-map","source",["featureSet"])],at.prototype,"readSource",null),r([F({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],at.prototype,"spatialReference",void 0),r([F({type:Number})],at.prototype,"subtypeCode",void 0),r([F({readOnly:!1})],at.prototype,"subtypeField",void 0),r([F({readOnly:!1})],at.prototype,"subtypes",void 0),r([F({type:[Ee]})],at.prototype,"templates",void 0),r([et("templates",["editFieldsInfo","creatorField","editorField","templates"])],at.prototype,"readTemplates",null),r([F({type:Ue})],at.prototype,"timeInfo",void 0),r([F()],at.prototype,"title",void 0),r([et("service","title",["name"]),et("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],at.prototype,"readTitle",null),r([et("web-map","title",["layerDefinition.name","title"])],at.prototype,"readTitleFromWebMap",null),r([F({type:String})],at.prototype,"sublayerTitleMode",void 0),r([F({json:{read:!1}})],at.prototype,"type",void 0),r([F({type:String})],at.prototype,"typeIdField",void 0),r([et("service","typeIdField"),et("typeIdField",["layerDefinition.typeIdField"])],at.prototype,"readTypeIdField",null),r([F({type:[Le]})],at.prototype,"types",void 0),r([et("service","types",["types"]),et("types",["layerDefinition.types"])],at.prototype,"readTypes",null),r([F({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:j}}}}})],at.prototype,"visible",void 0),r([et("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],at.prototype,"readVisible",null),at=r([T("esri.layers.FeatureLayer")],at);export{at as default};
@@ -134,6 +134,28 @@ export default class GaussianSplatLayer extends GaussianSplatLayerSuperclass {
134
134
  */
135
135
  get elevationInfo(): ElevationInfo | null | undefined;
136
136
  set elevationInfo(value: ElevationInfoProperties | null | undefined);
137
+ /**
138
+ * The opacity of the layer. This value can range between `1` and `0`, where `0` is 100 percent
139
+ * transparent and `1` is completely opaque.
140
+ *
141
+ * > [!WARNING]
142
+ * >
143
+ * > **Known Limitations**
144
+ * >
145
+ * > In a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/), modifying opacity is not supported for
146
+ * > [DimensionLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionLayer/),
147
+ * > [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/),
148
+ * > [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/),
149
+ * > [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
150
+ * > [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
151
+ * > [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/), and [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/).
152
+ *
153
+ * @default 1
154
+ * @example
155
+ * // Makes the layer 50% transparent
156
+ * layer.opacity = 0.5;
157
+ */
158
+ get opacity(): number;
137
159
  /**
138
160
  * The spatial reference of the layer.
139
161
  *
@@ -151,6 +151,28 @@ export default class LineOfSightLayer extends LineOfSightLayerSuperclass {
151
151
  */
152
152
  get observer(): LineOfSightAnalysisObserver | null | undefined;
153
153
  set observer(value: LineOfSightAnalysisObserverProperties | null | undefined);
154
+ /**
155
+ * The opacity of the layer. This value can range between `1` and `0`, where `0` is 100 percent
156
+ * transparent and `1` is completely opaque.
157
+ *
158
+ * > [!WARNING]
159
+ * >
160
+ * > **Known Limitations**
161
+ * >
162
+ * > In a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/), modifying opacity is not supported for
163
+ * > [DimensionLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionLayer/),
164
+ * > [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/),
165
+ * > [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/),
166
+ * > [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
167
+ * > [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
168
+ * > [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/), and [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/).
169
+ *
170
+ * @default 1
171
+ * @example
172
+ * // Makes the layer 50% transparent
173
+ * layer.opacity = 0.5;
174
+ */
175
+ get opacity(): number;
154
176
  /** The spatial reference of the layer. The spatial reference is derived from the observer. */
155
177
  get spatialReference(): SpatialReference;
156
178
  /**
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import i from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as f}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as w}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as b}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as L}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as M}from"../views/support/Scheduler.js";import{Yield as R}from"../views/support/Yield.js";const C=3857,k=32662,S=4326,W=5773;let I=class extends i{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=2,this._wasmNotLoaded="method requiring WASM was called when WASM isn't loaded",this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,i,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){const e=s?`[js] ${i}`:`${i}`;0===t||1===t?r.getLogger(this).error(e):2===t&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(M.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._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(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),R}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const t=this._layers.size;return 0===t&&(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)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){this._lyr3DMain.set_enabled(e.wasmLayerId,t),i.needMemoryUsageUpdate=!0;const s=this._isUpdating(i);i.needFrame=!0,s||i.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);i&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),i.needFrame=!0,i.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,t,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,i)}setMeshModifications(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){const s=this._lyr3DMain._malloc(8*t.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,t.length);for(let e=0;e<t.length;++e)r[e]=t[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,t.length),this._lyr3DMain._free(s);const a=this._isUpdating(i);i.needFrame=!0,a||i.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const t=this._layers.get(e);return!!t&&(t.outstandingJobCount>0||t.outstandingRenderableCount>0||t.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(i=>{this._lyr3DMain=i,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();let d="global"===this.view.viewingMode?6:4;6===d?(this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W,this._viewSR.wkt=""):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=b(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=C,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this.view.renderSpatialReference?.wkid===k?(this._viewSR.wkid=this._viewSR.latestWkid=S,d=3,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this._viewSR.vcsWkid||this._viewSR.latestVcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,t,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new w(L(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);const i=this._layers.get(e.wasmLayerId);i&&(i.needFrame=!0,i.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,i){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===t.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===C?y.WebMercator:y.PlateCarree,r=t.projectSync(s);r&&(t=r);const a=2*t.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<t.coordinates.length;++y){const e=t.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=i?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:t,signal:i?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,t)=>{h.resolveCallback=e,h.rejectCallback=t});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((t,i)=>{o(t.signal)&&(this._lyr3DMain.cancel_elevation_query(i),t.rejectCallback(n()),e.push(i))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_pulseTask(e){const t=this._lyr3DMain;if(t){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:i,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:i,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};t.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let i=0,s=0;this._layers.forEach(e=>{i+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),i/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-i-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,i,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount+=1,i||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount-=1;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;){e.shift()(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,i){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(i.jobId,i.desc)}finally{this._decrementJobCountIfLayerExists(e,i)}}):this._decrementJobCountIfLayerExists(e,i)}_onJobSucceeded(e,t,i){if(e.layerView.destroyed)return void(this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(i.jobId,i.desc)}finally{this._decrementJobCountIfLayerExists(e,i)}}):this._decrementJobCountIfLayerExists(e,i));const{data:s}=t;if(this._lyr3DMain){const r=r=>{try{const e=s.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(r.HEAPU8.buffer,a,e).set(s),r.on_job_completed(i.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,i)}};this._pendingJobCompleted.push(r)}else this._decrementJobCountIfLayerExists(e,i)}_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,i,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(t(e.toString(),i).then(e=>e.data))}return a}_getInitialPromise(e,t,i,s,r,a,n){const o=this._getRequestPromises(e.urls,t,i,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(t=>{let i=1;return l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===t.details?.httpStatus?(i=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:i,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),t=this._layers.get(e.layerId);if(!t)return;this._incrementJobCount(t,e);const i=t.abortController.signal,s=t.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:i,query:{...t.customParameters,token:t.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(t,r,e);else if(0===r.status)this._onJobSucceeded(t,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const t of e)o.inputs.push(t);return this._workerHandle.invoke(o,i)}).then(i=>{1===i.status?this._onJobFailed(t,i,e):0===i.status&&this._onJobSucceeded(t,i,e)}).catch(i=>{l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),this._lyr3DMain?this._pendingJobFailed.push(i=>{try{i.on_job_failed(e.jobId,e.desc)}finally{this._decrementJobCountIfLayerExists(t,e)}}):this._decrementJobCountIfLayerExists(t,e)})}};try{const t=await this._getInitialPromise(e,n,d,s,o,i,a);if(3===t.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(i);h(await this._getInitialPromise(e,n,d,s,o,i,s.session))}else h(t)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(i=>{try{i.on_job_failed(e.jobId,e.desc)}finally{this._decrementJobCountIfLayerExists(t,e)}}):this._decrementJobCountIfLayerExists(t,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:t}=e;t.data&&t.data.byteLength>0&&(t.data=t.data.slice());const i=this._layers.get(e.layerId);i&&(this._incrementRenderableCount(i),i.layerView.createRenderable(e).then(t=>{!this._lyr3DMain||i.layerView.destroyed?this._decrementRenderableCountIfLayerExists(i):this._pendingRenderableCreated.push(s=>{try{const{layerId:i,handle:r}=e,a=t();s.on_renderable_created(!0,i,r,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(i)}})}).catch(t=>{l(t)||this._debugLog(2,1,`createRenderable failed with error ${t}.`),!this._lyr3DMain||i.layerView.destroyed?this._decrementRenderableCountIfLayerExists(i):this._pendingRenderableCreated.push(t=>{try{const{layerId:i,handle:s}=e;t.on_renderable_created(!1,i,s,0,0)}finally{this._decrementRenderableCountIfLayerExists(i)}})}))}_freeRenderables(e,t,i){if(i<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,i);for(let o=0;o<i;++o)a.push(n[o]);for(let o=0;o<i;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,t,i,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,i,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,t,i,s){this._lyr3DMain&&this._debugLog(i,s,this._lyr3DMain.UTF8ToString(e,t),!1)}_onElevQueryComplete(e){const t=this._elevationQueries.get(e),i=this._lyr3DMain.get_elevation_query_result(e);if(t)if(i.succeeded&&i.zs){const s=i.zs.slice(),r=t.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),t.resolveCallback(r),this._elevationQueries.delete(e)}else t.rejectCallback(new s("elevation-query:error",i?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const t=this._layers.get(e.wasmLayerId);return!!t&&(t.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_is3DTilesIMLayer(e){return"integrated-mesh-3dtiles"===e.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:f};const i="integrated-mesh-3dtiles"===t.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),i);if(0!==s.errorCode)return{wasmLayerId:f,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});const o=D(t.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let i=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){i=t.esriCrsSpatialReference;const s=u(i);let r=1,a=1;!s&&i.wkid&&-1!==i.wkid&&(r=c.values[c[i.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(i)),s,r,a).catch(d),!this._haveAddedViewSRForNoOpPrj&&i.vcsWkid&&this._viewSR.vcsWkid&&-1!==this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==i.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?h=this._lyr3DMain.add_gaussian_splat_layer(l,t.url,a,o):this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,t.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")))}return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:f})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const 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-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],I.prototype,"view",void 0),e([h({readOnly:!0})],I.prototype,"isTerrainReady",null),I=e([_("esri.layers.Lyr3DWasmPerSceneView")],I);const j=I;export{j as default};
2
+ import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import i from"../core/Accessor.js";import s from"../core/Error.js";import r from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as n,isAborted as o,isAbortError as l}from"../core/promiseUtils.js";import{watch as d}from"../core/reactiveUtils.js";import{property as h,subclass as _}from"../core/accessorSupport/decorators.js";import y from"../geometry/SpatialReference.js";import{isGeographic as u}from"../geometry/support/spatialReferenceUtils.js";import c from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as g,elevQueriesFull as m,elevQueriesGenericFail as p,invalidLayerView as f}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as w}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as b}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as v}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as D}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as L}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as M}from"../views/support/Scheduler.js";import{Yield as R}from"../views/support/Yield.js";const C=3857,k=32662,S=4326,W=5773;let I=class extends i{constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._elevationQueries=new Map,this._pendingJobCompleted=new Array,this._pendingJobFailed=new Array,this._pendingRenderableCreated=new Array,this._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,i,s=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){const e=s?`[js] ${i}`:`${i}`;0===t||1===t?r.getLogger(this).error(e):2===t&&r.getLogger(this).warn(e),r.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(r.getLogger(this).level="info"),this._debugLog(0,3,"Lyr3DWasmPerSceneView.initialize()"),this.addHandles([d(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),d(()=>this.view.state?.contentCamera.relativeElevation,()=>{this._cameraElevationDirty=!0,this._markAllLayerViewsUpdating()})]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(M.LYR3D,this)}destroy(){this._debugLog(0,3,"Lyr3DWasmPerSceneView.destroy()"),this._lyr3DMain&&(this._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(n())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),this._lyr3DMain=null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;const e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}runTask(e){return this._pulseTask(e),R}_hasPendingPulseWork(){return!!this._lyr3DMain&&(this._cameraDirty||this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)))}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,"Lyr3DWasmPerSceneView.add3DTilesLayerView() called when WASM wasn't initialized"),{wasmLayerId:g})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._doRemoveLayerView(e);const t=this._layers.size;return 0===t&&(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)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){this._lyr3DMain.set_enabled(e.wasmLayerId,t),i.needMemoryUsageUpdate=!0;const s=this._isUpdating(i);i.needFrame=!0,s||i.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);i&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),i.needFrame=!0,i.layerView.updatingFlagChanged())}getAttributionText(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),[];return this._lyr3DMain.get_current_attribution_text().split("|")}onRenderableEvicted(e,t,i){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,i)}setMeshModifications(e,t){if(!this._lyr3DMain)return void this._debugLog(0,1,this._wasmNotLoaded);const i=this._layers.get(e.wasmLayerId);if(i){const s=this._lyr3DMain._malloc(8*t.length),r=new Float64Array(this._lyr3DMain.HEAPF64.buffer,s,t.length);for(let e=0;e<t.length;++e)r[e]=t[e];this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,s,t.length),this._lyr3DMain._free(s);const a=this._isUpdating(i);i.needFrame=!0,a||i.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;const t=this._layers.get(e);return!!t&&(t.outstandingJobCount>0||t.outstandingRenderableCount>0||t.needFrame||this._lyr3DBusyCount>0)}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,"Lyr3DWasmPerSceneView.initializeWasm()"),this._lyr3DMainPromise||(this._lyr3DMainPromise=v().then(i=>{this._lyr3DMain=i,this._lyr3DMainPromise=null;const s=this._lyr3DMain.addFunction(this._onNewJob.bind(this),"v"),r=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),"v"),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),"viii"),n=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),"viiii"),o=this._lyr3DMain.addFunction(this._onWasmError.bind(this),"viiii"),l=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),"vi");if(!this.view.renderSpatialReference)return void(this._lyr3DMain=null);this._viewSR=this.view.renderSpatialReference?.toJSON();let d="global"===this.view.viewingMode?6:4;6===d?(this._viewSR.wkid=this._viewSR.latestWkid=S,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W,this._viewSR.wkt=""):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=b(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=C,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this.view.renderSpatialReference?.wkid===k?(this._viewSR.wkid=this._viewSR.latestWkid=S,d=3,this._viewSR.vcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=W)):this._viewSR.vcsWkid||this._viewSR.latestVcsWkid||(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));const h=has("esri-lyr3D-max-concurrent-requests")??16;return this._lyr3DMain.initialize_lyr3d_wasm(o,s,r,a,n,l,e,t,d,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),h)?(this._workerHandle=new w(L(this.view.resourceController)),this._workerHandle.promise?this._workerHandle.promise:void 0):(this._lyr3DMain=null,void this._debugLog(0,0,"Lyr3d Main WASM failed to initialize",!1))}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)})),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);const i=this._layers.get(e.wasmLayerId);i&&(i.needFrame=!0,i.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{"gaussian-splat-3d"===e.layerView.type&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,i){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(0===t.coordinates.length)return Promise.reject("no coordinates for elevation query");const s="global"===this.view.viewingMode?y.WGS84:this._viewSR.wkid===C?y.WebMercator:y.PlateCarree,r=t.projectSync(s);r&&(t=r);const a=2*t.coordinates.length,n=this._lyr3DMain._malloc(8*a),o=new Float64Array(this._lyr3DMain.HEAPF64.buffer,n,a);for(let y=0;y<t.coordinates.length;++y){const e=t.coordinates[y];o[2*y]=e.x,o[2*y+1]=e.y}const l=i?.maxGeometricError??0,d=this._lyr3DMain.create_elevation_query(e.wasmLayerId,l,n,a);if(this._lyr3DMain._free(n),d===m)return Promise.reject("max mesh elevation query limit exceeded");if(d===p)return Promise.reject("elevation query failed");const h={descriptor:t,signal:i?.signal,resolveCallback:null,rejectCallback:null},_=new Promise((e,t)=>{h.resolveCallback=e,h.rejectCallback=t});return this._elevationQueries.set(d,h),_}_checkForAbortedElevationQueries(){const e=[];this._elevationQueries.forEach((t,i)=>{o(t.signal)&&(this._lyr3DMain.cancel_elevation_query(i),t.rejectCallback(n()),e.push(i))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_pulseTask(e){const t=this._lyr3DMain;if(t){if(this._cameraDirty){const e=this.view.state?.contentCamera;if(e){const{eye:i,center:s,up:r,near:a,far:n,fovY:o}=e,l=[e.viewport[2],e.viewport[3]],d={eye:i,center:s,up:r,near:a,far:n,fov:o,aspectRatio:e.width/e.height,viewport:l};t.set_camera_parameters(d),this._cameraDirty=!1}}if(this._cameraElevationDirty){const e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e)}this._checkForAbortedElevationQueries();let i=0,s=0;this._layers.forEach(e=>{i+=e.layerView.usedMemory,s+=e.layerView.cachedMemory}),i/=1048576,s/=1048576;const r=this.view.resourceController.memoryController,a=r.usedMemory*r.maxMemory-i-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(r.memoryFactor,i,s,a,r.maxMemory),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange("isTerrainReady")),this._flushPendingWasmCalls(e),this._cameraElevationDirty=!1}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||e.needFrame||this._cameraDirty||this._lyr3DBusyCount>0}_incrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount+=1,i||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;const i=this._isUpdating(e);e.outstandingJobCount-=1;i!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){const t=this._isUpdating(e);e.outstandingRenderableCount-=1;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;){e.shift()(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,i){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(i.jobId,i.desc)}finally{this._decrementJobCountIfLayerExists(e,i)}}):this._decrementJobCountIfLayerExists(e,i)}_onJobSucceeded(e,t,i){if(e.layerView.destroyed)return void(this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(i.jobId,i.desc)}finally{this._decrementJobCountIfLayerExists(e,i)}}):this._decrementJobCountIfLayerExists(e,i));const{data:s}=t;if(this._lyr3DMain){const r=r=>{try{const e=s.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(r.HEAPU8.buffer,a,e).set(s),r.on_job_completed(i.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,i)}};this._pendingJobCompleted.push(r)}else this._decrementJobCountIfLayerExists(e,i)}_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,i,s,r){const a=[];for(const n of e){const e=new URL(n);if("integrated-mesh-3dtiles"===r.type){if(e.origin===s.origin&&e.pathname===s.pathname){if(r.rootTileset){a.push(Promise.resolve(r.rootTileset.slice()));continue}}else r.session&&e.searchParams.set("session",r.session)}a.push(t(e.toString(),i).then(e=>e.data))}return a}_getInitialPromise(e,t,i,s,r,a,n){const o=this._getRequestPromises(e.urls,t,i,s);return Promise.all(o).then(e=>(r.inputs=e,this._workerHandle.invoke(r,a))).then(e=>e).catch(t=>{let i=1;return l(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):n&&400===t.details?.httpStatus?(i=3,this._debugLog(1,2,"Session expired, trying to create new Session.")):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:i,error:"",jobDescJson:"",data:new Uint8Array(0),missingInputUrls:[],inputs:[]}})}async _onNewJob(){const e=this._lyr3DMain.get_next_job(),t=this._layers.get(e.layerId);if(!t)return;this._incrementJobCount(t,e);const i=t.abortController.signal,s=t.layerView.layer,r="integrated-mesh-3dtiles"===s.type?s.key:null,a="integrated-mesh-3dtiles"===s.type?s.session:null,n={responseType:"array-buffer",signal:i,query:{...t.customParameters,token:t.apiKey,key:r}},o={id:e.jobId,inputs:[],jobDescJson:e.desc.slice(),isMissingResourceCase:!1},d=new URL(s.url),h=r=>{if(1===r.status)this._onJobFailed(t,r,e);else if(0===r.status)this._onJobSucceeded(t,r,e);else if(2===r.status){const a=this._getRequestPromises(r.missingInputUrls,n,d,s);Promise.all(a).then(e=>{o.jobDescJson=r.jobDescJson,r.originalInputs?o.inputs=r.originalInputs:o.inputs=[],o.isMissingResourceCase=!0;for(const t of e)o.inputs.push(t);return this._workerHandle.invoke(o,i)}).then(i=>{1===i.status?this._onJobFailed(t,i,e):0===i.status&&this._onJobSucceeded(t,i,e)}).catch(i=>{l(i)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):this._debugLog(1,1,`job ${e.jobId} failed with error ${i}.`),this._lyr3DMain?this._pendingJobFailed.push(i=>{try{i.on_job_failed(e.jobId,e.desc)}finally{this._decrementJobCountIfLayerExists(t,e)}}):this._decrementJobCountIfLayerExists(t,e)})}};try{const t=await this._getInitialPromise(e,n,d,s,o,i,a);if(3===t.status&&"integrated-mesh-3dtiles"===s.type){a===s.session&&null!==s.session&&await s.requestRootAndSession(i);h(await this._getInitialPromise(e,n,d,s,o,i,s.session))}else h(t)}catch(_){_&&this._debugLog(1,1,_.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(i=>{try{i.on_job_failed(e.jobId,e.desc)}finally{this._decrementJobCountIfLayerExists(t,e)}}):this._decrementJobCountIfLayerExists(t,e)}}_onNewRenderable(){const e=this._lyr3DMain.get_next_renderable(),{meshData:t}=e;t.data&&t.data.byteLength>0&&(t.data=t.data.slice());const i=this._layers.get(e.layerId);i&&(this._incrementRenderableCount(i),i.layerView.createRenderable(e).then(t=>{!this._lyr3DMain||i.layerView.destroyed?this._decrementRenderableCountIfLayerExists(i):this._pendingRenderableCreated.push(s=>{try{const{layerId:i,handle:r}=e,a=t();s.on_renderable_created(!0,i,r,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(i)}})}).catch(t=>{l(t)||this._debugLog(2,1,`createRenderable failed with error ${t}.`),!this._lyr3DMain||i.layerView.destroyed?this._decrementRenderableCountIfLayerExists(i):this._pendingRenderableCreated.push(t=>{try{const{layerId:i,handle:s}=e;t.on_renderable_created(!1,i,s,0,0)}finally{this._decrementRenderableCountIfLayerExists(i)}})}))}_freeRenderables(e,t,i){if(i<1)return;const s=this._layers.get(e);if(!s)return;const r=s.layerView,a=[],n=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,i);for(let o=0;o<i;++o)a.push(n[o]);for(let o=0;o<i;++o)r.freeRenderable(a[o])}_setRenderableVisibility(e,t,i,s){if(s<1)return;const r=this._layers.get(e);if(!r)return;const a=r.layerView,n=[],o=[],l=new Uint32Array(this._lyr3DMain.HEAPU32.buffer,t,s),d=new Uint8Array(this._lyr3DMain.HEAPU8.buffer,i,s);for(let h=0;h<s;++h)n.push(l[h]),o.push(!!(1&d[h]));a.setRenderableVisibility(n,o,s)}_onWasmError(e,t,i,s){this._lyr3DMain&&this._debugLog(i,s,this._lyr3DMain.UTF8ToString(e,t),!1)}_onElevQueryComplete(e){const t=this._elevationQueries.get(e),i=this._lyr3DMain.get_elevation_query_result(e);if(t)if(i.succeeded&&i.zs){const s=i.zs.slice(),r=t.descriptor.clone();for(let e=0;e<s.length;++e)r.coordinates[e].z=s[e];this._debugLog(2,3,`Success EQ ${e}, number points ${s.length}.`),t.resolveCallback(r),this._elevationQueries.delete(e)}else t.rejectCallback(new s("elevation-query:error",i?.error??"Elevation query failed")),this._elevationQueries.delete(e);else this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${e}.`)}_doRemoveLayerView(e){const t=this._layers.get(e.wasmLayerId);return!!t&&(t.abortController.abort(),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")),this._layers.delete(e.wasmLayerId),!0)}_is3DTilesIMLayerView(e){return"integrated-mesh-3dtiles"===e.layer.type}_is3DTilesIMLayer(e){return"integrated-mesh-3dtiles"===e.type}_isGaussianSplatLayerView(e){return"gaussian-splat"===e.layer.type}_isGaussianSplatLayer(e){return"gaussian-splat"===e.type}_toWasmQuality(e){switch(e){case"low":return 1;case"medium":return 2;case"high":return 3}}_addLayerView(e){const t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:f};const i="integrated-mesh-3dtiles"===t.type?0:2,s=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),i);if(0!==s.errorCode)return{wasmLayerId:f,check:s};const a=this._lyr3DMain.get_next_layer_id(),n=new AbortController;this._layers.set(a,{layerView:e,abortController:n,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});const o=D(t.elevationInfo),l=this._toWasmQuality(this.view?.qualityProfile),d=e=>r.getLogger(this).error("add-spatial-reference-error","Error when adding SR:",e);let h=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let i=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){i=t.esriCrsSpatialReference;const s=u(i);let r=1,a=1;!s&&i.wkid&&-1!==i.wkid&&(r=c.values[c[i.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(i)),s,r,a).catch(d),!this._haveAddedViewSRForNoOpPrj&&i.vcsWkid&&this._viewSR.vcsWkid&&-1!==this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==i.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(d),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?h=this._lyr3DMain.add_gaussian_splat_layer(l,t.url,a,o):this._is3DTilesIMLayerView(e)&&(h=this._lyr3DMain.add_3dtiles_layer(l,t.url,a,o,e.layer.replacesTerrain),h&&e.layer.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange("isTerrainReady")))}return h?(this._updateWasmCamera(),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:f})}_updateWasmCamera(){const e=this.view.state?.contentCamera;e&&this._lyr3DMain&&(this._cameraDirty=!0,this._markAllLayerViewsUpdating())}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{const 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-1===e?.wkid&&e.latestWkid&&-1!==e.latestWkid?e.wkid=e.latestWkid:-1===e?.latestWkid&&e.wkid&&-1!==e.wkid&&(e.latestWkid=e.wkid),-1===e?.vcsWkid&&e.latestVcsWkid&&-1!==e.latestVcsWkid?e.vcsWkid=e.latestVcsWkid:-1===e?.latestVcsWkid&&e.vcsWkid&&-1!==e.vcsWkid&&(e.latestVcsWkid=e.vcsWkid),e}};e([h({constructOnly:!0})],I.prototype,"view",void 0),e([h({readOnly:!0})],I.prototype,"isTerrainReady",null),I=e([_("esri.layers.Lyr3DWasmPerSceneView")],I);const j=I;export{j as default};
@@ -266,6 +266,28 @@ export default class PointCloudLayer extends PointCloudLayerSuperclass {
266
266
  * @since 4.5
267
267
  */
268
268
  accessor legendEnabled: boolean;
269
+ /**
270
+ * The opacity of the layer. This value can range between `1` and `0`, where `0` is 100 percent
271
+ * transparent and `1` is completely opaque.
272
+ *
273
+ * > [!WARNING]
274
+ * >
275
+ * > **Known Limitations**
276
+ * >
277
+ * > In a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/), modifying opacity is not supported for
278
+ * > [DimensionLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionLayer/),
279
+ * > [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/),
280
+ * > [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/),
281
+ * > [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
282
+ * > [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
283
+ * > [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/), and [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/).
284
+ *
285
+ * @default 1
286
+ * @example
287
+ * // Makes the layer 50% transparent
288
+ * layer.opacity = 0.5;
289
+ */
290
+ get opacity(): number;
269
291
  /**
270
292
  * An array of field names from the service to include with each feature.
271
293
  * To fetch the values from all fields in the layer, use `["*"]`. Fields specified in
@@ -109,6 +109,28 @@ export default class ViewshedLayer extends ViewshedLayerSuperclass {
109
109
  * });
110
110
  */
111
111
  get fullExtent(): Extent | null | undefined;
112
+ /**
113
+ * The opacity of the layer. This value can range between `1` and `0`, where `0` is 100 percent
114
+ * transparent and `1` is completely opaque.
115
+ *
116
+ * > [!WARNING]
117
+ * >
118
+ * > **Known Limitations**
119
+ * >
120
+ * > In a 3D [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/), modifying opacity is not supported for
121
+ * > [DimensionLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/DimensionLayer/),
122
+ * > [GaussianSplatLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GaussianSplatLayer/),
123
+ * > [IntegratedMesh3DTilesLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMesh3DTilesLayer/),
124
+ * > [IntegratedMeshLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/IntegratedMeshLayer/),
125
+ * > [LineOfSightLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/LineOfSightLayer/), [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
126
+ * > [ViewshedLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ViewshedLayer/), and [VoxelLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/VoxelLayer/).
127
+ *
128
+ * @default 1
129
+ * @example
130
+ * // Makes the layer 50% transparent
131
+ * layer.opacity = 0.5;
132
+ */
133
+ get opacity(): number;
112
134
  /**
113
135
  * The [ViewshedAnalysis](https://developers.arcgis.com/javascript/latest/references/core/analysis/ViewshedAnalysis/) associated with the layer that stores the viewsheds.
114
136
  * Assigning a null value will create a new empty analysis.