@arcgis/core 5.1.0-next.129 → 5.1.0-next.130

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 (341) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/007485862ce95928717a.js +1 -0
  3. package/assets/esri/core/workers/chunks/05b6b2c0b76afb100e33.js +1 -0
  4. package/assets/esri/core/workers/chunks/0a52373c4ba652e0ee0f.js +1 -0
  5. package/assets/esri/core/workers/chunks/0b522e05668bef729b1b.js +1 -0
  6. package/assets/esri/core/workers/chunks/{faad127dc07e54e7f6d1.js → 10e90c04d29cfa00acd7.js} +1 -1
  7. package/assets/esri/core/workers/chunks/{cdf6ad970dc1893dac58.js → 110135b0562a3b5708b9.js} +1 -1
  8. package/assets/esri/core/workers/chunks/122892f365f5327d290c.js +1 -0
  9. package/assets/esri/core/workers/chunks/1305690054214a9cf48d.js +1 -0
  10. package/assets/esri/core/workers/chunks/168c15cf462f9abcbdd2.js +1 -0
  11. package/assets/esri/core/workers/chunks/169bfafec4d59be2beb0.js +1 -0
  12. package/assets/esri/core/workers/chunks/1c689bb502657b1f173b.js +1 -0
  13. package/assets/esri/core/workers/chunks/{48fcc10768d93e95a04e.js → 1c80e841aecd2fd65c48.js} +1 -1
  14. package/assets/esri/core/workers/chunks/1e109a521ca8772fdf04.js +1 -0
  15. package/assets/esri/core/workers/chunks/1f48438b3055afeb710f.js +1 -0
  16. package/assets/esri/core/workers/chunks/2353fbc1ff4481dcfb1f.js +1 -0
  17. package/assets/esri/core/workers/chunks/2509da565e5a2b43ac7f.js +1 -0
  18. package/assets/esri/core/workers/chunks/255c8e937e7a123ebb04.js +1 -0
  19. package/assets/esri/core/workers/chunks/256cc116e3be4feee593.js +1 -0
  20. package/assets/esri/core/workers/chunks/{a442534ac0956a68b769.js → 282930645ce525d5bc92.js} +1 -1
  21. package/assets/esri/core/workers/chunks/283934255564d33031de.js +1 -0
  22. package/assets/esri/core/workers/chunks/2baee42e1797a709fe4b.js +1 -0
  23. package/assets/esri/core/workers/chunks/2c017eae434254610c8e.js +1 -0
  24. package/assets/esri/core/workers/chunks/2f40193d1b2e534c5226.js +1 -0
  25. package/assets/esri/core/workers/chunks/303e723e829ea7088d43.js +1 -0
  26. package/assets/esri/core/workers/chunks/335337b67566624311f5.js +1 -0
  27. package/assets/esri/core/workers/chunks/36913f0f944a9eb82cd3.js +1 -0
  28. package/assets/esri/core/workers/chunks/36e7b92f173896e9f1e2.js +1 -0
  29. package/assets/esri/core/workers/chunks/{cc62e5095e328bed3e01.js → 3aa0a34d2b7dbf2e2c66.js} +1 -1
  30. package/assets/esri/core/workers/chunks/436d51b9f1b1b5abc4bc.js +1 -0
  31. package/assets/esri/core/workers/chunks/43ef6dee2e1d9ed7885e.js +1 -0
  32. package/assets/esri/core/workers/chunks/442424200e7475e9a08f.js +1 -0
  33. package/assets/esri/core/workers/chunks/4b96aa2dc5b88846bb53.js +1 -0
  34. package/assets/esri/core/workers/chunks/4ea325c829d3b82854b1.js +1 -0
  35. package/assets/esri/core/workers/chunks/510c500d1d58662372de.js +1 -0
  36. package/assets/esri/core/workers/chunks/51a8a47aac1d8d22ba9d.js +1 -0
  37. package/assets/esri/core/workers/chunks/54f54623532f633dc0e2.js +1 -0
  38. package/assets/esri/core/workers/chunks/589b31cc5c663a288942.js +1 -0
  39. package/assets/esri/core/workers/chunks/58ce4bcfb15f378b1b9f.js +1 -0
  40. package/assets/esri/core/workers/chunks/58e0e50b6c3abaa4798f.js +1 -0
  41. package/assets/esri/core/workers/chunks/5bf01e0eff8a78b65e9e.js +1 -0
  42. package/assets/esri/core/workers/chunks/5dfeefee96659832398a.js +1 -0
  43. package/assets/esri/core/workers/chunks/{fc73de97c618ca11eacb.js → 5f73b721e3bc526398bb.js} +1 -1
  44. package/assets/esri/core/workers/chunks/63858dfcff1177e597e7.js +1 -0
  45. package/assets/esri/core/workers/chunks/{d8242cf6fec7c7bb614c.js → 67ea60aef8fde61420da.js} +9 -9
  46. package/assets/esri/core/workers/chunks/686c1a1b794ebe1a0341.js +1 -0
  47. package/assets/esri/core/workers/chunks/{e9cd84ad0054e9fea448.js → 68c9a5f9f00157642030.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{11c3b1e8ca21ad62fdd1.js → 6db5ee9c589265b23b60.js} +1 -1
  49. package/assets/esri/core/workers/chunks/6dc60afb0c39bbb001a3.js +1 -0
  50. package/assets/esri/core/workers/chunks/{5bfae465872760e7af6d.js → 6f240fe78b299e6c4fcc.js} +1 -1
  51. package/assets/esri/core/workers/chunks/70cb825bb37f1977d2ab.js +1 -0
  52. package/assets/esri/core/workers/chunks/71a593fa116770e58832.js +1 -0
  53. package/assets/esri/core/workers/chunks/71f09e34d56c9fe5c307.js +1 -0
  54. package/assets/esri/core/workers/chunks/76343cf0deaada604aa2.js +1 -0
  55. package/assets/esri/core/workers/chunks/{e5f8c73349407c25956b.js → 7c61b18e43c789aaecc6.js} +1 -1
  56. package/assets/esri/core/workers/chunks/7c787cd27af3cec75027.js +1 -0
  57. package/assets/esri/core/workers/chunks/818a481ce579f519de1c.js +1 -0
  58. package/assets/esri/core/workers/chunks/83ce38342796bd6d73ce.js +1 -0
  59. package/assets/esri/core/workers/chunks/{3d4bb539bf939fcdeef9.js → 8606b03b0b1405973a22.js} +1 -1
  60. package/assets/esri/core/workers/chunks/87b86375f8557418dbe6.js +1 -0
  61. package/assets/esri/core/workers/chunks/8817d25c7f4cf0e6c6bd.js +1 -0
  62. package/assets/esri/core/workers/chunks/8ade399db21938822a7c.js +1 -0
  63. package/assets/esri/core/workers/chunks/8c62e2dabd1f1e13d244.js +1 -0
  64. package/assets/esri/core/workers/chunks/909e88c27d80777b047c.js +1 -0
  65. package/assets/esri/core/workers/chunks/91c5205d1274c7f190d5.js +1 -0
  66. package/assets/esri/core/workers/chunks/91c543443cd6768ad6ff.js +1 -0
  67. package/assets/esri/core/workers/chunks/9230ad807020fc2bbf8e.js +1 -0
  68. package/assets/esri/core/workers/chunks/92458803531fdfe1557a.js +1 -0
  69. package/assets/esri/core/workers/chunks/{976ab2be6c244768c08a.js → 940ebb13618d38c6b459.js} +1 -1
  70. package/assets/esri/core/workers/chunks/987594539981483a7c5e.js +1 -0
  71. package/assets/esri/core/workers/chunks/98d0180d2e5d9c73a04a.js +1 -0
  72. package/assets/esri/core/workers/chunks/a3393780655152102c45.js +1 -0
  73. package/assets/esri/core/workers/chunks/a844c4e031e77db11478.js +1 -0
  74. package/assets/esri/core/workers/chunks/aba7a053015a9738d8a0.js +1 -0
  75. package/assets/esri/core/workers/chunks/adce59e4111bae4225f7.js +1 -0
  76. package/assets/esri/core/workers/chunks/af3b060fdfa3b6174340.js +1 -0
  77. package/assets/esri/core/workers/chunks/b0212df1fe8d9448f3d6.js +1 -0
  78. package/assets/esri/core/workers/chunks/b1851278e993b7130cd5.js +1 -0
  79. package/assets/esri/core/workers/chunks/b289c46ce2dc04d32e81.js +1 -0
  80. package/assets/esri/core/workers/chunks/{67ebde34377f98d17cda.js → b5571e93bc136dac8ee1.js} +1 -1
  81. package/assets/esri/core/workers/chunks/ba1c4a8794ac55942e35.js +1 -0
  82. package/assets/esri/core/workers/chunks/bd260798b8de09a1eeb2.js +1 -0
  83. package/assets/esri/core/workers/chunks/c030a974a63155f450e9.js +1 -0
  84. package/assets/esri/core/workers/chunks/c2602fc3f956fa4f92e4.js +1 -0
  85. package/assets/esri/core/workers/chunks/c2db773201adca204f95.js +1 -0
  86. package/assets/esri/core/workers/chunks/c4a2ec2e5897300163ac.js +1 -0
  87. package/assets/esri/core/workers/chunks/{75b4c27ca02b124a713c.js → c538435216d253f7702e.js} +1 -1
  88. package/assets/esri/core/workers/chunks/c63b315c6b76b4860fc5.js +1 -0
  89. package/assets/esri/core/workers/chunks/c8091e8fd7ca43a4490a.js +1 -0
  90. package/assets/esri/core/workers/chunks/d0321dd4b5b2d863eecd.js +1 -0
  91. package/assets/esri/core/workers/chunks/{cb8c4d8334fab9bd9a04.js → d90bc34d97bb21c29c40.js} +1 -1
  92. package/assets/esri/core/workers/chunks/d9fcc63df008f687848a.js +1 -0
  93. package/assets/esri/core/workers/chunks/db96a0c66578b2d1b715.js +1 -0
  94. package/assets/esri/core/workers/chunks/dd5dddf7e422216d3806.js +1 -0
  95. package/assets/esri/core/workers/chunks/de83c177f8a1234a5b2e.js +1 -0
  96. package/assets/esri/core/workers/chunks/e65d291bab13f7f5323b.js +1 -0
  97. package/assets/esri/core/workers/chunks/{bb012e02ae197bd1d9de.js → e833cf582c3afa99aeee.js} +1 -1
  98. package/assets/esri/core/workers/chunks/ea4856a6041383866e22.js +1 -0
  99. package/assets/esri/core/workers/chunks/ecbf84a1f42e6188faab.js +1 -0
  100. package/assets/esri/core/workers/chunks/efaa1d05705f6b450e8f.js +1 -0
  101. package/assets/esri/core/workers/chunks/efaf998d18479a0380ae.js +1 -0
  102. package/assets/esri/core/workers/chunks/f0573db9a3d3e1499a7e.js +1 -0
  103. package/assets/esri/core/workers/chunks/f07722efd7fa2b75d4dd.js +1 -0
  104. package/assets/esri/core/workers/chunks/f4b9801abcfcb93a88b5.js +1 -0
  105. package/assets/esri/core/workers/chunks/{3d20c86f1fe877bf884b.js → f59b76fde2cbd17f64b3.js} +1 -1
  106. package/assets/esri/core/workers/chunks/f98bb3885bfc7f18f26c.js +1 -0
  107. package/assets/esri/core/workers/chunks/fd53ef66176ae164e221.js +1 -0
  108. package/assets/esri/core/workers/chunks/fd956a58787020d610af.js +1 -0
  109. package/assets/esri/core/workers/chunks/fdec3a2e100688c42e41.js +1 -0
  110. package/assets/esri/core/workers/chunks/fedbeb488d5d7c07c7dc.js +1 -0
  111. package/assets/esri/libs/parquet/pkg/bundle_bg.wasm +0 -0
  112. package/chunks/Bufferer-CclWhXVb.js +2 -0
  113. package/chunks/Distance2DCalculator-DjIp2uQi.js +2 -0
  114. package/chunks/Envelope.js +1 -1
  115. package/chunks/Envelope2D.js +1 -1
  116. package/chunks/GaussianSplatComposition.glsl.js +1 -1
  117. package/chunks/GeodeticDistanceCalculator-zRp89-dW.js +2 -0
  118. package/chunks/GeodeticUtils.js +1 -1
  119. package/chunks/Geometry.js +1 -1
  120. package/chunks/{GeometryCleaner-BEJM7I4l.js → GeometryCleaner-CIE8Wfmb.js} +1 -1
  121. package/chunks/MultiPathImpl.js +1 -1
  122. package/chunks/OITBlend.glsl.js +1 -1
  123. package/chunks/OITDimOpaque.glsl.js +1 -1
  124. package/chunks/OperatorClip.js +1 -1
  125. package/chunks/OperatorCrosses.js +1 -1
  126. package/chunks/OperatorCut.js +1 -1
  127. package/chunks/OperatorDefinitions.js +1 -1
  128. package/chunks/OperatorDensify.js +1 -1
  129. package/chunks/OperatorGeneralize.js +1 -1
  130. package/chunks/OperatorGeodesicBuffer.js +1 -1
  131. package/chunks/OperatorGeodeticArea.js +1 -1
  132. package/chunks/OperatorGeodeticDensifyByLength.js +1 -1
  133. package/chunks/OperatorGeodeticDistance.js +1 -1
  134. package/chunks/OperatorGeodeticLength.js +1 -1
  135. package/chunks/OperatorGraphicBuffer.js +2 -0
  136. package/chunks/OperatorIntegrate.js +1 -1
  137. package/chunks/OperatorIntersects.js +1 -1
  138. package/chunks/OperatorMultiPartToSinglePart.js +1 -1
  139. package/chunks/OperatorOverlaps.js +1 -1
  140. package/chunks/OperatorProximity.js +1 -1
  141. package/chunks/OperatorProximityGeodesic.js +1 -1
  142. package/chunks/OperatorShapePreservingLength.js +1 -1
  143. package/chunks/OperatorShapePreservingProject.js +1 -1
  144. package/chunks/OperatorSimplifyOGC.js +1 -1
  145. package/chunks/OperatorTouches.js +1 -1
  146. package/chunks/OperatorWithin.js +1 -1
  147. package/chunks/Point2D.js +1 -1
  148. package/chunks/ProjectionTransformation.js +1 -1
  149. package/chunks/{SideCalculator2D-BNwb5gvz.js → SideCalculator2D-DX0718xq.js} +1 -1
  150. package/chunks/SimpleGeometryCursor.js +1 -1
  151. package/chunks/SpatialReference.js +1 -1
  152. package/chunks/Transformation2D.js +1 -1
  153. package/chunks/centroidOperator.js +1 -1
  154. package/chunks/containsOperator.js +1 -1
  155. package/chunks/disjointOperator.js +1 -1
  156. package/chunks/distanceOperator.js +1 -1
  157. package/chunks/equalsOperator.js +1 -1
  158. package/config.js +1 -1
  159. package/core/has.js +1 -1
  160. package/editing/types.d.ts +20 -0
  161. package/geometry/Mesh.d.ts +1 -1
  162. package/geometry/operators/extendOperator.js +1 -1
  163. package/geometry/operators/gx/operatorAffineTransform.js +1 -1
  164. package/geometry/operators/gx/operatorAlphaShape.js +1 -1
  165. package/geometry/operators/gx/operatorAutoComplete.js +1 -1
  166. package/geometry/operators/gx/operatorBoundary.js +1 -1
  167. package/geometry/operators/gx/operatorBuffer.js +1 -1
  168. package/geometry/operators/gx/operatorConvexHull.js +1 -1
  169. package/geometry/operators/gx/operatorDifference.js +1 -1
  170. package/geometry/operators/gx/operatorGraphicBuffer.js +1 -1
  171. package/geometry/operators/gx/operatorIntersection.js +1 -1
  172. package/geometry/operators/gx/operatorLabelPoint.js +1 -1
  173. package/geometry/operators/gx/operatorLinesToPolygons.js +1 -1
  174. package/geometry/operators/gx/operatorLocateBetween.js +1 -1
  175. package/geometry/operators/gx/operatorMinimumBoundingCircle.js +1 -1
  176. package/geometry/operators/gx/operatorOffset.js +1 -1
  177. package/geometry/operators/gx/operatorPolygonOverlay.js +1 -1
  178. package/geometry/operators/gx/operatorPolygonSlicer.js +1 -1
  179. package/geometry/operators/gx/operatorSinglePartToMultiPart.js +1 -1
  180. package/geometry/operators/gx/operatorSymmetricDifference.js +1 -1
  181. package/geometry/operators/gx/operatorUnion.js +1 -1
  182. package/geometry/operators/isNearOperator.js +1 -1
  183. package/geometry/operators/json/containsOperator.js +1 -1
  184. package/geometry/operators/json/disjointOperator.js +1 -1
  185. package/geometry/operators/reshapeOperator.js +1 -1
  186. package/geometry/operators/support/apiConverter.js +1 -1
  187. package/geometry/operators/support/initNoPeFactory.js +1 -1
  188. package/geometry/operators/support/jsonConverter.js +1 -1
  189. package/kernel.js +1 -1
  190. package/layers/FeatureLayer.d.ts +7 -4
  191. package/layers/FeatureLayer.js +1 -1
  192. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  193. package/layers/SubtypeGroupLayer.d.ts +7 -4
  194. package/layers/SubtypeGroupLayer.js +1 -1
  195. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  196. package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
  197. package/layers/orientedImagery/core/coverageUtils.js +1 -1
  198. package/layers/orientedImagery/transformations/utils.js +1 -1
  199. package/layers/support/EditingCapabilities.js +1 -1
  200. package/layers/support/SubtypeSublayer.d.ts +7 -4
  201. package/layers/support/SubtypeSublayer.js +1 -1
  202. package/layers/support/featureLayerUtils.js +1 -1
  203. package/networks/UtilityNetwork.js +1 -1
  204. package/package.json +1 -1
  205. package/rest/query/operations/query.js +1 -1
  206. package/smartMapping/renderers/location.js +1 -1
  207. package/smartMapping/renderers/opacity.js +1 -1
  208. package/smartMapping/renderers/support/regenerateUtils.js +1 -1
  209. package/smartMapping/renderers/support/rendererUtils.js +1 -1
  210. package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
  211. package/support/revision.js +1 -1
  212. package/symbols/cim/effects/EffectOffset.js +1 -1
  213. package/third-party-notices.txt +0 -32
  214. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
  215. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterVertexPack.js +1 -1
  216. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  217. package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
  218. package/views/2d/layers/features/support/FeatureSetReaderParquet.js +1 -1
  219. package/views/3d/webgl-engine/core/shaderLibrary/util/EmissionDimming.glsl.js +1 -1
  220. package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
  221. package/views/3d/webgl-engine/effects/transparency/OITBlend.js +1 -1
  222. package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +1 -1
  223. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.d.ts +10 -3
  224. package/widgets/BatchAttributeForm/BatchAttributeFormViewModel.js +1 -1
  225. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.d.ts +1 -1
  226. package/widgets/BatchAttributeForm/inputs/AttachmentElementInput.js +1 -1
  227. package/widgets/BatchAttributeForm/interfaceUtils.js +1 -1
  228. package/widgets/BatchAttributeForm/types.d.ts +8 -9
  229. package/widgets/BatchAttributeForm.js +1 -1
  230. package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
  231. package/widgets/Editor/CreateFeaturesWorkflowData.js +1 -1
  232. package/widgets/Editor/EditorViewModel.d.ts +1 -1
  233. package/widgets/Editor/EditorViewModel.js +1 -1
  234. package/widgets/Editor/UpdateFeatureWorkflow.js +1 -1
  235. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  236. package/widgets/Editor/UpdateWorkflow.js +1 -1
  237. package/widgets/Editor/UpdateWorkflowData.js +1 -1
  238. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  239. package/widgets/Editor/support/EditorItem.js +1 -1
  240. package/widgets/Editor/support/attachmentUtils.js +2 -0
  241. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  242. package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
  243. package/widgets/OrientedImageryViewer/components/OrientedImageryVideoViewModel.js +1 -1
  244. package/widgets/OrientedImageryViewer.js +1 -1
  245. package/widgets/Sketch.js +1 -1
  246. package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
  247. package/widgets/UtilityNetworkTrace/support/GeometryHandler.js +1 -1
  248. package/assets/esri/core/workers/chunks/013708f40f811158d42c.js +0 -1
  249. package/assets/esri/core/workers/chunks/0ecc1bc1686844cdd60e.js +0 -1
  250. package/assets/esri/core/workers/chunks/152193072c9d3487b47a.js +0 -1
  251. package/assets/esri/core/workers/chunks/174cc2e69e5b5a13d880.js +0 -1
  252. package/assets/esri/core/workers/chunks/181e948d076a9a7aae8a.js +0 -1
  253. package/assets/esri/core/workers/chunks/18e7784f13a57a75585a.js +0 -1
  254. package/assets/esri/core/workers/chunks/1c8436b27a3d3cde5cfc.js +0 -1
  255. package/assets/esri/core/workers/chunks/1dacc0b64bd27ce2de3a.js +0 -1
  256. package/assets/esri/core/workers/chunks/1eeb1edca0ad5db6917c.js +0 -1
  257. package/assets/esri/core/workers/chunks/1f289aa69dd6b6be534a.js +0 -1
  258. package/assets/esri/core/workers/chunks/2d2895f1fdf44d212a4d.js +0 -1
  259. package/assets/esri/core/workers/chunks/2e6382d50bf012064eae.js +0 -1
  260. package/assets/esri/core/workers/chunks/313773bd9c82d1858929.js +0 -1
  261. package/assets/esri/core/workers/chunks/3248001d9dfb9153699e.js +0 -1
  262. package/assets/esri/core/workers/chunks/33b4f5dfe1a16b59b010.js +0 -1
  263. package/assets/esri/core/workers/chunks/36dac6ab51d9dbdd091d.js +0 -1
  264. package/assets/esri/core/workers/chunks/39974d1e5d3820ef1680.js +0 -1
  265. package/assets/esri/core/workers/chunks/4301cb9670fa7c907460.js +0 -1
  266. package/assets/esri/core/workers/chunks/493a0981e90a5799fb5b.js +0 -1
  267. package/assets/esri/core/workers/chunks/4c54cb80c4dc9bbbd395.js +0 -1
  268. package/assets/esri/core/workers/chunks/4e788fc6cb2ea936f676.js +0 -1
  269. package/assets/esri/core/workers/chunks/4efef5fa8bf23aaf34cd.js +0 -1
  270. package/assets/esri/core/workers/chunks/5121768c70f1e03b685c.js +0 -1
  271. package/assets/esri/core/workers/chunks/52f354bf80ee5ab0379a.js +0 -1
  272. package/assets/esri/core/workers/chunks/5359ff9492383c5bd9b1.js +0 -1
  273. package/assets/esri/core/workers/chunks/54d7f07e3348ddb6d9a2.js +0 -1
  274. package/assets/esri/core/workers/chunks/597aa39cdb5366ef9a74.js +0 -1
  275. package/assets/esri/core/workers/chunks/5aba23584e0b230c75f5.js +0 -1
  276. package/assets/esri/core/workers/chunks/5cb274e5759f7ca0d4ed.js +0 -1
  277. package/assets/esri/core/workers/chunks/64114a7d2da162987958.js +0 -1
  278. package/assets/esri/core/workers/chunks/65520a443e3811255bea.js +0 -1
  279. package/assets/esri/core/workers/chunks/65621650a53f69f7b05a.js +0 -1
  280. package/assets/esri/core/workers/chunks/6821462e5c1e9c76010a.js +0 -1
  281. package/assets/esri/core/workers/chunks/6a3d207308b29651f397.js +0 -1
  282. package/assets/esri/core/workers/chunks/6a54dddafb6763bf287e.js +0 -1
  283. package/assets/esri/core/workers/chunks/6f5d61f734ec40dafabb.js +0 -1
  284. package/assets/esri/core/workers/chunks/71a48f597fda322ea56f.js +0 -1
  285. package/assets/esri/core/workers/chunks/737de87bfb9b5f5a9c6c.js +0 -1
  286. package/assets/esri/core/workers/chunks/78c53aeb0a408ab3c80c.js +0 -1
  287. package/assets/esri/core/workers/chunks/79f2d4b3af5776ec2045.js +0 -1
  288. package/assets/esri/core/workers/chunks/7a997ac153181a8f71ef.js +0 -1
  289. package/assets/esri/core/workers/chunks/7b5c1030a7cf0f382cc4.js +0 -1
  290. package/assets/esri/core/workers/chunks/7cee81c5aa1e6b7d2452.js +0 -1
  291. package/assets/esri/core/workers/chunks/7ed3d6c72f23c628df3b.js +0 -1
  292. package/assets/esri/core/workers/chunks/80f4f686ce403cb2693f.js +0 -1
  293. package/assets/esri/core/workers/chunks/8351012ceb466f01b8fd.js +0 -1
  294. package/assets/esri/core/workers/chunks/8e99f937fd36cf2cd05f.js +0 -1
  295. package/assets/esri/core/workers/chunks/93bd56396b8cd020f965.js +0 -1
  296. package/assets/esri/core/workers/chunks/94fac056e14caed09682.js +0 -1
  297. package/assets/esri/core/workers/chunks/957f7b8de4aecb6f644e.js +0 -1
  298. package/assets/esri/core/workers/chunks/99101789035f1787c630.js +0 -1
  299. package/assets/esri/core/workers/chunks/9c6d34bb666f630d511f.js +0 -1
  300. package/assets/esri/core/workers/chunks/a0208e35b217808777c4.js +0 -1
  301. package/assets/esri/core/workers/chunks/a320998f18922a35899f.js +0 -1
  302. package/assets/esri/core/workers/chunks/a4e9a17dacbb52444d75.js +0 -1
  303. package/assets/esri/core/workers/chunks/a5abba59e738c3240c22.js +0 -1
  304. package/assets/esri/core/workers/chunks/aae0049c2c3e15a813e8.js +0 -1
  305. package/assets/esri/core/workers/chunks/adc32f6b45ea3026fc34.js +0 -1
  306. package/assets/esri/core/workers/chunks/af75e91b88e747aa76ac.js +0 -1
  307. package/assets/esri/core/workers/chunks/af8ef6701631ed5e5b80.js +0 -1
  308. package/assets/esri/core/workers/chunks/b1524f23e6cee5301a14.js +0 -1
  309. package/assets/esri/core/workers/chunks/b666027b9022fa346a79.js +0 -1
  310. package/assets/esri/core/workers/chunks/b73c146d3e550eaf07eb.js +0 -1
  311. package/assets/esri/core/workers/chunks/b775a0d8894930af4983.js +0 -1
  312. package/assets/esri/core/workers/chunks/b803e7b0d489bb628d72.js +0 -1
  313. package/assets/esri/core/workers/chunks/bb24972603fb35dd8dcf.js +0 -1
  314. package/assets/esri/core/workers/chunks/bc893c95c0ab7d4bb91e.js +0 -1
  315. package/assets/esri/core/workers/chunks/c2cbc2a920e6e199533a.js +0 -1
  316. package/assets/esri/core/workers/chunks/c3ff2ff0a86a9143d7a5.js +0 -1
  317. package/assets/esri/core/workers/chunks/c9a4601073e1a3eee9d0.js +0 -1
  318. package/assets/esri/core/workers/chunks/d6145cd7e7c5346f62ec.js +0 -1
  319. package/assets/esri/core/workers/chunks/d6911e9453532501f460.js +0 -1
  320. package/assets/esri/core/workers/chunks/dddb57ff637643ccfc87.js +0 -1
  321. package/assets/esri/core/workers/chunks/e1bf87077541da6853c6.js +0 -1
  322. package/assets/esri/core/workers/chunks/e3b713a590cce6245ee2.js +0 -1
  323. package/assets/esri/core/workers/chunks/e4406baf206b9e4c7e4f.js +0 -1
  324. package/assets/esri/core/workers/chunks/e499252cb52f7aed49a0.js +0 -1
  325. package/assets/esri/core/workers/chunks/e656fd5ecf9ac059a87b.js +0 -1
  326. package/assets/esri/core/workers/chunks/e92698f50089484c4901.js +0 -1
  327. package/assets/esri/core/workers/chunks/e9c5c295b6bf10e942a4.js +0 -1
  328. package/assets/esri/core/workers/chunks/ed3d16a5b4084ef61f8a.js +0 -1
  329. package/assets/esri/core/workers/chunks/edcde00495727d506c46.js +0 -1
  330. package/assets/esri/core/workers/chunks/efb4aa5886730ea377bd.js +0 -1
  331. package/assets/esri/core/workers/chunks/f116331c6eca937aac8e.js +0 -1
  332. package/assets/esri/core/workers/chunks/f518835b2dc89a48cfb1.js +0 -1
  333. package/assets/esri/core/workers/chunks/f7fca88d120d45bb782a.js +0 -1
  334. package/assets/esri/core/workers/chunks/f819854098d63fe4ccdb.js +0 -1
  335. package/assets/esri/core/workers/chunks/f98118127469449ca145.js +0 -1
  336. package/assets/esri/core/workers/chunks/f9e22cf59e2e2782d70f.js +0 -1
  337. package/assets/esri/core/workers/chunks/fbe7dae0b4bf2d172487.js +0 -1
  338. package/chunks/Bufferer-Dw9Qi4T1.js +0 -2
  339. package/chunks/Distance2DCalculator-CXhBP-8I.js +0 -2
  340. package/chunks/GeodeticDistanceCalculator-Ce-woMPw.js +0 -2
  341. /package/chunks/{Centroid-DZi-eb9F.js → Centroid-CA-TwbbN.js} +0 -0
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import{constructFromFlatGeometry as e}from"../../../chunks/FlatGeometry.js";import{d as t,a as n,g as r,r as i,q as s,G as a,t as o}from"../../../chunks/Geometry.js";import{ar as u,i as m,d as l,b as c,as as d,P as _,m as h}from"../../../chunks/Point2D.js";import{aI as f,aE as p,aJ as k,aK as b,aL as y,S as N,aM as T,aN as g,aO as v}from"../../../chunks/SpatialReference.js";import{G as x,K as A,P as S,E as w,D as C,F as D,L as F,M as j,v as O}from"../../../chunks/Envelope.js";import{P as z,a as I,S as E,M as P,y as B,z as V,A as R,B as M,F as U,H as W}from"../../../chunks/MultiPathImpl.js";import{convertGeometryxToFlat as G,convertFlatToGeometryJSON as L,convertGeometryToFlat as X}from"../../FlatGeometry.js";import Y from"../../SpatialReference.js";import"./initNoPeFactory.js";import{isPoint as K,isMultipoint as q,isPolyline as J,isPolygon as Q}from"../../support/jsonTypeUtils.js";function Z(){if(-1===this.m_i)return this.m_i=0,{value:{m_token:1,m_value:null},done:!1};if(this.m_i<this.m_keys.length){const e=this.m_bReturnKey,t=Math.trunc(this.m_i);return this.m_bReturnKey=!this.m_bReturnKey,this.m_i+=.5,e?{value:{m_token:5,m_value:this.m_keys[t]},done:!1}:{value:{m_token:6,m_value:this.m_o[this.m_keys[t]]},done:!1}}return{value:{m_token:3,m_value:null},done:!0}}function H(){if(-1===this.m_i)return this.m_i=0,{value:{m_token:2,m_value:null},done:!1};if(this.m_i<this.m_a.length){const e={value:{m_token:6,m_value:this.m_a[this.m_i++]},done:!1};return this.m_strict||void 0===e.value.m_value&&(e.value.m_value=Number.NaN),e}return{value:{m_token:4,m_value:null},done:!0}}class ${createJSONObjectIterator(e){return{m_iteratorType:"object",m_o:e,m_keys:this.m_options.strict?Object.keys(e):Object.keys(e).filter(t=>void 0!==e[t]),m_i:-1,m_bReturnKey:!0,next:Z}}createJSONArrayIterator(e){return{m_iteratorType:"array",m_strict:this.m_options.strict,m_i:-1,m_a:e,next:H}}constructor(e,t){this.m_currentToken=0,this.m_options=t?{...t}:{strict:!0};const n=e;this.m_iteratorStack=[n instanceof Array?this.createJSONArrayIterator(n):this.createJSONObjectIterator(n)],this.m_nextFlatToken={m_value:null,m_token:0}}nextToken(){if(0===this.m_iteratorStack.length)return this.m_currentToken=0;switch(this.m_nextFlatToken=this.m_iteratorStack.at(-1).next().value,this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_currentToken=1;case 3:return this.m_iteratorStack.pop(),this.m_currentToken=3;case 2:return this.m_currentToken=2;case 4:return this.m_iteratorStack.pop(),this.m_currentToken=4;case 5:return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=5;case 6:if(this.m_nextFlatToken.m_value instanceof Array)return this.m_iteratorStack.push(this.createJSONArrayIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(this.m_nextFlatToken.m_value instanceof Object)return this.m_iteratorStack.push(this.createJSONObjectIterator(this.m_nextFlatToken.m_value)),this.nextToken();if("number"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,Number.isSafeInteger(this.m_currentValue)&&this.m_currentValue>=u()&&this.m_currentValue<=m()?this.m_currentToken=8:this.m_currentToken=7;if("string"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=6;if("boolean"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=this.m_nextFlatToken.m_value?11:12;if("object"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=null,this.m_currentToken=10;t("unrecognized json element type")}t("unrecognized json element type")}currentToken(){return this.m_currentToken}skipChildren(){if(0!==this.m_iteratorStack.length)switch(this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=3,void(this.m_currentToken=3);case 2:return this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=4,void(this.m_currentToken=4)}}currentString(){return 6!==this.m_currentToken&&5!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentDoubleValue(){return 7!==this.m_currentToken&&8!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentInt32Value(){return 8!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentInt64Value(){return r(0),0n}currentBoolValue(){return 12!==this.m_currentToken&&11!==this.m_currentToken&&n("invalid token"),this.m_currentValue}isError(){return 0}}class ee{constructor(){this.m_pendingKey=null,this.m_acceptedObject=null,this.m_currentObject=[]}reset(){this.m_pendingKey=null,this.m_acceptedObject=null,this.m_currentObject.length=0}startObject(){const e={};this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}startArray(){const e=[];this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}endObject(){this.m_acceptedObject=this.m_currentObject.at(-1),this.m_currentObject.pop()}endArray(){this.m_currentObject.pop()}addFieldName(e){this.m_pendingKey=e}addValue_(e){this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):this.m_currentObject.at(-1).push(e)}addString(e){this.addValue_(e)}addDouble(e,t){this.addValue_(e)}addInt64(e){r(0)}addInt32(e){this.addValue_(e)}addBool(e){this.addValue_(e)}addNull(){this.addValue_(null)}getObject(){return this.m_acceptedObject}}class te{constructor(e){return this.m_buffer=null,this.m_view=null,this.m_sz=0,this.m_offset=0,this.m_bOwnsBuffer=!0,this.m_bLittleEndian=!0,this.m_element=new ArrayBuffer(8),this.m_elementBytes=new Uint8Array(this.m_element),this.m_elementView=new DataView(this.m_element),this.m_elementDouble=new Float64Array(this.m_element),this.m_elementFloat=new Float32Array(this.m_element),this.m_elementInt64=new BigInt64Array(this.m_element),this.m_elementInt32=new Int32Array(this.m_element),this.m_elementInt16=new Int16Array(this.m_element),void 0!==e.sz?(this.m_sz=e.sz,e.buffer?(this.m_sz<0&&i("size out of range"),this.m_buffer=e.buffer,this.m_offset=void 0!==e.offset?e.offset:0,this.m_view=void 0!==e.offset?new DataView(e.buffer,e.offset,e.sz):new DataView(this.m_buffer),this.m_bOwnsBuffer=!1,void(this.m_bLittleEndian=!0)):(this.m_sz<0&&i("size out of range"),void(this.m_sz>0&&(this.m_buffer=new ArrayBuffer(this.m_sz),this.m_view=new DataView(this.m_buffer))))):e.move?(this.m_sz=e.move.m_sz,this.m_buffer=e.move.m_buffer,this.m_view=e.move.m_view,this.m_bOwnsBuffer=e.move.m_bOwnsBuffer,this.m_bLittleEndian=e.move.m_bLittleEndian,e.move.m_buffer=null,e.move.m_view=null,e.move.m_sz=0,void(e.move.m_bOwnsBuffer=!0)):void t("unrecognized constructor options")}swapBytesDouble(){this.doSwap()&&(this.m_elementDouble[0]=this.m_elementBytes[0]<<56|this.m_elementBytes[1]<<48|this.m_elementBytes[2]<<40|this.m_elementBytes[3]<<32|this.m_elementBytes[4]<<24|this.m_elementBytes[5]<<16|this.m_elementBytes[6]<<8|this.m_elementBytes[7])}swapBytesInt32(){this.doSwap()&&(this.m_elementInt32[0]=this.m_elementBytes[0]<<24|this.m_elementBytes[1]<<16|this.m_elementBytes[2]<<8|this.m_elementBytes[3])}getOffset(){return this.m_offset}assignMove(e){return this===e||(this.clear(),this.m_sz=e.m_sz,this.m_buffer=e.m_buffer,this.m_view=e.m_view,this.m_bOwnsBuffer=e.m_bOwnsBuffer,this.m_bLittleEndian=e.m_bLittleEndian,e.m_buffer=null,e.m_sz=0,e.m_bOwnsBuffer=!0),this}doSwap(){return this.m_bLittleEndian!==(1===te.getNativeByteOrder())}setNativeByteOrder(){this.m_bLittleEndian=1===te.getNativeByteOrder()}setOrder(e){this.m_bLittleEndian=1===e}getOrder(){return this.m_bLittleEndian?1:0}getView(){return this.m_view||s("buffer not defined"),this.m_view}static getNativeByteOrder(){return 1}clear(){this.m_buffer=null,this.m_sz=0,this.m_bOwnsBuffer=!0}size(){return this.m_sz}readDouble(e){return this.doSwap()?(this.m_elementDouble[0]=this.m_view.getFloat64(e,this.m_bLittleEndian),this.swapBytesDouble(),this.m_elementDouble[0]):this.m_view.getFloat64(e,this.m_bLittleEndian)}writeDouble(e,t){this.m_elementDouble[0]=t,this.swapBytesDouble(),this.m_view.setFloat64(e,this.m_elementDouble[0],this.m_bLittleEndian)}readInt32(e){return this.doSwap()?(this.m_elementInt32[0]=this.m_view.getInt32(e,this.m_bLittleEndian),this.swapBytesInt32(),this.m_elementInt32[0]):this.m_view.getInt32(e,this.m_bLittleEndian)}writeInt32(e,t){this.m_elementInt32[0]=t,this.swapBytesInt32(),this.m_view.setInt32(e,this.m_elementInt32[0],this.m_bLittleEndian)}getPtr(){return this.m_buffer}setSizeNoRealloc(e){r(e>=0&&e<=this.m_sz),this.m_sz=e}}function ne(e,t,i,s,o,u){let m=!1,l=!1,c=!1,d=!1,_=!1,h=!1,f=!1,p=!1,k=!1,b=!1,y=!1,N=!1,T=!1,g=!1,v=!1,C=!1,D=!1,F=!1,j=!1,O=!1,z=!1,I=!1,E=!1,P=!1,B=Number.NaN,V=Number.NaN,R=Number.NaN,M=Number.NaN,U=0,W=Number.NaN,G=Number.NaN,L=Number.NaN,X=Number.NaN,Y=Number.NaN,K=Number.NaN,q=Number.NaN,J=Number.NaN,Q=0,Z=0,H=!1,$=!1,ee=null,te=null,ne=null,re=null,ce=null;for(;3!==i.nextToken();){const u=i.currentString();if(i.nextToken(),"spatialReference"===u){if(o&&!m){m=!0,1===i.currentToken()?re=ie(i):10!==i.currentToken()&&n("failed to parse spatial reference: object or null is expected");continue}}else if(s)if("hasZ"===u){if(!l){l=!0,H=11===i.currentToken();continue}}else if("hasM"===u){if(!c){c=!0,$=11===i.currentToken();continue}}else if("rings"===u){if(!(_||h||e!==a.enumUnknown&&e!==a.enumPolygon)){_=!0,({geometry:ce,as:ee,bs:te}=se(!0,!1,t,i));continue}}else if("curveRings"===u){if(!h&&(e===a.enumUnknown||e===a.enumPolygon)){h=!0,({geometry:ce,as:ee,bs:te}=se(!0,!0,t,i));continue}}else if("paths"===u){if(!(f||p||e!==a.enumUnknown&&e!==a.enumPolyline)){f=!0,({geometry:ce,as:ee,bs:te}=se(!1,!1,t,i));continue}}else if("curvePaths"===u){if(!p&&(e===a.enumUnknown||e===a.enumPolyline)){p=!0,({geometry:ce,as:ee,bs:te}=se(!1,!0,t,i));continue}}else if("points"===u){if(!k&&(e===a.enumUnknown||e===a.enumMultiPoint)){k=!0,({geometry:ce,as:ee,bs:te}=ae(t,i));continue}}else if("ids"===u){if(!d){d=!0,ne=oe(t,i);continue}}else if("x"===u){if(!b&&(e===a.enumUnknown||e===a.enumPoint)){b=!0,B=ue(i);continue}}else if("y"===u){if(!y&&(e===a.enumUnknown||e===a.enumPoint)){y=!0,V=ue(i);continue}}else if("z"===u){if(!N&&(e===a.enumUnknown||e===a.enumPoint)){N=!0,R=ue(i);continue}}else if("m"===u){if(!T&&(e===a.enumUnknown||e===a.enumPoint)){T=!0,M=ue(i);continue}}else if("id"===u){if(!g&&(e===a.enumUnknown||e===a.enumPoint)){g=!0,U=me(i);continue}}else if("xmin"===u){if(!v&&(e===a.enumUnknown||e===a.enumEnvelope)){v=!0,W=ue(i);continue}}else if("ymin"===u){if(!C&&(e===a.enumUnknown||e===a.enumEnvelope)){C=!0,G=ue(i);continue}}else if("mmin"===u){if(!z&&(e===a.enumUnknown||e===a.enumEnvelope)){z=!0,q=ue(i);continue}}else if("zmin"===u){if(!j&&(e===a.enumUnknown||e===a.enumEnvelope)){j=!0,Y=ue(i);continue}}else if("idmin"===u){if(!E&&(e===a.enumUnknown||e===a.enumEnvelope)){E=!0,Q=me(i);continue}}else if("xmax"===u){if(!D&&(e===a.enumUnknown||e===a.enumEnvelope)){D=!0,L=ue(i);continue}}else if("ymax"===u){if(!F&&(e===a.enumUnknown||e===a.enumEnvelope)){F=!0,X=ue(i);continue}}else if("mmax"===u){if(!I&&(e===a.enumUnknown||e===a.enumEnvelope)){I=!0,J=ue(i);continue}}else if("zmax"===u){if(!O&&(e===a.enumUnknown||e===a.enumEnvelope)){O=!0,K=ue(i);continue}}else if("idmax"===u){if(!P&&(e===a.enumUnknown||e===a.enumEnvelope)){P=!0,Z=me(i);continue}}else"materials"===u&&r(0);i.skipChildren()}if(_||h||f||p||k){let e=null,t=null;const n=ce;H&&(ce.addAttribute(1),e=ee,e||(e=x(n.getPointCount(),Number.NaN))),$&&(ce.addAttribute(2),t=H?te:ee),null!=ne&&ce.addAttribute(3),H&&null!=e&&n.setAttributeStreamRef(1,e),$&&null!=t&&n.setAttributeStreamRef(2,t),null!=ne&&le(n,ne)}else if(b||y||T||N||g){A(B,V)||n("failed to parse point: x and y must be finite or nan"),(Number.isNaN(V)||Number.isNaN(B))&&(B=Number.NaN,V=Number.NaN);const e=new S({x:B,y:V});N&&e.setZ(R),T&&e.setM(M),g&&e.setID(U),ce=e}else if(v||C||D||F||j||O||z||I||E||P){(Number.isNaN(G)||Number.isNaN(L)||Number.isNaN(X))&&(W=Number.NaN);const e=new w({xmin:W,ymin:G,xmax:L,ymax:X});j&&O&&e.setInterval(1,0,Y,K),z&&I&&e.setInterval(2,0,q,J),E&&P&&e.setInterval(3,0,Q,Z),ce=e}return{...ce?{geom:ce}:{},...re?{sr:re}:{}}}function re(e){let t=!1;for(;3!==e.nextToken();){const n=e.currentString();e.nextToken(),"uwkid"===n?t||(t=!0,8===e.currentToken()&&e.currentInt32Value()):e.skipChildren()}return null}function ie(e){let t=!1,n=!1,r=!1,i=!1,s=!1,a=!1,o=!1,u=!1,m=!1,l=!1,c=!1,d=!1,_=!1,h=!1,v=!1,x=!1,A=!1,S=-1,w=-1,C=-1,D=-1,F=0,j=0,O=0,z=0,I=0,E=0,P=0,B=0,V=0,R=0,M="",U="",W=null;for(;3!==e.nextToken();){const f=e.currentString();e.nextToken(),"wkid"===f?t||(t=!0,8===e.currentToken()&&(S=e.currentInt32Value())):"latestWkid"===f?n||(n=!0,8===e.currentToken()&&(w=e.currentInt32Value())):"wkt"===f?s||(s=!0,6===e.currentToken()&&(M=e.currentString())):"wkt2"===f?s||6===e.currentToken()&&(U=e.currentString()):"vcsWkid"===f?r||(r=!0,8===e.currentToken()&&(C=e.currentInt32Value())):"latestVcsWkid"===f?i||(i=!0,8===e.currentToken()&&(D=e.currentInt32Value())):"xyTolerance"===f?o||(o=!0,a=!0,F=e.currentDoubleValue()):"zTolerance"===f?u||(u=!0,a=!0,j=e.currentDoubleValue()):"mTolerance"===f?m||(m=!0,a=!0,O=e.currentDoubleValue()):"falseX"===f?l||(l=!0,a=!0,P=e.currentDoubleValue()):"falseY"===f?c||(c=!0,a=!0,B=e.currentDoubleValue()):"falseZ"===f?d||(d=!0,a=!0,V=e.currentDoubleValue()):"falseM"===f?_||(_=!0,a=!0,R=e.currentDoubleValue()):"xyUnits"===f?h||(h=!0,a=!0,z=e.currentDoubleValue()):"zUnits"===f?v||(v=!0,a=!0,I=e.currentDoubleValue()):"mUnits"===f?x||(x=!0,a=!0,E=e.currentDoubleValue()):"unit"===f?A||(A=!0,W=re(e)):e.skipChildren()}D<=0&&C>0&&(D=C),C<=0&&D>0&&(C=D);let G=null,L=!0;if(0!==M.length&&(L=!1,f(M)&&(G=p(M))),G||0===U.length||(L=!1,f(U)&&(G=p(U))),!G&&w>0&&(L=!1,k(w)&&(D<=0||b())&&(G=y(w,D))),!G&&S>0&&(L=!1,k(S)&&(C<=0||b())&&(G=y(S,C))),L&&(G=N(W)),a&&G){const e=new T;G.queryPrecisionDescriptorWithoutFalseXY(e),o&&e.setTolerance(0,F),u&&e.setTolerance(1,j),m&&e.setTolerance(2,O),h&&l&&c&&e.setGridParams(P,B,z),v&&d&&e.setZParams(V,I),x&&_&&e.setMParams(R,E),G=g(G,e)}return G}function se(e,t,r,i){2!==i.currentToken()&&n("failed to parse multipath: array of array of vertices is expected");const s=e?new z:new I,a=s,o=C(0),u=x(2,0),m=D(0);let h=null,f=null,p=null,k=null,b=null,y=0,N=0,T=0;const g=new E,v=_.getNAN();let A=0,S=0;const w=e?1:0;for(;4!==i.nextToken();){2!==i.currentToken()&&n("failed to parse multipath: ring/path array is expected");let r=2,s=0,j=!0;const O=4;let z=0,I=0;const E=_.getNAN(),P=l(O,Number.NaN),B=l(O,Number.NaN);let V=!1;for(i.nextToken();4!==i.currentToken();){if(t&&1===i.currentToken())j&&n("failed to parse multipath: starting vertex array is expected"),p||(p=D(A-1,1),k=C(A-1,-1),b=x(0)),V=!0,r=1,({segFlag:T,toPointSz:z}=ke(g,P,v,i));else{for(V=!1,2!==i.currentToken()&&n("failed to parse multipath: array is expected, rings/paths vertices consist of arrays of coordinates"),z=0;4!==i.nextToken();)z===O&&n("failed to parse multipath: each vertex array has to have at most 4 elements"),P[z++]=ue(i);z<2&&n("failed to parse multipath: each vertex array has to have at least 2 elements"),F(P[0],P[1])||n("failed to parse multipath: x and y must be finite")}i.nextToken();do{if(u.size()===2*A&&u.resize(ce(A)),u.writePoint2D(2*A,E.setCoords(P[0],P[1])),h&&h.size()===A&&h.resize(de(A)),z>2?(h||(h=x(A+1,Number.NaN)),h.write(A,P[2])):h&&h.write(A,Number.NaN),f&&f.size()===A&&f.resize(de(A)),z>3?(f||(f=x(A+1,Number.NaN)),f.write(A,P[3])):f&&f.write(A,Number.NaN),j)S++,o.add(A),m.add(w),j=!1,I=z,c(B,P,0,0,I);else if(null!==p)if(V){const e=W(T),t=b.size();b.resize(t+e),p.add(T),k.add(y),g.get().writeInBufferStream(b,y),y+=e,a.incCurveType(T,1),N++}else p.add(1),k.add(-1);A++,s++,v.setCoords(P[0],P[1])}while(s<r&&4===i.currentToken())}0!==s&&(e&&s>r&&z===I&&0===d(P,B,z)?(A--,s--):null!==p&&(p.add(1),k.add(-1)))}return A&&(o.resize(S),m.resize(S),A>0&&(o.add(A),m.add(0)),a.setAttributeStreamRef(0,u),a.setPathFlagsStreamRef(m),a.setPathStreamRef(o),null!==p&&(a.updateCurveCounter(N),a.setSegmentData(k,b,p,y)),a.notifyModifiedFlags(65535)),{geometry:s,as:h,bs:f}}function ae(e,t){2!==t.currentToken()&&n("failed to parse multipoint: array of vertices is expected");let r=0;const i=new P,s=x(2,0);let a=0;const o=4,u=l(o,Number.NaN),m=new _;let c=null,d=null;for(;4!==t.nextToken();){for(2!==t.currentToken()&&n("failed to parse multipoint: array is expected, multipoint vertices consist of arrays of cooridinates"),a=0;4!==t.nextToken();)a===o&&n("failed to parse multipoint: each vertex array has to have at most 4 elements"),u[a++]=ue(t);a<2&&n("failed to parse multipoint: each vertex array has to have at least 2 elements"),F(u[0],u[1])||n("failed to parse multipoint: x and y must be finite"),s.size()===2*r&&s.resize(ce(r)),s.writePoint2D(2*r,m.setCoords(u[0],u[1])),c&&c.size()===r&&c.resize(de(r)),a>2?(c||(c=x(r+1,Number.NaN)),c.write(r,u[2])):c&&c.write(r,Number.NaN),d&&d.size()===r&&d.resize(de(r)),a>3?(d||(d=x(r+1,Number.NaN)),d.write(r,u[3])):d&&d.write(r,Number.NaN),r++}if(r){const e=i.getImpl();e.setAttributeStreamRef(0,s),e.resizeNoInit(r),e.notifyModifiedFlags(65535)}return{geometry:i,as:c,bs:d}}function oe(e,t){2!==t.currentToken()&&n("failed to parse array of IDs: array of array of integers is expected");const r=j(2,0);let i=0,s=-1;for(;4!==t.nextToken();){const e=i;r.size()===i&&r.resize(de(i)),i++;let a=0;for(-1===s?s=2===t.currentToken()?1:0:1===s&&2!==t.currentToken()&&n("failed to parse array of IDs: array of array of integers is expected"),0===s&&(r.size()===i&&r.resize(de(i)),r.write(i,me(t)),a++,i++);4!==t.nextToken();)r.size()===i&&r.resize(de(i)),r.write(i,me(t)),a++,i++;if(r.write(e,a),0===s)break}return r.resize(i),r}function ue(e){const t=e.currentToken();if(10===t||6===t&&"NaN"===e.currentString())return Number.NaN;{const t=e.currentDoubleValue();return Number.isNaN(t)?Number.NaN:t}}function me(e){return e.currentInt32Value()}function le(e,n){if(e.isEmpty())return;const r=j(2,0),i=e.getGeometryType();let s=0;i===P.type?s=1:i===I.type||i===z.type?s=e.getPathCount():t("not implemented"),r.resize(e.getPointCount(),0);let a=0;for(let o=0;o<s;++o){const s=n.read(a);a++;const u=a+s;let m=0,l=0;i===P.type?m=e.getPointCount():i===I.type||i===z.type?(m=e.getPathSize(o),l=e.getPathStart(o)):t("not implemented");for(let e=0,t=Math.min(s,m);e<t;++e)r.write(l,n.read(a)),a++,l++;a=u}e.getImpl().setAttributeStreamRef(3,r)}function ce(e){let t=2*Math.trunc(3*(e+1)/2);return t<8?t=8:t<32&&(t=32),t}function de(e){let t=Math.trunc(3*(e+1)/2);return t<4?t=4:t<16&&(t=16),t}function _e(e,t,n,r,s){s>=r.size()&&i("Byte_buffer out of range access"),e.m_bits=0,e.m_rotation=0,e.m_cosr=1,e.m_sinr=0,e.setStartXY(t),e.setEndXY(n);const a=_.getNAN();a.x=r.readDouble(s),a.y=r.readDouble(s+8);const o=r.readInt32(s+16);if(!!(1&o))return e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.assign(a),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),!1;let u=!!(64&o);const m=!!(128&o);let l=!!(32&o);const c=!!(8&o),d=!!(16&o),h=t.equals(n);return u&&!h&&(u=!1,l=!0),l&&h&&(u=!0,l=!1,a.setCoords(0,0)),u||(m?l?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_interior.assign(a),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0):(e.constructCircularArcThreePoint(t,n,a),h&&c===e.isClockwise()&&e.reverse()):l?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),e.queryCoord2D(.5,e.m_interior)):M(e,t,n,a,c,d)),u&&(e.m_center.assign(t),e.m_startAngle=a.x,e.m_sweepAngle=a.y,U(e,Number.NaN,c,d),e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.setCoordsPoint2D(t)),e.setProjectionBehavior(0),R(e),!0}function he(e,t,n,r,i){e.m_bits=0,e.m_center.x=r.readDouble(i),e.m_center.y=r.readDouble(i+8),e.m_rotation=r.readDouble(i+16),e.m_semiMajorAxis=r.readDouble(i+24),e.m_minorMajorRatio=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y;const s=r.readInt32(i+40);if(1&s)return!1;let a=!!(64&s),o=!!(128&s);const u=!!(2048&s),m=!!(4096&s);return!!!(512&s)&&!!!(1024&s)||o||(a=!0),o&&!t.equals(n)?(o=!1,a=!0):a&&t.equals(n)&&(o=!0,a=!1),o?(e.m_center.assign(t),e.m_startAngle=e.m_center.x,e.m_sweepAngle=e.m_center.y,U(e,Number.NaN,u,m),e.m_semiMajorAxis=0,e.m_interior.setCoordsPoint2D(t)):a?(e.m_center.setNAN(),e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),e.queryCoord2D(.5,e.m_interior)):e.constructEllipticArcEndPointsCenter(t,n,e.m_semiMajorAxis,e.m_minorMajorRatio,e.m_rotation,!m,u,e.m_center),e.setProjectionBehavior(1),R(e),!0}function fe(e,t,n,i,s){return r(s+32<=i.size()),e.m_cp=h(_,2),e.m_cp[0].x=i.readDouble(s),e.m_cp[0].y=i.readDouble(s+8),e.m_cp[1].x=i.readDouble(s+16),e.m_cp[1].y=i.readDouble(s+24),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function pe(e,t,n,r,i){return e.m_cp.x=r.readDouble(i),e.m_cp.y=r.readDouble(i+8),e.m_weights[0]=r.readDouble(i+16),e.m_weights[1]=r.readDouble(i+24),e.m_weights[2]=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function ke(e,t,r,i,s){const a={segFlag:0,toPointSz:0};let o=i.currentToken();o=i.nextToken();const u=i.currentString(),m=u[0];for((1!==u.length||"a"!==m&&"b"!==m&&"c"!==m&&"n"!==m&&"q"!==m)&&n('failed to parse curve: expecting "a", "b", "n", "q", or "c"'),o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for curve parameters"),o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for to point"),a.toPointSz=0;4!==i.nextToken();)4===a.toPointSz&&n("failed to parse curve: vertex array cannot have more than 4 elements"),t[a.toPointSz++]=ue(i);a.toPointSz<2&&n("failed to parse curve: vertex array must have at least 2 elements");const l=_.construct(t[0],t[1]),c=_.getNAN();let d=-1,h=-1,f=!1,p=Number.NaN,k=Number.NaN,b=Number.NaN;const y=[_.getNAN(),_.getNAN(),_.getNAN()],N=_.getNAN();if("a"===m){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for center point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for center point"),c.setCoords(e,t),o=i.nextToken(),d=i.currentInt32Value(),o=i.nextToken(),h=i.currentInt32Value(),o=i.nextToken(),4!==o?(f=!1,p=ue(i),o=i.nextToken(),k=ue(i),o=i.nextToken(),b=ue(i),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters")):f=!0,a.segFlag=4}else if("b"===m){for(let e=0;e<2;e++){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[e].setCoords(t,r)}o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=2}else if("n"===m){{o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[0].setCoords(e,t)}o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);y[1].setCoords(e,t),y[2].setCoords(r,r),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=8}else if("q"===m){for(let e=0;e<1;e++){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[e].setCoords(t,r)}o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=16}else{o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for interior point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for interior point"),N.setCoords(e,t),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=4}if(o=i.nextToken(),3!==o&&n("failed to parse curve: end object is expected for curve"),"a"===m)if(e.createEllipticArc(),f){const t=!0;be(e.get(),r,l,c,t,d,h)}else ye(e.get(),r,l,c,d,h,p,k,b);else if("b"===m)e.createCubicBezier(),Ne(e.get(),r,l,y);else if("n"===m)e.createQuadraticRationalBezier(),Te(e.get(),r,l,y[0],y[1].x,y[1].y,y[2].x);else if("q"===m)e.createQuadraticBezier(),e.get().construct(r,y[0],l);else{e.createEllipticArc();const t=!1;be(e.get(),r,l,N,t,-1,-1)}return a}function be(e,t,n,r,i,s,a){e.dropAllAttributes();const o=20,u=new ArrayBuffer(o),m=new te({sz:o,buffer:u});let l=0;m.writeDouble(l,r.x),l+=8,m.writeDouble(l,r.y),l+=8;let c=0;i?(a||(c|=8),s&&(c|=16)):c|=128,m.writeInt32(l,c),l+=4,_e(e,t,n,m,0)}function ye(e,t,n,r,i,s,a,o,u){e.dropAllAttributes();const m=44,l=new ArrayBuffer(m),c=new te({sz:m,buffer:l});let d=0;c.writeDouble(d,r.x),d+=8,c.writeDouble(d,r.y),d+=8,c.writeDouble(d,a),d+=8,c.writeDouble(d,o),d+=8,c.writeDouble(d,u),d+=8;let _=0;s||(_|=2048),i&&(_|=4096),c.writeInt32(d,_),d+=4,he(e,t,n,c,0)}function Ne(e,t,n,r){e.dropAllAttributes();const i=32,s=new ArrayBuffer(i),a=new te({sz:i,buffer:s});let o=0;a.writeDouble(o,r[0].x),o+=8,a.writeDouble(o,r[0].y),o+=8,a.writeDouble(o,r[1].x),o+=8,a.writeDouble(o,r[1].y),o+=8,fe(e,t,n,a,0)}function Te(e,t,n,r,i,s,a){e.dropAllAttributes();const o=40,u=new ArrayBuffer(o),m=new te({sz:o,buffer:u});let l=0;m.writeDouble(l,r.x),l+=8,m.writeDouble(l,r.y),l+=8,m.writeDouble(l,i),l+=8,m.writeDouble(l,s),l+=8,m.writeDouble(l,a),l+=8,pe(e,t,n,m,0)}function ge(e,t,n,r,i){const s=e.getGeometryType();if(s===a.enumEllipticArc)return ve(e,t,n,r,i);if(s===a.enumBezier)return xe(e,t,n,r,i);if(s===a.enumRationalBezier2)return Ae(e,t,n,r,i);if(s===a.enumBezier2){const s=new B;return s.constructFromQuadraticSegment(e),xe(s,t,n,r,i)}o("")}function ve(e,t,n,i,s){r(!V(e));const a=e.getEndXY(),o=e.hasAttribute(1)&&!t,u=e.hasAttribute(2)&&!n;let m=Number.NaN,l=Number.NaN;if(o&&(m=e.getEndAttributeAsDbl(1,0)),u&&(l=e.getEndAttributeAsDbl(2,0)),e.isDegenerateToLine()||e.isDegenerate(0))return Se(o,u,a.x,a.y,m,l,i,s),!0;const c=0===e.projectionBehavior(),d=!!c&&e.isClosed();if(c&&!d)s.startObject(),s.addFieldName("c"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s),we(e.m_interior.x,e.m_interior.y,17,s),s.endArray(),s.endObject();else if(c){s.startObject(),s.addFieldName("a"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s);const t=0,n=0;we(e.m_center.x+t,e.m_center.y+n,17,s);const r=!e.isMajor();s.addInt32(r?1:0);const c=e.isClockwise();s.addInt32(c?1:0),s.endArray(),s.endObject()}else{s.startObject(),s.addFieldName("a"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s);const t=e;we(t.m_center.x,t.m_center.y,17,s);const n=!t.isMajor();s.addInt32(n?1:0);const r=t.isClockwise();s.addInt32(r?1:0),s.addDouble(t.m_rotation,17),s.addDouble(t.m_semiMajorAxis,17),s.addDouble(t.m_minorMajorRatio,17),s.endArray(),s.endObject()}return!1}function xe(e,t,n,r,i){const s=e.getEndXY(),a=e.hasAttribute(1)&&!t,o=e.hasAttribute(2)&&!n;let u=Number.NaN,m=Number.NaN;return a&&(u=e.getEndAttributeAsDbl(1,0)),o&&(m=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName("b"),i.startArray(),Se(a,o,s.x,s.y,u,m,r,i),we(e.m_cp[0].x,e.m_cp[0].y,r,i),we(e.m_cp[1].x,e.m_cp[1].y,r,i),i.endArray(),i.endObject(),!1}function Ae(e,t,n,r,i){const s=e.getEndXY(),a=e.hasAttribute(1)&&!t,o=e.hasAttribute(2)&&!n;let u=Number.NaN,m=Number.NaN;a&&(u=e.getEndAttributeAsDbl(1,0)),o&&(m=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName("n"),i.startArray(),Se(a,o,s.x,s.y,u,m,r,i),we(e.m_cp.x,e.m_cp.y,r,i);const l=r;return i.addDouble(e.m_weights[0],l),i.addDouble(e.m_weights[1],l),i.addDouble(e.m_weights[2],l),i.endArray(),i.endObject(),!1}function Se(e,t,n,r,i,s,a,o){o.startArray(),o.addDouble(n,a),o.addDouble(r,a),e&&o.addDouble(i,a),t&&o.addDouble(s,a),o.endArray()}function we(e,t,n,r){r.startArray(),r.addDouble(e,n),r.addDouble(t,n),r.endArray()}class Ce{getOperatorType(){return 10405}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,n,r,i,s){De(e,t,n,r)}exportSpatialReference(e,t,n,i){r(0)}exportProjectionTransformation(e,t,n,i){r(0)}exportDatumTransformation(e,t,n,i){r(0)}static geometryTypeToString(e){return r(0),""}}function De(e,n,i,s,o){if(n||i){if(s.startObject(),null!==n){switch(n.getGeometryType()){case a.enumPolygon:Fe(!0,e,n,s);break;case a.enumPolyline:Fe(!1,e,n,s);break;case a.enumMultiPoint:je(e,n,s);break;case a.enumPoint:Oe(e,n,s);break;case a.enumEnvelope:ze(e,n,s);break;case a.enumMultipatch:r(0);break;default:t("exportToJSON")}}null!==i&&(s.addFieldName("spatialReference"),Ee(e,i,s)),s.endObject()}}function Fe(e,t,n,i){const s=n.getImpl(),a=!!(2&t),u=!!(4&t),m=!!(8&t),l=s.hasAttribute(1)&&!a,c=s.hasAttribute(2)&&!u,d=s.hasAttribute(3)&&!m,_=s.hasNonLinearSegments();l&&(i.addFieldName("hasZ"),i.addBool(!0)),c&&(i.addFieldName("hasM"),i.addBool(!0)),e?_?i.addFieldName("curveRings"):i.addFieldName("rings"):_?i.addFieldName("curvePaths"):i.addFieldName("paths");let h=null;const f=[];if(n.isEmpty())i.startArray(),i.endArray();else{const e=17-(31&t>>13);i.startArray();const r=n.getPathCount();let m=0;const p=s.getAttributeStreamRef(0);let k=null,b=null,y=null;const N=new E;let T=null,g=null,v=null;_&&(T=s.getSegmentFlagsStreamRef(),g=s.getSegmentIndexStreamRef(),v=s.getSegmentDataStreamRef()),l&&(k=s.getAttributeStreamRef(1)),c&&(b=s.getAttributeStreamRef(2)),d&&(y=s.getAttributeStreamRef(3),h=O(3,0));for(let t=0;t<r;t++){i.startArray(),d&&f.push(0);const r=n.getPathEnd(t);if(m===r){i.endArray();continue}const s=n.isClosedPath(t);let _=p.read(2*m),x=p.read(2*m+1),A=l?k.read(m):Number.NaN,S=c?b.read(m):Number.NaN,w=d?y.read(m):0;Pe(l,c,_,x,A,S,e,i);let C=1;d&&(h.add(w),f[f.length-1]++);const D=_,F=x,j=A,O=S,z=w;let I=!1,E=0,P=Number.NaN,B=Number.NaN,V=0;for(let t=m+1,n=m,R=s?r+1:r;t<R;t++,n++){const s=null!==T?31&T.read(n):1;let m,R;if(t<r?(m=p.read(2*t),R=p.read(2*t+1),l&&(P=k.read(t)),c&&(B=b.read(t)),d&&(V=y.read(t))):(m=D,R=F,P=j,B=O,V=z),1!==s){I=!0,4===s?N.createEllipticArc():2===s?N.createCubicBezier():16===s?N.createQuadraticBezier():8===s?N.createQuadraticRationalBezier():o("JSON export.unsupported curve");const t=N.get(),r=g.read(n);t.setStartXYCoords(_,x),t.setEndXYCoords(m,R),l&&(t.setStartAttribute(1,0,A),t.setEndAttribute(1,0,P)),c&&(t.setStartAttribute(2,0,S),t.setEndAttribute(2,0,B)),t.readFromBufferStream(v,r);ge(N.get(),a,u,e,i)&&E++}else Pe(l,c,m,R,P,B,e,i);d&&(h.add(V),f[f.length-1]++),C++,_=m,x=R,A=P,S=B,w=V}I&&0===E||(C<2&&E<1&&(Pe(l,c,_,x,A,S,e,i),C++,d&&(h.add(w),f[f.length-1]++)),s&&C<3&&E<2&&(Pe(l,c,D,F,j,O,e,i),C++,_=D,x=F,A=j,S=O,w=z,d&&(h.add(z),f[f.length-1]++))),i.endArray(),m=r}i.endArray()}if(d){i.addFieldName("ids"),i.startArray();let e=0;for(let t=0,n=f.length;t<n;++t){const n=f[t];r(0===n||null!==h&&e+n<=h.size()),i.startArray();for(let t=0;t<n;++t)i.addInt32(h.read(e)),e++;i.endArray()}i.endArray()}}function je(e,t,n){const i=t.getImpl(),s=i.hasAttribute(1)&&!(2&e),a=i.hasAttribute(2)&&!(4&e),o=i.hasAttribute(3)&&!(8&e);s&&(n.addFieldName("hasZ"),n.addBool(!0)),a&&(n.addFieldName("hasM"),n.addBool(!0)),n.addFieldName("points");const u=t.getPointCount();if(t.isEmpty())n.startArray(),n.endArray();else{const t=17-(31&e>>13);n.startArray();const r=i.getAttributeStreamRef(0);let o=null,m=null;s&&(o=i.getAttributeStreamRef(1)),a&&(m=i.getAttributeStreamRef(2));for(let e=0;e<u;e++){const i=r.read(2*e),u=r.read(2*e+1);let l=Number.NaN,c=Number.NaN;s&&(l=o.read(e)),a&&(c=m.read(e)),Pe(s,a,i,u,l,c,t,n)}n.endArray()}if(o){let e=null;i.isEmpty()||(e=i.getAttributeStreamRef(3)),r(0===u||null!==e&&e.size()>=u),n.addFieldName("ids"),n.startArray();for(let t=0;t<u;t++)n.addInt32(e.read(t));n.endArray()}}function Oe(e,t,n){const r=t.hasAttribute(1)&&!(2&e),i=t.hasAttribute(2)&&!(4&e),s=t.hasAttribute(3)&&!(8&e);if(t.isEmpty())return n.addFieldName("x"),n.addNull(),n.addFieldName("y"),n.addNull(),r&&(n.addFieldName("z"),n.addNull()),i&&(n.addFieldName("m"),n.addNull()),void(s&&(n.addFieldName("id"),n.addInt32(0)));const a=17-(31&e>>13);n.addFieldName("x"),n.addDouble(t.getX(),a),n.addFieldName("y"),n.addDouble(t.getY(),a),r&&(n.addFieldName("z"),n.addDouble(t.getZ(),a)),i&&(n.addFieldName("m"),n.addDouble(t.getM(),a)),s&&(n.addFieldName("id"),n.addInt32(t.getID()))}function ze(e,t,n){const r=t.hasAttribute(1)&&!(2&e),i=t.hasAttribute(2)&&!(4&e),s=t.hasAttribute(3)&&!(8&e);if(t.isEmpty())return n.addFieldName("xmin"),n.addNull(),n.addFieldName("ymin"),n.addNull(),n.addFieldName("xmax"),n.addNull(),n.addFieldName("ymax"),n.addNull(),r&&(n.addFieldName("zmin"),n.addNull(),n.addFieldName("zmax"),n.addNull()),i&&(n.addFieldName("mmin"),n.addNull(),n.addFieldName("mmax"),n.addNull()),void(s&&(n.addFieldName("idmin"),n.addInt32(0),n.addFieldName("idmax"),n.addInt32(0)));const a=17-(31&e>>13);if(n.addFieldName("xmin"),n.addDouble(t.getXMin(),a),n.addFieldName("ymin"),n.addDouble(t.getYMin(),a),n.addFieldName("xmax"),n.addDouble(t.getXMax(),a),n.addFieldName("ymax"),n.addDouble(t.getYMax(),a),r){const e=t.queryInterval(1,0);n.addFieldName("zmin"),n.addDouble(e.vmin,a),n.addFieldName("zmax"),n.addDouble(e.vmax,a)}if(i){const e=t.queryInterval(2,0);n.addFieldName("mmin"),n.addDouble(e.vmin,a),n.addFieldName("mmax"),n.addDouble(e.vmax,a)}if(s){const e=t.queryInterval(3,0);n.addFieldName("idmin"),n.addInt32(e.vmin),n.addFieldName("idmax"),n.addInt32(e.vmax)}}function Ie(e,t,r){r.startObject();const i=t.getID();i<=0&&n("cannot export unit that has no valid WKID"),r.addFieldName("uwkid"),r.addInt32(i),r.endObject()}function Ee(e,t,n){n.startObject();let r=0;t.isCustomWkid()||(r=t.getOldID());let i=0;const s=t.getVCS();if(null!==s&&(s.isCustomWkid()||(i=s.getOldID()),i<=0&&(r=0)),r>0){n.addFieldName("wkid"),n.addInt32(r);const e=t.getLatestID();if(e>0&&e!==r&&(n.addFieldName("latestWkid"),n.addInt32(e)),i>0){n.addFieldName("vcsWkid"),n.addInt32(i);const e=t.getLatestVerticalID();e!==i&&(n.addFieldName("latestVcsWkid"),n.addInt32(e))}}if(0===t.getCoordinateSystemType())n.addFieldName("wkid"),n.addNull(),null!==t.getUnit()&&(n.addFieldName("unit"),Ie(e,t.getUnit(),n));else if(r<=0||1&e){let r="";64&e&&(r=t.getText2(),n.addFieldName("wkt2"),n.addString(r));const i=t.getText();i!==r&&(n.addFieldName("wkt"),n.addString(i))}if(16&e){const e=new T;t.queryPrecisionDescriptor(e),n.addFieldName("xyTolerance"),n.addDouble(e.getTolerance(0)),n.addFieldName("zTolerance"),n.addDouble(e.getTolerance(1)),n.addFieldName("mTolerance"),n.addDouble(e.getTolerance(2)),n.addFieldName("falseX"),n.addDouble(e.getFalseX()),n.addFieldName("falseY"),n.addDouble(e.getFalseY()),n.addFieldName("xyUnits"),n.addDouble(e.getGridUnitsXY()),n.addFieldName("falseZ"),n.addDouble(e.getFalseZ()),n.addFieldName("zUnits"),n.addDouble(e.getGridUnitsZ()),n.addFieldName("falseM"),n.addDouble(e.getFalseM()),n.addFieldName("mUnits"),n.addDouble(e.getGridUnitsM())}n.endObject()}function Pe(e,t,n,r,i,s,a,o){o.startArray(),o.addDouble(n,a),o.addDouble(r,a),e&&o.addDouble(i,a),t&&o.addDouble(s,a),o.endArray()}const Be={s_a:"a".charCodeAt(0),s_A:"A".charCodeAt(0),s_asterisk:"*".charCodeAt(0),s_b:"b".charCodeAt(0),s_backslash:"\\".charCodeAt(0),s_beginArray:"[".charCodeAt(0),s_beginObject:"{".charCodeAt(0),s_colon:":".charCodeAt(0),s_period:".".charCodeAt(0),s_comma:",".charCodeAt(0),s_doubleQuote:'"'.charCodeAt(0),s_endArray:"]".charCodeAt(0),s_endObject:"}".charCodeAt(0),s_e:"e".charCodeAt(0),s_E:"E".charCodeAt(0),s_f:"f".charCodeAt(0),s_F:"F".charCodeAt(0),s_forwardslash:"/".charCodeAt(0),s_minus:"-".charCodeAt(0),s_plus:"+".charCodeAt(0),s_n:"n".charCodeAt(0),s_N:"N".charCodeAt(0),s_r:"r".charCodeAt(0),s_t:"t".charCodeAt(0),s_u:"u".charCodeAt(0),s_zero:"0".charCodeAt(0),s_nine:"9".charCodeAt(0)};class Ve{constructor(e){this.m_functionStack=[],this.m_pushPositions=[],this.m_utf8Decoder=new TextDecoder("utf-8",{fatal:!0}),void 0===e?(this.m_startToken=Number.MAX_SAFE_INTEGER,this.m_endToken=0,this.m_currentTokenType=0,this.m_functionStack.push(()=>this.accept_()),this.m_jsonString=null,this.m_bHasEscapes=!1):e.jsonString?this.resetParserFromString(e.jsonString):e.jsonStream?o("streaming json parsing not yet impl"):t("invalid constructor parameter")}prepSubstrString_(){}getCurrentSubstrString_(){return this.m_jsonString.slice(this.m_startToken,this.m_endToken)}stepOverCharString_(){this.m_endToken++}peekCharString_(){return this.m_jsonString.charCodeAt(this.m_endToken)}getString_(e){const t=this.m_jsonString?.slice(this.m_startToken,this.m_startToken+e-1);this.m_endToken+=e-1;return{s:t,bDone:this.m_endToken>=this.m_jsonString.length}}incrementString_(){this.m_endToken++}eofString_(){return this.m_endToken>=this.m_jsonString.length}setStringFunctions_(){this.m_prepSubstr=this.prepSubstrString_,this.m_getCurrentSubstr=this.getCurrentSubstrString_,this.m_stepOverChar=this.stepOverCharString_,this.m_peekChar=this.peekCharString_,this.m_get=this.getString_,this.m_increment=this.incrementString_,this.m_eof=this.eofString_}setStreamFunctions_(){o("streaming json parsing not yet impl")}reset_(){this.m_jsonString=null,this.m_endToken=0,this.m_startToken=Number.MAX_SAFE_INTEGER,this.m_currentTokenType=0,this.m_bHasEscapes=!1,this.m_functionStack.length=0,this.m_functionStack.push(()=>this.start_()),this.m_pushPositions.length=0}resetParserFromString(e){this.reset_(),this.setStringFunctions_(),this.m_jsonString=e}resetParserFromStream(e){o("streaming json parsing not yet impl")}resetToPosition(e){return!!this.m_jsonString&&(this.m_endToken=e,this.m_startToken=Number.MAX_VALUE,this.m_currentTokenType=0,this.m_functionStack.length=0,e>=this.m_jsonString.length?(this.m_functionStack.push(()=>this.accept_()),!1):(this.m_functionStack.push(()=>this.start_()),!0))}nextToken(){return this.m_functionStack.at(-1)(),this.m_currentTokenType}currentToken(){return this.m_currentTokenType}currentTokenStartIndex(){return this.m_startToken}currentTokenEndIndex(){return this.m_endToken}currentText(){return r(0),""}childrenAsString(){return r(0),""}skipChildren(){this.skipChildren_()}skipChildren_(){if(1===this.m_currentTokenType){let e=1;do{this.m_currentTokenType=this.nextToken(),1===this.m_currentTokenType?e++:3===this.m_currentTokenType&&e--}while(3!==this.m_currentTokenType||0!==e);return}if(2===this.m_currentTokenType){let e=1;do{this.m_currentTokenType=this.nextToken(),2===this.m_currentTokenType?e++:4===this.m_currentTokenType&&e--}while(4!==this.m_currentTokenType||0!==e);return}}currentTerminalAsString_(){switch(this.m_currentTokenType){case 7:case 8:case 9:return this.m_getCurrentSubstr().slice(0,this.m_endToken-this.m_startToken);case 10:return"null";case 11:return"true";case 12:return"false"}n("invalid token")}toUTF8_(e,t){let n=0,r=e;for(;t.charCodeAt(r)===Be.s_backslash&&t.charCodeAt(r+1)===Be.s_u;)n++,r+=6;r=e;const i=new Uint8Array(n);let s=0;for(;t.charCodeAt(r)===Be.s_backslash&&t.charCodeAt(r+1)===Be.s_u;)i[s++]=Number.parseInt(t.slice(r+2,r+6),16),r+=6;return{u8s:this.m_utf8Decoder.decode(i),end:r}}unquoteCurrentString_(){let e="",t=1;const n=this.m_endToken-this.m_startToken-1;let r=0;const i=this.m_getCurrentSubstr();for(let s=t;s<n;s++)if(i.charCodeAt(s)!==Be.s_backslash)r++;else{switch(r>0&&(e+=i.slice(t,t+r)),i.charCodeAt(++s)){case Be.s_doubleQuote:e+='"';break;case Be.s_u:{const{u8s:t,end:n}=this.toUTF8_(s-1,i);s=n-1,e+=t;break}case Be.s_backslash:e+="\\";break;case Be.s_forwardslash:e+="/";break;case Be.s_b:e+="\b";break;case Be.s_f:e+="\f";break;case Be.s_n:e+="\n";break;case Be.s_r:e+="\r";break;case Be.s_t:e+="\t"}t=s+1,r=0}return r>0&&(e+=i.slice(t,t+r)),e}currentString(){if(5!==this.m_currentTokenType&&6!==this.m_currentTokenType)return this.currentTerminalAsString_();if(this.m_bHasEscapes)return this.unquoteCurrentString_();return this.m_getCurrentSubstr().slice(1,this.m_endToken-this.m_startToken-2+1)}currentDoubleValue(){if(7!==this.m_currentTokenType&&8!==this.m_currentTokenType&&9!==this.m_currentTokenType&&6!==this.m_currentTokenType&&10!==this.m_currentTokenType&&n("invalid token"),10===this.m_currentTokenType)return Number.NaN;let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;if(6===this.m_currentTokenType){if("NaN"===this.currentString())return Number.NaN;e=e.slice(1),t-=2,0===t&&n("invalid token")}const r=Number.parseFloat(e);if(6===this.m_currentTokenType)Number.isNaN(r)&&n("invalid token");else if(Number.isNaN(r))return Number.NaN;return r}currentInt32Value(){8!==this.m_currentTokenType&&6!==this.m_currentTokenType&&n("invalid token");let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;6===this.m_currentTokenType&&(e=e.slice(1),t-=2,0===t&&n("invalid token"));const r=parseInt(e);return Number.isNaN(r)&&n("invalid token"),r}currentInt64Value(){return r(0),0n}currentBoolValue(){return r(0),!1}isError(){return 0}JSONString(){return r(0),""}pushPosition(){return r(0),!1}popPosition(){return r(0),!1}skipCStyleComments_(){r(0)}skipCppStyleComments_(){r(0)}skipComments_(){this.m_prepSubstr();let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e===Be.s_asterisk?this.skipCStyleComments_():e===Be.s_forwardslash?this.skipCppStyleComments_():n("invalid token")}skipWhiteSpace_(){let e;do{this.m_eof()&&n("invalid token");let t=this.m_peekChar();for(;t>=9&&t<=13||32===t;)this.m_increment(),this.m_eof()&&n("invalid token"),t=this.m_peekChar();t===Be.s_forwardslash?(this.m_startToken=this.m_endToken,e=!0,this.skipComments_()):e=!1}while(e)}rightBracket_(){return this.m_peekChar()===Be.s_endArray&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=4,!0)}rightBrace_(){return this.m_peekChar()===Be.s_endObject&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=3,!0)}string_(){this.m_prepSubstr(),this.m_bHasEscapes=!1,this.m_stepOverChar(),this.m_eof()&&n("invalid token");let e=this.m_peekChar();for(;e!==Be.s_doubleQuote;){const t=e===Be.s_backslash;if(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),t)if(this.m_bHasEscapes=!0,e===Be.s_doubleQuote||e===Be.s_backslash||e===Be.s_forwardslash||e===Be.s_b||e===Be.s_f||e===Be.s_n||e===Be.s_r||e===Be.s_t)this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar();else if(e===Be.s_u)for(let r=0;r<4;r++)this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e>=Be.s_zero&&e<=Be.s_nine||e>=Be.s_a&&e<=Be.s_f||e>=Be.s_A&&e<=Be.s_F||n("invalid token");else n("invalid token")}this.m_stepOverChar()}comma_(){return this.m_peekChar()===Be.s_comma&&(this.m_increment(),!0)}colon_(){return this.m_peekChar()===Be.s_colon&&(this.m_increment(),!0)}fieldNameEnd_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.colon_()?(this.skipWhiteSpace_(),this.value_()):n("invalid token")}fieldNameStart_(){this.m_startToken=this.m_endToken;this.m_peekChar()!==Be.s_doubleQuote&&n("invalid token"),this.string_(),this.m_currentTokenType=5,this.m_functionStack.push(()=>this.fieldNameEnd_())}pairEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.fieldNameStart_()):this.rightBrace_()?this.m_functionStack.pop():n("invalid token")}arrayStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBracket_()||(this.m_functionStack.push(()=>this.elementEnd_()),this.value_())}elementEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.value_()):this.rightBracket_()?this.m_functionStack.pop():n("invalid token")}objectStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBrace_()||(this.m_functionStack.push(()=>this.pairEnd_()),this.fieldNameStart_())}valueStartObject_(){this.m_increment(),this.m_currentTokenType=1,this.m_functionStack.push(()=>this.objectStart_())}valueStartArray_(){this.m_increment(),this.m_currentTokenType=2,this.m_functionStack.push(()=>this.arrayStart_())}valueString_(){this.string_(),this.m_currentTokenType=6}int_(){this.m_peekChar()!==Be.s_zero?this.digits_():this.m_stepOverChar()}digits_(){let e=this.m_peekChar();do{this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar()}while(e>=Be.s_zero&&e<=Be.s_nine)}frac_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e>=Be.s_zero&&e<=Be.s_nine||n("invalid token"),this.digits_()}exp_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e!==Be.s_plus&&e!==Be.s_minus||(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar()),e>=Be.s_zero&&e<=Be.s_nine||n("invalid token"),this.digits_()}valueNumber_(){this.m_prepSubstr();let e=!1,t=this.m_peekChar();if(t===Be.s_minus?(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),t=this.m_peekChar(),e=!0,t>=Be.s_zero&&t<=Be.s_nine||n("invalid token"),this.int_()):this.int_(),t=this.m_peekChar(),t===Be.s_period)this.m_currentTokenType=7,this.frac_(),t=this.m_peekChar(),t!==Be.s_e&&t!==Be.s_E||this.exp_();else if(t===Be.s_e||t===Be.s_E)this.m_currentTokenType=7,this.exp_();else{let t=0;e&&t++;const n=this.m_endToken-this.m_startToken-t;if(n<10)this.m_currentTokenType=8;else if(10===n){const n=this.m_getCurrentSubstr();e?n.slice(t)<="2147483648"?this.m_currentTokenType=8:this.m_currentTokenType=9:n.slice(t)<="2147483647"?this.m_currentTokenType=8:this.m_currentTokenType=9}else if(n<19)this.m_currentTokenType=9;else if(19===n){const n=this.m_getCurrentSubstr();e?n.slice(t)<="9223372036854775808"?this.m_currentTokenType=9:this.m_currentTokenType=7:n.slice(t)<="9223372036854775807"?this.m_currentTokenType=9:this.m_currentTokenType=7}else this.m_currentTokenType=7}}valueNull_(){const{s:e,bDone:t}=this.m_get(5);t&&n("invalid token"),"null"!==e&&n("invalid token"),this.m_currentTokenType=10}valueTrue_(){const{s:e,bDone:t}=this.m_get(5);t&&n("invalid token"),"true"!==e&&n("invalid token"),this.m_currentTokenType=11}valueFalse_(){const{s:e,bDone:t}=this.m_get(6);t&&n("invalid token"),"false"!==e&&n("invalid token"),this.m_currentTokenType=12}valueNan_(){const{s:e,bDone:t}=this.m_get(4);t&&n("invalid token"),"NaN"!==e&&n("invalid token"),this.m_currentTokenType=7}value_(){this.m_startToken=this.m_endToken;const e=this.m_peekChar();e===Be.s_beginObject?this.valueStartObject_():e===Be.s_beginArray?this.valueStartArray_():e===Be.s_doubleQuote?this.valueString_():e===Be.s_minus||e>=Be.s_zero&&e<=Be.s_zero+9?this.valueNumber_():e===Be.s_n?this.valueNull_():e===Be.s_t?this.valueTrue_():e===Be.s_f?this.valueFalse_():e===Be.s_N?this.valueNan_():n("invalid token")}start_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.m_functionStack.push(()=>this.accept_());const e=this.m_peekChar();e!==Be.s_beginObject&&e!==Be.s_beginArray&&n("invalid token"),this.value_()}accept_(){this.m_startToken=this.m_endToken,this.m_currentTokenType=0}}class Re{getOperatorType(){return 10404}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,r,i,s,a,o){let u;"string"==typeof r?(u=new Ve({jsonString:r}),u.nextToken()):u=r,1!==u.currentToken()&&n("failed to import map geometry: start of object is expected");const m=ne(t,e,u,i,s);return new v(m)}importSpatialReference(e){const n=ie(e);return null===n&&t("failed to import spatial reference"),n}importProjectionTransformation(e,t){return r(0),{}}importDatumTransformation(e,t){return r(0),{}}static stringToGeometryType(e){return(e=e.toLowerCase()).startsWith("esrigeometry")||n("string_to_geometry_type"),e.endsWith("point")?a.enumPoint:e.endsWith("envelope")?a.enumEnvelope:e.endsWith("multipoint")?a.enumMultiPoint:e.endsWith("polyline")?a.enumPolyline:e.endsWith("polygon")?a.enumPolygon:void n("string_to_geometry_type")}}const Me=new ee,Ue=new Ce,We=new Re;function Ge(e){return Array.isArray(e)?e[0].spatialReference:e.spatialReference}function Le(t,n=!1){if(!n&&(K(t)||q(t)||J(t)||Q(t))){const n=new v;return n.setGeometry(e(X(t))),n}const r=new $(t,{strict:!1});return r.nextToken(),We.execute(0,a.enumUnknown,r,!0,!1)}function Xe(e){let t=null;return[e.map(e=>{if(null==t){const n=Ye(e);return t=n.getSpatialReference(),n.getGeometry()}return Ke(e)}),t]}function Ye(e){const t=Le(e),n=Je(e.spatialReference);return n&&t.setSpatialReference(n),t}function Ke(e){return Le(e).getGeometry()}function qe(e){return Le(e,!0).getGeometry()}function Je(e){if(null==e)return null;let t=!1;if(e instanceof Y){const{wkt2:n}=e;e=e.toJSON(),e.wkt2??=n,t=!0}(e.latestVcsWkid||e.vcsWkid)&&(t||(e={...e}),delete e?.latestVcsWkid,delete e?.vcsWkid);const n=new $(e,{strict:!1});n.nextToken();const r=We.importSpatialReference(n);return 0===r.getCoordinateSystemType()?null:r}function Qe(e,t){if(e instanceof v&&(t=e.getSpatialReference(),e=e.getGeometry()),null==e||e.isEmpty())return null;let n;switch(e.getGeometryType()){case a.enumPoint:case a.enumMultiPoint:case a.enumPolyline:case a.enumPolygon:n=G(e)}if(n){const e=L(n);return e.spatialReference=Ze(t),null==e.spatialReference&&delete e.spatialReference,e}return Me.reset(),Ue.execute(0,e,t??null,Me),Me.getObject()}function Ze(e){return null==e||0===e.getCoordinateSystemType()?null:(Me.reset(),Ue.execute(0,null,e,Me),Me.getObject().spatialReference)}export{Xe as fromGeometries,Ye as fromGeometry,Ke as fromGeometryToGXGeometry,qe as fromGeometryToGXGeometryUsingImportOperator,Je as fromSpatialReference,Ge as getSpatialReference,Qe as toGeometry,Ze as toSpatialReference};
2
+ import{constructFromFlatGeometry as e}from"../../../chunks/FlatGeometry.js";import{d as t,a as n,g as r,r as i,q as s,G as a,t as o}from"../../../chunks/Geometry.js";import{at as u,i as m,d as l,b as c,au as d,P as _,m as h}from"../../../chunks/Point2D.js";import{aI as f,aE as p,aJ as k,aK as b,aL as y,S as T,aM as N,aN as g,aO as v}from"../../../chunks/SpatialReference.js";import{G as x,K as A,P as S,E as w,D as C,F as D,L as F,M as j,v as O}from"../../../chunks/Envelope.js";import{P as z,a as I,S as E,M as P,y as B,z as V,A as R,B as M,F as U,H as W}from"../../../chunks/MultiPathImpl.js";import{convertGeometryxToFlat as G,convertFlatToGeometryJSON as L,convertGeometryToFlat as X}from"../../FlatGeometry.js";import Y from"../../SpatialReference.js";import"./initNoPeFactory.js";import{isPoint as K,isMultipoint as q,isPolyline as J,isPolygon as Q}from"../../support/jsonTypeUtils.js";function Z(){if(-1===this.m_i)return this.m_i=0,{value:{m_token:1,m_value:null},done:!1};if(this.m_i<this.m_keys.length){const e=this.m_bReturnKey,t=Math.trunc(this.m_i);return this.m_bReturnKey=!this.m_bReturnKey,this.m_i+=.5,e?{value:{m_token:5,m_value:this.m_keys[t]},done:!1}:{value:{m_token:6,m_value:this.m_o[this.m_keys[t]]},done:!1}}return{value:{m_token:3,m_value:null},done:!0}}function H(){if(-1===this.m_i)return this.m_i=0,{value:{m_token:2,m_value:null},done:!1};if(this.m_i<this.m_a.length){const e={value:{m_token:6,m_value:this.m_a[this.m_i++]},done:!1};return this.m_strict||void 0===e.value.m_value&&(e.value.m_value=Number.NaN),e}return{value:{m_token:4,m_value:null},done:!0}}class ${m_iteratorStack;m_nextFlatToken;m_currentToken=0;m_currentValue;m_options;createJSONObjectIterator(e){return{m_iteratorType:"object",m_o:e,m_keys:this.m_options.strict?Object.keys(e):Object.keys(e).filter(t=>void 0!==e[t]),m_i:-1,m_bReturnKey:!0,next:Z}}createJSONArrayIterator(e){return{m_iteratorType:"array",m_strict:this.m_options.strict,m_i:-1,m_a:e,next:H}}constructor(e,t){this.m_options=t?{...t}:{strict:!0};const n=e;this.m_iteratorStack=[n instanceof Array?this.createJSONArrayIterator(n):this.createJSONObjectIterator(n)],this.m_nextFlatToken={m_value:null,m_token:0}}nextToken(){if(0===this.m_iteratorStack.length)return this.m_currentToken=0;switch(this.m_nextFlatToken=this.m_iteratorStack.at(-1).next().value,this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_currentToken=1;case 3:return this.m_iteratorStack.pop(),this.m_currentToken=3;case 2:return this.m_currentToken=2;case 4:return this.m_iteratorStack.pop(),this.m_currentToken=4;case 5:return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=5;case 6:if(this.m_nextFlatToken.m_value instanceof Array)return this.m_iteratorStack.push(this.createJSONArrayIterator(this.m_nextFlatToken.m_value)),this.nextToken();if(this.m_nextFlatToken.m_value instanceof Object)return this.m_iteratorStack.push(this.createJSONObjectIterator(this.m_nextFlatToken.m_value)),this.nextToken();if("number"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,Number.isSafeInteger(this.m_currentValue)&&this.m_currentValue>=u()&&this.m_currentValue<=m()?this.m_currentToken=8:this.m_currentToken=7;if("string"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=6;if("boolean"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=this.m_nextFlatToken.m_value,this.m_currentToken=this.m_nextFlatToken.m_value?11:12;if("object"==typeof this.m_nextFlatToken.m_value)return this.m_currentValue=null,this.m_currentToken=10;t("unrecognized json element type")}t("unrecognized json element type")}currentToken(){return this.m_currentToken}skipChildren(){if(0!==this.m_iteratorStack.length)switch(this.m_currentValue=void 0,this.m_nextFlatToken.m_token){case 1:return this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=3,void(this.m_currentToken=3);case 2:return this.m_iteratorStack.pop(),this.m_nextFlatToken.m_token=4,void(this.m_currentToken=4)}}currentString(){return 6!==this.m_currentToken&&5!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentDoubleValue(){return 7!==this.m_currentToken&&8!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentInt32Value(){return 8!==this.m_currentToken&&n("invalid token"),this.m_currentValue}currentInt64Value(){return r(0),0n}currentBoolValue(){return 12!==this.m_currentToken&&11!==this.m_currentToken&&n("invalid token"),this.m_currentValue}isError(){return 0}}class ee{m_pendingKey=null;m_acceptedObject=null;m_currentObject=[];reset(){this.m_pendingKey=null,this.m_acceptedObject=null,this.m_currentObject.length=0}startObject(){const e={};this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}startArray(){const e=[];this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):Array.isArray(this.m_currentObject.at(-1))&&this.m_currentObject.at(-1).push(e),this.m_currentObject.push(e)}endObject(){this.m_acceptedObject=this.m_currentObject.at(-1),this.m_currentObject.pop()}endArray(){this.m_currentObject.pop()}addFieldName(e){this.m_pendingKey=e}addValue_(e){this.m_pendingKey?(this.m_currentObject.at(-1)[this.m_pendingKey]=e,this.m_pendingKey=null):this.m_currentObject.at(-1).push(e)}addString(e){this.addValue_(e)}addDouble(e,t){this.addValue_(e)}addInt64(e){r(0)}addInt32(e){this.addValue_(e)}addBool(e){this.addValue_(e)}addNull(){this.addValue_(null)}getObject(){return this.m_acceptedObject}}class te{m_buffer=null;m_view=null;m_sz=0;m_offset=0;m_bOwnsBuffer=!0;m_bLittleEndian=!0;m_element;m_elementBytes;m_elementView;m_elementDouble;m_elementFloat;m_elementInt64;m_elementInt32;m_elementInt16;constructor(e){return this.m_element=new ArrayBuffer(8),this.m_elementBytes=new Uint8Array(this.m_element),this.m_elementView=new DataView(this.m_element),this.m_elementDouble=new Float64Array(this.m_element),this.m_elementFloat=new Float32Array(this.m_element),this.m_elementInt64=new BigInt64Array(this.m_element),this.m_elementInt32=new Int32Array(this.m_element),this.m_elementInt16=new Int16Array(this.m_element),void 0!==e.sz?(this.m_sz=e.sz,e.buffer?(this.m_sz<0&&i("size out of range"),this.m_buffer=e.buffer,this.m_offset=void 0!==e.offset?e.offset:0,this.m_view=void 0!==e.offset?new DataView(e.buffer,e.offset,e.sz):new DataView(this.m_buffer),this.m_bOwnsBuffer=!1,void(this.m_bLittleEndian=!0)):(this.m_sz<0&&i("size out of range"),void(this.m_sz>0&&(this.m_buffer=new ArrayBuffer(this.m_sz),this.m_view=new DataView(this.m_buffer))))):e.move?(this.m_sz=e.move.m_sz,this.m_buffer=e.move.m_buffer,this.m_view=e.move.m_view,this.m_bOwnsBuffer=e.move.m_bOwnsBuffer,this.m_bLittleEndian=e.move.m_bLittleEndian,e.move.m_buffer=null,e.move.m_view=null,e.move.m_sz=0,void(e.move.m_bOwnsBuffer=!0)):void t("unrecognized constructor options")}swapBytesDouble(){this.doSwap()&&(this.m_elementDouble[0]=this.m_elementBytes[0]<<56|this.m_elementBytes[1]<<48|this.m_elementBytes[2]<<40|this.m_elementBytes[3]<<32|this.m_elementBytes[4]<<24|this.m_elementBytes[5]<<16|this.m_elementBytes[6]<<8|this.m_elementBytes[7])}swapBytesInt32(){this.doSwap()&&(this.m_elementInt32[0]=this.m_elementBytes[0]<<24|this.m_elementBytes[1]<<16|this.m_elementBytes[2]<<8|this.m_elementBytes[3])}getOffset(){return this.m_offset}assignMove(e){return this===e||(this.clear(),this.m_sz=e.m_sz,this.m_buffer=e.m_buffer,this.m_view=e.m_view,this.m_bOwnsBuffer=e.m_bOwnsBuffer,this.m_bLittleEndian=e.m_bLittleEndian,e.m_buffer=null,e.m_sz=0,e.m_bOwnsBuffer=!0),this}doSwap(){return this.m_bLittleEndian!==(1===te.getNativeByteOrder())}setNativeByteOrder(){this.m_bLittleEndian=1===te.getNativeByteOrder()}setOrder(e){this.m_bLittleEndian=1===e}getOrder(){return this.m_bLittleEndian?1:0}getView(){return this.m_view||s("buffer not defined"),this.m_view}static getNativeByteOrder(){return 1}clear(){this.m_buffer=null,this.m_sz=0,this.m_bOwnsBuffer=!0}size(){return this.m_sz}readDouble(e){return this.doSwap()?(this.m_elementDouble[0]=this.m_view.getFloat64(e,this.m_bLittleEndian),this.swapBytesDouble(),this.m_elementDouble[0]):this.m_view.getFloat64(e,this.m_bLittleEndian)}writeDouble(e,t){this.m_elementDouble[0]=t,this.swapBytesDouble(),this.m_view.setFloat64(e,this.m_elementDouble[0],this.m_bLittleEndian)}readInt32(e){return this.doSwap()?(this.m_elementInt32[0]=this.m_view.getInt32(e,this.m_bLittleEndian),this.swapBytesInt32(),this.m_elementInt32[0]):this.m_view.getInt32(e,this.m_bLittleEndian)}writeInt32(e,t){this.m_elementInt32[0]=t,this.swapBytesInt32(),this.m_view.setInt32(e,this.m_elementInt32[0],this.m_bLittleEndian)}getPtr(){return this.m_buffer}setSizeNoRealloc(e){r(e>=0&&e<=this.m_sz),this.m_sz=e}}function ne(e,t,i,s,o,u){let m=!1,l=!1,c=!1,d=!1,_=!1,h=!1,f=!1,p=!1,k=!1,b=!1,y=!1,T=!1,N=!1,g=!1,v=!1,C=!1,D=!1,F=!1,j=!1,O=!1,z=!1,I=!1,E=!1,P=!1,B=Number.NaN,V=Number.NaN,R=Number.NaN,M=Number.NaN,U=0,W=Number.NaN,G=Number.NaN,L=Number.NaN,X=Number.NaN,Y=Number.NaN,K=Number.NaN,q=Number.NaN,J=Number.NaN,Q=0,Z=0,H=!1,$=!1,ee=null,te=null,ne=null,re=null,ce=null;for(;3!==i.nextToken();){const u=i.currentString();if(i.nextToken(),"spatialReference"===u){if(o&&!m){m=!0,1===i.currentToken()?re=ie(i):10!==i.currentToken()&&n("failed to parse spatial reference: object or null is expected");continue}}else if(s)if("hasZ"===u){if(!l){l=!0,H=11===i.currentToken();continue}}else if("hasM"===u){if(!c){c=!0,$=11===i.currentToken();continue}}else if("rings"===u){if(!(_||h||e!==a.enumUnknown&&e!==a.enumPolygon)){_=!0,({geometry:ce,as:ee,bs:te}=se(!0,!1,t,i));continue}}else if("curveRings"===u){if(!h&&(e===a.enumUnknown||e===a.enumPolygon)){h=!0,({geometry:ce,as:ee,bs:te}=se(!0,!0,t,i));continue}}else if("paths"===u){if(!(f||p||e!==a.enumUnknown&&e!==a.enumPolyline)){f=!0,({geometry:ce,as:ee,bs:te}=se(!1,!1,t,i));continue}}else if("curvePaths"===u){if(!p&&(e===a.enumUnknown||e===a.enumPolyline)){p=!0,({geometry:ce,as:ee,bs:te}=se(!1,!0,t,i));continue}}else if("points"===u){if(!k&&(e===a.enumUnknown||e===a.enumMultiPoint)){k=!0,({geometry:ce,as:ee,bs:te}=ae(t,i));continue}}else if("ids"===u){if(!d){d=!0,ne=oe(t,i);continue}}else if("x"===u){if(!b&&(e===a.enumUnknown||e===a.enumPoint)){b=!0,B=ue(i);continue}}else if("y"===u){if(!y&&(e===a.enumUnknown||e===a.enumPoint)){y=!0,V=ue(i);continue}}else if("z"===u){if(!T&&(e===a.enumUnknown||e===a.enumPoint)){T=!0,R=ue(i);continue}}else if("m"===u){if(!N&&(e===a.enumUnknown||e===a.enumPoint)){N=!0,M=ue(i);continue}}else if("id"===u){if(!g&&(e===a.enumUnknown||e===a.enumPoint)){g=!0,U=me(i);continue}}else if("xmin"===u){if(!v&&(e===a.enumUnknown||e===a.enumEnvelope)){v=!0,W=ue(i);continue}}else if("ymin"===u){if(!C&&(e===a.enumUnknown||e===a.enumEnvelope)){C=!0,G=ue(i);continue}}else if("mmin"===u){if(!z&&(e===a.enumUnknown||e===a.enumEnvelope)){z=!0,q=ue(i);continue}}else if("zmin"===u){if(!j&&(e===a.enumUnknown||e===a.enumEnvelope)){j=!0,Y=ue(i);continue}}else if("idmin"===u){if(!E&&(e===a.enumUnknown||e===a.enumEnvelope)){E=!0,Q=me(i);continue}}else if("xmax"===u){if(!D&&(e===a.enumUnknown||e===a.enumEnvelope)){D=!0,L=ue(i);continue}}else if("ymax"===u){if(!F&&(e===a.enumUnknown||e===a.enumEnvelope)){F=!0,X=ue(i);continue}}else if("mmax"===u){if(!I&&(e===a.enumUnknown||e===a.enumEnvelope)){I=!0,J=ue(i);continue}}else if("zmax"===u){if(!O&&(e===a.enumUnknown||e===a.enumEnvelope)){O=!0,K=ue(i);continue}}else if("idmax"===u){if(!P&&(e===a.enumUnknown||e===a.enumEnvelope)){P=!0,Z=me(i);continue}}else"materials"===u&&r(0);i.skipChildren()}if(_||h||f||p||k){let e=null,t=null;const n=ce;H&&(ce.addAttribute(1),e=ee,e||(e=x(n.getPointCount(),Number.NaN))),$&&(ce.addAttribute(2),t=H?te:ee),null!=ne&&ce.addAttribute(3),H&&null!=e&&n.setAttributeStreamRef(1,e),$&&null!=t&&n.setAttributeStreamRef(2,t),null!=ne&&le(n,ne)}else if(b||y||N||T||g){A(B,V)||n("failed to parse point: x and y must be finite or nan"),(Number.isNaN(V)||Number.isNaN(B))&&(B=Number.NaN,V=Number.NaN);const e=new S({x:B,y:V});T&&e.setZ(R),N&&e.setM(M),g&&e.setID(U),ce=e}else if(v||C||D||F||j||O||z||I||E||P){(Number.isNaN(G)||Number.isNaN(L)||Number.isNaN(X))&&(W=Number.NaN);const e=new w({xmin:W,ymin:G,xmax:L,ymax:X});j&&O&&e.setInterval(1,0,Y,K),z&&I&&e.setInterval(2,0,q,J),E&&P&&e.setInterval(3,0,Q,Z),ce=e}return{...ce?{geom:ce}:{},...re?{sr:re}:{}}}function re(e){let t=!1;for(;3!==e.nextToken();){const n=e.currentString();e.nextToken(),"uwkid"===n?t||(t=!0,8===e.currentToken()&&e.currentInt32Value()):e.skipChildren()}return null}function ie(e){let t=!1,n=!1,r=!1,i=!1,s=!1,a=!1,o=!1,u=!1,m=!1,l=!1,c=!1,d=!1,_=!1,h=!1,v=!1,x=!1,A=!1,S=-1,w=-1,C=-1,D=-1,F=0,j=0,O=0,z=0,I=0,E=0,P=0,B=0,V=0,R=0,M="",U="",W=null;for(;3!==e.nextToken();){const f=e.currentString();e.nextToken(),"wkid"===f?t||(t=!0,8===e.currentToken()&&(S=e.currentInt32Value())):"latestWkid"===f?n||(n=!0,8===e.currentToken()&&(w=e.currentInt32Value())):"wkt"===f?s||(s=!0,6===e.currentToken()&&(M=e.currentString())):"wkt2"===f?s||6===e.currentToken()&&(U=e.currentString()):"vcsWkid"===f?r||(r=!0,8===e.currentToken()&&(C=e.currentInt32Value())):"latestVcsWkid"===f?i||(i=!0,8===e.currentToken()&&(D=e.currentInt32Value())):"xyTolerance"===f?o||(o=!0,a=!0,F=e.currentDoubleValue()):"zTolerance"===f?u||(u=!0,a=!0,j=e.currentDoubleValue()):"mTolerance"===f?m||(m=!0,a=!0,O=e.currentDoubleValue()):"falseX"===f?l||(l=!0,a=!0,P=e.currentDoubleValue()):"falseY"===f?c||(c=!0,a=!0,B=e.currentDoubleValue()):"falseZ"===f?d||(d=!0,a=!0,V=e.currentDoubleValue()):"falseM"===f?_||(_=!0,a=!0,R=e.currentDoubleValue()):"xyUnits"===f?h||(h=!0,a=!0,z=e.currentDoubleValue()):"zUnits"===f?v||(v=!0,a=!0,I=e.currentDoubleValue()):"mUnits"===f?x||(x=!0,a=!0,E=e.currentDoubleValue()):"unit"===f?A||(A=!0,W=re(e)):e.skipChildren()}D<=0&&C>0&&(D=C),C<=0&&D>0&&(C=D);let G=null,L=!0;if(0!==M.length&&(L=!1,f(M)&&(G=p(M))),G||0===U.length||(L=!1,f(U)&&(G=p(U))),!G&&w>0&&(L=!1,k(w)&&(D<=0||b())&&(G=y(w,D))),!G&&S>0&&(L=!1,k(S)&&(C<=0||b())&&(G=y(S,C))),L&&(G=T(W)),a&&G){const e=new N;G.queryPrecisionDescriptorWithoutFalseXY(e),o&&e.setTolerance(0,F),u&&e.setTolerance(1,j),m&&e.setTolerance(2,O),h&&l&&c&&e.setGridParams(P,B,z),v&&d&&e.setZParams(V,I),x&&_&&e.setMParams(R,E),G=g(G,e)}return G}function se(e,t,r,i){2!==i.currentToken()&&n("failed to parse multipath: array of array of vertices is expected");const s=e?new z:new I,a=s,o=C(0),u=x(2,0),m=D(0);let h=null,f=null,p=null,k=null,b=null,y=0,T=0,N=0;const g=new E,v=_.getNAN();let A=0,S=0;const w=e?1:0;for(;4!==i.nextToken();){2!==i.currentToken()&&n("failed to parse multipath: ring/path array is expected");let r=2,s=0,j=!0;const O=4;let z=0,I=0;const E=_.getNAN(),P=l(O,Number.NaN),B=l(O,Number.NaN);let V=!1;for(i.nextToken();4!==i.currentToken();){if(t&&1===i.currentToken())j&&n("failed to parse multipath: starting vertex array is expected"),p||(p=D(A-1,1),k=C(A-1,-1),b=x(0)),V=!0,r=1,({segFlag:N,toPointSz:z}=ke(g,P,v,i));else{for(V=!1,2!==i.currentToken()&&n("failed to parse multipath: array is expected, rings/paths vertices consist of arrays of coordinates"),z=0;4!==i.nextToken();)z===O&&n("failed to parse multipath: each vertex array has to have at most 4 elements"),P[z++]=ue(i);z<2&&n("failed to parse multipath: each vertex array has to have at least 2 elements"),F(P[0],P[1])||n("failed to parse multipath: x and y must be finite")}i.nextToken();do{if(u.size()===2*A&&u.resize(ce(A)),u.writePoint2D(2*A,E.setCoords(P[0],P[1])),h&&h.size()===A&&h.resize(de(A)),z>2?(h||(h=x(A+1,Number.NaN)),h.write(A,P[2])):h&&h.write(A,Number.NaN),f&&f.size()===A&&f.resize(de(A)),z>3?(f||(f=x(A+1,Number.NaN)),f.write(A,P[3])):f&&f.write(A,Number.NaN),j)S++,o.add(A),m.add(w),j=!1,I=z,c(B,P,0,0,I);else if(null!==p)if(V){const e=W(N),t=b.size();b.resize(t+e),p.add(N),k.add(y),g.get().writeInBufferStream(b,y),y+=e,a.incCurveType(N,1),T++}else p.add(1),k.add(-1);A++,s++,v.setCoords(P[0],P[1])}while(s<r&&4===i.currentToken())}0!==s&&(e&&s>r&&z===I&&0===d(P,B,z)?(A--,s--):null!==p&&(p.add(1),k.add(-1)))}return A&&(o.resize(S),m.resize(S),A>0&&(o.add(A),m.add(0)),a.setAttributeStreamRef(0,u),a.setPathFlagsStreamRef(m),a.setPathStreamRef(o),null!==p&&(a.updateCurveCounter(T),a.setSegmentData(k,b,p,y)),a.notifyModifiedFlags(65535)),{geometry:s,as:h,bs:f}}function ae(e,t){2!==t.currentToken()&&n("failed to parse multipoint: array of vertices is expected");let r=0;const i=new P,s=x(2,0);let a=0;const o=4,u=l(o,Number.NaN),m=new _;let c=null,d=null;for(;4!==t.nextToken();){for(2!==t.currentToken()&&n("failed to parse multipoint: array is expected, multipoint vertices consist of arrays of cooridinates"),a=0;4!==t.nextToken();)a===o&&n("failed to parse multipoint: each vertex array has to have at most 4 elements"),u[a++]=ue(t);a<2&&n("failed to parse multipoint: each vertex array has to have at least 2 elements"),F(u[0],u[1])||n("failed to parse multipoint: x and y must be finite"),s.size()===2*r&&s.resize(ce(r)),s.writePoint2D(2*r,m.setCoords(u[0],u[1])),c&&c.size()===r&&c.resize(de(r)),a>2?(c||(c=x(r+1,Number.NaN)),c.write(r,u[2])):c&&c.write(r,Number.NaN),d&&d.size()===r&&d.resize(de(r)),a>3?(d||(d=x(r+1,Number.NaN)),d.write(r,u[3])):d&&d.write(r,Number.NaN),r++}if(r){const e=i.getImpl();e.setAttributeStreamRef(0,s),e.resizeNoInit(r),e.notifyModifiedFlags(65535)}return{geometry:i,as:c,bs:d}}function oe(e,t){2!==t.currentToken()&&n("failed to parse array of IDs: array of array of integers is expected");const r=j(2,0);let i=0,s=-1;for(;4!==t.nextToken();){const e=i;r.size()===i&&r.resize(de(i)),i++;let a=0;for(-1===s?s=2===t.currentToken()?1:0:1===s&&2!==t.currentToken()&&n("failed to parse array of IDs: array of array of integers is expected"),0===s&&(r.size()===i&&r.resize(de(i)),r.write(i,me(t)),a++,i++);4!==t.nextToken();)r.size()===i&&r.resize(de(i)),r.write(i,me(t)),a++,i++;if(r.write(e,a),0===s)break}return r.resize(i),r}function ue(e){const t=e.currentToken();if(10===t||6===t&&"NaN"===e.currentString())return Number.NaN;{const t=e.currentDoubleValue();return Number.isNaN(t)?Number.NaN:t}}function me(e){return e.currentInt32Value()}function le(e,n){if(e.isEmpty())return;const r=j(2,0),i=e.getGeometryType();let s=0;i===P.type?s=1:i===I.type||i===z.type?s=e.getPathCount():t("not implemented"),r.resize(e.getPointCount(),0);let a=0;for(let o=0;o<s;++o){const s=n.read(a);a++;const u=a+s;let m=0,l=0;i===P.type?m=e.getPointCount():i===I.type||i===z.type?(m=e.getPathSize(o),l=e.getPathStart(o)):t("not implemented");for(let e=0,t=Math.min(s,m);e<t;++e)r.write(l,n.read(a)),a++,l++;a=u}e.getImpl().setAttributeStreamRef(3,r)}function ce(e){let t=2*Math.trunc(3*(e+1)/2);return t<8?t=8:t<32&&(t=32),t}function de(e){let t=Math.trunc(3*(e+1)/2);return t<4?t=4:t<16&&(t=16),t}function _e(e,t,n,r,s){s>=r.size()&&i("Byte_buffer out of range access"),e.m_bits=0,e.m_rotation=0,e.m_cosr=1,e.m_sinr=0,e.setStartXY(t),e.setEndXY(n);const a=_.getNAN();a.x=r.readDouble(s),a.y=r.readDouble(s+8);const o=r.readInt32(s+16);if(!!(1&o))return e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.assign(a),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),!1;let u=!!(64&o);const m=!!(128&o);let l=!!(32&o);const c=!!(8&o),d=!!(16&o),h=t.equals(n);return u&&!h&&(u=!1,l=!0),l&&h&&(u=!0,l=!1,a.setCoords(0,0)),u||(m?l?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_interior.assign(a),e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0):(e.constructCircularArcThreePoint(t,n,a),h&&c===e.isClockwise()&&e.reverse()):l?(e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),e.queryCoord2D(.5,e.m_interior)):M(e,t,n,a,c,d)),u&&(e.m_center.assign(t),e.m_startAngle=a.x,e.m_sweepAngle=a.y,U(e,Number.NaN,c,d),e.m_semiMajorAxis=0,e.m_minorMajorRatio=1,e.m_interior.setCoordsPoint2D(t)),e.setProjectionBehavior(0),R(e),!0}function he(e,t,n,r,i){e.m_bits=0,e.m_center.x=r.readDouble(i),e.m_center.y=r.readDouble(i+8),e.m_rotation=r.readDouble(i+16),e.m_semiMajorAxis=r.readDouble(i+24),e.m_minorMajorRatio=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y;const s=r.readInt32(i+40);if(1&s)return!1;let a=!!(64&s),o=!!(128&s);const u=!!(2048&s),m=!!(4096&s);return!!!(512&s)&&!!!(1024&s)||o||(a=!0),o&&!t.equals(n)?(o=!1,a=!0):a&&t.equals(n)&&(o=!0,a=!1),o?(e.m_center.assign(t),e.m_startAngle=e.m_center.x,e.m_sweepAngle=e.m_center.y,U(e,Number.NaN,u,m),e.m_semiMajorAxis=0,e.m_interior.setCoordsPoint2D(t)):a?(e.m_center.setNAN(),e.m_semiMajorAxis=1,e.m_minorMajorRatio=0,e.m_center.setNAN(),e.m_sweepAngle=0,e.m_startAngle=0,R(e),e.queryCoord2D(.5,e.m_interior)):e.constructEllipticArcEndPointsCenter(t,n,e.m_semiMajorAxis,e.m_minorMajorRatio,e.m_rotation,!m,u,e.m_center),e.setProjectionBehavior(1),R(e),!0}function fe(e,t,n,i,s){return r(s+32<=i.size()),e.m_cp=h(_,2),e.m_cp[0].x=i.readDouble(s),e.m_cp[0].y=i.readDouble(s+8),e.m_cp[1].x=i.readDouble(s+16),e.m_cp[1].y=i.readDouble(s+24),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function pe(e,t,n,r,i){return e.m_cp.x=r.readDouble(i),e.m_cp.y=r.readDouble(i+8),e.m_weights[0]=r.readDouble(i+16),e.m_weights[1]=r.readDouble(i+24),e.m_weights[2]=r.readDouble(i+32),e.m_XStart=t.x,e.m_YStart=t.y,e.m_XEnd=n.x,e.m_YEnd=n.y,!0}function ke(e,t,r,i,s){const a={segFlag:0,toPointSz:0};let o=i.currentToken();o=i.nextToken();const u=i.currentString(),m=u[0];for((1!==u.length||"a"!==m&&"b"!==m&&"c"!==m&&"n"!==m&&"q"!==m)&&n('failed to parse curve: expecting "a", "b", "n", "q", or "c"'),o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for curve parameters"),o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for to point"),a.toPointSz=0;4!==i.nextToken();)4===a.toPointSz&&n("failed to parse curve: vertex array cannot have more than 4 elements"),t[a.toPointSz++]=ue(i);a.toPointSz<2&&n("failed to parse curve: vertex array must have at least 2 elements");const l=_.construct(t[0],t[1]),c=_.getNAN();let d=-1,h=-1,f=!1,p=Number.NaN,k=Number.NaN,b=Number.NaN;const y=[_.getNAN(),_.getNAN(),_.getNAN()],T=_.getNAN();if("a"===m){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for center point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for center point"),c.setCoords(e,t),o=i.nextToken(),d=i.currentInt32Value(),o=i.nextToken(),h=i.currentInt32Value(),o=i.nextToken(),4!==o?(f=!1,p=ue(i),o=i.nextToken(),k=ue(i),o=i.nextToken(),b=ue(i),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters")):f=!0,a.segFlag=4}else if("b"===m){for(let e=0;e<2;e++){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[e].setCoords(t,r)}o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=2}else if("n"===m){{o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[0].setCoords(e,t)}o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);y[1].setCoords(e,t),y[2].setCoords(r,r),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=8}else if("q"===m){for(let e=0;e<1;e++){o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for control point"),o=i.nextToken();const t=ue(i);o=i.nextToken();const r=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for control point"),y[e].setCoords(t,r)}o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=16}else{o=i.nextToken(),2!==o&&n("failed to parse curve: start array is expected for interior point"),o=i.nextToken();const e=ue(i);o=i.nextToken();const t=ue(i);o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for interior point"),T.setCoords(e,t),o=i.nextToken(),4!==o&&n("failed to parse curve: end array is expected for curve parameters"),a.segFlag=4}if(o=i.nextToken(),3!==o&&n("failed to parse curve: end object is expected for curve"),"a"===m)if(e.createEllipticArc(),f){const t=!0;be(e.get(),r,l,c,t,d,h)}else ye(e.get(),r,l,c,d,h,p,k,b);else if("b"===m)e.createCubicBezier(),Te(e.get(),r,l,y);else if("n"===m)e.createQuadraticRationalBezier(),Ne(e.get(),r,l,y[0],y[1].x,y[1].y,y[2].x);else if("q"===m)e.createQuadraticBezier(),e.get().construct(r,y[0],l);else{e.createEllipticArc();const t=!1;be(e.get(),r,l,T,t,-1,-1)}return a}function be(e,t,n,r,i,s,a){e.dropAllAttributes();const o=20,u=new ArrayBuffer(o),m=new te({sz:o,buffer:u});let l=0;m.writeDouble(l,r.x),l+=8,m.writeDouble(l,r.y),l+=8;let c=0;i?(a||(c|=8),s&&(c|=16)):c|=128,m.writeInt32(l,c),l+=4,_e(e,t,n,m,0)}function ye(e,t,n,r,i,s,a,o,u){e.dropAllAttributes();const m=44,l=new ArrayBuffer(m),c=new te({sz:m,buffer:l});let d=0;c.writeDouble(d,r.x),d+=8,c.writeDouble(d,r.y),d+=8,c.writeDouble(d,a),d+=8,c.writeDouble(d,o),d+=8,c.writeDouble(d,u),d+=8;let _=0;s||(_|=2048),i&&(_|=4096),c.writeInt32(d,_),d+=4,he(e,t,n,c,0)}function Te(e,t,n,r){e.dropAllAttributes();const i=32,s=new ArrayBuffer(i),a=new te({sz:i,buffer:s});let o=0;a.writeDouble(o,r[0].x),o+=8,a.writeDouble(o,r[0].y),o+=8,a.writeDouble(o,r[1].x),o+=8,a.writeDouble(o,r[1].y),o+=8,fe(e,t,n,a,0)}function Ne(e,t,n,r,i,s,a){e.dropAllAttributes();const o=40,u=new ArrayBuffer(o),m=new te({sz:o,buffer:u});let l=0;m.writeDouble(l,r.x),l+=8,m.writeDouble(l,r.y),l+=8,m.writeDouble(l,i),l+=8,m.writeDouble(l,s),l+=8,m.writeDouble(l,a),l+=8,pe(e,t,n,m,0)}function ge(e,t,n,r,i){const s=e.getGeometryType();if(s===a.enumEllipticArc)return ve(e,t,n,r,i);if(s===a.enumBezier)return xe(e,t,n,r,i);if(s===a.enumRationalBezier2)return Ae(e,t,n,r,i);if(s===a.enumBezier2){const s=new B;return s.constructFromQuadraticSegment(e),xe(s,t,n,r,i)}o("")}function ve(e,t,n,i,s){r(!V(e));const a=e.getEndXY(),o=e.hasAttribute(1)&&!t,u=e.hasAttribute(2)&&!n;let m=Number.NaN,l=Number.NaN;if(o&&(m=e.getEndAttributeAsDbl(1,0)),u&&(l=e.getEndAttributeAsDbl(2,0)),e.isDegenerateToLine()||e.isDegenerate(0))return Se(o,u,a.x,a.y,m,l,i,s),!0;const c=0===e.projectionBehavior(),d=!!c&&e.isClosed();if(c&&!d)s.startObject(),s.addFieldName("c"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s),we(e.m_interior.x,e.m_interior.y,17,s),s.endArray(),s.endObject();else if(c){s.startObject(),s.addFieldName("a"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s);const t=0,n=0;we(e.m_center.x+t,e.m_center.y+n,17,s);const r=!e.isMajor();s.addInt32(r?1:0);const c=e.isClockwise();s.addInt32(c?1:0),s.endArray(),s.endObject()}else{s.startObject(),s.addFieldName("a"),s.startArray(),Se(o,u,a.x,a.y,m,l,i,s);const t=e;we(t.m_center.x,t.m_center.y,17,s);const n=!t.isMajor();s.addInt32(n?1:0);const r=t.isClockwise();s.addInt32(r?1:0),s.addDouble(t.m_rotation,17),s.addDouble(t.m_semiMajorAxis,17),s.addDouble(t.m_minorMajorRatio,17),s.endArray(),s.endObject()}return!1}function xe(e,t,n,r,i){const s=e.getEndXY(),a=e.hasAttribute(1)&&!t,o=e.hasAttribute(2)&&!n;let u=Number.NaN,m=Number.NaN;return a&&(u=e.getEndAttributeAsDbl(1,0)),o&&(m=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName("b"),i.startArray(),Se(a,o,s.x,s.y,u,m,r,i),we(e.m_cp[0].x,e.m_cp[0].y,r,i),we(e.m_cp[1].x,e.m_cp[1].y,r,i),i.endArray(),i.endObject(),!1}function Ae(e,t,n,r,i){const s=e.getEndXY(),a=e.hasAttribute(1)&&!t,o=e.hasAttribute(2)&&!n;let u=Number.NaN,m=Number.NaN;a&&(u=e.getEndAttributeAsDbl(1,0)),o&&(m=e.getEndAttributeAsDbl(2,0)),i.startObject(),i.addFieldName("n"),i.startArray(),Se(a,o,s.x,s.y,u,m,r,i),we(e.m_cp.x,e.m_cp.y,r,i);const l=r;return i.addDouble(e.m_weights[0],l),i.addDouble(e.m_weights[1],l),i.addDouble(e.m_weights[2],l),i.endArray(),i.endObject(),!1}function Se(e,t,n,r,i,s,a,o){o.startArray(),o.addDouble(n,a),o.addDouble(r,a),e&&o.addDouble(i,a),t&&o.addDouble(s,a),o.endArray()}function we(e,t,n,r){r.startArray(),r.addDouble(e,n),r.addDouble(t,n),r.endArray()}class Ce{getOperatorType(){return 10405}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,n,r,i,s){De(e,t,n,r)}exportSpatialReference(e,t,n,i){r(0)}exportProjectionTransformation(e,t,n,i){r(0)}exportDatumTransformation(e,t,n,i){r(0)}static geometryTypeToString(e){return r(0),""}}function De(e,n,i,s,o){if(n||i){if(s.startObject(),null!==n){switch(n.getGeometryType()){case a.enumPolygon:Fe(!0,e,n,s);break;case a.enumPolyline:Fe(!1,e,n,s);break;case a.enumMultiPoint:je(e,n,s);break;case a.enumPoint:Oe(e,n,s);break;case a.enumEnvelope:ze(e,n,s);break;case a.enumMultipatch:r(0);break;default:t("exportToJSON")}}null!==i&&(s.addFieldName("spatialReference"),Ee(e,i,s)),s.endObject()}}function Fe(e,t,n,i){const s=n.getImpl(),a=!!(2&t),u=!!(4&t),m=!!(8&t),l=s.hasAttribute(1)&&!a,c=s.hasAttribute(2)&&!u,d=s.hasAttribute(3)&&!m,_=s.hasNonLinearSegments();l&&(i.addFieldName("hasZ"),i.addBool(!0)),c&&(i.addFieldName("hasM"),i.addBool(!0)),e?_?i.addFieldName("curveRings"):i.addFieldName("rings"):_?i.addFieldName("curvePaths"):i.addFieldName("paths");let h=null;const f=[];if(n.isEmpty())i.startArray(),i.endArray();else{const e=17-(31&t>>13);i.startArray();const r=n.getPathCount();let m=0;const p=s.getAttributeStreamRef(0);let k=null,b=null,y=null;const T=new E;let N=null,g=null,v=null;_&&(N=s.getSegmentFlagsStreamRef(),g=s.getSegmentIndexStreamRef(),v=s.getSegmentDataStreamRef()),l&&(k=s.getAttributeStreamRef(1)),c&&(b=s.getAttributeStreamRef(2)),d&&(y=s.getAttributeStreamRef(3),h=O(3,0));for(let t=0;t<r;t++){i.startArray(),d&&f.push(0);const r=n.getPathEnd(t);if(m===r){i.endArray();continue}const s=n.isClosedPath(t);let _=p.read(2*m),x=p.read(2*m+1),A=l?k.read(m):Number.NaN,S=c?b.read(m):Number.NaN,w=d?y.read(m):0;Pe(l,c,_,x,A,S,e,i);let C=1;d&&(h.add(w),f[f.length-1]++);const D=_,F=x,j=A,O=S,z=w;let I=!1,E=0,P=Number.NaN,B=Number.NaN,V=0;for(let t=m+1,n=m,R=s?r+1:r;t<R;t++,n++){const s=null!==N?31&N.read(n):1;let m,R;if(t<r?(m=p.read(2*t),R=p.read(2*t+1),l&&(P=k.read(t)),c&&(B=b.read(t)),d&&(V=y.read(t))):(m=D,R=F,P=j,B=O,V=z),1!==s){I=!0,4===s?T.createEllipticArc():2===s?T.createCubicBezier():16===s?T.createQuadraticBezier():8===s?T.createQuadraticRationalBezier():o("JSON export.unsupported curve");const t=T.get(),r=g.read(n);t.setStartXYCoords(_,x),t.setEndXYCoords(m,R),l&&(t.setStartAttribute(1,0,A),t.setEndAttribute(1,0,P)),c&&(t.setStartAttribute(2,0,S),t.setEndAttribute(2,0,B)),t.readFromBufferStream(v,r);ge(T.get(),a,u,e,i)&&E++}else Pe(l,c,m,R,P,B,e,i);d&&(h.add(V),f[f.length-1]++),C++,_=m,x=R,A=P,S=B,w=V}I&&0===E||(C<2&&E<1&&(Pe(l,c,_,x,A,S,e,i),C++,d&&(h.add(w),f[f.length-1]++)),s&&C<3&&E<2&&(Pe(l,c,D,F,j,O,e,i),C++,_=D,x=F,A=j,S=O,w=z,d&&(h.add(z),f[f.length-1]++))),i.endArray(),m=r}i.endArray()}if(d){i.addFieldName("ids"),i.startArray();let e=0;for(let t=0,n=f.length;t<n;++t){const n=f[t];r(0===n||null!==h&&e+n<=h.size()),i.startArray();for(let t=0;t<n;++t)i.addInt32(h.read(e)),e++;i.endArray()}i.endArray()}}function je(e,t,n){const i=t.getImpl(),s=i.hasAttribute(1)&&!(2&e),a=i.hasAttribute(2)&&!(4&e),o=i.hasAttribute(3)&&!(8&e);s&&(n.addFieldName("hasZ"),n.addBool(!0)),a&&(n.addFieldName("hasM"),n.addBool(!0)),n.addFieldName("points");const u=t.getPointCount();if(t.isEmpty())n.startArray(),n.endArray();else{const t=17-(31&e>>13);n.startArray();const r=i.getAttributeStreamRef(0);let o=null,m=null;s&&(o=i.getAttributeStreamRef(1)),a&&(m=i.getAttributeStreamRef(2));for(let e=0;e<u;e++){const i=r.read(2*e),u=r.read(2*e+1);let l=Number.NaN,c=Number.NaN;s&&(l=o.read(e)),a&&(c=m.read(e)),Pe(s,a,i,u,l,c,t,n)}n.endArray()}if(o){let e=null;i.isEmpty()||(e=i.getAttributeStreamRef(3)),r(0===u||null!==e&&e.size()>=u),n.addFieldName("ids"),n.startArray();for(let t=0;t<u;t++)n.addInt32(e.read(t));n.endArray()}}function Oe(e,t,n){const r=t.hasAttribute(1)&&!(2&e),i=t.hasAttribute(2)&&!(4&e),s=t.hasAttribute(3)&&!(8&e);if(t.isEmpty())return n.addFieldName("x"),n.addNull(),n.addFieldName("y"),n.addNull(),r&&(n.addFieldName("z"),n.addNull()),i&&(n.addFieldName("m"),n.addNull()),void(s&&(n.addFieldName("id"),n.addInt32(0)));const a=17-(31&e>>13);n.addFieldName("x"),n.addDouble(t.getX(),a),n.addFieldName("y"),n.addDouble(t.getY(),a),r&&(n.addFieldName("z"),n.addDouble(t.getZ(),a)),i&&(n.addFieldName("m"),n.addDouble(t.getM(),a)),s&&(n.addFieldName("id"),n.addInt32(t.getID()))}function ze(e,t,n){const r=t.hasAttribute(1)&&!(2&e),i=t.hasAttribute(2)&&!(4&e),s=t.hasAttribute(3)&&!(8&e);if(t.isEmpty())return n.addFieldName("xmin"),n.addNull(),n.addFieldName("ymin"),n.addNull(),n.addFieldName("xmax"),n.addNull(),n.addFieldName("ymax"),n.addNull(),r&&(n.addFieldName("zmin"),n.addNull(),n.addFieldName("zmax"),n.addNull()),i&&(n.addFieldName("mmin"),n.addNull(),n.addFieldName("mmax"),n.addNull()),void(s&&(n.addFieldName("idmin"),n.addInt32(0),n.addFieldName("idmax"),n.addInt32(0)));const a=17-(31&e>>13);if(n.addFieldName("xmin"),n.addDouble(t.getXMin(),a),n.addFieldName("ymin"),n.addDouble(t.getYMin(),a),n.addFieldName("xmax"),n.addDouble(t.getXMax(),a),n.addFieldName("ymax"),n.addDouble(t.getYMax(),a),r){const e=t.queryInterval(1,0);n.addFieldName("zmin"),n.addDouble(e.vmin,a),n.addFieldName("zmax"),n.addDouble(e.vmax,a)}if(i){const e=t.queryInterval(2,0);n.addFieldName("mmin"),n.addDouble(e.vmin,a),n.addFieldName("mmax"),n.addDouble(e.vmax,a)}if(s){const e=t.queryInterval(3,0);n.addFieldName("idmin"),n.addInt32(e.vmin),n.addFieldName("idmax"),n.addInt32(e.vmax)}}function Ie(e,t,r){r.startObject();const i=t.getID();i<=0&&n("cannot export unit that has no valid WKID"),r.addFieldName("uwkid"),r.addInt32(i),r.endObject()}function Ee(e,t,n){n.startObject();let r=0;t.isCustomWkid()||(r=t.getOldID());let i=0;const s=t.getVCS();if(null!==s&&(s.isCustomWkid()||(i=s.getOldID()),i<=0&&(r=0)),r>0){n.addFieldName("wkid"),n.addInt32(r);const e=t.getLatestID();if(e>0&&e!==r&&(n.addFieldName("latestWkid"),n.addInt32(e)),i>0){n.addFieldName("vcsWkid"),n.addInt32(i);const e=t.getLatestVerticalID();e!==i&&(n.addFieldName("latestVcsWkid"),n.addInt32(e))}}if(0===t.getCoordinateSystemType())n.addFieldName("wkid"),n.addNull(),null!==t.getUnit()&&(n.addFieldName("unit"),Ie(e,t.getUnit(),n));else if(r<=0||1&e){let r="";64&e&&(r=t.getText2(),n.addFieldName("wkt2"),n.addString(r));const i=t.getText();i!==r&&(n.addFieldName("wkt"),n.addString(i))}if(16&e){const e=new N;t.queryPrecisionDescriptor(e),n.addFieldName("xyTolerance"),n.addDouble(e.getTolerance(0)),n.addFieldName("zTolerance"),n.addDouble(e.getTolerance(1)),n.addFieldName("mTolerance"),n.addDouble(e.getTolerance(2)),n.addFieldName("falseX"),n.addDouble(e.getFalseX()),n.addFieldName("falseY"),n.addDouble(e.getFalseY()),n.addFieldName("xyUnits"),n.addDouble(e.getGridUnitsXY()),n.addFieldName("falseZ"),n.addDouble(e.getFalseZ()),n.addFieldName("zUnits"),n.addDouble(e.getGridUnitsZ()),n.addFieldName("falseM"),n.addDouble(e.getFalseM()),n.addFieldName("mUnits"),n.addDouble(e.getGridUnitsM())}n.endObject()}function Pe(e,t,n,r,i,s,a,o){o.startArray(),o.addDouble(n,a),o.addDouble(r,a),e&&o.addDouble(i,a),t&&o.addDouble(s,a),o.endArray()}const Be={s_a:"a".charCodeAt(0),s_A:"A".charCodeAt(0),s_asterisk:"*".charCodeAt(0),s_b:"b".charCodeAt(0),s_backslash:"\\".charCodeAt(0),s_beginArray:"[".charCodeAt(0),s_beginObject:"{".charCodeAt(0),s_colon:":".charCodeAt(0),s_period:".".charCodeAt(0),s_comma:",".charCodeAt(0),s_doubleQuote:'"'.charCodeAt(0),s_endArray:"]".charCodeAt(0),s_endObject:"}".charCodeAt(0),s_e:"e".charCodeAt(0),s_E:"E".charCodeAt(0),s_f:"f".charCodeAt(0),s_F:"F".charCodeAt(0),s_forwardslash:"/".charCodeAt(0),s_minus:"-".charCodeAt(0),s_plus:"+".charCodeAt(0),s_n:"n".charCodeAt(0),s_N:"N".charCodeAt(0),s_r:"r".charCodeAt(0),s_t:"t".charCodeAt(0),s_u:"u".charCodeAt(0),s_zero:"0".charCodeAt(0),s_nine:"9".charCodeAt(0)};class Ve{m_jsonString;m_endToken;m_startToken;m_currentTokenType;m_bHasEscapes;m_functionStack=[];m_pushPositions=[];m_utf8Decoder=new TextDecoder("utf-8",{fatal:!0});m_prepSubstr;m_getCurrentSubstr;m_stepOverChar;m_peekChar;m_get;m_increment;m_eof;constructor(e){void 0===e?(this.m_startToken=Number.MAX_SAFE_INTEGER,this.m_endToken=0,this.m_currentTokenType=0,this.m_functionStack.push(()=>this.accept_()),this.m_jsonString=null,this.m_bHasEscapes=!1):e.jsonString?this.resetParserFromString(e.jsonString):e.jsonStream?o("streaming json parsing not yet impl"):t("invalid constructor parameter")}prepSubstrString_(){}getCurrentSubstrString_(){return this.m_jsonString.slice(this.m_startToken,this.m_endToken)}stepOverCharString_(){this.m_endToken++}peekCharString_(){return this.m_jsonString.charCodeAt(this.m_endToken)}getString_(e){const t=this.m_jsonString?.slice(this.m_startToken,this.m_startToken+e-1);this.m_endToken+=e-1;return{s:t,bDone:this.m_endToken>=this.m_jsonString.length}}incrementString_(){this.m_endToken++}eofString_(){return this.m_endToken>=this.m_jsonString.length}setStringFunctions_(){this.m_prepSubstr=this.prepSubstrString_,this.m_getCurrentSubstr=this.getCurrentSubstrString_,this.m_stepOverChar=this.stepOverCharString_,this.m_peekChar=this.peekCharString_,this.m_get=this.getString_,this.m_increment=this.incrementString_,this.m_eof=this.eofString_}setStreamFunctions_(){o("streaming json parsing not yet impl")}reset_(){this.m_jsonString=null,this.m_endToken=0,this.m_startToken=Number.MAX_SAFE_INTEGER,this.m_currentTokenType=0,this.m_bHasEscapes=!1,this.m_functionStack.length=0,this.m_functionStack.push(()=>this.start_()),this.m_pushPositions.length=0}resetParserFromString(e){this.reset_(),this.setStringFunctions_(),this.m_jsonString=e}resetParserFromStream(e){o("streaming json parsing not yet impl")}resetToPosition(e){return!!this.m_jsonString&&(this.m_endToken=e,this.m_startToken=Number.MAX_VALUE,this.m_currentTokenType=0,this.m_functionStack.length=0,e>=this.m_jsonString.length?(this.m_functionStack.push(()=>this.accept_()),!1):(this.m_functionStack.push(()=>this.start_()),!0))}nextToken(){return this.m_functionStack.at(-1)(),this.m_currentTokenType}currentToken(){return this.m_currentTokenType}currentTokenStartIndex(){return this.m_startToken}currentTokenEndIndex(){return this.m_endToken}currentText(){return r(0),""}childrenAsString(){return r(0),""}skipChildren(){this.skipChildren_()}skipChildren_(){if(1===this.m_currentTokenType){let e=1;do{this.m_currentTokenType=this.nextToken(),1===this.m_currentTokenType?e++:3===this.m_currentTokenType&&e--}while(3!==this.m_currentTokenType||0!==e);return}if(2===this.m_currentTokenType){let e=1;do{this.m_currentTokenType=this.nextToken(),2===this.m_currentTokenType?e++:4===this.m_currentTokenType&&e--}while(4!==this.m_currentTokenType||0!==e);return}}currentTerminalAsString_(){switch(this.m_currentTokenType){case 7:case 8:case 9:return this.m_getCurrentSubstr().slice(0,this.m_endToken-this.m_startToken);case 10:return"null";case 11:return"true";case 12:return"false"}n("invalid token")}toUTF8_(e,t){let n=0,r=e;for(;t.charCodeAt(r)===Be.s_backslash&&t.charCodeAt(r+1)===Be.s_u;)n++,r+=6;r=e;const i=new Uint8Array(n);let s=0;for(;t.charCodeAt(r)===Be.s_backslash&&t.charCodeAt(r+1)===Be.s_u;)i[s++]=Number.parseInt(t.slice(r+2,r+6),16),r+=6;return{u8s:this.m_utf8Decoder.decode(i),end:r}}unquoteCurrentString_(){let e="",t=1;const n=this.m_endToken-this.m_startToken-1;let r=0;const i=this.m_getCurrentSubstr();for(let s=t;s<n;s++)if(i.charCodeAt(s)!==Be.s_backslash)r++;else{switch(r>0&&(e+=i.slice(t,t+r)),i.charCodeAt(++s)){case Be.s_doubleQuote:e+='"';break;case Be.s_u:{const{u8s:t,end:n}=this.toUTF8_(s-1,i);s=n-1,e+=t;break}case Be.s_backslash:e+="\\";break;case Be.s_forwardslash:e+="/";break;case Be.s_b:e+="\b";break;case Be.s_f:e+="\f";break;case Be.s_n:e+="\n";break;case Be.s_r:e+="\r";break;case Be.s_t:e+="\t"}t=s+1,r=0}return r>0&&(e+=i.slice(t,t+r)),e}currentString(){if(5!==this.m_currentTokenType&&6!==this.m_currentTokenType)return this.currentTerminalAsString_();if(this.m_bHasEscapes)return this.unquoteCurrentString_();return this.m_getCurrentSubstr().slice(1,this.m_endToken-this.m_startToken-2+1)}currentDoubleValue(){if(7!==this.m_currentTokenType&&8!==this.m_currentTokenType&&9!==this.m_currentTokenType&&6!==this.m_currentTokenType&&10!==this.m_currentTokenType&&n("invalid token"),10===this.m_currentTokenType)return Number.NaN;let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;if(6===this.m_currentTokenType){if("NaN"===this.currentString())return Number.NaN;e=e.slice(1),t-=2,0===t&&n("invalid token")}const r=Number.parseFloat(e);if(6===this.m_currentTokenType)Number.isNaN(r)&&n("invalid token");else if(Number.isNaN(r))return Number.NaN;return r}currentInt32Value(){8!==this.m_currentTokenType&&6!==this.m_currentTokenType&&n("invalid token");let e=this.m_getCurrentSubstr(),t=this.m_endToken-this.m_startToken;6===this.m_currentTokenType&&(e=e.slice(1),t-=2,0===t&&n("invalid token"));const r=parseInt(e);return Number.isNaN(r)&&n("invalid token"),r}currentInt64Value(){return r(0),0n}currentBoolValue(){return r(0),!1}isError(){return 0}JSONString(){return r(0),""}pushPosition(){return r(0),!1}popPosition(){return r(0),!1}skipCStyleComments_(){r(0)}skipCppStyleComments_(){r(0)}skipComments_(){this.m_prepSubstr();let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e===Be.s_asterisk?this.skipCStyleComments_():e===Be.s_forwardslash?this.skipCppStyleComments_():n("invalid token")}skipWhiteSpace_(){let e;do{this.m_eof()&&n("invalid token");let t=this.m_peekChar();for(;t>=9&&t<=13||32===t;)this.m_increment(),this.m_eof()&&n("invalid token"),t=this.m_peekChar();t===Be.s_forwardslash?(this.m_startToken=this.m_endToken,e=!0,this.skipComments_()):e=!1}while(e)}rightBracket_(){return this.m_peekChar()===Be.s_endArray&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=4,!0)}rightBrace_(){return this.m_peekChar()===Be.s_endObject&&(this.m_startToken=this.m_endToken,this.m_increment(),this.m_currentTokenType=3,!0)}string_(){this.m_prepSubstr(),this.m_bHasEscapes=!1,this.m_stepOverChar(),this.m_eof()&&n("invalid token");let e=this.m_peekChar();for(;e!==Be.s_doubleQuote;){const t=e===Be.s_backslash;if(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),t)if(this.m_bHasEscapes=!0,e===Be.s_doubleQuote||e===Be.s_backslash||e===Be.s_forwardslash||e===Be.s_b||e===Be.s_f||e===Be.s_n||e===Be.s_r||e===Be.s_t)this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar();else if(e===Be.s_u)for(let r=0;r<4;r++)this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e>=Be.s_zero&&e<=Be.s_nine||e>=Be.s_a&&e<=Be.s_f||e>=Be.s_A&&e<=Be.s_F||n("invalid token");else n("invalid token")}this.m_stepOverChar()}comma_(){return this.m_peekChar()===Be.s_comma&&(this.m_increment(),!0)}colon_(){return this.m_peekChar()===Be.s_colon&&(this.m_increment(),!0)}fieldNameEnd_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.colon_()?(this.skipWhiteSpace_(),this.value_()):n("invalid token")}fieldNameStart_(){this.m_startToken=this.m_endToken;this.m_peekChar()!==Be.s_doubleQuote&&n("invalid token"),this.string_(),this.m_currentTokenType=5,this.m_functionStack.push(()=>this.fieldNameEnd_())}pairEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.fieldNameStart_()):this.rightBrace_()?this.m_functionStack.pop():n("invalid token")}arrayStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBracket_()||(this.m_functionStack.push(()=>this.elementEnd_()),this.value_())}elementEnd_(){this.skipWhiteSpace_(),this.comma_()?(this.skipWhiteSpace_(),this.value_()):this.rightBracket_()?this.m_functionStack.pop():n("invalid token")}objectStart_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.rightBrace_()||(this.m_functionStack.push(()=>this.pairEnd_()),this.fieldNameStart_())}valueStartObject_(){this.m_increment(),this.m_currentTokenType=1,this.m_functionStack.push(()=>this.objectStart_())}valueStartArray_(){this.m_increment(),this.m_currentTokenType=2,this.m_functionStack.push(()=>this.arrayStart_())}valueString_(){this.string_(),this.m_currentTokenType=6}int_(){this.m_peekChar()!==Be.s_zero?this.digits_():this.m_stepOverChar()}digits_(){let e=this.m_peekChar();do{this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar()}while(e>=Be.s_zero&&e<=Be.s_nine)}frac_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e>=Be.s_zero&&e<=Be.s_nine||n("invalid token"),this.digits_()}exp_(){let e=this.m_peekChar();this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar(),e!==Be.s_plus&&e!==Be.s_minus||(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),e=this.m_peekChar()),e>=Be.s_zero&&e<=Be.s_nine||n("invalid token"),this.digits_()}valueNumber_(){this.m_prepSubstr();let e=!1,t=this.m_peekChar();if(t===Be.s_minus?(this.m_stepOverChar(),this.m_eof()&&n("invalid token"),t=this.m_peekChar(),e=!0,t>=Be.s_zero&&t<=Be.s_nine||n("invalid token"),this.int_()):this.int_(),t=this.m_peekChar(),t===Be.s_period)this.m_currentTokenType=7,this.frac_(),t=this.m_peekChar(),t!==Be.s_e&&t!==Be.s_E||this.exp_();else if(t===Be.s_e||t===Be.s_E)this.m_currentTokenType=7,this.exp_();else{let t=0;e&&t++;const n=this.m_endToken-this.m_startToken-t;if(n<10)this.m_currentTokenType=8;else if(10===n){const n=this.m_getCurrentSubstr();e?n.slice(t)<="2147483648"?this.m_currentTokenType=8:this.m_currentTokenType=9:n.slice(t)<="2147483647"?this.m_currentTokenType=8:this.m_currentTokenType=9}else if(n<19)this.m_currentTokenType=9;else if(19===n){const n=this.m_getCurrentSubstr();e?n.slice(t)<="9223372036854775808"?this.m_currentTokenType=9:this.m_currentTokenType=7:n.slice(t)<="9223372036854775807"?this.m_currentTokenType=9:this.m_currentTokenType=7}else this.m_currentTokenType=7}}valueNull_(){const{s:e,bDone:t}=this.m_get(5);t&&n("invalid token"),"null"!==e&&n("invalid token"),this.m_currentTokenType=10}valueTrue_(){const{s:e,bDone:t}=this.m_get(5);t&&n("invalid token"),"true"!==e&&n("invalid token"),this.m_currentTokenType=11}valueFalse_(){const{s:e,bDone:t}=this.m_get(6);t&&n("invalid token"),"false"!==e&&n("invalid token"),this.m_currentTokenType=12}valueNan_(){const{s:e,bDone:t}=this.m_get(4);t&&n("invalid token"),"NaN"!==e&&n("invalid token"),this.m_currentTokenType=7}value_(){this.m_startToken=this.m_endToken;const e=this.m_peekChar();e===Be.s_beginObject?this.valueStartObject_():e===Be.s_beginArray?this.valueStartArray_():e===Be.s_doubleQuote?this.valueString_():e===Be.s_minus||e>=Be.s_zero&&e<=Be.s_zero+9?this.valueNumber_():e===Be.s_n?this.valueNull_():e===Be.s_t?this.valueTrue_():e===Be.s_f?this.valueFalse_():e===Be.s_N?this.valueNan_():n("invalid token")}start_(){this.skipWhiteSpace_(),this.m_functionStack.pop(),this.m_functionStack.push(()=>this.accept_());const e=this.m_peekChar();e!==Be.s_beginObject&&e!==Be.s_beginArray&&n("invalid token"),this.value_()}accept_(){this.m_startToken=this.m_endToken,this.m_currentTokenType=0}}class Re{getOperatorType(){return 10404}accelerateGeometry(e,t,n){return!1}canAccelerateGeometry(e){return!1}supportsCurves(){return!0}execute(e,t,r,i,s,a,o){let u;"string"==typeof r?(u=new Ve({jsonString:r}),u.nextToken()):u=r,1!==u.currentToken()&&n("failed to import map geometry: start of object is expected");const m=ne(t,e,u,i,s);return new v(m)}importSpatialReference(e){const n=ie(e);return null===n&&t("failed to import spatial reference"),n}importProjectionTransformation(e,t){return r(0),{}}importDatumTransformation(e,t){return r(0),{}}static stringToGeometryType(e){return(e=e.toLowerCase()).startsWith("esrigeometry")||n("string_to_geometry_type"),e.endsWith("point")?a.enumPoint:e.endsWith("envelope")?a.enumEnvelope:e.endsWith("multipoint")?a.enumMultiPoint:e.endsWith("polyline")?a.enumPolyline:e.endsWith("polygon")?a.enumPolygon:void n("string_to_geometry_type")}}const Me=new ee,Ue=new Ce,We=new Re;function Ge(e){return Array.isArray(e)?e[0].spatialReference:e.spatialReference}function Le(t,n=!1){if(!n&&(K(t)||q(t)||J(t)||Q(t))){const n=new v;return n.setGeometry(e(X(t))),n}const r=new $(t,{strict:!1});return r.nextToken(),We.execute(0,a.enumUnknown,r,!0,!1)}function Xe(e){let t=null;return[e.map(e=>{if(null==t){const n=Ye(e);return t=n.getSpatialReference(),n.getGeometry()}return Ke(e)}),t]}function Ye(e){const t=Le(e),n=Je(e.spatialReference);return n&&t.setSpatialReference(n),t}function Ke(e){return Le(e).getGeometry()}function qe(e){return Le(e,!0).getGeometry()}function Je(e){if(null==e)return null;let t=!1;if(e instanceof Y){const{wkt2:n}=e;e=e.toJSON(),e.wkt2??=n,t=!0}(e.latestVcsWkid||e.vcsWkid)&&(t||(e={...e}),delete e?.latestVcsWkid,delete e?.vcsWkid);const n=new $(e,{strict:!1});n.nextToken();const r=We.importSpatialReference(n);return 0===r.getCoordinateSystemType()?null:r}function Qe(e,t){if(e instanceof v&&(t=e.getSpatialReference(),e=e.getGeometry()),null==e||e.isEmpty())return null;let n;switch(e.getGeometryType()){case a.enumPoint:case a.enumMultiPoint:case a.enumPolyline:case a.enumPolygon:n=G(e)}if(n){const e=L(n);return e.spatialReference=Ze(t),null==e.spatialReference&&delete e.spatialReference,e}return Me.reset(),Ue.execute(0,e,t??null,Me),Me.getObject()}function Ze(e){return null==e||0===e.getCoordinateSystemType()?null:(Me.reset(),Ue.execute(0,null,e,Me),Me.getObject().spatialReference)}export{Xe as fromGeometries,Ye as fromGeometry,Ke as fromGeometryToGXGeometry,qe as fromGeometryToGXGeometryUsingImportOperator,Je as fromSpatialReference,Ge as getSpatialReference,Qe as toGeometry,Ze as toSpatialReference};
package/kernel.js CHANGED
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
2
- import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.129",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
2
+ import has from"./core/has.js";import{addQueryParameter as o}from"./core/urlUtils.js";export{buildDate,commitHash as revision}from"./support/revision.js";Symbol.dispose??=Symbol("Symbol.dispose"),Symbol.asyncDispose??=Symbol("Symbol.asyncDispose");const e="5.1";let s,r=e;function i(o){s=o}function t(e){const r=s?.findCredential(e);return r?.token?o(e,"token",r.token):e}r="5.1.0-next.130",has("host-webworker")||globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}}),has("host-webworker");export{t as addTokenParameter,r as fullVersion,s as id,i as setId,e as version};
@@ -21,7 +21,7 @@ import type AttributeTableTemplate from "../tables/AttributeTableTemplate.js";
21
21
  import type { ClonableMixin } from "../core/Clonable.js";
22
22
  import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
23
23
  import type { MultiOriginJSONSupportMixin } from "../core/MultiOriginJSONSupport.js";
24
- import type { EditOptions, Edits, EditsResult, FeatureEditResult } from "../editing/types.js";
24
+ import type { AddAttachmentOptions, AttachmentEditOptions, EditOptions, Edits, EditsResult, FeatureEditResult } from "../editing/types.js";
25
25
  import type { LayerEvents, LayerProperties } from "./Layer.js";
26
26
  import type { LayerSaveAsOptions, LayerSaveOptions, FeatureTitleOptions } from "./types.js";
27
27
  import type { APIKeyMixin, APIKeyMixinProperties } from "./mixins/APIKeyMixin.js";
@@ -1388,6 +1388,7 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1388
1388
  *
1389
1389
  * @param feature - Feature to which the attachment is to be added.
1390
1390
  * @param attachment - HTML form that contains a file upload field pointing to the file to be added as an attachment.
1391
+ * @param options - Additional options for the resulting feature service request.
1391
1392
  * @returns When resolved, a [FeatureEditResult](https://developers.arcgis.com/javascript/latest/references/core/editing/types/#FeatureEditResult)
1392
1393
  * object is returned. FeatureEditResult indicates whether or not the edit was successful. If successful, the `objectId` of the result is the Id of
1393
1394
  * the new attachment. If unsuccessful, it also includes an error `name` and error `message`.
@@ -1428,7 +1429,7 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1428
1429
  * });
1429
1430
  * });
1430
1431
  */
1431
- addAttachment(feature: Graphic, attachment: HTMLFormElement | FormData): Promise<FeatureEditResult>;
1432
+ addAttachment(feature: Graphic, attachment: HTMLFormElement | FormData, options?: AddAttachmentOptions): Promise<FeatureEditResult>;
1432
1433
  /**
1433
1434
  * Applies edits to features in a layer. New features can be created and existing features can be updated or deleted. Feature geometries and/or attributes may be modified.
1434
1435
  * Only applicable to layers in a [feature service](https://developers.arcgis.com/rest/services-reference/feature-service.htm)
@@ -1577,13 +1578,14 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
1577
1578
  *
1578
1579
  * @param feature - Feature containing attachments to be deleted.
1579
1580
  * @param attachmentIds - Ids of the attachments to be deleted.
1581
+ * @param options - Additional options for the resulting feature service request.
1580
1582
  * @returns When resolved, an array of [FeatureEditResults](https://developers.arcgis.com/javascript/latest/references/core/editing/types/#FeatureEditResult)
1581
1583
  * is returned. FeatureEditResult indicates whether or not the edit was successful. If successful, the `objectId` of the result is the Id of
1582
1584
  * the new attachment. If unsuccessful, it also includes an error `name` and error `message`.
1583
1585
  * @since 4.9
1584
1586
  * @see [capabilities.data.supportsAttachment](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities)
1585
1587
  */
1586
- deleteAttachments(feature: Graphic, attachmentIds: number[]): Promise<FeatureEditResult[]>;
1588
+ deleteAttachments(feature: Graphic, attachmentIds: number[], options?: AttachmentEditOptions): Promise<FeatureEditResult[]>;
1587
1589
  /**
1588
1590
  * Returns the title of a [feature](https://developers.arcgis.com/javascript/latest/references/core/Graphic/). The feature title is generated based on the following conditions for a `FeatureLayer`.
1589
1591
  * - If the feature has a popup title configured, then the popup title will be returned.
@@ -2269,12 +2271,13 @@ export abstract class __FeatureLayerSansType extends FeatureLayerSuperclass {
2269
2271
  * @param feature - The feature containing the attachment to be updated.
2270
2272
  * @param attachmentId - Id of the attachment to be updated.
2271
2273
  * @param attachment - HTML form that contains a file upload field pointing to the file to be added as an attachment.
2274
+ * @param options - Additional options for the resulting feature service request.
2272
2275
  * @returns When resolved, a [FeatureEditResult](https://developers.arcgis.com/javascript/latest/references/core/editing/types/#FeatureEditResult)
2273
2276
  * object is returned. FeatureEditResult indicates whether or not the edit was successful. If successful, the `objectId` of the result is the Id of
2274
2277
  * the new attachment. If unsuccessful, it also includes an error `name` and error `message`.
2275
2278
  * @since 4.9
2276
2279
  * @see [capabilities.data.supportsAttachment](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities)
2277
2280
  */
2278
- updateAttachment(feature: Graphic, attachmentId: number, attachment: HTMLFormElement | FormData): Promise<FeatureEditResult>;
2281
+ updateAttachment(feature: Graphic, attachmentId: number, attachment: HTMLFormElement | FormData, options?: AttachmentEditOptions): Promise<FeatureEditResult>;
2279
2282
  }
2280
2283
  declare const FeatureLayerSuperclass: typeof Layer & typeof ClonableMixin & typeof APIKeyMixin & typeof CustomParametersMixin & typeof MultiOriginJSONSupportMixin & typeof PortalLayer & typeof OperationalLayer & typeof RefreshableLayer & typeof ScaleRangeLayer & typeof TrackableLayer & typeof DataSeriesLayer & typeof TemporalLayer & typeof OrderedLayer & typeof BlendLayer & typeof DisplayFilteredLayer & typeof EditBusLayer & typeof PublishableLayer & typeof FeatureEffectLayer & typeof FeatureReductionLayer & typeof FeatureLayerBase
@@ -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 L from"../graphic/FeatureGraphicOrigin.js";import E 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{DataSeriesLayer as x}from"./mixins/DataSeriesLayer.js";import{DisplayFilteredLayer as q}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as M}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as A}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as R}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as Q}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as U}from"./mixins/OperationalLayer.js";import{OrderedLayer as V}from"./mixins/OrderedLayer.js";import{PortalLayer as N}from"./mixins/PortalLayer.js";import{PublishableLayer as G}from"./mixins/PublishableLayer.js";import{RefreshableLayer as J}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as B}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as W}from"./mixins/TemporalLayer.js";import{TrackableLayer as H}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as Z,parse as $,cleanTitle as k}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as z,id as K,labelsVisible as X,opacityDrawingInfo as Y,legendEnabled as ee,listMode as te,popupEnabled as re,screenSizePerspectiveEnabled as ie}from"./support/commonProperties.js";import{ensureLayerCredential as oe,computeEffectiveEditingEnabled as se,readGlobalIdField as ae,readObjectIdField as ne,createDefaultRenderer as le,addAttachment as pe,updateAttachment as ue,applyEdits as de,uploadAssets as ye,createQuery as ce,deleteAttachments as me,fetchRecomputedExtents as he,getFeatureType as fe,getFieldDomain as be,queryAttachments as ge,queryObjectIds as we,queryFeatureCount as ve,queryExtent as Fe,queryRelatedFeatures as Te,queryRelatedFeaturesCount as je,validateBinsQuery as Se,hasDataChanged as Ie,geometryTypeKebabDict as Le}from"./support/featureLayerUtils.js";import Ee from"./support/FeatureTemplate.js";import De from"./support/FeatureType.js";import _e from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as Ce,fieldConfigurationsFromPopupTemplate as Pe,fieldConfigurationsFromFields as Oe}from"./support/fieldConfigUtils.js";import{defineFieldProperties as xe}from"./support/fieldProperties.js";import{fixRendererFields as qe,fixTimeInfoFields as Me}from"./support/fieldUtils.js";import Ae from"./support/LabelClass.js";import{reader as Re}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Qe}from"./support/serviceCapabilitiesUtils.js";import Ue from"./support/SymbolLayerDrawing.js";import Ve from"./support/TimeInfo.js";import Ne from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Ge}from"./support/versionUtils.js";import{read as Je}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Be}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as We,rendererTypes as He}from"../renderers/support/typeUtils.js";import Ze from"../rest/layerSources/DynamicDataLayer.js";import $e from"../rest/support/FeatureSet.js";import ke from"../rest/support/Query.js";import{isNumber as ze}from"../support/guards.js";import{createPopupTemplate as Ke}from"../support/popupUtils.js";import{symbolTypes as Xe}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Ye}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as et}from"../webdoc/support/unsupportedErrors.js";import{reader as tt}from"../core/accessorSupport/decorators/reader.js";import{writer as rt}from"../core/accessorSupport/decorators/writer.js";const it="FeatureLayer";function ot(e){return e&&e instanceof a}const st=xe();function at(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let nt=class extends(R(Q(A(G(M(q(P(V(W(x(H(B(J(C(U(N(m(O(_(s(E))))))))))))))))))))){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 L(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(()=>oe(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 Ne({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 se(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=Ce(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Pe(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 ae(t.layerDefinition||t)}readObjectIdField(e,t){return ne(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){qe(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Je(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 le(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})),ot(t)&&this._resetMemorySource(t),ot(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=$e.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?Z(this.url,r):r;let e=r;if(!e&&this.url){const t=$(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),k(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=De.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 pe(this,e,t,it);return this.lastEditsEventDate=new Date,r}async updateAttachment(e,t,r){const i=await ue(this,e,t,r,it);return this.lastEditsEventDate=new Date,i}async applyEdits(e,t){return de(this,e,t)}async uploadAssets(e,t){return ye(this,e,t)}createFieldConfigurations(){return Oe(this)}createPopupTemplate(e){return Ke(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=ce(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 me(this,e,t,it);return this.lastEditsEventDate=new Date,r}async fetchRecomputedExtents(e){return he(this,e,it)}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 fe(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 be(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return ge(this,e,t,it)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(ke.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 we(this,e,t,it)}async queryFeatureCount(e,t){return ve(this,e,t,it)}async queryExtent(e,t){return Fe(this,e,t,it)}async queryRelatedFeatures(e,t){return Te(this,e,t,it)}async queryRelatedFeaturesCount(e,t){return je(this,e,t,it)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new n(it,"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(it,"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(it,"Layer source does not support queryAttributeBins capability");Se(e,i,it);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(it,"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(ze)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new n(it,"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(it,"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 et(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 et(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return et(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 et(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(it,`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||Ge(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(),qe(this.renderer,this.fieldsIndex),Me(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Be(this,{origin:"service"})}async hasDataChanged(){return Ie(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})],nt.prototype,"_titleCreator",null),r([F(z)],nt.prototype,"attributeTableTemplate",void 0),r([tt("service","capabilities")],nt.prototype,"readCapabilities",null),r([F({json:{origins:{"web-scene":{write:!1}},write:!0}})],nt.prototype,"charts",void 0),r([F({readOnly:!0})],nt.prototype,"createQueryVersion",null),r([F({json:{read:{source:"layerDefinition.copyrightText"}}})],nt.prototype,"copyright",void 0),r([F({json:{read:{source:"layerDefinition.displayField"}}})],nt.prototype,"displayField",void 0),r([F({types:Xe,readOnly:!0})],nt.prototype,"defaultSymbol",void 0),r([F({type:Ze})],nt.prototype,"dynamicDataSource",void 0),r([F({type:Boolean})],nt.prototype,"editingEnabled",null),r([tt(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],nt.prototype,"readEditingEnabled",null),r([tt("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],nt.prototype,"readEditingEnabledFromWebMap",null),r([rt(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],nt.prototype,"writeEditingEnabled",null),r([rt("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],nt.prototype,"writeEditingEnabledToWebMap",null),r([F({readOnly:!0})],nt.prototype,"effectiveEditingEnabled",null),r([F({clonable:!1,readOnly:!0})],nt.prototype,"featureTitleFields",null),r([F({type:[_e],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],nt.prototype,"fieldConfigurations",null),r([F({...st.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:at}}}}})],nt.prototype,"fields",void 0),r([F(st.fieldsIndex)],nt.prototype,"fieldsIndex",void 0),r([F({type:S,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],nt.prototype,"formTemplate",void 0),r([F({json:{read:{source:"layerDefinition.extent"}}})],nt.prototype,"fullExtent",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:at,writer(e,t,r){const i=e?Le.toJSON(e):null;i&&h(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Le.read}}})],nt.prototype,"geometryType",void 0),r([F({readOnly:!0,clonable:!1})],nt.prototype,"graphicOrigin",void 0),r([F({json:{read:{source:"layerDefinition.hasM"}}})],nt.prototype,"hasM",void 0),r([F({json:{read:{source:"layerDefinition.hasZ"}}})],nt.prototype,"hasZ",void 0),r([F(K)],nt.prototype,"id",void 0),r([F({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],nt.prototype,"infoFor3D",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],nt.prototype,"isTable",void 0),r([tt("service","isTable",["type","geometryType"]),tt("isTable",["layerDefinition.type","layerDefinition.geometryType"])],nt.prototype,"readIsTable",null),r([rt("web-map","isTable")],nt.prototype,"writeIsTable",null),r([F(X)],nt.prototype,"labelsVisible",void 0),r([F({type:[Ae],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Re,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Re,write:{layerContainerTypes:j}}})],nt.prototype,"labelingInfo",void 0),r([F({type:Ue,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],nt.prototype,"symbolLayerDrawing",void 0),r([F((()=>{const e=d(Y);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){h(r,Ye(e),t)}}},e})())],nt.prototype,"opacity",void 0),r([F(ee)],nt.prototype,"legendEnabled",void 0),r([F({type:["show","hide"],json:(()=>{const e=d(te.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],nt.prototype,"listMode",void 0),r([tt("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],nt.prototype,"readGlobalIdField",null),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:at}}}}})],nt.prototype,"objectIdField",void 0),r([tt("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],nt.prototype,"readObjectIdField",null),r([F({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:j}}})],nt.prototype,"operationalLayerType",void 0),r([F(st.outFields)],nt.prototype,"outFields",void 0),r([F({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],nt.prototype,"path",void 0),r([F(re)],nt.prototype,"popupEnabled",void 0),r([F({type:i,json:{name:"popupInfo",write:!0}})],nt.prototype,"popupTemplate",void 0),r([rt("popupTemplate")],nt.prototype,"writePopupTemplate",null),r([F({readOnly:!0})],nt.prototype,"defaultPopupTemplate",null),r([F({readOnly:!0})],nt.prototype,"reloading",void 0),r([F({types:He,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:We,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})}}})],nt.prototype,"renderer",null),r([tt("service","renderer",["drawingInfo.renderer","defaultSymbol"]),tt("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],nt.prototype,"readRenderer",null),r([F()],nt.prototype,"resourceInfo",void 0),r([F((()=>{const e=d(ie);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],nt.prototype,"screenSizePerspectiveEnabled",void 0),r([F({clonable:!1})],nt.prototype,"source",null),r([tt("portal-item","source",["featureSet"]),tt("web-map","source",["featureSet"])],nt.prototype,"readSource",null),r([F({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],nt.prototype,"spatialReference",void 0),r([F({type:Number})],nt.prototype,"subtypeCode",void 0),r([F({readOnly:!1})],nt.prototype,"subtypeField",void 0),r([F({readOnly:!1})],nt.prototype,"subtypes",void 0),r([F({type:[Ee]})],nt.prototype,"templates",void 0),r([tt("templates",["editFieldsInfo","creatorField","editorField","templates"])],nt.prototype,"readTemplates",null),r([F({type:Ve})],nt.prototype,"timeInfo",void 0),r([F()],nt.prototype,"title",void 0),r([tt("service","title",["name"]),tt("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],nt.prototype,"readTitle",null),r([tt("web-map","title",["layerDefinition.name","title"])],nt.prototype,"readTitleFromWebMap",null),r([F({type:String})],nt.prototype,"sublayerTitleMode",void 0),r([F({json:{read:!1}})],nt.prototype,"type",void 0),r([F({type:String})],nt.prototype,"typeIdField",void 0),r([tt("service","typeIdField"),tt("typeIdField",["layerDefinition.typeIdField"])],nt.prototype,"readTypeIdField",null),r([F({type:[De]})],nt.prototype,"types",void 0),r([tt("service","types",["types"]),tt("types",["layerDefinition.types"])],nt.prototype,"readTypes",null),r([F({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:j}}}}})],nt.prototype,"visible",void 0),r([tt("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],nt.prototype,"readVisible",null),nt=r([T("esri.layers.FeatureLayer")],nt);export{nt 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 L from"../graphic/FeatureGraphicOrigin.js";import E 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{DataSeriesLayer as x}from"./mixins/DataSeriesLayer.js";import{DisplayFilteredLayer as q}from"./mixins/DisplayFilteredLayer.js";import{EditBusLayer as M}from"./mixins/EditBusLayer.js";import{FeatureEffectLayer as A}from"./mixins/FeatureEffectLayer.js";import{FeatureLayerBase as R}from"./mixins/FeatureLayerBase.js";import{FeatureReductionLayer as Q}from"./mixins/FeatureReductionLayer.js";import{OperationalLayer as U}from"./mixins/OperationalLayer.js";import{OrderedLayer as V}from"./mixins/OrderedLayer.js";import{PortalLayer as N}from"./mixins/PortalLayer.js";import{PublishableLayer as G}from"./mixins/PublishableLayer.js";import{RefreshableLayer as J}from"./mixins/RefreshableLayer.js";import{ScaleRangeLayer as B}from"./mixins/ScaleRangeLayer.js";import{TemporalLayer as W}from"./mixins/TemporalLayer.js";import{TrackableLayer as H}from"./mixins/TrackableLayer.js";import{titleFromUrlAndName as Z,parse as $,cleanTitle as k}from"./support/arcgisLayerUrl.js";import{attributeTableTemplate as z,id as K,labelsVisible as X,opacityDrawingInfo as Y,legendEnabled as ee,listMode as te,popupEnabled as re,screenSizePerspectiveEnabled as ie}from"./support/commonProperties.js";import{ensureLayerCredential as oe,computeEffectiveEditingEnabled as se,readGlobalIdField as ae,readObjectIdField as ne,createDefaultRenderer as le,addAttachment as pe,updateAttachment as ue,applyEdits as de,uploadAssets as ye,createQuery as ce,deleteAttachments as me,fetchRecomputedExtents as he,getFeatureType as fe,getFieldDomain as be,queryAttachments as ge,queryObjectIds as we,queryFeatureCount as ve,queryExtent as Fe,queryRelatedFeatures as Te,queryRelatedFeaturesCount as je,validateBinsQuery as Se,hasDataChanged as Ie,geometryTypeKebabDict as Le}from"./support/featureLayerUtils.js";import Ee from"./support/FeatureTemplate.js";import De from"./support/FeatureType.js";import _e from"./support/FieldConfiguration.js";import{popupTemplateWithFieldConfigurations as Ce,fieldConfigurationsFromPopupTemplate as Pe,fieldConfigurationsFromFields as Oe}from"./support/fieldConfigUtils.js";import{defineFieldProperties as xe}from"./support/fieldProperties.js";import{fixRendererFields as qe,fixTimeInfoFields as Me}from"./support/fieldUtils.js";import Ae from"./support/LabelClass.js";import{reader as Re}from"./support/labelingInfo.js";import{getFeatureLayerCapabilities as Qe}from"./support/serviceCapabilitiesUtils.js";import Ue from"./support/SymbolLayerDrawing.js";import Ve from"./support/TimeInfo.js";import Ne from"./support/TitleCreator.js";import{serviceSupportsSpatialReference as Ge}from"./support/versionUtils.js";import{read as Je}from"../renderers/support/jsonUtils.js";import{loadStyleRenderer as Be}from"../renderers/support/styleUtils.js";import{webSceneRendererTypes as We,rendererTypes as He}from"../renderers/support/typeUtils.js";import Ze from"../rest/layerSources/DynamicDataLayer.js";import $e from"../rest/support/FeatureSet.js";import ke from"../rest/support/Query.js";import{isNumber as ze}from"../support/guards.js";import{createPopupTemplate as Ke}from"../support/popupUtils.js";import{symbolTypes as Xe}from"../symbols/support/typeUtils.js";import{opacityToTransparency as Ye}from"../webdoc/support/opacityUtils.js";import{addLayerUnsupportedError as et}from"../webdoc/support/unsupportedErrors.js";import{reader as tt}from"../core/accessorSupport/decorators/reader.js";import{writer as rt}from"../core/accessorSupport/decorators/writer.js";const it="FeatureLayer";function ot(e){return e&&e instanceof a}const st=xe();function at(e,t,r){const i=!!r?.writeLayerSchema;return{enabled:i,ignoreOrigin:i}}let nt=class extends(R(Q(A(G(M(q(P(V(W(x(H(B(J(C(U(N(m(O(_(s(E))))))))))))))))))))){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 L(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(()=>oe(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 Ne({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 se(this)}get featureTitleFields(){return[...this._titleCreator.requiredFields]}set fieldConfigurations(e){if(this._hasMemorySource())return;if(this._override("fieldConfigurations",e),!this.loaded)return;const t=Ce(this,e);t&&this._set("popupTemplate",t)}get fieldConfigurations(){if(!this._hasMemorySource())return this._isOverridden("fieldConfigurations")?this._get("fieldConfigurations"):Pe(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 ae(t.layerDefinition||t)}readObjectIdField(e,t){return ne(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){qe(e,this.fieldsIndex),this._set("renderer",e)}readRenderer(e,t,r){t=t.layerDefinition||t;const i=t.drawingInfo?.renderer;if(i){const e=Je(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 le(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})),ot(t)&&this._resetMemorySource(t),ot(e)&&this._initMemorySource(e),this._set("source",e))}readSource(e,t){const r=$e.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?Z(this.url,r):r;let e=r;if(!e&&this.url){const t=$(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),k(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=De.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,r){const i=await pe(this,e,t,it,r);return this.lastEditsEventDate=new Date,i}async updateAttachment(e,t,r,i){const o=await ue(this,e,t,r,it,i);return this.lastEditsEventDate=new Date,o}async applyEdits(e,t){return de(this,e,t)}async uploadAssets(e,t){return ye(this,e,t)}createFieldConfigurations(){return Oe(this)}createPopupTemplate(e){return Ke(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=ce(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,r){const i=await me(this,e,t,it,r);return this.lastEditsEventDate=new Date,i}async fetchRecomputedExtents(e){return he(this,e,it)}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 fe(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 be(this,e,t,this.getField(e)?.domain??null)}async queryAttachments(e,t){return ge(this,e,t,it)}async queryFeatures(e,t){const r=await this.load(),i=await r.source.queryFeatures(ke.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 we(this,e,t,it)}async queryFeatureCount(e,t){return ve(this,e,t,it)}async queryExtent(e,t){return Fe(this,e,t,it)}async queryRelatedFeatures(e,t){return Te(this,e,t,it)}async queryRelatedFeaturesCount(e,t){return je(this,e,t,it)}async queryPivot(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryPivot||!i?.operations?.supportsQueryPivot)throw new n(it,"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(it,"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(it,"Layer source does not support queryAttributeBins capability");Se(e,i,it);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(it,"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(ze)}async queryTopFeaturesExtent(e,t){const{source:r,capabilities:i}=await this.load();if(!r.queryTopExtents||!i?.query?.supportsTopFeaturesQuery)throw new n(it,"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(it,"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 et(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 et(t,this,"a table source can only be written to tables"),null;if(this._hasMemorySource())return et(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 et(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(it,`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||Ge(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(),qe(this.renderer,this.fieldsIndex),Me(this.timeInfo,this.fieldsIndex),this._hasMemorySource()&&"mesh"===this.geometryType&&(this.capabilities.query.supportsReturnMesh=!0),Be(this,{origin:"service"})}async hasDataChanged(){return Ie(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})],nt.prototype,"_titleCreator",null),r([F(z)],nt.prototype,"attributeTableTemplate",void 0),r([tt("service","capabilities")],nt.prototype,"readCapabilities",null),r([F({json:{origins:{"web-scene":{write:!1}},write:!0}})],nt.prototype,"charts",void 0),r([F({readOnly:!0})],nt.prototype,"createQueryVersion",null),r([F({json:{read:{source:"layerDefinition.copyrightText"}}})],nt.prototype,"copyright",void 0),r([F({json:{read:{source:"layerDefinition.displayField"}}})],nt.prototype,"displayField",void 0),r([F({types:Xe,readOnly:!0})],nt.prototype,"defaultSymbol",void 0),r([F({type:Ze})],nt.prototype,"dynamicDataSource",void 0),r([F({type:Boolean})],nt.prototype,"editingEnabled",null),r([tt(["portal-item","web-scene"],"editingEnabled",["layerDefinition.capabilities"])],nt.prototype,"readEditingEnabled",null),r([tt("web-map","editingEnabled",["capabilities","layerDefinition.capabilities"])],nt.prototype,"readEditingEnabledFromWebMap",null),r([rt(["portal-item","web-scene"],"editingEnabled",{"layerDefinition.capabilities":{type:String}})],nt.prototype,"writeEditingEnabled",null),r([rt("web-map","editingEnabled",{capabilities:{type:String},"layerDefinition.capabilities":{type:String}})],nt.prototype,"writeEditingEnabledToWebMap",null),r([F({readOnly:!0})],nt.prototype,"effectiveEditingEnabled",null),r([F({clonable:!1,readOnly:!0})],nt.prototype,"featureTitleFields",null),r([F({type:[_e],json:{name:"layerDefinition.fieldConfigurations",write:{overridePolicy(e,t,r){return{enabled:!r?.writeLayerSchema,ignoreOrigin:1===this.originIdOf(t)}}}}})],nt.prototype,"fieldConfigurations",null),r([F({...st.fields,json:{read:{source:"layerDefinition.fields"},origins:{service:{name:"fields"},"web-map":{write:{target:"layerDefinition.fields",overridePolicy:at}}}}})],nt.prototype,"fields",void 0),r([F(st.fieldsIndex)],nt.prototype,"fieldsIndex",void 0),r([F({type:S,json:{name:"formInfo",write:!0,origins:{"web-scene":{read:!1,write:!1}}}})],nt.prototype,"formTemplate",void 0),r([F({json:{read:{source:"layerDefinition.extent"}}})],nt.prototype,"fullExtent",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.geometryType",overridePolicy:at,writer(e,t,r){const i=e?Le.toJSON(e):null;i&&h(r,i,t)}}}},read:{source:"layerDefinition.geometryType",reader:Le.read}}})],nt.prototype,"geometryType",void 0),r([F({readOnly:!0,clonable:!1})],nt.prototype,"graphicOrigin",void 0),r([F({json:{read:{source:"layerDefinition.hasM"}}})],nt.prototype,"hasM",void 0),r([F({json:{read:{source:"layerDefinition.hasZ"}}})],nt.prototype,"hasZ",void 0),r([F(K)],nt.prototype,"id",void 0),r([F({readOnly:!0,json:{origins:{service:{read:!0}},read:!1}})],nt.prototype,"infoFor3D",void 0),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.type"}}}}})],nt.prototype,"isTable",void 0),r([tt("service","isTable",["type","geometryType"]),tt("isTable",["layerDefinition.type","layerDefinition.geometryType"])],nt.prototype,"readIsTable",null),r([rt("web-map","isTable")],nt.prototype,"writeIsTable",null),r([F(X)],nt.prototype,"labelsVisible",void 0),r([F({type:[Ae],json:{origins:{service:{name:"drawingInfo.labelingInfo",read:Re,write:!1}},name:"layerDefinition.drawingInfo.labelingInfo",read:Re,write:{layerContainerTypes:j}}})],nt.prototype,"labelingInfo",void 0),r([F({type:Ue,json:{name:"layerDefinition.drawingInfo.symbolLayerDrawing",write:!0,origins:{"web-scene":{write:!1}}}})],nt.prototype,"symbolLayerDrawing",void 0),r([F((()=>{const e=d(Y);return e.json.origins["portal-item"]={write:{target:"layerDefinition.drawingInfo.transparency",writer(e,t,r){h(r,Ye(e),t)}}},e})())],nt.prototype,"opacity",void 0),r([F(ee)],nt.prototype,"legendEnabled",void 0),r([F({type:["show","hide"],json:(()=>{const e=d(te.json);return e.origins["portal-item"]={read:!1,write:!1},e})()})],nt.prototype,"listMode",void 0),r([tt("globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],nt.prototype,"readGlobalIdField",null),r([F({json:{origins:{"web-map":{write:{target:"layerDefinition.objectIdField",overridePolicy:at}}}}})],nt.prototype,"objectIdField",void 0),r([tt("objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],nt.prototype,"readObjectIdField",null),r([F({type:["ArcGISFeatureLayer"],json:{write:{target:"layerType",ignoreOrigin:!0,layerContainerTypes:j}}})],nt.prototype,"operationalLayerType",void 0),r([F(st.outFields)],nt.prototype,"outFields",void 0),r([F({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],nt.prototype,"path",void 0),r([F(re)],nt.prototype,"popupEnabled",void 0),r([F({type:i,json:{name:"popupInfo",write:!0}})],nt.prototype,"popupTemplate",void 0),r([rt("popupTemplate")],nt.prototype,"writePopupTemplate",null),r([F({readOnly:!0})],nt.prototype,"defaultPopupTemplate",null),r([F({readOnly:!0})],nt.prototype,"reloading",void 0),r([F({types:He,json:{origins:{service:{write:{target:"drawingInfo.renderer",enabled:!1}},"web-scene":{types:We,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})}}})],nt.prototype,"renderer",null),r([tt("service","renderer",["drawingInfo.renderer","defaultSymbol"]),tt("renderer",["layerDefinition.drawingInfo.renderer","layerDefinition.defaultSymbol"])],nt.prototype,"readRenderer",null),r([F()],nt.prototype,"resourceInfo",void 0),r([F((()=>{const e=d(ie);return e.json.origins["portal-item"]={read:!1,write:!1},e})())],nt.prototype,"screenSizePerspectiveEnabled",void 0),r([F({clonable:!1})],nt.prototype,"source",null),r([tt("portal-item","source",["featureSet"]),tt("web-map","source",["featureSet"])],nt.prototype,"readSource",null),r([F({json:{read:{source:"layerDefinition.extent.spatialReference"}}})],nt.prototype,"spatialReference",void 0),r([F({type:Number})],nt.prototype,"subtypeCode",void 0),r([F({readOnly:!1})],nt.prototype,"subtypeField",void 0),r([F({readOnly:!1})],nt.prototype,"subtypes",void 0),r([F({type:[Ee]})],nt.prototype,"templates",void 0),r([tt("templates",["editFieldsInfo","creatorField","editorField","templates"])],nt.prototype,"readTemplates",null),r([F({type:Ve})],nt.prototype,"timeInfo",void 0),r([F()],nt.prototype,"title",void 0),r([tt("service","title",["name"]),tt("portal-item","title",["layerDefinition.title","layerDefinition.name","title"])],nt.prototype,"readTitle",null),r([tt("web-map","title",["layerDefinition.name","title"])],nt.prototype,"readTitleFromWebMap",null),r([F({type:String})],nt.prototype,"sublayerTitleMode",void 0),r([F({json:{read:!1}})],nt.prototype,"type",void 0),r([F({type:String})],nt.prototype,"typeIdField",void 0),r([tt("service","typeIdField"),tt("typeIdField",["layerDefinition.typeIdField"])],nt.prototype,"readTypeIdField",null),r([F({type:[De]})],nt.prototype,"types",void 0),r([tt("service","types",["types"]),tt("types",["layerDefinition.types"])],nt.prototype,"readTypes",null),r([F({type:Boolean,json:{origins:{"portal-item":{write:{target:"layerDefinition.defaultVisibility",layerContainerTypes:j}}}}})],nt.prototype,"visible",void 0),r([tt("portal-item","visible",["visibility","layerDefinition.defaultVisibility"])],nt.prototype,"readVisible",null),nt=r([T("esri.layers.FeatureLayer")],nt);export{nt as default};
@@ -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=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&&this._isUpdating(t)}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._cameraElevationDirty||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&&this._isUpdating(t)}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.screenViewport[2],e.screenViewport[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._cameraElevationDirty||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 V=I;export{V as default};