@arcgis/core 4.28.0-next.20230719 → 4.28.0-next.20230721

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 (334) hide show
  1. package/Color.js +1 -1
  2. package/analysis/AreaMeasurementAnalysis.js +1 -1
  3. package/arcade/arcadeCompiler.js +1 -1
  4. package/arcade/featureSetUtils.js +1 -1
  5. package/arcade/featureset/actions/Top.js +1 -1
  6. package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
  7. package/arcade/featureset/support/FeatureSet.js +1 -1
  8. package/arcade/featureset/support/FeatureSetIterator.js +1 -1
  9. package/arcade/functions/convertdirection.js +1 -1
  10. package/arcade/functions/featuresetbase.js +1 -1
  11. package/arcade/functions/geomasync.js +1 -1
  12. package/arcade/functions/geomsync.js +1 -1
  13. package/arcade/lib/comment-handler.js +1 -1
  14. package/arcade/lib/parser.js +1 -1
  15. package/arcade/lib/scanner.js +1 -1
  16. package/assets/esri/core/workers/RemoteClient.js +1 -1
  17. package/assets/esri/core/workers/chunks/{75c28da8d0b02d612d69.js → 040b3fc9c9c0736dd893.js} +1 -1
  18. package/assets/esri/core/workers/chunks/0652f6a8d5221e978033.js +1 -0
  19. package/assets/esri/core/workers/chunks/{e579ca7d4c1387e17305.js → 092fda62b6f62c2e4869.js} +2 -2
  20. package/assets/esri/core/workers/chunks/{57e0ad037188bd2997e7.js → 0af18a96cbd4e2d35436.js} +1 -1
  21. package/assets/esri/core/workers/chunks/0b5eeec0f66c87a46a0c.js +1 -0
  22. package/assets/esri/core/workers/chunks/{68e568b67b6fb34393db.js → 0cad2b991d0d0fd07846.js} +1 -1
  23. package/assets/esri/core/workers/chunks/0dccbc6c2559fdc0c2ad.js +1 -0
  24. package/assets/esri/core/workers/chunks/256a82f6f6e1405fbcc6.js +1 -0
  25. package/assets/esri/core/workers/chunks/{bb9213899049e1db90da.js → 2c57c9bd71637c5bed8a.js} +1 -1
  26. package/assets/esri/core/workers/chunks/2cdbabcbfe32286ec78d.js +1 -0
  27. package/assets/esri/core/workers/chunks/{2b1c83453a862e01954b.js → 2d9d80b2d0042a9c09fb.js} +1 -1
  28. package/assets/esri/core/workers/chunks/2f9aec2238ff6cb99e09.js +1 -0
  29. package/assets/esri/core/workers/chunks/{55705b1bbac91d7db0e7.js → 32d940b2c891bf6ff9a2.js} +1 -1
  30. package/assets/esri/core/workers/chunks/3a0349c79551a03c2d8e.js +1 -0
  31. package/assets/esri/core/workers/chunks/{7dbd3e6406fb3e3a1a8f.js → 3cf748c025f3936c1cb2.js} +1 -1
  32. package/assets/esri/core/workers/chunks/4481d1103363434f16da.js +1 -0
  33. package/assets/esri/core/workers/chunks/58e11ca7c6e27e0ece7e.js +1 -0
  34. package/assets/esri/core/workers/chunks/5ae325e6a795c72eac6c.js +1 -0
  35. package/assets/esri/core/workers/chunks/5e4dde2886a1027b4b96.js +1 -0
  36. package/assets/esri/core/workers/chunks/{357e0381b6d767585576.js → 675e16d99758e67e5f51.js} +1 -1
  37. package/assets/esri/core/workers/chunks/726bb661b9e6998572e7.js +1 -0
  38. package/assets/esri/core/workers/chunks/730eb7e5f617fdab4f10.js +1 -0
  39. package/assets/esri/core/workers/chunks/{5a2e6bed9431cf4f42b1.js → 740dc67038f554431f1b.js} +1 -1
  40. package/assets/esri/core/workers/chunks/7cab61c9e09580520990.js +1 -0
  41. package/assets/esri/core/workers/chunks/{09178454bda15bb7929a.js → 7fbdfd1527582c52f9b6.js} +1 -1
  42. package/assets/esri/core/workers/chunks/{26546aa98a338051df66.js → 807742f38885fa90b4fe.js} +1 -1
  43. package/assets/esri/core/workers/chunks/82dfbc175b52c7a10475.js +1 -0
  44. package/assets/esri/core/workers/chunks/870a05451e074b58f19a.js +1 -0
  45. package/assets/esri/core/workers/chunks/88038ad401e5ec02f4d3.js +1 -0
  46. package/assets/esri/core/workers/chunks/88d63d1e56732d148f67.js +1 -0
  47. package/assets/esri/core/workers/chunks/8b72cd9340e8a44358ac.js +1 -0
  48. package/assets/esri/core/workers/chunks/8c5a8c1dfb086069bb06.js +1 -0
  49. package/assets/esri/core/workers/chunks/99a5a434e0bad48c7a5c.js +1 -0
  50. package/assets/esri/core/workers/chunks/9a5916c66dad91d01d5b.js +1 -0
  51. package/assets/esri/core/workers/chunks/9c133fd8c1fbd0295b86.js +1 -0
  52. package/assets/esri/core/workers/chunks/9cddb504079d396779ea.js +1 -0
  53. package/assets/esri/core/workers/chunks/a3a1d4f32e518e97d071.js +1 -0
  54. package/assets/esri/core/workers/chunks/{9548aa449fe3a300c015.js → a4fa40dc77e116c954ac.js} +1 -1
  55. package/assets/esri/core/workers/chunks/a54ec9929a7db879d5db.js +1 -0
  56. package/assets/esri/core/workers/chunks/afc5b84693757fda2bc8.js +1 -0
  57. package/assets/esri/core/workers/chunks/{591b5c277cfd3a4101a4.js → b08f2a4aa94087c6c367.js} +1 -1
  58. package/assets/esri/core/workers/chunks/c0e12f6a7bb2360e4c21.js +1 -0
  59. package/assets/esri/core/workers/chunks/c8e656cd470a17f538e9.js +1 -0
  60. package/assets/esri/core/workers/chunks/d0e203405f95e14b1399.js +1 -0
  61. package/assets/esri/core/workers/chunks/d61506497275bafba384.js +1 -0
  62. package/assets/esri/core/workers/chunks/{ec72f492f24e67e008ae.js → d8e58dc14d3495f0830c.js} +1 -1
  63. package/assets/esri/core/workers/chunks/db9a303ee0468d018def.js +1 -0
  64. package/assets/esri/core/workers/chunks/ddc393a012588f799f42.js +1 -0
  65. package/assets/esri/core/workers/chunks/de3baa85b1639c25458d.js +1 -0
  66. package/assets/esri/core/workers/chunks/e66cea26064ba8353af0.js +1 -0
  67. package/assets/esri/core/workers/chunks/ea478f2f4a19463e13fd.js +1 -0
  68. package/assets/esri/core/workers/chunks/eba197e45507f56f3ed0.js +1 -0
  69. package/assets/esri/core/workers/chunks/ebd006fcd568a7731115.js +1 -0
  70. package/assets/esri/core/workers/chunks/ef9a9a7d66d818720e20.js +1 -0
  71. package/assets/esri/core/workers/chunks/f3b458f55236566c940b.js +1 -0
  72. package/assets/esri/core/workers/chunks/fd0a91b9e0216cc269c3.js +1 -0
  73. package/assets/esri/core/workers/chunks/{a4fe220a912b1f428e49.js → fdd6403a8390d629392b.js} +1 -1
  74. package/assets/esri/themes/base/widgets/_Directions.scss +13 -7
  75. package/assets/esri/themes/base/widgets/_OrientedImageryViewer.scss +108 -4
  76. package/assets/esri/themes/dark/main.css +1 -1
  77. package/assets/esri/themes/light/main.css +1 -1
  78. package/assets/esri/themes/light/view.css +1 -1
  79. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer.json +1 -1
  80. package/assets/esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer_en.json +1 -1
  81. package/chunks/ComponentShader.glsl.js +1 -1
  82. package/chunks/LineSeries.js +1 -1
  83. package/chunks/Theme.js +1 -1
  84. package/chunks/array.js +1 -1
  85. package/chunks/chartUtilsAm5.js +1 -1
  86. package/core/Collection.js +1 -1
  87. package/core/accessorSupport/decorators/subclass.js +1 -1
  88. package/core/accessorSupport/ensureType.js +1 -1
  89. package/core/accessorSupport/get.js +1 -1
  90. package/core/accessorSupport/tracking.js +1 -1
  91. package/core/accessorSupport/utils.js +1 -1
  92. package/core/libs/rbush/PooledRBush.js +1 -1
  93. package/core/urlUtils.js +1 -1
  94. package/geometry/GeometryCursor.js +1 -1
  95. package/geometry/support/TileClipper.js +1 -1
  96. package/geometry/support/geodesicUtils.js +1 -1
  97. package/interfaces.d.ts +9 -3
  98. package/layers/BuildingSceneLayer.js +1 -1
  99. package/layers/IntegratedMeshLayer.js +1 -1
  100. package/layers/LinkChartLayer.js +1 -1
  101. package/layers/PointCloudLayer.js +1 -1
  102. package/layers/SceneLayer.js +1 -1
  103. package/layers/VectorTileLayer.js +1 -1
  104. package/layers/VoxelLayer.js +1 -1
  105. package/layers/VoxelWasmPerSceneView.js +1 -1
  106. package/layers/WCSLayer.js +1 -1
  107. package/layers/effects/EffectView.js +1 -1
  108. package/layers/graphics/sources/geojson/geojson.js +1 -1
  109. package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
  110. package/layers/mixins/ArcGISCachedService.js +1 -1
  111. package/layers/orientedImagery/core/ExposurePoint.js +1 -1
  112. package/layers/orientedImagery/core/bestImageUtils.js +1 -1
  113. package/layers/orientedImagery/queries.js +1 -1
  114. package/layers/save/featureLayerUtils.js +1 -1
  115. package/layers/support/ElevationQuery.js +1 -1
  116. package/layers/support/MultidimensionalSubset.js +1 -1
  117. package/layers/support/Sublayer.js +1 -1
  118. package/layers/support/TileInfo.js +1 -1
  119. package/layers/support/TileInfoTilemapCache.js +1 -1
  120. package/layers/support/TilemapCache.js +1 -1
  121. package/layers/support/rasterDatasets/multidimensionalUtils.js +1 -1
  122. package/layers/support/rasterDatasets/pamParser.js +1 -1
  123. package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
  124. package/layers/support/rasterFormats/Raw.js +1 -1
  125. package/layers/support/rasterFormats/TiffDecoder.js +1 -1
  126. package/layers/support/rasterFunctions/ExtractBandFunction.js +1 -1
  127. package/layers/support/rasterFunctions/colormaps.js +1 -1
  128. package/layers/support/rasterFunctions/pixelUtils.js +1 -1
  129. package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
  130. package/layers/video/VideoController.js +1 -1
  131. package/layers/voxel/VoxelDimension.js +1 -1
  132. package/layers/voxel/VoxelTransferFunctionStyle.js +1 -1
  133. package/layers/voxel/VoxelVolume.js +1 -1
  134. package/package.json +1 -1
  135. package/renderers/support/RasterSymbolizer.js +1 -1
  136. package/renderers/support/colorRampUtils.js +1 -1
  137. package/renderers/visualVariables/support/visualVariableUtils.js +1 -1
  138. package/rest/query/operations/pbfDehydratedFeatureSet.js +1 -1
  139. package/rest/query/operations/pbfJSONFeatureSet.js +1 -1
  140. package/rest/support/generateRendererUtils.js +1 -1
  141. package/smartMapping/raster/renderers/classBreaks.js +1 -1
  142. package/smartMapping/renderers/color.js +1 -1
  143. package/smartMapping/renderers/support/utils.js +1 -1
  144. package/smartMapping/renderers/type.js +1 -1
  145. package/smartMapping/renderers/univariateColorSize.js +1 -1
  146. package/smartMapping/support/adapters/support/utils.js +1 -1
  147. package/statistics/utils.js +1 -1
  148. package/support/elevationInfoUtils.js +1 -1
  149. package/support/revision.js +1 -1
  150. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  151. package/symbols/cim/GeometryWalker.js +1 -1
  152. package/symbols/cim/cimAnalyzer.js +1 -1
  153. package/symbols/cim/effects/EffectArrow.js +1 -1
  154. package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
  155. package/symbols/support/symbolUtils.js +1 -1
  156. package/views/2d/constraints/ZoomConstraint.js +1 -1
  157. package/views/2d/engine/flow/dataUtils.js +1 -1
  158. package/views/2d/engine/flow/utils.js +1 -1
  159. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  160. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  161. package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
  162. package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
  163. package/views/2d/engine/vectorTiles/tileInfoUtils.js +1 -1
  164. package/views/2d/engine/webgl/TurboLine.js +1 -1
  165. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  166. package/views/2d/engine/webgl/mesh/templates/shapingUtils.js +1 -1
  167. package/views/2d/interactive/editingTools/ControlPointsTransformTool.js +1 -1
  168. package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
  169. package/views/2d/layers/BaseLayerView2D.js +1 -1
  170. package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
  171. package/views/2d/layers/BitmapTileLayerView2D.js +1 -1
  172. package/views/2d/layers/MediaLayerView2D.js +1 -1
  173. package/views/2d/layers/TileLayerView2D.js +1 -1
  174. package/views/2d/layers/VectorTileLayerView2D.js +1 -1
  175. package/views/2d/layers/WMTSLayerView2D.js +1 -1
  176. package/views/2d/layers/features/support/rendererUtils.js +1 -1
  177. package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
  178. package/views/2d/layers/support/vectorTileDebugUtils.js +5 -0
  179. package/views/2d/tiling/TileInfoView.js +1 -1
  180. package/views/2d/tiling/TileInfoViewPOT.js +1 -1
  181. package/views/2d/tiling/TileQueue.js +1 -1
  182. package/views/2d/tiling.js +1 -1
  183. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  184. package/views/3d/environment/ChapmanAtmosphere.js +1 -1
  185. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  186. package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
  187. package/views/3d/interactive/editingTools/moveGraphic/GraphicMoveTool.js +1 -1
  188. package/views/3d/interactive/visualElements/LaserlineVisualElement.js +1 -1
  189. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  190. package/views/3d/layers/TiledLayerView3D.js +1 -1
  191. package/views/3d/layers/VectorTileLayerView3D.js +1 -1
  192. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  193. package/views/3d/layers/graphics/Labeler.js +1 -1
  194. package/views/3d/layers/i3s/PointRenderer.js +1 -1
  195. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  196. package/views/3d/layers/support/featureReference.js +1 -1
  197. package/views/3d/support/LaserLineRenderer.js +1 -1
  198. package/views/3d/terrain/Overlay.js +1 -1
  199. package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
  200. package/views/3d/terrain/OverlayManager.js +1 -1
  201. package/views/3d/terrain/OverlayRenderTarget.js +1 -1
  202. package/views/3d/terrain/OverlayRenderer.js +1 -1
  203. package/views/3d/terrain/TerrainRenderer.js +1 -1
  204. package/views/3d/terrain/TerrainSurface.js +1 -1
  205. package/views/3d/terrain/TileCompositor.js +1 -1
  206. package/views/3d/terrain/TileRenderer.js +1 -1
  207. package/views/3d/terrain/TilingScheme.js +1 -1
  208. package/views/3d/webgl-engine/collections/Component/ComponentData.js +1 -1
  209. package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
  210. package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +1 -1
  211. package/views/3d/webgl-engine/core/shaderModules/interfaces.js +1 -1
  212. package/views/3d/webgl-engine/effects/RenderPlugin.js +5 -0
  213. package/views/3d/webgl-engine/effects/RenderPluginManager.js +5 -0
  214. package/views/3d/webgl-engine/effects/ScreenSpaceGeometry.js +5 -0
  215. package/views/3d/webgl-engine/effects/SmaaRenderPass.js +5 -0
  216. package/views/3d/webgl-engine/lib/CompositingHelper.js +1 -1
  217. package/views/3d/webgl-engine/lib/GLMaterials.js +1 -1
  218. package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
  219. package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
  220. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  221. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  222. package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
  223. package/views/3d/webgl-engine/lib/SSAOHelper.js +1 -1
  224. package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
  225. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  226. package/views/3d/webgl-engine/lib/lodRendering/LodComponentData.js +1 -1
  227. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  228. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  229. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  230. package/views/3d/webgl-engine/parts/requireUtils.js +1 -1
  231. package/views/3d/webgl-engine/statistics/RendererPerformanceInfo.js +1 -1
  232. package/views/LayerViewManager.js +1 -1
  233. package/views/MapView.js +1 -1
  234. package/views/SceneView.js +1 -1
  235. package/views/animation/pointToPoint/Path.js +1 -1
  236. package/views/draw/DrawOperation.js +1 -1
  237. package/views/draw/support/Reshape.js +1 -1
  238. package/views/draw/support/createUtils.js +1 -1
  239. package/views/interactive/SegmentLabels.js +1 -1
  240. package/views/interactive/editGeometry/EditGeometry.js +1 -1
  241. package/views/interactive/editGeometry/EditGeometryOperations.js +1 -1
  242. package/views/interactive/editGeometry/operations/UndoGroup.js +1 -1
  243. package/views/layers/GroupLayerView.js +1 -1
  244. package/views/layers/ImageryTileLayerView.js +1 -1
  245. package/views/webgl/ProgramCache.js +1 -1
  246. package/webscene/spec-certification/api.js +1 -1
  247. package/webscene/spec-certification/spec.js +1 -1
  248. package/webscene/spec-certification/utils.js +1 -1
  249. package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.js +1 -1
  250. package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
  251. package/widgets/BuildingExplorer/support/validation.js +1 -1
  252. package/widgets/Directions/support/resources.js +1 -1
  253. package/widgets/Directions.js +1 -1
  254. package/widgets/Editor/EditorViewModel.js +1 -1
  255. package/widgets/Editor/UpdateRecordWorkflow.js +1 -1
  256. package/widgets/Editor/Workflow.js +1 -1
  257. package/widgets/Editor.js +1 -1
  258. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  259. package/widgets/FeatureForm/FieldInput.js +1 -1
  260. package/widgets/FeatureForm/FormExpressionsManager.js +1 -1
  261. package/widgets/FeatureForm.js +1 -1
  262. package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
  263. package/widgets/FeatureTemplates.js +1 -1
  264. package/widgets/Features.js +1 -1
  265. package/widgets/Histogram/HistogramViewModel.js +1 -1
  266. package/widgets/HistogramRangeSlider/HistogramRangeSliderViewModel.js +1 -1
  267. package/widgets/Legend/styles/Card.js +1 -1
  268. package/widgets/Legend/styles/support/univariateUtils.js +1 -1
  269. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  270. package/widgets/Legend/support/colorRampUtils.js +1 -1
  271. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  272. package/widgets/Legend/support/utils.js +1 -1
  273. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  274. package/widgets/OrientedImageryViewer/arcUtils.js +5 -0
  275. package/widgets/OrientedImageryViewer/constants.js +5 -0
  276. package/widgets/OrientedImageryViewer/utils.js +5 -0
  277. package/widgets/OrientedImageryViewer.js +1 -1
  278. package/widgets/Popup/PopupViewModel.js +1 -1
  279. package/widgets/Popup.js +1 -1
  280. package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
  281. package/widgets/ScaleRangeSlider/ScaleRanges.js +1 -1
  282. package/widgets/ValuePicker/ValuePickerSlider.js +1 -1
  283. package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
  284. package/widgets/smartMapping/ColorSizeSlider.js +1 -1
  285. package/widgets/smartMapping/HeatmapSlider/HeatmapSliderViewModel.js +1 -1
  286. package/widgets/smartMapping/SizeSlider.js +1 -1
  287. package/widgets/smartMapping/SmartMappingPrimaryHandleSliderViewModel.js +1 -1
  288. package/widgets/smartMapping/SmartMappingSliderViewModel.js +1 -1
  289. package/widgets/support/ColorPicker.js +1 -1
  290. package/assets/esri/core/workers/chunks/07bb40162d97d098bc19.js +0 -1
  291. package/assets/esri/core/workers/chunks/0a18317566c1fcb68422.js +0 -1
  292. package/assets/esri/core/workers/chunks/0de65e03db8c611af9fb.js +0 -1
  293. package/assets/esri/core/workers/chunks/1a60d23a92bcf91dbb22.js +0 -1
  294. package/assets/esri/core/workers/chunks/205a0b34b698d5329854.js +0 -1
  295. package/assets/esri/core/workers/chunks/2158a6ec165503ec4711.js +0 -1
  296. package/assets/esri/core/workers/chunks/25211d5904ee9d5f4a9d.js +0 -1
  297. package/assets/esri/core/workers/chunks/26b12d1ea713c1e07701.js +0 -1
  298. package/assets/esri/core/workers/chunks/2bfa7ee324c32a56b0d3.js +0 -1
  299. package/assets/esri/core/workers/chunks/370a992bd308bd806f48.js +0 -1
  300. package/assets/esri/core/workers/chunks/3892650ecc61322f6f7f.js +0 -1
  301. package/assets/esri/core/workers/chunks/38d168e9a29c40de179d.js +0 -1
  302. package/assets/esri/core/workers/chunks/4bf1c6c7e0a3051dc797.js +0 -1
  303. package/assets/esri/core/workers/chunks/524156c3f5383c2dd0e3.js +0 -1
  304. package/assets/esri/core/workers/chunks/59666ecb7c2c1f5a13b2.js +0 -1
  305. package/assets/esri/core/workers/chunks/5ae98195bdfd7dc0c44e.js +0 -1
  306. package/assets/esri/core/workers/chunks/5c005c9514354c77ec27.js +0 -1
  307. package/assets/esri/core/workers/chunks/5d46fd68878c973bcfab.js +0 -1
  308. package/assets/esri/core/workers/chunks/5dd23092c8a8a5ccd5d0.js +0 -1
  309. package/assets/esri/core/workers/chunks/620ec5c75561183d3d73.js +0 -1
  310. package/assets/esri/core/workers/chunks/68512670816f59c0e6a5.js +0 -1
  311. package/assets/esri/core/workers/chunks/6c7374ebc18b46b3480a.js +0 -1
  312. package/assets/esri/core/workers/chunks/75ba2af92da232067adb.js +0 -1
  313. package/assets/esri/core/workers/chunks/7c1f0598a016516dcec3.js +0 -1
  314. package/assets/esri/core/workers/chunks/8dcec8d1b670d2b7ea2b.js +0 -1
  315. package/assets/esri/core/workers/chunks/8e07dfb6fc2673b640cb.js +0 -1
  316. package/assets/esri/core/workers/chunks/9008dde941cb3973de20.js +0 -1
  317. package/assets/esri/core/workers/chunks/9050b167355588b7003d.js +0 -1
  318. package/assets/esri/core/workers/chunks/9230d68799f0b0b9ef36.js +0 -1
  319. package/assets/esri/core/workers/chunks/94d124453e90a5ab1706.js +0 -1
  320. package/assets/esri/core/workers/chunks/9ca312af9c056b1efe40.js +0 -1
  321. package/assets/esri/core/workers/chunks/b0a57718a0765d1c8df0.js +0 -1
  322. package/assets/esri/core/workers/chunks/b431b81a7bf45dd527da.js +0 -1
  323. package/assets/esri/core/workers/chunks/bda311ad48efdb265939.js +0 -1
  324. package/assets/esri/core/workers/chunks/da547c3cabe4a89c3ce6.js +0 -1
  325. package/assets/esri/core/workers/chunks/dd295fa57b45b7ec4ec5.js +0 -1
  326. package/assets/esri/core/workers/chunks/eb92aa372e706ce5a5eb.js +0 -1
  327. package/assets/esri/core/workers/chunks/f553b464e969d45bf451.js +0 -1
  328. package/assets/esri/core/workers/chunks/f5865294983eb160de8c.js +0 -1
  329. package/assets/esri/core/workers/chunks/fdb7b1fbdb6fe091ad83.js +0 -1
  330. package/assets/esri/core/workers/chunks/fe8544bf3bbbacd74b8b.js +0 -1
  331. package/views/2d/tiling/PagedTileQueue.js +0 -5
  332. package/views/3d/webgl-engine/lib/RenderPluginManager.js +0 -5
  333. package/views/3d/webgl-engine/lib/SmaaRenderPass.js +0 -5
  334. /package/views/3d/webgl-engine/{lib → effects}/SmaaRenderPassData.js +0 -0
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- class t{constructor(t,e){this._lastId=-1,this._progress=e,this._parent=t}reset(){this._lastId=-1}nextBatch(t){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((e=>this.nextBatch(t)),(e=>this.nextBatch(t)));const e={returnpromise:null,hasset:!1},s=[];return e.returnpromise=new Promise(((n,a)=>{this._parent._getSet(this._progress).then((r=>{const i=r._known;let h=i.length-1;if("GETPAGES"===i.at(-1)&&(h-=1),this._lastId+t>h&&i.length>0&&"GETPAGES"===i.at(-1))return void this._parent._expandPagedSet(r,this._parent._maxQueryRate(),0,0,this._progress).then((s=>{e.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(t).then(n,a)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}));const _=r._candidates;if(h>=this._lastId+t||0===_.length){for(let e=0;e<t;e++){const t=e+this._lastId+1;if(t>=i.length)break;s[e]=i[t]}return this._lastId+=s.length,0===s.length&&(e.hasset=!0,this._parent._mainSetInUse=null,n([])),void this._parent._getFeatureBatch(s,this._progress).then((t=>{e.hasset=!0,this._parent._mainSetInUse=null,n(t)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))}this._parent._refineSetBlock(r,this._parent._maxProcessingRate(),this._progress).then((()=>{e.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(t).then(n,a)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))})),!1===e.hasset&&(this._parent._mainSetInUse=e.returnpromise,e.hasset=!0),e.returnpromise}next(){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((t=>this.next()),(t=>this.next()));const t={returnpromise:null,hasset:!1};return t.returnpromise=new Promise(((e,s)=>{this._parent._getSet(this._progress).then((n=>{const a=n._known;if(this._lastId<a.length-1)"GETPAGES"===a[this._lastId+1]?this._parent._expandPagedSet(n,this._parent._maxQueryRate(),0,0,this._progress).then((e=>(t.hasset=!0,this._parent._mainSetInUse=null,this.next()))).then(e,s):(this._lastId+=1,this._parent._getFeature(n,a[this._lastId],this._progress).then((s=>{t.hasset=!0,this._parent._mainSetInUse=null,e(s)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)})));else{n._candidates.length>0?this._parent._refineSetBlock(n,this._parent._maxProcessingRate(),this._progress).then((()=>{t.hasset=!0,this._parent._mainSetInUse=null,this.next().then(e,s)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)})):(t.hasset=!0,this._parent._mainSetInUse=null,e(null))}}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)}))})),!1===t.hasset&&(this._parent._mainSetInUse=t.returnpromise,t.hasset=!0),t.returnpromise}async count(){if(-1!==this._parent._totalCount)return this._parent._totalCount;const t=await this._parent._getSet(this._progress),e=await this._refineAllSets(t);return this._parent._totalCount=e._known.length,this._parent._totalCount}async _refineAllSets(t){if(t._known.length>0&&"GETPAGES"===t._known.at(-1))return await this._parent._expandPagedSet(t,this._parent._maxQueryRate(),0,1,this._progress),this._refineAllSets(t);if(t._candidates.length>0){if("GETPAGES"===t._known.at(-1))return await this._parent._expandPagedSet(t,this._parent._maxQueryRate(),0,2,this._progress),this._refineAllSets(t);const e=await this._parent._refineSetBlock(t,this._parent._maxProcessingRate(),this._progress);return e._candidates.length>0?this._refineAllSets(e):e}return t}}export{t as default};
5
+ class t{constructor(t,e){this._lastId=-1,this._progress=e,this._parent=t}reset(){this._lastId=-1}nextBatch(t){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((e=>this.nextBatch(t)),(e=>this.nextBatch(t)));const e={returnpromise:null,hasset:!1},s=[];return e.returnpromise=new Promise(((n,a)=>{this._parent._getSet(this._progress).then((i=>{const r=i._known;let h=r.length-1;if("GETPAGES"===r[r.length-1]&&(h-=1),this._lastId+t>h&&r.length>0&&"GETPAGES"===r[r.length-1])return void this._parent._expandPagedSet(i,this._parent._maxQueryRate(),0,0,this._progress).then((s=>{e.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(t).then(n,a)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}));const _=i._candidates;if(h>=this._lastId+t||0===_.length){for(let e=0;e<t;e++){const t=e+this._lastId+1;if(t>=r.length)break;s[e]=r[t]}return this._lastId+=s.length,0===s.length&&(e.hasset=!0,this._parent._mainSetInUse=null,n([])),void this._parent._getFeatureBatch(s,this._progress).then((t=>{e.hasset=!0,this._parent._mainSetInUse=null,n(t)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))}this._parent._refineSetBlock(i,this._parent._maxProcessingRate(),this._progress).then((()=>{e.hasset=!0,this._parent._mainSetInUse=null,this.nextBatch(t).then(n,a)}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))}),(t=>{e.hasset=!0,this._parent._mainSetInUse=null,a(t)}))})),!1===e.hasset&&(this._parent._mainSetInUse=e.returnpromise,e.hasset=!0),e.returnpromise}next(){if(null!==this._parent._mainSetInUse)return this._parent._mainSetInUse.then((t=>this.next()),(t=>this.next()));const t={returnpromise:null,hasset:!1};return t.returnpromise=new Promise(((e,s)=>{this._parent._getSet(this._progress).then((n=>{const a=n._known;if(this._lastId<a.length-1)"GETPAGES"===a[this._lastId+1]?this._parent._expandPagedSet(n,this._parent._maxQueryRate(),0,0,this._progress).then((e=>(t.hasset=!0,this._parent._mainSetInUse=null,this.next()))).then(e,s):(this._lastId+=1,this._parent._getFeature(n,a[this._lastId],this._progress).then((s=>{t.hasset=!0,this._parent._mainSetInUse=null,e(s)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)})));else{n._candidates.length>0?this._parent._refineSetBlock(n,this._parent._maxProcessingRate(),this._progress).then((()=>{t.hasset=!0,this._parent._mainSetInUse=null,this.next().then(e,s)}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)})):(t.hasset=!0,this._parent._mainSetInUse=null,e(null))}}),(e=>{t.hasset=!0,this._parent._mainSetInUse=null,s(e)}))})),!1===t.hasset&&(this._parent._mainSetInUse=t.returnpromise,t.hasset=!0),t.returnpromise}async count(){if(-1!==this._parent._totalCount)return this._parent._totalCount;const t=await this._parent._getSet(this._progress),e=await this._refineAllSets(t);return this._parent._totalCount=e._known.length,this._parent._totalCount}async _refineAllSets(t){if(t._known.length>0&&"GETPAGES"===t._known[t._known.length-1])return await this._parent._expandPagedSet(t,this._parent._maxQueryRate(),0,1,this._progress),this._refineAllSets(t);if(t._candidates.length>0){if("GETPAGES"===t._known[t._candidates.length-1])return await this._parent._expandPagedSet(t,this._parent._maxQueryRate(),0,2,this._progress),this._refineAllSets(t);const e=await this._parent._refineSetBlock(t,this._parent._maxProcessingRate(),this._progress);return e._candidates.length>0?this._refineAllSets(e):e}return t}}export{t as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{j as r,c as s,b as a,g as i,m as o,o as c}from"../../chunks/languageUtils.js";import{assertIsSome as u}from"../../core/maybe.js";const l=e=>(n,t,r)=>(r=r||14,+e(n,t).toFixed(r)),d=(e,n)=>e+n,h=(e,n)=>e-n,m=(e,n)=>e*n,g=(e,n)=>e/n,_=(e,n,t)=>l(d)(e,n,t),f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(m)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=360,p=400,E=2*Math.PI,T=3600,S=3240,R=60,M=60,F=180*T/Math.PI,v=D*R*M,L=90*T,U=180*T,N=270*T,x=String.fromCharCode(7501),z="°";function O(e){if(!1===s(e))throw new n(null,t.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function b(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,y,q,k;function C(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function P(e,n,t){for(;e.length<t;)e=n+e;return e}function Q(e,n){return e-Math.floor(e/n)*n}function j(e){switch(e){case y.truncated_degrees:case y.decimal_degrees:return D;case y.radians:return E;case y.gradians:return p;case y.seconds:return v;case y.fractional_degree_minutes:return R;case y.fractional_minute_seconds:return M;default:throw new n(null,t.LogicError,null,{reason:"unsupported evaluations"})}}function W(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return q.north_azimuth;case"POLAR":return q.polar;case"QUADRANT":return q.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return q.south_azimuth}throw new n(null,t.LogicError,null,{reason:"unsupported directionType"})}function Z(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return y.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return y.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return y.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return y.gradians}throw new n(null,t.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(y||(y={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(k||(k={}));class B{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case y.decimal_degrees:case y.truncated_degrees:return this.m_degrees;case y.fractional_degree_minutes:return this.m_minutes;case y.seconds:case y.fractional_minute_seconds:return this.m_seconds;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=b(e).fraction;let t=b(e).integer;const r=Math.floor(t/T);t-=r*T;const s=Math.floor(t/M);return t-=s*M,new B(r,s,t+n)}static numberToDms(e){const n=b(e).fraction,t=b(e).integer,r=w(b(100*n).fraction,100),s=b(100*n).integer;return new B(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===y.seconds||e===y.fractional_minute_seconds)M<=t&&(t-=M,++r),R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.decimal_degrees||e===y.truncated_degrees){const e=A(this.m_seconds,T),n=A(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new B(s,r,t)}static dmsToSeconds(e,n,t){return e*T+n*M+t}}class V{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===k.meridian?this.meridian:this.direction}}class X{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new X(new K(X._convertDirectionFormat(e.extractAngularUnits(y.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new K(X._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=X.secondsNorthAzimuthToQuadrant(n);return new K(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return X.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return X.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=N?H.north:H.south,t=n===H.north?Math.min(v-e,e):Math.abs(e-U),r=e>U?H.west:H.east;return new V(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new X(new K(X.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(y.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:v-e:t===H.east?U-e:U+e}static _convertDirectionFormat(e,r,s){let a=0;switch(r){case q.north_azimuth:a=e;break;case q.polar:a=L-e;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+U}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=L-a;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-U}return i=I(i,v),i<0?v+i:i}}function J(e,r,s){let a=null;switch(r){case y.decimal_degrees:a=w(e,T);break;case y.seconds:a=e;break;case y.gradians:a=w(e,S);break;case y.radians:a=w(e,F);break;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case y.decimal_degrees:return A(a,T);case y.seconds:return a;case y.gradians:return A(a,S);case y.radians:return a/F;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}class K{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new K(J(e,n,y.seconds))}extractAngularUnits(e){return J(this._seconds,y.seconds,Y(e))}static createFromDegreesMinutesSeconds(e,n,t){return new K(_(_(w(e,T),w(n,M)),t))}}function Y(e){switch(u(e),e){case y.decimal_degrees:case y.truncated_degrees:case y.degrees_minutes_seconds:return y.decimal_degrees;case y.gradians:return y.gradians;case y.fractional_degree_minutes:return y.fractional_degree_minutes;case y.radians:return y.radians;case y.seconds:case y.fractional_minute_seconds:return y.seconds}}class ${constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new $(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=y.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=de(this.view,r,s),n=n===y.truncated_degrees?y.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=de(this.view,r,s),n=y.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=B.secondsToDMS(this.angle.extractAngularUnits(y.seconds)),this._formattedDms=B.secondsToDMS(this.angle.extractAngularUnits(y.seconds)).format(n,t)}}function ee(e,r,s,a,i){let o=null;switch(r){case y.decimal_degrees:case y.radians:case y.gradians:return o=Q(G(e.extractAngularUnits(r),a),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));case y.truncated_degrees:case y.fractional_degree_minutes:return o=Q(i.fetchFormattedDms().getField(r),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));case y.fractional_minute_seconds:return o=Q(G(i.fetchDms().getField(r),a),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}function ne(e,r,s){if(s===q.quadrant)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(r===y.degrees_minutes_seconds){const n=B.numberToDms(e);return X.createFromAngleAndDirection(K.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return X.createFromAngleAndDirection(K.createFromAngleAndUnits(e,Y(r)),s)}function te(e){switch(i(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function re(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function se(e){const r=parseFloat(e);if(a(r)){if(isNaN(r))throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return r}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ae(e,s,a){const i=a===q.quadrant;let o=null,c=null,u=0,l=0,d=0;if(i){if(e.length<2)throw new n(null,t.LogicError,null,{reason:"conversion error"});d=1;const s=te(r(e.at(-1)));if(s?(o=s.first,c=s.second):(u=1,o=re(r(e[0])),c=re(r(e.at(-1)))),null===o||null===c)throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}switch(s){case y.decimal_degrees:case y.radians:case y.gradians:if(0===e.length)throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return i?X.createFromAngleMeridianAndDirection(K.createFromAngleAndUnits(se(e[u]),Y(s)),o,c):X.createFromAngleAndDirection(K.createFromAngleAndUnits(se(e[u]),Y(s)),a);case y.degrees_minutes_seconds:if(l=e.length-d-u,3===l){const n=K.createFromDegreesMinutesSeconds(se(e[u]),se(e[u+1]),se(e[u+2]));return i?X.createFromAngleMeridianAndDirection(n,o,c):X.createFromAngleAndDirection(n,a)}if(1===l){const n=se(e[u]),t=B.numberToDms(n),r=K.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?X.createFromAngleMeridianAndDirection(r,o,c):X.createFromAngleAndDirection(r,a)}}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ie(e){const n=[" ","-","/","'",'"',"\\","^",z,x,"\t","\r","\n","*"];let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.includes(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function oe(e,r,u){if(a(e))return ne(i(e),r,u);if(s(e))return ae(ie(e),r,u);if(o(e))return ae(e,r,u);if(c(e))return ae(e.toArray(),r,u);throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ce(e,r,s){const a=Y(s);if(a&&s!==y.degrees_minutes_seconds){return e.getAngle(r).extractAngularUnits(a)}throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ue(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===y.degrees_minutes_seconds){const t=B.secondsToDMS(r.extractAngularUnits(y.seconds));return[C(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,C(e.getDirection(n),"SHORT")]}if(t===y.degrees_minutes_seconds){const e=B.secondsToDMS(r.extractAngularUnits(y.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[C(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),C(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function le(e,r){let s="";switch(e){case y.decimal_degrees:s=r===q.quadrant?"DD.DD"+z:"DDD.DD"+z;break;case y.degrees_minutes_seconds:s=r===q.quadrant?"dd"+z+" mm' ss\"":"ddd"+z+" mm' ss.ss\"";break;case y.radians:s="R.RR";break;case y.gradians:s="GGG.GG"+x;break;default:throw new n(null,t.LogicError,null,{reason:"conversion error"})}return r===q.quadrant&&(s="p "+s+" b"),s}function de(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function he(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function me(e,n,t){let r="",s=null,a=null;const i=$.createFromStringAndBearing(n,e,t),o={D:y.decimal_degrees,d:y.truncated_degrees,m:y.fractional_degree_minutes,s:y.fractional_minute_seconds,R:y.radians,G:y.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=he(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=de(n,c,u),a=e.getAngle(t),r+=ee(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=C(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=C(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}function ge(s,a,i){if(!(a instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const o=W(O(a.field("directiontype"))),c=oe(s,Z(O(a.field("angletype"))),o);if(!(i instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const u=W(O(i.field("directiontype"))),l=i.hasField("angleType")?Z(O(i.field("angletype"))):null,d=O(i.field("outputType")).toUpperCase().trim();if(!u||!d)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(!(l||"TEXT"===d&&i.hasField("format")))throw new n(null,t.LogicError,null,{reason:"invalid unit"});switch(d){case"VALUE":return u===q.quadrant||l===y.degrees_minutes_seconds?ue(c,u,l):ce(c,u,l);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=le(l,u)),me(c,e,u)}default:throw new n(null,t.InvalidParameter,null)}}export{ge as convertDirection,_ as preciseAdd,A as preciseDivide,f as preciseMinus,w as preciseMultiply};
5
+ import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{j as r,c as s,b as a,g as i,m as o,o as c}from"../../chunks/languageUtils.js";import{assertIsSome as u}from"../../core/maybe.js";const l=e=>(n,t,r)=>(r=r||14,+e(n,t).toFixed(r)),d=(e,n)=>e+n,h=(e,n)=>e-n,m=(e,n)=>e*n,g=(e,n)=>e/n,_=(e,n,t)=>l(d)(e,n,t),f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(m)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=360,p=400,E=2*Math.PI,T=3600,S=3240,R=60,M=60,F=180*T/Math.PI,v=D*R*M,L=90*T,U=180*T,N=270*T,x=String.fromCharCode(7501),z="°";function O(e){if(!1===s(e))throw new n(null,t.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function b(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,y,q,k;function C(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function P(e,n,t){for(;e.length<t;)e=n+e;return e}function Q(e,n){return e-Math.floor(e/n)*n}function j(e){switch(e){case y.truncated_degrees:case y.decimal_degrees:return D;case y.radians:return E;case y.gradians:return p;case y.seconds:return v;case y.fractional_degree_minutes:return R;case y.fractional_minute_seconds:return M;default:throw new n(null,t.LogicError,null,{reason:"unsupported evaluations"})}}function W(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return q.north_azimuth;case"POLAR":return q.polar;case"QUADRANT":return q.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return q.south_azimuth}throw new n(null,t.LogicError,null,{reason:"unsupported directionType"})}function Z(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return y.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return y.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return y.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return y.gradians}throw new n(null,t.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(y||(y={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(k||(k={}));class B{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case y.decimal_degrees:case y.truncated_degrees:return this.m_degrees;case y.fractional_degree_minutes:return this.m_minutes;case y.seconds:case y.fractional_minute_seconds:return this.m_seconds;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=b(e).fraction;let t=b(e).integer;const r=Math.floor(t/T);t-=r*T;const s=Math.floor(t/M);return t-=s*M,new B(r,s,t+n)}static numberToDms(e){const n=b(e).fraction,t=b(e).integer,r=w(b(100*n).fraction,100),s=b(100*n).integer;return new B(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===y.seconds||e===y.fractional_minute_seconds)M<=t&&(t-=M,++r),R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.decimal_degrees||e===y.truncated_degrees){const e=A(this.m_seconds,T),n=A(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new B(s,r,t)}static dmsToSeconds(e,n,t){return e*T+n*M+t}}class V{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===k.meridian?this.meridian:this.direction}}class X{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new X(new K(X._convertDirectionFormat(e.extractAngularUnits(y.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new K(X._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=X.secondsNorthAzimuthToQuadrant(n);return new K(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return X.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return X.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=N?H.north:H.south,t=n===H.north?Math.min(v-e,e):Math.abs(e-U),r=e>U?H.west:H.east;return new V(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new X(new K(X.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(y.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:v-e:t===H.east?U-e:U+e}static _convertDirectionFormat(e,r,s){let a=0;switch(r){case q.north_azimuth:a=e;break;case q.polar:a=L-e;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+U}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=L-a;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-U}return i=I(i,v),i<0?v+i:i}}function J(e,r,s){let a=null;switch(r){case y.decimal_degrees:a=w(e,T);break;case y.seconds:a=e;break;case y.gradians:a=w(e,S);break;case y.radians:a=w(e,F);break;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case y.decimal_degrees:return A(a,T);case y.seconds:return a;case y.gradians:return A(a,S);case y.radians:return a/F;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}class K{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new K(J(e,n,y.seconds))}extractAngularUnits(e){return J(this._seconds,y.seconds,Y(e))}static createFromDegreesMinutesSeconds(e,n,t){return new K(_(_(w(e,T),w(n,M)),t))}}function Y(e){switch(u(e),e){case y.decimal_degrees:case y.truncated_degrees:case y.degrees_minutes_seconds:return y.decimal_degrees;case y.gradians:return y.gradians;case y.fractional_degree_minutes:return y.fractional_degree_minutes;case y.radians:return y.radians;case y.seconds:case y.fractional_minute_seconds:return y.seconds}}class ${constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new $(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=y.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=de(this.view,r,s),n=n===y.truncated_degrees?y.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=de(this.view,r,s),n=y.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=B.secondsToDMS(this.angle.extractAngularUnits(y.seconds)),this._formattedDms=B.secondsToDMS(this.angle.extractAngularUnits(y.seconds)).format(n,t)}}function ee(e,r,s,a,i){let o=null;switch(r){case y.decimal_degrees:case y.radians:case y.gradians:return o=Q(G(e.extractAngularUnits(r),a),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));case y.truncated_degrees:case y.fractional_degree_minutes:return o=Q(i.fetchFormattedDms().getField(r),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));case y.fractional_minute_seconds:return o=Q(G(i.fetchDms().getField(r),a),j(r)),P(o.toFixed(a),"0",s+a+(a>0?1:0));default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}function ne(e,r,s){if(s===q.quadrant)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(r===y.degrees_minutes_seconds){const n=B.numberToDms(e);return X.createFromAngleAndDirection(K.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return X.createFromAngleAndDirection(K.createFromAngleAndUnits(e,Y(r)),s)}function te(e){switch(i(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function re(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function se(e){const r=parseFloat(e);if(a(r)){if(isNaN(r))throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return r}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ae(e,s,a){const i=a===q.quadrant;let o=null,c=null,u=0,l=0,d=0;if(i){if(e.length<2)throw new n(null,t.LogicError,null,{reason:"conversion error"});d=1;const s=te(r(e[e.length-1]));if(s?(o=s.first,c=s.second):(u=1,o=re(r(e[0])),c=re(r(e[e.length-1]))),null===o||null===c)throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}switch(s){case y.decimal_degrees:case y.radians:case y.gradians:if(0===e.length)throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return i?X.createFromAngleMeridianAndDirection(K.createFromAngleAndUnits(se(e[u]),Y(s)),o,c):X.createFromAngleAndDirection(K.createFromAngleAndUnits(se(e[u]),Y(s)),a);case y.degrees_minutes_seconds:if(l=e.length-d-u,3===l){const n=K.createFromDegreesMinutesSeconds(se(e[u]),se(e[u+1]),se(e[u+2]));return i?X.createFromAngleMeridianAndDirection(n,o,c):X.createFromAngleAndDirection(n,a)}if(1===l){const n=se(e[u]),t=B.numberToDms(n),r=K.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?X.createFromAngleMeridianAndDirection(r,o,c):X.createFromAngleAndDirection(r,a)}}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ie(e){const n=[" ","-","/","'",'"',"\\","^",z,x,"\t","\r","\n","*"];let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.includes(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function oe(e,r,u){if(a(e))return ne(i(e),r,u);if(s(e))return ae(ie(e),r,u);if(o(e))return ae(e,r,u);if(c(e))return ae(e.toArray(),r,u);throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ce(e,r,s){const a=Y(s);if(a&&s!==y.degrees_minutes_seconds){return e.getAngle(r).extractAngularUnits(a)}throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ue(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===y.degrees_minutes_seconds){const t=B.secondsToDMS(r.extractAngularUnits(y.seconds));return[C(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,C(e.getDirection(n),"SHORT")]}if(t===y.degrees_minutes_seconds){const e=B.secondsToDMS(r.extractAngularUnits(y.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[C(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),C(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function le(e,r){let s="";switch(e){case y.decimal_degrees:s=r===q.quadrant?"DD.DD"+z:"DDD.DD"+z;break;case y.degrees_minutes_seconds:s=r===q.quadrant?"dd"+z+" mm' ss\"":"ddd"+z+" mm' ss.ss\"";break;case y.radians:s="R.RR";break;case y.gradians:s="GGG.GG"+x;break;default:throw new n(null,t.LogicError,null,{reason:"conversion error"})}return r===q.quadrant&&(s="p "+s+" b"),s}function de(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function he(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function me(e,n,t){let r="",s=null,a=null;const i=$.createFromStringAndBearing(n,e,t),o={D:y.decimal_degrees,d:y.truncated_degrees,m:y.fractional_degree_minutes,s:y.fractional_minute_seconds,R:y.radians,G:y.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=he(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=de(n,c,u),a=e.getAngle(t),r+=ee(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=C(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=C(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}function ge(s,a,i){if(!(a instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const o=W(O(a.field("directiontype"))),c=oe(s,Z(O(a.field("angletype"))),o);if(!(i instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const u=W(O(i.field("directiontype"))),l=i.hasField("angleType")?Z(O(i.field("angletype"))):null,d=O(i.field("outputType")).toUpperCase().trim();if(!u||!d)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(!(l||"TEXT"===d&&i.hasField("format")))throw new n(null,t.LogicError,null,{reason:"invalid unit"});switch(d){case"VALUE":return u===q.quadrant||l===y.degrees_minutes_seconds?ue(c,u,l):ce(c,u,l);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=le(l,u)),me(c,e,u)}default:throw new n(null,t.InvalidParameter,null)}}export{ge as convertDirection,_ as preciseAdd,A as preciseDivide,f as preciseMinus,w as preciseMultiply};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as o,constructFeatureSet as f,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as c,constructAssociationMetaDataFeatureSetFromUrl as d}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{C as p,r as y,c as h,j as g,l as w,J as I,k as F,F as D,h as E,m as b,p as x,o as A,i as N,g as S,a0 as T,P as L}from"../../chunks/languageUtils.js";import{getPortal as $}from"../portalUtils.js";import{SqlExpressionAdapted as v,StringToCodeAdapted as P,FieldRename as R,AdaptedFeatureSet as j,OriginalField as C}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import O from"../featureset/actions/OrderBy.js";import k from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import H from"../featureset/sources/FeatureLayerMemory.js";import Z from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as W}from"../featureset/support/sqlUtils.js";import{calculateStat as _}from"./fieldStats.js";import{isPromiseLike as U}from"../../core/promiseUtils.js";import{WhereClause as B}from"../../core/sql/WhereClause.js";import q from"../../layers/FeatureLayer.js";import V from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Q(e,t,n,i){if(1===i.length){if(b(i[0]))return _(e,i[0],-1);if(A(i[0]))return _(e,i[0].toArray(),-1)}return _(e,i,-1)}async function K(e,t,n){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function Y(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function X(e){if(null===e)return null;const t={type:Y(e,"type",""),name:Y(e,"name","")};if("range"===t.type)t.range=Y(e,"range",[]);else{t.codedValues=[];for(const n of Y(e,"codedValues",[]))t.codedValues.push({name:Y(n,"name",""),code:Y(n,"code",null)})}return t}function ee(e){if(null===e)return null;const t={},n=Y(e,"wkt",null);null!==n&&(t.wkt=n);const i=Y(e,"wkid",null);return null!==i&&(t.wkid=i),t}function te(e){if(null===e)return null;const t={hasZ:Y(e,"hasz",!1),hasM:Y(e,"hasm",!1)},n=Y(e,"spatialreference",null);n&&(t.spatialReference=ee(n));const i=Y(e,"x",null);if(null!==i)return t.x=i,t.y=Y(e,"y",null),t;const a=Y(e,"rings",null);if(null!==a)return t.rings=a,t;const r=Y(e,"paths",null);if(null!==r)return t.paths=r,t;const s=Y(e,"points",null);if(null!==s)return t.points=s,t;for(const l of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=Y(e,l,null);null!==n&&(t[l]=n)}return t}function ne(e,t){for(const n of t)if(n===e)return!0;return!1}function ie(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ne(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function ae(_){"async"===_.mode&&(_.functions.timezone=function(t,r){return _.standardFunctionAsync(t,r,(async(s,l,o)=>{if(p(o,1,2,t,r),y(o[0])){if(await o[0].load(),1===o.length||null===o[1])return o[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone;if(!(o[1]instanceof n)||!1===o[1].hasField("type"))throw new i(t,a.InvalidParameter,r);const e=o[1].field("type");if(!1===h(e))throw new i(t,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return o[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone;case"editfieldsinfo":return o[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone;case"timeinfo":return o[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone;case"field":if(o[1].hasField("fieldname")&&h(o[1].field("fieldname")))return o[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(o[1].field("fieldname")))}throw new i(t,a.InvalidParameter,r)}const f=w(o[0],I(t));if(null===f)return null;const u=f.timeZone;return"system"===u?e.systemTimeZoneCanonicalName:u}))},_.functions.sqltimestamp=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,1,3,e,t);const l=s[0];if(F(l)){if(1===s.length)return l.toSQLString();if(2===s.length)return l.changeTimeZone(g(s[1])).toSQLString();throw new i(e,a.InvalidParameter,t)}if(y(l)){if(3!==s.length)throw new i(e,a.InvalidParameter,t);await l.load();const n=g(s[1]);if(!1===F(s[2]))throw new i(e,a.InvalidParameter,t);const r=l.fieldTimeZone(n);return null===r?s[2].toSQLString():s[2].changeTimeZone(r).toSQLString()}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"sqltimestamp",min:2,max:4}),_.functions.featuresetbyid=function(e,t){return _.standardFunctionAsync(e,t,((n,r,l)=>{if(p(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=D(l[2],null);const s=E(D(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetById(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"featuresetbyid",min:2,max:4}),_.functions.getfeatureset=function(e,t){return _.standardFunctionAsync(e,t,((n,r,s)=>{if(p(s,1,2,e,t),x(s[0])){let t=D(s[1],"datasource");return null===t&&(t="datasource"),t=g(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"getfeatureset",min:1,max:2}),_.functions.featuresetbyportalitem=function(e,n){return _.standardFunctionAsync(e,n,((r,s,l)=>{if(p(l,2,5,e,n),null===l[0])throw new i(e,a.PortalRequired,n);if(l[0]instanceof t){const t=g(l[1]),r=g(l[2]);let s=D(l[3],null);const f=E(D(l[4],!0));if(null===s&&(s=["*"]),!1===b(s))throw new i(e,a.InvalidParameter,n);let u=null;return u=e.services&&e.services.portal?e.services.portal:J.getDefault(),u=$(l[0],u),o(t,r,e.spatialReference,s,f,u,e.lrucache,e.interceptor)}if(!1===h(l[0]))throw new i(e,a.PortalRequired,n);const f=g(l[0]),u=g(l[1]);let c=D(l[2],null);const d=E(D(l[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,n);return o(f,u,e.spatialReference,c,d,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},_.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),_.functions.featuresetbyname=function(e,t){return _.standardFunctionAsync(e,t,((n,r,l)=>{if(p(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=D(l[2],null);const s=E(D(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetByName(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"featuresetbyname",min:2,max:4}),_.functions.featureset=function(e,t){return _.standardFunction(e,t,((r,s,l)=>{p(l,1,1,e,t);let o=l[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(h(o))o=JSON.parse(o),void 0!==o.layerDefinition?(f.layerDefinition=o.layerDefinition,f.featureSet=o.featureSet,o.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=o.layerDefinition.spatialReference)):(f.featureSet.features=o.features,f.featureSet.geometryType=o.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=o.objectIdFieldName??"",f.layerDefinition.typeIdField=o.typeIdFieldName,f.layerDefinition.globalIdField=o.globalIdFieldName,f.layerDefinition.fields=o.fields,o.spatialReference&&(f.layerDefinition.spatialReference=o.spatialReference));else{if(!(l[0]instanceof n))throw new i(e,a.InvalidParameter,t);{o=JSON.parse(l[0].castToText(!0));const e=Y(o,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=Y(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=Y(e,"globalidfield",""),f.layerDefinition.objectIdField=Y(e,"objectidfield",""),f.layerDefinition.typeIdField=Y(e,"typeidfield",""),f.layerDefinition.hasZ=!0===Y(e,"hasz",!1),f.layerDefinition.hasM=!0===Y(e,"hasm",!1);const t=Y(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ee(t));for(const i of Y(e,"fields",[])){const e={name:Y(i,"name",""),alias:Y(i,"alias",""),type:Y(i,"type",""),nullable:Y(i,"nullable",!0),editable:Y(i,"editable",!0),length:Y(i,"length",null),domain:X(Y(i,"domain"))};f.layerDefinition.fields.push(e)}const n=Y(o,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of Y(n,"features",[])){const n={},i=Y(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:te(Y(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===Y(o,"hasz",!1),f.layerDefinition.hasM=!0===Y(o,"hasm",!1),f.layerDefinition.geometryType=Y(o,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=Y(o,"objectidfieldname",""),f.layerDefinition.typeIdField=Y(o,"typeidfieldname","");const e=Y(o,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ee(e));let t=Y(o,"fields",null);if(b(t))for(const a of t){const e={name:Y(a,"name",""),alias:Y(a,"alias",""),type:Y(a,"type",""),nullable:Y(a,"nullable",!0),editable:Y(a,"editable",!0),length:Y(a,"length",null),domain:X(Y(a,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const a of f.layerDefinition.fields)n[a.name.toLowerCase()]=a.name;let i=Y(o,"features",null);if(b(i))for(const a of i){const e={},t=Y(a,"attributes",{});for(const i in t)e[n[i.toLowerCase()]]=t[i];f.featureSet.features.push({attributes:e,geometry:te(Y(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===ie(f))throw new i(e,a.InvalidParameter,t);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),H.create(f,e.spatialReference)}))},_.signatures.push({name:"featureset",min:1,max:1}),_.functions.filter=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),b(s[0])||A(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let l=null;if(!N(s[1]))throw new i(e,a.InvalidParameter,t);l=s[1].createFunction(e);for(const e of r){const t=l(e);U(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(y(s[0])){const t=await s[0].load(),n=B.create(s[1],t.getFieldsIndex()),i=n.getVariables();if(i.length>0){const t=[];for(let n=0;n<i.length;n++){const a={name:i[n]};t.push(await _.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new M({parentfeatureset:s[0],whereclause:n})}return new M({parentfeatureset:s[0],whereclause:n})}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"filter",min:2,max:2}),_.functions.orderby=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),y(s[0])){const e=new Z(s[1]);return new O({parentfeatureset:s[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"orderby",min:2,max:2}),_.functions.top=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),y(s[0]))return new k({parentfeatureset:s[0],topnum:s[1]});if(b(s[0]))return S(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,S(s[1]));if(A(s[0]))return S(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,S(s[1]));throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"top",min:2,max:2}),_.functions.first=function(e,t){return _.standardFunctionAsync(e,t,(async(n,i,a)=>{if(p(a,1,1,e,t),y(a[0])){const t=await a[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,a[0],e.timeReference);return n._underlyingGraphic=t,n}return t}return b(a[0])?0===a[0].length?null:a[0][0]:A(a[0])?0===a[0].length()?null:a[0].get(0):null}))},_.signatures.push({name:"first",min:1,max:1}),_.functions.attachments=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{p(l,1,2,e,t);const o={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(l.length>1)if(l[1]instanceof n){if(l[1].hasField("minsize")&&(o.minsize=S(l[1].field("minsize"))),l[1].hasField("metadata")&&(o.returnMetadata=E(l[1].field("metadata"))),l[1].hasField("maxsize")&&(o.maxsize=S(l[1].field("maxsize"))),l[1].hasField("types")){const e=T(l[1].field("types"),!1);e.length>0&&(o.types=e)}}else if(null!==l[1])throw new i(e,a.InvalidParameter,t);if(x(l[0])){let t=l[0]._layer;return t instanceof q&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===y(t)?[]:(await t.load(),t.queryAttachments(l[0].field(t.objectIdField),o.minsize,o.maxsize,o.types,o.returnMetadata))}if(null===l[0])return[];throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"attachments",min:1,max:2}),_.functions.featuresetbyrelationshipname=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,4,e,t);const l=s[0],o=g(s[1]);let d=D(s[2],null);const m=E(D(s[3],!0));if(null===d&&(d=["*"]),!1===b(d))throw new i(e,a.InvalidParameter,t);if(null===s[0])return null;if(!x(s[0]))throw new i(e,a.InvalidParameter,t);let h=l._layer;if(h instanceof q&&(h=f(h,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===h)return null;if(!1===y(h))return null;h=await h.load();const w=h.relationshipMetaData().filter((e=>e.name===o));if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(h,w[0],l.field(h.objectIdField),h.spatialReference,d,m,e.lrucache,e.interceptor);let I=h.serviceUrl();if(!I)return null;I="/"===I.at(-1)?I+w[0].relatedTableId.toString():I+"/"+w[0].relatedTableId.toString();const F=await c(I,h.spatialReference,d,m,e.lrucache,e.interceptor);await F.load();let A=F.relationshipMetaData();if(A=A.filter((e=>e.id===w[0].id)),!1===l.hasField(w[0].keyField)||null===l.field(w[0].keyField)){const e=await h.getFeatureByObjectId(l.field(h.objectIdField),[w[0].keyField]);if(e){const t=B.create(A[0].keyField+"= @id",F.getFieldsIndex());return t.parameters={id:e.attributes[w[0].keyField]},F.filter(t)}return new z({parentfeatureset:F})}const N=B.create(A[0].keyField+"= @id",F.getFieldsIndex());return N.parameters={id:l.field(w[0].keyField)},F.filter(N)}))},_.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),_.functions.featuresetbyassociation=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,3,e,t);const l=s[0],o=g(D(s[1],"")).toLowerCase(),u=h(s[2])?g(s[2]):null;if(null===s[0])return null;if(!x(s[0]))throw new i(e,a.InvalidParameter,t);let c=l._layer;if(c instanceof q&&(c=f(c,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===c)return null;if(!1===y(c))return null;await c.load();const m=c.serviceUrl(),w=await d(m,e.spatialReference);let I=null,F=null,E=!1;if(null!==u&&""!==u&&void 0!==u){for(const e of w.terminals)e.terminalName===u&&(F=e.terminalId);null===F&&(E=!0)}const b=w.associations.getFieldsIndex(),A=b.get("TOGLOBALID").name,N=b.get("FROMGLOBALID").name,S=b.get("TOTERMINALID").name,T=b.get("FROMTERMINALID").name,$=b.get("FROMNETWORKSOURCEID").name,M=b.get("TONETWORKSOURCEID").name,O=b.get("ASSOCIATIONTYPE").name,k=b.get("ISCONTENTVISIBLE").name,z=b.get("OBJECTID").name;for(const e of c.fields)if("global-id"===e.type){I=l.field(e.name);break}let H=null,Z=new v(new V({name:"percentalong",alias:"percentalong",type:"double"}),B.create("0",w.associations.getFieldsIndex())),W=new v(new V({name:"side",alias:"side",type:"string"}),B.create("''",w.associations.getFieldsIndex()));const _="globalid",U="globalId",J={};for(const e in w.lkp)J[e]=w.lkp[e].sourceId;const Q=new P(new V({name:"classname",alias:"classname",type:"string"}),null,J);let K="";switch(o){case"midspan":{K=`((${A}='${I}') OR ( ${N}='${I}')) AND (${O} IN (5))`,Q.codefield=B.create(`CASE WHEN (${A}='${I}') THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const e=G(j.findField(w.associations.fields,N));e.name=_,e.alias=_,H=new v(e,B.create(`CASE WHEN (${N}='${I}') THEN ${A} ELSE ${N} END`,w.associations.getFieldsIndex())),Z=w.unVersion>=4?new C(j.findField(w.associations.fields,b.get("PERCENTALONG").name)):new v(new V({name:"percentalong",alias:"percentalong",type:"double"}),B.create("0",w.associations.getFieldsIndex()));break}case"junctionedge":{K=`((${A}='${I}') OR ( ${N}='${I}')) AND (${O} IN (4,6))`,Q.codefield=B.create(`CASE WHEN (${A}='${I}') THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const e=G(j.findField(w.associations.fields,N));e.name=_,e.alias=_,H=new v(e,B.create(`CASE WHEN (${N}='${I}') THEN ${A} ELSE ${N} END`,w.associations.getFieldsIndex())),W=new v(new V({name:"side",alias:"side",type:"string"}),B.create(`CASE WHEN (${O}=4) THEN 'from' ELSE 'to' END`,w.associations.getFieldsIndex()));break}case"connected":{let e=`${A}='@T'`,t=`${N}='@T'`;null!==F&&(e+=` AND ${S}=@A`,t+=` AND ${T}=@A`),K="(("+e+") OR ("+t+"))",K=L(K,"@T",I??""),e=L(e,"@T",I??""),null!==F&&(e=L(e,"@A",F.toString()),K=L(K,"@A",F.toString())),Q.codefield=B.create("CASE WHEN "+e+` THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const n=G(j.findField(w.associations.fields,N));n.name=_,n.alias=_,H=new v(n,B.create("CASE WHEN "+e+` THEN ${N} ELSE ${A} END`,w.associations.getFieldsIndex()));break}case"container":K=`${A}='${I}' AND ${O} = 2`,null!==F&&(K+=` AND ${S} = `+F.toString()),Q.codefield=$,K="( "+K+" )",H=new R(j.findField(w.associations.fields,N),_,_);break;case"content":K=`(${N}='${I}' AND ${O} = 2)`,null!==F&&(K+=` AND ${T} = `+F.toString()),Q.codefield=M,K="( "+K+" )",H=new R(j.findField(w.associations.fields,A),_,_);break;case"structure":K=`(${A}='${I}' AND ${O} = 3)`,null!==F&&(K+=` AND ${S} = `+F.toString()),Q.codefield=$,K="( "+K+" )",H=new R(j.findField(w.associations.fields,N),_,U);break;case"attached":K=`(${N}='${I}' AND ${O} = 3)`,null!==F&&(K+=` AND ${T} = `+F.toString()),Q.codefield=M,K="( "+K+" )",H=new R(j.findField(w.associations.fields,A),_,U);break;default:throw new i(e,a.InvalidParameter,t)}E&&(K="1 <> 1");return new j({parentfeatureset:w.associations,adaptedFields:[new C(j.findField(w.associations.fields,z)),new C(j.findField(w.associations.fields,k)),H,W,Q,Z],extraFilter:K?B.create(K,w.associations.getFieldsIndex()):null})}))},_.signatures.push({name:"featuresetbyassociation",min:2,max:6}),_.functions.groupby=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{if(p(l,3,3,e,t),!y(l[0]))throw new i(e,a.InvalidParameter,t);const o=await l[0].load(),f=[],u=[];let c=!1,d=[];if(h(l[1]))d.push(l[1]);else if(l[1]instanceof n)d.push(l[1]);else if(b(l[1]))d=l[1];else{if(!A(l[1]))throw new i(e,a.InvalidParameter,t);d=l[1].toArray()}for(const m of d)if(h(m)){const e=B.create(g(m),o.getFieldsIndex()),t=!0===W(e)?g(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(c=!0)}else{if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(c=!0),!n)throw new i(e,a.InvalidParameter,t);f.push({name:n,expression:B.create(r||n,o.getFieldsIndex())})}}if(d=[],h(l[2]))d.push(l[2]);else if(b(l[2]))d=l[2];else if(A(l[2]))d=l[2].toArray();else{if(!(l[2]instanceof n))throw new i(e,a.InvalidParameter,t);d.push(l[2])}for(const m of d){if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new i(e,a.InvalidParameter,t);u.push({name:n,statistic:r.toLowerCase(),expression:B.create(s,o.getFieldsIndex())})}}if(c){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await K(t.expression,_,e);for(const t of u)await K(t.expression,_,e);return l[0].groupby(f,u)}))},_.signatures.push({name:"groupby",min:3,max:3}),_.functions.distinct=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{if(y(l[0])){p(l,2,2,e,t);const r=await l[0].load(),s=[];let o=[];if(h(l[1]))o.push(l[1]);else if(l[1]instanceof n)o.push(l[1]);else if(b(l[1]))o=l[1];else{if(!A(l[1]))throw new i(e,a.InvalidParameter,t);o=l[1].toArray()}let f=!1;for(const l of o)if(h(l)){const e=B.create(g(l),r.getFieldsIndex()),t=!0===W(e)?g(l):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(l instanceof n))throw new i(e,a.InvalidParameter,t);{const n=l.hasField("name")?l.field("name"):"%%%%FIELDNAME",o=l.hasField("expression")?l.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new i(e,a.InvalidParameter,t);s.push({name:n,expression:B.create(o||n,r.getFieldsIndex())})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await K(t.expression,_,e);return l[0].groupby(s,[])}return Q("distinct",r,s,l)}))})}export{ae as registerFunctions};
5
+ import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as o,constructFeatureSet as f,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as c,constructAssociationMetaDataFeatureSetFromUrl as d}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{C as p,r as y,c as h,j as g,l as w,J as I,k as F,F as D,h as E,m as b,p as x,o as A,i as N,g as S,a0 as T,P as L}from"../../chunks/languageUtils.js";import{getPortal as $}from"../portalUtils.js";import{SqlExpressionAdapted as v,StringToCodeAdapted as P,FieldRename as R,AdaptedFeatureSet as j,OriginalField as C}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import O from"../featureset/actions/OrderBy.js";import k from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import H from"../featureset/sources/FeatureLayerMemory.js";import Z from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as W}from"../featureset/support/sqlUtils.js";import{calculateStat as _}from"./fieldStats.js";import{isPromiseLike as U}from"../../core/promiseUtils.js";import{WhereClause as B}from"../../core/sql/WhereClause.js";import q from"../../layers/FeatureLayer.js";import V from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Q(e,t,n,i){if(1===i.length){if(b(i[0]))return _(e,i[0],-1);if(A(i[0]))return _(e,i[0].toArray(),-1)}return _(e,i,-1)}async function K(e,t,n){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function Y(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function X(e){if(null===e)return null;const t={type:Y(e,"type",""),name:Y(e,"name","")};if("range"===t.type)t.range=Y(e,"range",[]);else{t.codedValues=[];for(const n of Y(e,"codedValues",[]))t.codedValues.push({name:Y(n,"name",""),code:Y(n,"code",null)})}return t}function ee(e){if(null===e)return null;const t={},n=Y(e,"wkt",null);null!==n&&(t.wkt=n);const i=Y(e,"wkid",null);return null!==i&&(t.wkid=i),t}function te(e){if(null===e)return null;const t={hasZ:Y(e,"hasz",!1),hasM:Y(e,"hasm",!1)},n=Y(e,"spatialreference",null);n&&(t.spatialReference=ee(n));const i=Y(e,"x",null);if(null!==i)return t.x=i,t.y=Y(e,"y",null),t;const a=Y(e,"rings",null);if(null!==a)return t.rings=a,t;const r=Y(e,"paths",null);if(null!==r)return t.paths=r,t;const s=Y(e,"points",null);if(null!==s)return t.points=s,t;for(const l of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=Y(e,l,null);null!==n&&(t[l]=n)}return t}function ne(e,t){for(const n of t)if(n===e)return!0;return!1}function ie(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ne(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function ae(_){"async"===_.mode&&(_.functions.timezone=function(t,r){return _.standardFunctionAsync(t,r,(async(s,l,o)=>{if(p(o,1,2,t,r),y(o[0])){if(await o[0].load(),1===o.length||null===o[1])return o[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone;if(!(o[1]instanceof n)||!1===o[1].hasField("type"))throw new i(t,a.InvalidParameter,r);const e=o[1].field("type");if(!1===h(e))throw new i(t,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return o[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone;case"editfieldsinfo":return o[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone;case"timeinfo":return o[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone;case"field":if(o[1].hasField("fieldname")&&h(o[1].field("fieldname")))return o[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(o[1].field("fieldname")))}throw new i(t,a.InvalidParameter,r)}const f=w(o[0],I(t));if(null===f)return null;const u=f.timeZone;return"system"===u?e.systemTimeZoneCanonicalName:u}))},_.functions.sqltimestamp=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,1,3,e,t);const l=s[0];if(F(l)){if(1===s.length)return l.toSQLString();if(2===s.length)return l.changeTimeZone(g(s[1])).toSQLString();throw new i(e,a.InvalidParameter,t)}if(y(l)){if(3!==s.length)throw new i(e,a.InvalidParameter,t);await l.load();const n=g(s[1]);if(!1===F(s[2]))throw new i(e,a.InvalidParameter,t);const r=l.fieldTimeZone(n);return null===r?s[2].toSQLString():s[2].changeTimeZone(r).toSQLString()}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"sqltimestamp",min:2,max:4}),_.functions.featuresetbyid=function(e,t){return _.standardFunctionAsync(e,t,((n,r,l)=>{if(p(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=D(l[2],null);const s=E(D(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetById(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"featuresetbyid",min:2,max:4}),_.functions.getfeatureset=function(e,t){return _.standardFunctionAsync(e,t,((n,r,s)=>{if(p(s,1,2,e,t),x(s[0])){let t=D(s[1],"datasource");return null===t&&(t="datasource"),t=g(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"getfeatureset",min:1,max:2}),_.functions.featuresetbyportalitem=function(e,n){return _.standardFunctionAsync(e,n,((r,s,l)=>{if(p(l,2,5,e,n),null===l[0])throw new i(e,a.PortalRequired,n);if(l[0]instanceof t){const t=g(l[1]),r=g(l[2]);let s=D(l[3],null);const f=E(D(l[4],!0));if(null===s&&(s=["*"]),!1===b(s))throw new i(e,a.InvalidParameter,n);let u=null;return u=e.services&&e.services.portal?e.services.portal:J.getDefault(),u=$(l[0],u),o(t,r,e.spatialReference,s,f,u,e.lrucache,e.interceptor)}if(!1===h(l[0]))throw new i(e,a.PortalRequired,n);const f=g(l[0]),u=g(l[1]);let c=D(l[2],null);const d=E(D(l[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,n);return o(f,u,e.spatialReference,c,d,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},_.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),_.functions.featuresetbyname=function(e,t){return _.standardFunctionAsync(e,t,((n,r,l)=>{if(p(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=D(l[2],null);const s=E(D(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetByName(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"featuresetbyname",min:2,max:4}),_.functions.featureset=function(e,t){return _.standardFunction(e,t,((r,s,l)=>{p(l,1,1,e,t);let o=l[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(h(o))o=JSON.parse(o),void 0!==o.layerDefinition?(f.layerDefinition=o.layerDefinition,f.featureSet=o.featureSet,o.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=o.layerDefinition.spatialReference)):(f.featureSet.features=o.features,f.featureSet.geometryType=o.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=o.objectIdFieldName??"",f.layerDefinition.typeIdField=o.typeIdFieldName,f.layerDefinition.globalIdField=o.globalIdFieldName,f.layerDefinition.fields=o.fields,o.spatialReference&&(f.layerDefinition.spatialReference=o.spatialReference));else{if(!(l[0]instanceof n))throw new i(e,a.InvalidParameter,t);{o=JSON.parse(l[0].castToText(!0));const e=Y(o,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=Y(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=Y(e,"globalidfield",""),f.layerDefinition.objectIdField=Y(e,"objectidfield",""),f.layerDefinition.typeIdField=Y(e,"typeidfield",""),f.layerDefinition.hasZ=!0===Y(e,"hasz",!1),f.layerDefinition.hasM=!0===Y(e,"hasm",!1);const t=Y(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ee(t));for(const i of Y(e,"fields",[])){const e={name:Y(i,"name",""),alias:Y(i,"alias",""),type:Y(i,"type",""),nullable:Y(i,"nullable",!0),editable:Y(i,"editable",!0),length:Y(i,"length",null),domain:X(Y(i,"domain"))};f.layerDefinition.fields.push(e)}const n=Y(o,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of Y(n,"features",[])){const n={},i=Y(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:te(Y(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===Y(o,"hasz",!1),f.layerDefinition.hasM=!0===Y(o,"hasm",!1),f.layerDefinition.geometryType=Y(o,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=Y(o,"objectidfieldname",""),f.layerDefinition.typeIdField=Y(o,"typeidfieldname","");const e=Y(o,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ee(e));let t=Y(o,"fields",null);if(b(t))for(const a of t){const e={name:Y(a,"name",""),alias:Y(a,"alias",""),type:Y(a,"type",""),nullable:Y(a,"nullable",!0),editable:Y(a,"editable",!0),length:Y(a,"length",null),domain:X(Y(a,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const a of f.layerDefinition.fields)n[a.name.toLowerCase()]=a.name;let i=Y(o,"features",null);if(b(i))for(const a of i){const e={},t=Y(a,"attributes",{});for(const i in t)e[n[i.toLowerCase()]]=t[i];f.featureSet.features.push({attributes:e,geometry:te(Y(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===ie(f))throw new i(e,a.InvalidParameter,t);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),H.create(f,e.spatialReference)}))},_.signatures.push({name:"featureset",min:1,max:1}),_.functions.filter=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),b(s[0])||A(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let l=null;if(!N(s[1]))throw new i(e,a.InvalidParameter,t);l=s[1].createFunction(e);for(const e of r){const t=l(e);U(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(y(s[0])){const t=await s[0].load(),n=B.create(s[1],t.getFieldsIndex()),i=n.getVariables();if(i.length>0){const t=[];for(let n=0;n<i.length;n++){const a={name:i[n]};t.push(await _.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new M({parentfeatureset:s[0],whereclause:n})}return new M({parentfeatureset:s[0],whereclause:n})}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"filter",min:2,max:2}),_.functions.orderby=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),y(s[0])){const e=new Z(s[1]);return new O({parentfeatureset:s[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"orderby",min:2,max:2}),_.functions.top=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),y(s[0]))return new k({parentfeatureset:s[0],topnum:s[1]});if(b(s[0]))return S(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,S(s[1]));if(A(s[0]))return S(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,S(s[1]));throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"top",min:2,max:2}),_.functions.first=function(e,t){return _.standardFunctionAsync(e,t,(async(n,i,a)=>{if(p(a,1,1,e,t),y(a[0])){const t=await a[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,a[0],e.timeReference);return n._underlyingGraphic=t,n}return t}return b(a[0])?0===a[0].length?null:a[0][0]:A(a[0])?0===a[0].length()?null:a[0].get(0):null}))},_.signatures.push({name:"first",min:1,max:1}),_.functions.attachments=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{p(l,1,2,e,t);const o={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(l.length>1)if(l[1]instanceof n){if(l[1].hasField("minsize")&&(o.minsize=S(l[1].field("minsize"))),l[1].hasField("metadata")&&(o.returnMetadata=E(l[1].field("metadata"))),l[1].hasField("maxsize")&&(o.maxsize=S(l[1].field("maxsize"))),l[1].hasField("types")){const e=T(l[1].field("types"),!1);e.length>0&&(o.types=e)}}else if(null!==l[1])throw new i(e,a.InvalidParameter,t);if(x(l[0])){let t=l[0]._layer;return t instanceof q&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===y(t)?[]:(await t.load(),t.queryAttachments(l[0].field(t.objectIdField),o.minsize,o.maxsize,o.types,o.returnMetadata))}if(null===l[0])return[];throw new i(e,a.InvalidParameter,t)}))},_.signatures.push({name:"attachments",min:1,max:2}),_.functions.featuresetbyrelationshipname=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,4,e,t);const l=s[0],o=g(s[1]);let d=D(s[2],null);const m=E(D(s[3],!0));if(null===d&&(d=["*"]),!1===b(d))throw new i(e,a.InvalidParameter,t);if(null===s[0])return null;if(!x(s[0]))throw new i(e,a.InvalidParameter,t);let h=l._layer;if(h instanceof q&&(h=f(h,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===h)return null;if(!1===y(h))return null;h=await h.load();const w=h.relationshipMetaData().filter((e=>e.name===o));if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(h,w[0],l.field(h.objectIdField),h.spatialReference,d,m,e.lrucache,e.interceptor);let I=h.serviceUrl();if(!I)return null;I="/"===I.charAt(I.length-1)?I+w[0].relatedTableId.toString():I+"/"+w[0].relatedTableId.toString();const F=await c(I,h.spatialReference,d,m,e.lrucache,e.interceptor);await F.load();let A=F.relationshipMetaData();if(A=A.filter((e=>e.id===w[0].id)),!1===l.hasField(w[0].keyField)||null===l.field(w[0].keyField)){const e=await h.getFeatureByObjectId(l.field(h.objectIdField),[w[0].keyField]);if(e){const t=B.create(A[0].keyField+"= @id",F.getFieldsIndex());return t.parameters={id:e.attributes[w[0].keyField]},F.filter(t)}return new z({parentfeatureset:F})}const N=B.create(A[0].keyField+"= @id",F.getFieldsIndex());return N.parameters={id:l.field(w[0].keyField)},F.filter(N)}))},_.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),_.functions.featuresetbyassociation=function(e,t){return _.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,3,e,t);const l=s[0],o=g(D(s[1],"")).toLowerCase(),u=h(s[2])?g(s[2]):null;if(null===s[0])return null;if(!x(s[0]))throw new i(e,a.InvalidParameter,t);let c=l._layer;if(c instanceof q&&(c=f(c,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===c)return null;if(!1===y(c))return null;await c.load();const m=c.serviceUrl(),w=await d(m,e.spatialReference);let I=null,F=null,E=!1;if(null!==u&&""!==u&&void 0!==u){for(const e of w.terminals)e.terminalName===u&&(F=e.terminalId);null===F&&(E=!0)}const b=w.associations.getFieldsIndex(),A=b.get("TOGLOBALID").name,N=b.get("FROMGLOBALID").name,S=b.get("TOTERMINALID").name,T=b.get("FROMTERMINALID").name,$=b.get("FROMNETWORKSOURCEID").name,M=b.get("TONETWORKSOURCEID").name,O=b.get("ASSOCIATIONTYPE").name,k=b.get("ISCONTENTVISIBLE").name,z=b.get("OBJECTID").name;for(const e of c.fields)if("global-id"===e.type){I=l.field(e.name);break}let H=null,Z=new v(new V({name:"percentalong",alias:"percentalong",type:"double"}),B.create("0",w.associations.getFieldsIndex())),W=new v(new V({name:"side",alias:"side",type:"string"}),B.create("''",w.associations.getFieldsIndex()));const _="globalid",U="globalId",J={};for(const e in w.lkp)J[e]=w.lkp[e].sourceId;const Q=new P(new V({name:"classname",alias:"classname",type:"string"}),null,J);let K="";switch(o){case"midspan":{K=`((${A}='${I}') OR ( ${N}='${I}')) AND (${O} IN (5))`,Q.codefield=B.create(`CASE WHEN (${A}='${I}') THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const e=G(j.findField(w.associations.fields,N));e.name=_,e.alias=_,H=new v(e,B.create(`CASE WHEN (${N}='${I}') THEN ${A} ELSE ${N} END`,w.associations.getFieldsIndex())),Z=w.unVersion>=4?new C(j.findField(w.associations.fields,b.get("PERCENTALONG").name)):new v(new V({name:"percentalong",alias:"percentalong",type:"double"}),B.create("0",w.associations.getFieldsIndex()));break}case"junctionedge":{K=`((${A}='${I}') OR ( ${N}='${I}')) AND (${O} IN (4,6))`,Q.codefield=B.create(`CASE WHEN (${A}='${I}') THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const e=G(j.findField(w.associations.fields,N));e.name=_,e.alias=_,H=new v(e,B.create(`CASE WHEN (${N}='${I}') THEN ${A} ELSE ${N} END`,w.associations.getFieldsIndex())),W=new v(new V({name:"side",alias:"side",type:"string"}),B.create(`CASE WHEN (${O}=4) THEN 'from' ELSE 'to' END`,w.associations.getFieldsIndex()));break}case"connected":{let e=`${A}='@T'`,t=`${N}='@T'`;null!==F&&(e+=` AND ${S}=@A`,t+=` AND ${T}=@A`),K="(("+e+") OR ("+t+"))",K=L(K,"@T",I??""),e=L(e,"@T",I??""),null!==F&&(e=L(e,"@A",F.toString()),K=L(K,"@A",F.toString())),Q.codefield=B.create("CASE WHEN "+e+` THEN ${$} ELSE ${M} END`,w.associations.getFieldsIndex());const n=G(j.findField(w.associations.fields,N));n.name=_,n.alias=_,H=new v(n,B.create("CASE WHEN "+e+` THEN ${N} ELSE ${A} END`,w.associations.getFieldsIndex()));break}case"container":K=`${A}='${I}' AND ${O} = 2`,null!==F&&(K+=` AND ${S} = `+F.toString()),Q.codefield=$,K="( "+K+" )",H=new R(j.findField(w.associations.fields,N),_,_);break;case"content":K=`(${N}='${I}' AND ${O} = 2)`,null!==F&&(K+=` AND ${T} = `+F.toString()),Q.codefield=M,K="( "+K+" )",H=new R(j.findField(w.associations.fields,A),_,_);break;case"structure":K=`(${A}='${I}' AND ${O} = 3)`,null!==F&&(K+=` AND ${S} = `+F.toString()),Q.codefield=$,K="( "+K+" )",H=new R(j.findField(w.associations.fields,N),_,U);break;case"attached":K=`(${N}='${I}' AND ${O} = 3)`,null!==F&&(K+=` AND ${T} = `+F.toString()),Q.codefield=M,K="( "+K+" )",H=new R(j.findField(w.associations.fields,A),_,U);break;default:throw new i(e,a.InvalidParameter,t)}E&&(K="1 <> 1");return new j({parentfeatureset:w.associations,adaptedFields:[new C(j.findField(w.associations.fields,z)),new C(j.findField(w.associations.fields,k)),H,W,Q,Z],extraFilter:K?B.create(K,w.associations.getFieldsIndex()):null})}))},_.signatures.push({name:"featuresetbyassociation",min:2,max:6}),_.functions.groupby=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{if(p(l,3,3,e,t),!y(l[0]))throw new i(e,a.InvalidParameter,t);const o=await l[0].load(),f=[],u=[];let c=!1,d=[];if(h(l[1]))d.push(l[1]);else if(l[1]instanceof n)d.push(l[1]);else if(b(l[1]))d=l[1];else{if(!A(l[1]))throw new i(e,a.InvalidParameter,t);d=l[1].toArray()}for(const m of d)if(h(m)){const e=B.create(g(m),o.getFieldsIndex()),t=!0===W(e)?g(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(c=!0)}else{if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(c=!0),!n)throw new i(e,a.InvalidParameter,t);f.push({name:n,expression:B.create(r||n,o.getFieldsIndex())})}}if(d=[],h(l[2]))d.push(l[2]);else if(b(l[2]))d=l[2];else if(A(l[2]))d=l[2].toArray();else{if(!(l[2]instanceof n))throw new i(e,a.InvalidParameter,t);d.push(l[2])}for(const m of d){if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new i(e,a.InvalidParameter,t);u.push({name:n,statistic:r.toLowerCase(),expression:B.create(s,o.getFieldsIndex())})}}if(c){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await K(t.expression,_,e);for(const t of u)await K(t.expression,_,e);return l[0].groupby(f,u)}))},_.signatures.push({name:"groupby",min:3,max:3}),_.functions.distinct=function(e,t){return _.standardFunctionAsync(e,t,(async(r,s,l)=>{if(y(l[0])){p(l,2,2,e,t);const r=await l[0].load(),s=[];let o=[];if(h(l[1]))o.push(l[1]);else if(l[1]instanceof n)o.push(l[1]);else if(b(l[1]))o=l[1];else{if(!A(l[1]))throw new i(e,a.InvalidParameter,t);o=l[1].toArray()}let f=!1;for(const l of o)if(h(l)){const e=B.create(g(l),r.getFieldsIndex()),t=!0===W(e)?g(l):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(l instanceof n))throw new i(e,a.InvalidParameter,t);{const n=l.hasField("name")?l.field("name"):"%%%%FIELDNAME",o=l.hasField("expression")?l.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new i(e,a.InvalidParameter,t);s.push({name:n,expression:B.create(o||n,r.getFieldsIndex())})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await K(t.expression,_,e);return l[0].groupby(s,[])}return Q("distinct",r,s,l)}))})}export{ae as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{version as n}from"../../kernel.js";import t from"../ArcadePortal.js";import e from"../Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as i}from"../executionError.js";import{cloneGeometry as a,convertSquareUnitsToCode as o,convertLinearUnitsToCode as s}from"../kernel.js";import{D as l,C as u,k as c,j as f,m as d,o as m,y as w,r as h,F as y,E as p,G as g,H as v,g as P,h as I,J as A}from"../../chunks/languageUtils.js";import{getPortal as F,lookupUser as R}from"../portalUtils.js";import{centroidPolyline as j,centroidMultiPoint as x,getMetersPerVerticalUnitForSR as N,segmentLength3d as b}from"./centroid.js";import{getMetersPerUnitForSR as S}from"../../core/unitUtils.js";import O from"../../geometry/Extent.js";import D from"../../geometry/Geometry.js";import{disjoint as k,intersects as C,touches as J,crosses as M,within as Z,contains as E,overlaps as U,equals as z,relate as L,intersect as T,union as W,difference as q,symmetricDifference as G,clip as H,cut as V,planarArea as B,geodesicArea as K,planarLength as Q,geodesicLength as X,distance as Y,densify as $,geodesicDensify as _,generalize as nn,buffer as tn,geodesicBuffer as en,offset as rn,rotate as an,simplify as on,isSimple as sn,convexHull as ln,nearestCoordinate as un,nearestVertex as cn}from"../../geometry/geometryEngineAsync.js";import fn from"../../geometry/Multipoint.js";import dn from"../../geometry/Point.js";import mn from"../../geometry/Polygon.js";import wn from"../../geometry/Polyline.js";import{fromJSON as hn}from"../../geometry/support/jsonUtils.js";import yn from"../../portal/Portal.js";function pn(t){return 0===n.indexOf("4.")?mn.fromExtent(t):new mn({spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]})}function gn(n,t,e){if(u(n,2,2,t,e),n[0]instanceof D&&n[1]instanceof D);else if(n[0]instanceof D&&null===n[1]);else if(n[1]instanceof D&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new r(t,i.InvalidParameter,e)}async function vn(n,t){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let e=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){e=N(n.spatialReference)/S(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=b(a[n],a[n-1],e);else if("polygon"===n.type)for(const a of n.rings){for(let t=1;t<a.length;t++)r+=b(a[t],a[t-1],e);const n=a.at(-1);(a[0][0]!==n[0]||a[0][1]!==n[1]||void 0!==a[0][2]&&a[0][2]!==n[2])&&(r+=b(a[0],n,e))}else"extent"===n.type&&(r+=2*b([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],e),r+=2*b([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],e),r*=2,r+=4*Math.abs(y(n.zmax,0)*e-y(n.zmin,0)*e));const i=new wn({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return Q(i,t)}function Pn(n){"async"===n.mode&&(n.functions.disjoint=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null===i[0]||null===i[1]||k(i[0],i[1]))))},n.functions.intersects=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&C(i[0],i[1]))))},n.functions.touches=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&J(i[0],i[1]))))},n.functions.crosses=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&M(i[0],i[1]))))},n.functions.within=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&Z(i[0],i[1]))))},n.functions.contains=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&E(i[0],i[1]))))},n.functions.overlaps=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&U(i[0],i[1]))))},n.functions.equals=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(u(i,2,2,t,e),i[0]===i[1]||(i[0]instanceof D&&i[1]instanceof D?z(i[0],i[1]):!(!c(i[0])||!c(i[1]))&&i[0].equals(i[1])))))},n.functions.relate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,3,3,t,e),o[0]instanceof D&&o[1]instanceof D)return L(o[0],o[1],f(o[2]));if(o[0]instanceof D&&null===o[1])return!1;if(o[1]instanceof D&&null===o[0])return!1;if(null===o[0]&&null===o[1])return!1;throw new r(t,i.InvalidParameter,e)}))},n.functions.intersection=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null===i[0]||null===i[1]?null:T(i[0],i[1]))))},n.functions.union=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{const u=[];if(0===(s=l(s)).length)throw new r(t,i.WrongNumberOfParameters,e);if(1===s.length)if(d(s[0])){const n=l(s[0]);for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}else{if(!m(s[0])){if(s[0]instanceof D)return w(a(s[0]),t.spatialReference);if(null===s[0])return null;throw new r(t,i.InvalidParameter,e)}{const n=l(s[0].toArray());for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}}else for(let a=0;a<s.length;a++)if(null!==s[a]){if(!(s[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(s[a])}return 0===u.length?null:W(u)}))},n.functions.difference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null!==i[0]&&null===i[1]?a(i[0]):null===i[0]?null:q(i[0],i[1]))))},n.functions.symmetricdifference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=l(i),t,e),null===i[0]&&null===i[1]?null:null===i[0]?a(i[1]):null===i[1]?a(i[0]):G(i[0],i[1]))))},n.functions.clip=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,2,t,e),!(o[1]instanceof O)&&null!==o[1])throw new r(t,i.InvalidParameter,e);if(null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return null===o[1]?null:H(o[0],o[1])}))},n.functions.cut=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{if(s=l(s),u(s,2,2,t,e),!(s[1]instanceof wn)&&null!==s[1])throw new r(t,i.InvalidParameter,e);if(null===s[0])return[];if(!(s[0]instanceof D))throw new r(t,i.InvalidParameter,e);return null===s[1]?[a(s[0])]:V(s[0],s[1])}))},n.functions.area=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,s)=>{if(u(s,1,2,t,e),null===(s=l(s))[0])return 0;if(h(s[0])){const n=await s[0].sumArea(o(y(s[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(s[0])||m(s[0])){const n=p(s[0],t.spatialReference);return null===n?0:B(n,o(y(s[1],-1)))}if(!(s[0]instanceof D))throw new r(t,i.InvalidParameter,e);return B(s[0],o(y(s[1],-1)))}))},n.functions.areageodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,s)=>{if(u(s,1,2,t,e),null===(s=l(s))[0])return 0;if(h(s[0])){const n=await s[0].sumArea(o(y(s[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(s[0])||m(s[0])){const n=p(s[0],t.spatialReference);return null===n?0:K(n,o(y(s[1],-1)))}if(!(s[0]instanceof D))throw new r(t,i.InvalidParameter,e);return K(s[0],o(y(s[1],-1)))}))},n.functions.length=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(h(o[0])){const n=await o[0].sumLength(s(y(o[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:Q(n,s(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return Q(o[0],s(y(o[1],-1)))}))},n.functions.length3d=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:!0===n.hasZ?vn(n,s(y(o[1],-1))):Q(n,s(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return!0===o[0].hasZ?vn(o[0],s(y(o[1],-1))):Q(o[0],s(y(o[1],-1)))}))},n.functions.lengthgeodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(h(o[0])){const n=await o[0].sumLength(s(y(o[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:X(n,s(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return X(o[0],s(y(o[1],-1)))}))},n.functions.distance=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);let c=o[0];(d(o[0])||m(o[0]))&&(c=v(o[0],t.spatialReference));let f=o[1];if((d(o[1])||m(o[1]))&&(f=v(o[1],t.spatialReference)),!(c instanceof D))throw new r(t,i.InvalidParameter,e);if(!(f instanceof D))throw new r(t,i.InvalidParameter,e);return Y(c,f,s(y(o[2],-1)))}))},n.functions.distancegeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);const c=o[0],f=o[1];if(!(c instanceof dn))throw new r(t,i.InvalidParameter,e);if(!(f instanceof dn))throw new r(t,i.InvalidParameter,e);const d=new wn({paths:[],spatialReference:c.spatialReference});return d.addPath([c,f]),X(d,s(y(o[2],-1)))}))},n.functions.densify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof mn||o[0]instanceof wn?$(o[0],c,s(y(o[2],-1))):o[0]instanceof O?$(pn(o[0]),c,s(y(o[2],-1))):o[0]}))},n.functions.densifygeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof mn||o[0]instanceof wn?_(o[0],c,s(y(o[2],-1))):o[0]instanceof O?_(pn(o[0]),c,s(y(o[2],-1))):o[0]}))},n.functions.generalize=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,4,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);return nn(o[0],c,I(y(o[2],!0)),s(y(o[3],-1)))}))},n.functions.buffer=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=l(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof D))throw new r(t,i.InvalidParameter,e);const f=P(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):tn(c[0],f,s(y(c[2],-1)))}))},n.functions.buffergeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=l(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof D))throw new r(t,i.InvalidParameter,e);const f=P(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):en(c[0],f,s(y(c[2],-1)))}))},n.functions.offset=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,6,t,e),null===o[0])return null;if(!(o[0]instanceof mn||o[0]instanceof wn))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const d=P(y(o[4],10));if(isNaN(d))throw new r(t,i.InvalidParameter,e);const m=P(y(o[5],0));if(isNaN(m))throw new r(t,i.InvalidParameter,e);return rn(o[0],c,s(y(o[2],-1)),f(y(o[3],"round")).toLowerCase(),d,m)}))},n.functions.rotate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);let s=o[0];if(null===s)return null;if(!(s instanceof D))throw new r(t,i.InvalidParameter,e);s instanceof O&&(s=mn.fromExtent(s));const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=y(o[2],null);if(null===f)return an(s,c);if(f instanceof dn)return an(s,c,f);throw new r(t,i.InvalidParameter,e)}))},n.functions.centroid=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{if(s=l(s),u(s,1,1,t,e),null===s[0])return null;let c=s[0];if((d(s[0])||m(s[0]))&&(c=v(s[0],t.spatialReference)),null===c)return null;if(!(c instanceof D))throw new r(t,i.InvalidParameter,e);return c instanceof dn?w(a(s[0]),t.spatialReference):c instanceof mn?c.centroid:c instanceof wn?j(c):c instanceof fn?x(c):c instanceof O?c.center:null}))},n.functions.multiparttosinglepart=function(t,e){return n.standardFunctionAsync(t,e,(async(n,o,s)=>{s=l(s),u(s,1,1,t,e);const c=[];if(null===s[0])return null;if(!(s[0]instanceof D))throw new r(t,i.InvalidParameter,e);if(s[0]instanceof dn)return[w(a(s[0]),t.spatialReference)];if(s[0]instanceof O)return[w(a(s[0]),t.spatialReference)];const f=await on(s[0]);if(f instanceof mn){const n=[],t=[];for(let e=0;e<f.rings.length;e++)if(f.isClockwise(f.rings[e])){const t=hn({rings:[f.rings[e]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(t)}else t.push({ring:f.rings[e],pt:f.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(f instanceof wn){const n=[];for(let t=0;t<f.paths.length;t++){const e=hn({paths:[f.paths[t]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(e)}return n}if(s[0]instanceof fn){const n=w(a(s[0]),t.spatialReference);for(let t=0;t<n.points.length;t++)c.push(n.getPoint(t));return c}return null}))},n.functions.issimple=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return!0;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return sn(o[0])}))},n.functions.simplify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return on(o[0])}))},n.functions.convexhull=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return ln(o[0])}))},n.functions.getuser=function(a,o){return n.standardFunctionAsync(a,o,(async(n,s,l)=>{u(l,0,2,a,o);let c=y(l[1],""),d=!0===c;if(c=!0===c||!1===c?"":f(c),0===l.length||l[0]instanceof t){let n=null;n=a.services&&a.services.portal?a.services.portal:yn.getDefault(),l.length>0&&(n=F(l[0],n));const t=await R(n,c,d);if(t){const n=JSON.parse(JSON.stringify(t));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,A(a))}return null}let m=null;if(h(l[0])&&(m=l[0]),m){if(d=!1,c)return null;await m.load();const n=await m.getOwningSystemUrl();if(!n){if(!c){const n=await m.getIdentityUser();return n?e.convertObjectToArcadeDictionary({username:n},A(a)):null}return null}let r=null;r=a.services&&a.services.portal?a.services.portal:yn.getDefault(),r=F(new t(n),r);const i=await R(r,c,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,A(a))}return null}throw new r(a,i.InvalidParameter,o)}))}),n.functions.nearestcoordinate=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,s)=>{if(s=l(s),u(s,2,2,t,a),!(s[0]instanceof D||null===s[0]))throw new r(t,i.InvalidParameter,a);if(!(s[1]instanceof dn||null===s[1]))throw new r(t,i.InvalidParameter,a);if(null===s[0]||null===s[1])return null;const c=await un(s[0],s[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},A(t),!1,!0)}))},n.functions.nearestvertex=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,s)=>{if(s=l(s),u(s,2,2,t,a),!(s[0]instanceof D||null===s[0]))throw new r(t,i.InvalidParameter,a);if(!(s[1]instanceof dn||null===s[1]))throw new r(t,i.InvalidParameter,a);if(null===s[0]||null===s[1])return null;const c=await cn(s[0],s[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},A(t),!1,!0)}))}}export{Pn as registerFunctions};
5
+ import{version as n}from"../../kernel.js";import t from"../ArcadePortal.js";import e from"../Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as i}from"../executionError.js";import{cloneGeometry as a,convertSquareUnitsToCode as o,convertLinearUnitsToCode as l}from"../kernel.js";import{D as s,C as u,k as c,j as f,m as d,o as m,y as w,r as h,F as y,E as p,G as g,H as v,g as P,h as I,J as A}from"../../chunks/languageUtils.js";import{getPortal as F,lookupUser as R}from"../portalUtils.js";import{centroidPolyline as j,centroidMultiPoint as x,getMetersPerVerticalUnitForSR as N,segmentLength3d as b}from"./centroid.js";import{getMetersPerUnitForSR as S}from"../../core/unitUtils.js";import O from"../../geometry/Extent.js";import D from"../../geometry/Geometry.js";import{disjoint as k,intersects as C,touches as J,crosses as M,within as Z,contains as E,overlaps as U,equals as z,relate as L,intersect as T,union as W,difference as q,symmetricDifference as G,clip as H,cut as V,planarArea as B,geodesicArea as K,planarLength as Q,geodesicLength as X,distance as Y,densify as $,geodesicDensify as _,generalize as nn,buffer as tn,geodesicBuffer as en,offset as rn,rotate as an,simplify as on,isSimple as ln,convexHull as sn,nearestCoordinate as un,nearestVertex as cn}from"../../geometry/geometryEngineAsync.js";import fn from"../../geometry/Multipoint.js";import dn from"../../geometry/Point.js";import mn from"../../geometry/Polygon.js";import wn from"../../geometry/Polyline.js";import{fromJSON as hn}from"../../geometry/support/jsonUtils.js";import yn from"../../portal/Portal.js";function pn(t){return 0===n.indexOf("4.")?mn.fromExtent(t):new mn({spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]})}function gn(n,t,e){if(u(n,2,2,t,e),n[0]instanceof D&&n[1]instanceof D);else if(n[0]instanceof D&&null===n[1]);else if(n[1]instanceof D&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new r(t,i.InvalidParameter,e)}async function vn(n,t){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let e=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){e=N(n.spatialReference)/S(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=b(a[n],a[n-1],e);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=b(a[n],a[n-1],e);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=b(a[0],a[a.length-1],e))}else"extent"===n.type&&(r+=2*b([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],e),r+=2*b([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],e),r*=2,r+=4*Math.abs(y(n.zmax,0)*e-y(n.zmin,0)*e));const i=new wn({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return Q(i,t)}function Pn(n){"async"===n.mode&&(n.functions.disjoint=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null===i[0]||null===i[1]||k(i[0],i[1]))))},n.functions.intersects=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&C(i[0],i[1]))))},n.functions.touches=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&J(i[0],i[1]))))},n.functions.crosses=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&M(i[0],i[1]))))},n.functions.within=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&Z(i[0],i[1]))))},n.functions.contains=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&E(i[0],i[1]))))},n.functions.overlaps=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&U(i[0],i[1]))))},n.functions.equals=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(u(i,2,2,t,e),i[0]===i[1]||(i[0]instanceof D&&i[1]instanceof D?z(i[0],i[1]):!(!c(i[0])||!c(i[1]))&&i[0].equals(i[1])))))},n.functions.relate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,3,3,t,e),o[0]instanceof D&&o[1]instanceof D)return L(o[0],o[1],f(o[2]));if(o[0]instanceof D&&null===o[1])return!1;if(o[1]instanceof D&&null===o[0])return!1;if(null===o[0]&&null===o[1])return!1;throw new r(t,i.InvalidParameter,e)}))},n.functions.intersection=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null===i[0]||null===i[1]?null:T(i[0],i[1]))))},n.functions.union=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{const u=[];if(0===(l=s(l)).length)throw new r(t,i.WrongNumberOfParameters,e);if(1===l.length)if(d(l[0])){const n=s(l[0]);for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}else{if(!m(l[0])){if(l[0]instanceof D)return w(a(l[0]),t.spatialReference);if(null===l[0])return null;throw new r(t,i.InvalidParameter,e)}{const n=s(l[0].toArray());for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}}else for(let a=0;a<l.length;a++)if(null!==l[a]){if(!(l[a]instanceof D))throw new r(t,i.InvalidParameter,e);u.push(l[a])}return 0===u.length?null:W(u)}))},n.functions.difference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null!==i[0]&&null===i[1]?a(i[0]):null===i[0]?null:q(i[0],i[1]))))},n.functions.symmetricdifference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(gn(i=s(i),t,e),null===i[0]&&null===i[1]?null:null===i[0]?a(i[1]):null===i[1]?a(i[0]):G(i[0],i[1]))))},n.functions.clip=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,2,t,e),!(o[1]instanceof O)&&null!==o[1])throw new r(t,i.InvalidParameter,e);if(null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return null===o[1]?null:H(o[0],o[1])}))},n.functions.cut=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{if(l=s(l),u(l,2,2,t,e),!(l[1]instanceof wn)&&null!==l[1])throw new r(t,i.InvalidParameter,e);if(null===l[0])return[];if(!(l[0]instanceof D))throw new r(t,i.InvalidParameter,e);return null===l[1]?[a(l[0])]:V(l[0],l[1])}))},n.functions.area=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,l)=>{if(u(l,1,2,t,e),null===(l=s(l))[0])return 0;if(h(l[0])){const n=await l[0].sumArea(o(y(l[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(l[0])||m(l[0])){const n=p(l[0],t.spatialReference);return null===n?0:B(n,o(y(l[1],-1)))}if(!(l[0]instanceof D))throw new r(t,i.InvalidParameter,e);return B(l[0],o(y(l[1],-1)))}))},n.functions.areageodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,l)=>{if(u(l,1,2,t,e),null===(l=s(l))[0])return 0;if(h(l[0])){const n=await l[0].sumArea(o(y(l[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(l[0])||m(l[0])){const n=p(l[0],t.spatialReference);return null===n?0:K(n,o(y(l[1],-1)))}if(!(l[0]instanceof D))throw new r(t,i.InvalidParameter,e);return K(l[0],o(y(l[1],-1)))}))},n.functions.length=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(h(o[0])){const n=await o[0].sumLength(l(y(o[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:Q(n,l(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return Q(o[0],l(y(o[1],-1)))}))},n.functions.length3d=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:!0===n.hasZ?vn(n,l(y(o[1],-1))):Q(n,l(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return!0===o[0].hasZ?vn(o[0],l(y(o[1],-1))):Q(o[0],l(y(o[1],-1)))}))},n.functions.lengthgeodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(h(o[0])){const n=await o[0].sumLength(l(y(o[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(d(o[0])||m(o[0])){const n=g(o[0],t.spatialReference);return null===n?0:X(n,l(y(o[1],-1)))}if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return X(o[0],l(y(o[1],-1)))}))},n.functions.distance=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);let c=o[0];(d(o[0])||m(o[0]))&&(c=v(o[0],t.spatialReference));let f=o[1];if((d(o[1])||m(o[1]))&&(f=v(o[1],t.spatialReference)),!(c instanceof D))throw new r(t,i.InvalidParameter,e);if(!(f instanceof D))throw new r(t,i.InvalidParameter,e);return Y(c,f,l(y(o[2],-1)))}))},n.functions.distancegeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);const c=o[0],f=o[1];if(!(c instanceof dn))throw new r(t,i.InvalidParameter,e);if(!(f instanceof dn))throw new r(t,i.InvalidParameter,e);const d=new wn({paths:[],spatialReference:c.spatialReference});return d.addPath([c,f]),X(d,l(y(o[2],-1)))}))},n.functions.densify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof mn||o[0]instanceof wn?$(o[0],c,l(y(o[2],-1))):o[0]instanceof O?$(pn(o[0]),c,l(y(o[2],-1))):o[0]}))},n.functions.densifygeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof mn||o[0]instanceof wn?_(o[0],c,l(y(o[2],-1))):o[0]instanceof O?_(pn(o[0]),c,l(y(o[2],-1))):o[0]}))},n.functions.generalize=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,4,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);return nn(o[0],c,I(y(o[2],!0)),l(y(o[3],-1)))}))},n.functions.buffer=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=s(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof D))throw new r(t,i.InvalidParameter,e);const f=P(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):tn(c[0],f,l(y(c[2],-1)))}))},n.functions.buffergeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=s(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof D))throw new r(t,i.InvalidParameter,e);const f=P(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):en(c[0],f,l(y(c[2],-1)))}))},n.functions.offset=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,6,t,e),null===o[0])return null;if(!(o[0]instanceof mn||o[0]instanceof wn))throw new r(t,i.InvalidParameter,e);const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const d=P(y(o[4],10));if(isNaN(d))throw new r(t,i.InvalidParameter,e);const m=P(y(o[5],0));if(isNaN(m))throw new r(t,i.InvalidParameter,e);return rn(o[0],c,l(y(o[2],-1)),f(y(o[3],"round")).toLowerCase(),d,m)}))},n.functions.rotate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);let l=o[0];if(null===l)return null;if(!(l instanceof D))throw new r(t,i.InvalidParameter,e);l instanceof O&&(l=mn.fromExtent(l));const c=P(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=y(o[2],null);if(null===f)return an(l,c);if(f instanceof dn)return an(l,c,f);throw new r(t,i.InvalidParameter,e)}))},n.functions.centroid=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{if(l=s(l),u(l,1,1,t,e),null===l[0])return null;let c=l[0];if((d(l[0])||m(l[0]))&&(c=v(l[0],t.spatialReference)),null===c)return null;if(!(c instanceof D))throw new r(t,i.InvalidParameter,e);return c instanceof dn?w(a(l[0]),t.spatialReference):c instanceof mn?c.centroid:c instanceof wn?j(c):c instanceof fn?x(c):c instanceof O?c.center:null}))},n.functions.multiparttosinglepart=function(t,e){return n.standardFunctionAsync(t,e,(async(n,o,l)=>{l=s(l),u(l,1,1,t,e);const c=[];if(null===l[0])return null;if(!(l[0]instanceof D))throw new r(t,i.InvalidParameter,e);if(l[0]instanceof dn)return[w(a(l[0]),t.spatialReference)];if(l[0]instanceof O)return[w(a(l[0]),t.spatialReference)];const f=await on(l[0]);if(f instanceof mn){const n=[],t=[];for(let e=0;e<f.rings.length;e++)if(f.isClockwise(f.rings[e])){const t=hn({rings:[f.rings[e]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(t)}else t.push({ring:f.rings[e],pt:f.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(f instanceof wn){const n=[];for(let t=0;t<f.paths.length;t++){const e=hn({paths:[f.paths[t]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof fn){const n=w(a(l[0]),t.spatialReference);for(let t=0;t<n.points.length;t++)c.push(n.getPoint(t));return c}return null}))},n.functions.issimple=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return!0;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return ln(o[0])}))},n.functions.simplify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return on(o[0])}))},n.functions.convexhull=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof D))throw new r(t,i.InvalidParameter,e);return sn(o[0])}))},n.functions.getuser=function(a,o){return n.standardFunctionAsync(a,o,(async(n,l,s)=>{u(s,0,2,a,o);let c=y(s[1],""),d=!0===c;if(c=!0===c||!1===c?"":f(c),0===s.length||s[0]instanceof t){let n=null;n=a.services&&a.services.portal?a.services.portal:yn.getDefault(),s.length>0&&(n=F(s[0],n));const t=await R(n,c,d);if(t){const n=JSON.parse(JSON.stringify(t));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,A(a))}return null}let m=null;if(h(s[0])&&(m=s[0]),m){if(d=!1,c)return null;await m.load();const n=await m.getOwningSystemUrl();if(!n){if(!c){const n=await m.getIdentityUser();return n?e.convertObjectToArcadeDictionary({username:n},A(a)):null}return null}let r=null;r=a.services&&a.services.portal?a.services.portal:yn.getDefault(),r=F(new t(n),r);const i=await R(r,c,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,A(a))}return null}throw new r(a,i.InvalidParameter,o)}))}),n.functions.nearestcoordinate=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,l)=>{if(l=s(l),u(l,2,2,t,a),!(l[0]instanceof D||null===l[0]))throw new r(t,i.InvalidParameter,a);if(!(l[1]instanceof dn||null===l[1]))throw new r(t,i.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const c=await un(l[0],l[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},A(t),!1,!0)}))},n.functions.nearestvertex=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,l)=>{if(l=s(l),u(l,2,2,t,a),!(l[0]instanceof D||null===l[0]))throw new r(t,i.InvalidParameter,a);if(!(l[1]instanceof dn||null===l[1]))throw new r(t,i.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const c=await cn(l[0],l[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},A(t),!1,!0)}))}}export{Pn as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{version as n}from"../../kernel.js";import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as i,convertSquareUnitsToCode as a,convertLinearUnitsToCode as l}from"../kernel.js";import{D as o,C as f,k as s,j as u,m as c,o as m,y as h,E as w,F as d,G as p,H as g,g as v,h as P,J as y}from"../../chunks/languageUtils.js";import{centroidPolyline as I,centroidMultiPoint as x,getMetersPerVerticalUnitForSR as R,segmentLength3d as N}from"./centroid.js";import{getMetersPerUnitForSR as j}from"../../core/unitUtils.js";import L from"../../geometry/Extent.js";import b from"../../geometry/Geometry.js";import k from"../../geometry/Multipoint.js";import A from"../../geometry/Point.js";import D from"../../geometry/Polygon.js";import E from"../../geometry/Polyline.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";let Z=null;function O(e){return 0===n.indexOf("4.")?D.fromExtent(e):new D({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function z(n){Z=n}function C(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let t=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){t=R(n.spatialReference)/j(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=N(a[n],a[n-1],t);else if("polygon"===n.type)for(const a of n.rings){for(let e=1;e<a.length;e++)r+=N(a[e],a[e-1],t);const n=a.at(-1);(a[0][0]!==n[0]||a[0][1]!==n[1]||void 0!==a[0][2]&&a[0][2]!==n[2])&&(r+=N(a[0],n,t))}else"extent"===n.type&&(r+=2*N([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],t),r+=2*N([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],t),r*=2,r+=4*Math.abs(d(n.zmax,0)*t-d(n.zmin,0)*t));const i=new E({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return Z.planarLength(i,e)}function q(n,R){function N(n,e,i){if(f(i,2,2,n,e),i[0]instanceof b&&i[1]instanceof b);else if(i[0]instanceof b&&null===i[1]);else if(i[1]instanceof b&&null===i[0]);else if(null!==i[0]||null!==i[1])throw new t(n,r.InvalidParameter,e)}n.disjoint=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null===i[0]||null===i[1]||Z.disjoint(i[0],i[1]))))},n.intersects=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.intersects(i[0],i[1]))))},n.touches=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.touches(i[0],i[1]))))},n.crosses=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.crosses(i[0],i[1]))))},n.within=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.within(i[0],i[1]))))},n.contains=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.contains(i[0],i[1]))))},n.overlaps=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.overlaps(i[0],i[1]))))},n.equals=function(n,e){return R(n,e,((t,r,i)=>(f(i,2,2,n,e),i[0]===i[1]||(i[0]instanceof b&&i[1]instanceof b?Z.equals(i[0],i[1]):!(!s(i[0])||!s(i[1]))&&i[0].equals(i[1])))))},n.relate=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,3,3,n,e),l[0]instanceof b&&l[1]instanceof b)return Z.relate(l[0],l[1],u(l[2]));if(l[0]instanceof b&&null===l[1])return!1;if(l[1]instanceof b&&null===l[0])return!1;if(null===l[0]&&null===l[1])return!1;throw new t(n,r.InvalidParameter,e)}))},n.intersection=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null===i[0]||null===i[1]?null:Z.intersect(i[0],i[1]))))},n.union=function(n,e){return R(n,e,((a,l,f)=>{const s=[];if(0===(f=o(f)).length)throw new t(n,r.WrongNumberOfParameters,e);if(1===f.length)if(c(f[0])){const i=o(f[0]);for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof b))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}else{if(!m(f[0])){if(f[0]instanceof b)return h(i(f[0]),n.spatialReference);if(null===f[0])return null;throw new t(n,r.InvalidParameter,e)}{const i=o(f[0].toArray());for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof b))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}}else for(let i=0;i<f.length;i++)if(null!==f[i]){if(!(f[i]instanceof b))throw new t(n,r.InvalidParameter,e);s.push(f[i])}return 0===s.length?null:Z.union(s)}))},n.difference=function(n,e){return R(n,e,((t,r,a)=>(a=o(a),N(n,e,a),null!==a[0]&&null===a[1]?i(a[0]):null===a[0]?null:Z.difference(a[0],a[1]))))},n.symmetricdifference=function(n,e){return R(n,e,((t,r,a)=>(a=o(a),N(n,e,a),null===a[0]&&null===a[1]?null:null===a[0]?i(a[1]):null===a[1]?i(a[0]):Z.symmetricDifference(a[0],a[1]))))},n.clip=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,2,2,n,e),!(l[1]instanceof L)&&null!==l[1])throw new t(n,r.InvalidParameter,e);if(null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return null===l[1]?null:Z.clip(l[0],l[1])}))},n.cut=function(n,e){return R(n,e,((a,l,s)=>{if(s=o(s),f(s,2,2,n,e),!(s[1]instanceof E)&&null!==s[1])throw new t(n,r.InvalidParameter,e);if(null===s[0])return[];if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return null===s[1]?[i(s[0])]:Z.cut(s[0],s[1])}))},n.area=function(n,e){return R(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(c(s[0])||m(s[0])){const e=w(s[0],n.spatialReference);return null===e?0:Z.planarArea(e,a(d(s[1],-1)))}if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.planarArea(s[0],a(d(s[1],-1)))}))},n.areageodetic=function(n,e){return R(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(c(s[0])||m(s[0])){const e=w(s[0],n.spatialReference);return null===e?0:Z.geodesicArea(e,a(d(s[1],-1)))}if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.geodesicArea(s[0],a(d(s[1],-1)))}))},n.length=function(n,e){return R(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(c(s[0])||m(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:Z.planarLength(e,l(d(s[1],-1)))}if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.planarLength(s[0],l(d(s[1],-1)))}))},n.length3d=function(n,e){return R(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(c(s[0])||m(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:!0===e.hasZ?C(e,l(d(s[1],-1))):Z.planarLength(e,l(d(s[1],-1)))}if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return!0===s[0].hasZ?C(s[0],l(d(s[1],-1))):Z.planarLength(s[0],l(d(s[1],-1)))}))},n.lengthgeodetic=function(n,e){return R(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(c(s[0])||m(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:Z.geodesicLength(e,l(d(s[1],-1)))}if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.geodesicLength(s[0],l(d(s[1],-1)))}))},n.distance=function(n,e){return R(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);let u=s[0];(c(s[0])||m(s[0]))&&(u=g(s[0],n.spatialReference));let h=s[1];if((c(s[1])||m(s[1]))&&(h=g(s[1],n.spatialReference)),!(u instanceof b))throw new t(n,r.InvalidParameter,e);if(!(h instanceof b))throw new t(n,r.InvalidParameter,e);return Z.distance(u,h,l(d(s[2],-1)))}))},n.distancegeodetic=function(n,e){return R(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);const u=s[0],c=s[1];if(!(u instanceof A))throw new t(n,r.InvalidParameter,e);if(!(c instanceof A))throw new t(n,r.InvalidParameter,e);const m=new E({paths:[],spatialReference:u.spatialReference});return m.addPath([u,c]),Z.geodesicLength(m,l(d(s[2],-1)))}))},n.densify=function(n,e){return R(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);const u=v(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof D||s[0]instanceof E?Z.densify(s[0],u,l(d(s[2],-1))):s[0]instanceof L?Z.densify(O(s[0]),u,l(d(s[2],-1))):s[0]}))},n.densifygeodetic=function(n,e){return R(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);const u=v(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof D||s[0]instanceof E?Z.geodesicDensify(s[0],u,l(d(s[2],-1))):s[0]instanceof L?Z.geodesicDensify(O(s[0]),u,l(d(s[2],-1))):s[0]}))},n.generalize=function(n,e){return R(n,e,((i,a,s)=>{if(s=o(s),f(s,2,4,n,e),null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);const u=v(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);return Z.generalize(s[0],u,P(d(s[2],!0)),l(d(s[3],-1)))}))},n.buffer=function(n,e){return R(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);const c=v(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):Z.buffer(u[0],c,l(d(u[2],-1)))}))},n.buffergeodetic=function(n,e){return R(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);const c=v(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):Z.geodesicBuffer(u[0],c,l(d(u[2],-1)))}))},n.offset=function(n,e){return R(n,e,((i,a,s)=>{if(s=o(s),f(s,2,6,n,e),null===s[0])return null;if(!(s[0]instanceof D||s[0]instanceof E))throw new t(n,r.InvalidParameter,e);const c=v(s[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);const m=v(d(s[4],10));if(isNaN(m))throw new t(n,r.InvalidParameter,e);const h=v(d(s[5],0));if(isNaN(h))throw new t(n,r.InvalidParameter,e);return Z.offset(s[0],c,l(d(s[2],-1)),u(d(s[3],"round")).toLowerCase(),m,h)}))},n.rotate=function(n,e){return R(n,e,((i,a,l)=>{l=o(l),f(l,2,3,n,e);let s=l[0];if(null===s)return null;if(!(s instanceof b))throw new t(n,r.InvalidParameter,e);s instanceof L&&(s=D.fromExtent(s));const u=v(l[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);const c=d(l[2],null);if(null===c)return Z.rotate(s,u);if(c instanceof A)return Z.rotate(s,u,c);throw new t(n,r.InvalidParameter,e)}))},n.centroid=function(n,e){return R(n,e,((a,l,s)=>{if(s=o(s),f(s,1,1,n,e),null===s[0])return null;let u=s[0];if((c(s[0])||m(s[0]))&&(u=g(s[0],n.spatialReference)),null===u)return null;if(!(u instanceof b))throw new t(n,r.InvalidParameter,e);return u instanceof A?h(i(s[0]),n.spatialReference):u instanceof D?u.centroid:u instanceof E?I(u):u instanceof k?x(u):u instanceof L?u.center:null}))},n.multiparttosinglepart=function(n,e){return R(n,e,((a,l,s)=>{s=o(s),f(s,1,1,n,e);const u=[];if(null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);if(s[0]instanceof A)return[h(i(s[0]),n.spatialReference)];if(s[0]instanceof L)return[h(i(s[0]),n.spatialReference)];const c=Z.simplify(s[0]);if(c instanceof D){const n=[],e=[];for(let t=0;t<c.rings.length;t++)if(c.isClockwise(c.rings[t])){const e=M({rings:[c.rings[t]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(e)}else e.push({ring:c.rings[t],pt:c.getPoint(t,0)});for(let t=0;t<e.length;t++)for(let r=0;r<n.length;r++)if(n[r].contains(e[t].pt)){n[r].addRing(e[t].ring);break}return n}if(c instanceof E){const n=[];for(let e=0;e<c.paths.length;e++){const t=M({paths:[c.paths[e]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(t)}return n}if(s[0]instanceof k){const e=h(i(s[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)u.push(e.getPoint(n));return u}return null}))},n.issimple=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return!0;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.isSimple(l[0])}))},n.simplify=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.simplify(l[0])}))},n.convexhull=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.convexHull(l[0])}))},n.nearestcoordinate=function(n,i){return R(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof b||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof A||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=Z.nearestCoordinate(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance},y(n),!1,!0)}))},n.nearestvertex=function(n,i){return R(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof b||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof A||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=Z.nearestVertex(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance},y(n),!1,!0)}))}}export{q as registerFunctions,z as setGeometryEngine};
5
+ import{version as n}from"../../kernel.js";import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as i,convertSquareUnitsToCode as a,convertLinearUnitsToCode as l}from"../kernel.js";import{D as o,C as f,k as u,j as s,m as c,o as m,y as h,E as w,F as d,G as p,H as g,g as v,h as P,J as y}from"../../chunks/languageUtils.js";import{centroidPolyline as I,centroidMultiPoint as x,getMetersPerVerticalUnitForSR as R,segmentLength3d as N}from"./centroid.js";import{getMetersPerUnitForSR as j}from"../../core/unitUtils.js";import L from"../../geometry/Extent.js";import b from"../../geometry/Geometry.js";import k from"../../geometry/Multipoint.js";import A from"../../geometry/Point.js";import D from"../../geometry/Polygon.js";import E from"../../geometry/Polyline.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";let Z=null;function O(e){return 0===n.indexOf("4.")?D.fromExtent(e):new D({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function z(n){Z=n}function C(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let t=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){t=R(n.spatialReference)/j(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=N(a[n],a[n-1],t);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=N(a[n],a[n-1],t);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=N(a[0],a[a.length-1],t))}else"extent"===n.type&&(r+=2*N([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],t),r+=2*N([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],t),r*=2,r+=4*Math.abs(d(n.zmax,0)*t-d(n.zmin,0)*t));const i=new E({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return Z.planarLength(i,e)}function q(n,R){function N(n,e,i){if(f(i,2,2,n,e),i[0]instanceof b&&i[1]instanceof b);else if(i[0]instanceof b&&null===i[1]);else if(i[1]instanceof b&&null===i[0]);else if(null!==i[0]||null!==i[1])throw new t(n,r.InvalidParameter,e)}n.disjoint=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null===i[0]||null===i[1]||Z.disjoint(i[0],i[1]))))},n.intersects=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.intersects(i[0],i[1]))))},n.touches=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.touches(i[0],i[1]))))},n.crosses=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.crosses(i[0],i[1]))))},n.within=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.within(i[0],i[1]))))},n.contains=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.contains(i[0],i[1]))))},n.overlaps=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null!==i[0]&&null!==i[1]&&Z.overlaps(i[0],i[1]))))},n.equals=function(n,e){return R(n,e,((t,r,i)=>(f(i,2,2,n,e),i[0]===i[1]||(i[0]instanceof b&&i[1]instanceof b?Z.equals(i[0],i[1]):!(!u(i[0])||!u(i[1]))&&i[0].equals(i[1])))))},n.relate=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,3,3,n,e),l[0]instanceof b&&l[1]instanceof b)return Z.relate(l[0],l[1],s(l[2]));if(l[0]instanceof b&&null===l[1])return!1;if(l[1]instanceof b&&null===l[0])return!1;if(null===l[0]&&null===l[1])return!1;throw new t(n,r.InvalidParameter,e)}))},n.intersection=function(n,e){return R(n,e,((t,r,i)=>(i=o(i),N(n,e,i),null===i[0]||null===i[1]?null:Z.intersect(i[0],i[1]))))},n.union=function(n,e){return R(n,e,((a,l,f)=>{const u=[];if(0===(f=o(f)).length)throw new t(n,r.WrongNumberOfParameters,e);if(1===f.length)if(c(f[0])){const i=o(f[0]);for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof b))throw new t(n,r.InvalidParameter,e);u.push(i[a])}}else{if(!m(f[0])){if(f[0]instanceof b)return h(i(f[0]),n.spatialReference);if(null===f[0])return null;throw new t(n,r.InvalidParameter,e)}{const i=o(f[0].toArray());for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof b))throw new t(n,r.InvalidParameter,e);u.push(i[a])}}}else for(let i=0;i<f.length;i++)if(null!==f[i]){if(!(f[i]instanceof b))throw new t(n,r.InvalidParameter,e);u.push(f[i])}return 0===u.length?null:Z.union(u)}))},n.difference=function(n,e){return R(n,e,((t,r,a)=>(a=o(a),N(n,e,a),null!==a[0]&&null===a[1]?i(a[0]):null===a[0]?null:Z.difference(a[0],a[1]))))},n.symmetricdifference=function(n,e){return R(n,e,((t,r,a)=>(a=o(a),N(n,e,a),null===a[0]&&null===a[1]?null:null===a[0]?i(a[1]):null===a[1]?i(a[0]):Z.symmetricDifference(a[0],a[1]))))},n.clip=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,2,2,n,e),!(l[1]instanceof L)&&null!==l[1])throw new t(n,r.InvalidParameter,e);if(null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return null===l[1]?null:Z.clip(l[0],l[1])}))},n.cut=function(n,e){return R(n,e,((a,l,u)=>{if(u=o(u),f(u,2,2,n,e),!(u[1]instanceof E)&&null!==u[1])throw new t(n,r.InvalidParameter,e);if(null===u[0])return[];if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return null===u[1]?[i(u[0])]:Z.cut(u[0],u[1])}))},n.area=function(n,e){return R(n,e,((i,l,u)=>{if(f(u,1,2,n,e),null===(u=o(u))[0])return 0;if(c(u[0])||m(u[0])){const e=w(u[0],n.spatialReference);return null===e?0:Z.planarArea(e,a(d(u[1],-1)))}if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.planarArea(u[0],a(d(u[1],-1)))}))},n.areageodetic=function(n,e){return R(n,e,((i,l,u)=>{if(f(u,1,2,n,e),null===(u=o(u))[0])return 0;if(c(u[0])||m(u[0])){const e=w(u[0],n.spatialReference);return null===e?0:Z.geodesicArea(e,a(d(u[1],-1)))}if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.geodesicArea(u[0],a(d(u[1],-1)))}))},n.length=function(n,e){return R(n,e,((i,a,u)=>{if(f(u,1,2,n,e),null===(u=o(u))[0])return 0;if(c(u[0])||m(u[0])){const e=p(u[0],n.spatialReference);return null===e?0:Z.planarLength(e,l(d(u[1],-1)))}if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.planarLength(u[0],l(d(u[1],-1)))}))},n.length3d=function(n,e){return R(n,e,((i,a,u)=>{if(f(u,1,2,n,e),null===(u=o(u))[0])return 0;if(c(u[0])||m(u[0])){const e=p(u[0],n.spatialReference);return null===e?0:!0===e.hasZ?C(e,l(d(u[1],-1))):Z.planarLength(e,l(d(u[1],-1)))}if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return!0===u[0].hasZ?C(u[0],l(d(u[1],-1))):Z.planarLength(u[0],l(d(u[1],-1)))}))},n.lengthgeodetic=function(n,e){return R(n,e,((i,a,u)=>{if(f(u,1,2,n,e),null===(u=o(u))[0])return 0;if(c(u[0])||m(u[0])){const e=p(u[0],n.spatialReference);return null===e?0:Z.geodesicLength(e,l(d(u[1],-1)))}if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.geodesicLength(u[0],l(d(u[1],-1)))}))},n.distance=function(n,e){return R(n,e,((i,a,u)=>{u=o(u),f(u,2,3,n,e);let s=u[0];(c(u[0])||m(u[0]))&&(s=g(u[0],n.spatialReference));let h=u[1];if((c(u[1])||m(u[1]))&&(h=g(u[1],n.spatialReference)),!(s instanceof b))throw new t(n,r.InvalidParameter,e);if(!(h instanceof b))throw new t(n,r.InvalidParameter,e);return Z.distance(s,h,l(d(u[2],-1)))}))},n.distancegeodetic=function(n,e){return R(n,e,((i,a,u)=>{u=o(u),f(u,2,3,n,e);const s=u[0],c=u[1];if(!(s instanceof A))throw new t(n,r.InvalidParameter,e);if(!(c instanceof A))throw new t(n,r.InvalidParameter,e);const m=new E({paths:[],spatialReference:s.spatialReference});return m.addPath([s,c]),Z.geodesicLength(m,l(d(u[2],-1)))}))},n.densify=function(n,e){return R(n,e,((i,a,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);const s=v(u[1]);if(isNaN(s))throw new t(n,r.InvalidParameter,e);if(s<=0)throw new t(n,r.InvalidParameter,e);return u[0]instanceof D||u[0]instanceof E?Z.densify(u[0],s,l(d(u[2],-1))):u[0]instanceof L?Z.densify(O(u[0]),s,l(d(u[2],-1))):u[0]}))},n.densifygeodetic=function(n,e){return R(n,e,((i,a,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);const s=v(u[1]);if(isNaN(s))throw new t(n,r.InvalidParameter,e);if(s<=0)throw new t(n,r.InvalidParameter,e);return u[0]instanceof D||u[0]instanceof E?Z.geodesicDensify(u[0],s,l(d(u[2],-1))):u[0]instanceof L?Z.geodesicDensify(O(u[0]),s,l(d(u[2],-1))):u[0]}))},n.generalize=function(n,e){return R(n,e,((i,a,u)=>{if(u=o(u),f(u,2,4,n,e),null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);const s=v(u[1]);if(isNaN(s))throw new t(n,r.InvalidParameter,e);return Z.generalize(u[0],s,P(d(u[2],!0)),l(d(u[3],-1)))}))},n.buffer=function(n,e){return R(n,e,((a,u,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);const c=v(s[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(s[0]):Z.buffer(s[0],c,l(d(s[2],-1)))}))},n.buffergeodetic=function(n,e){return R(n,e,((a,u,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof b))throw new t(n,r.InvalidParameter,e);const c=v(s[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(s[0]):Z.geodesicBuffer(s[0],c,l(d(s[2],-1)))}))},n.offset=function(n,e){return R(n,e,((i,a,u)=>{if(u=o(u),f(u,2,6,n,e),null===u[0])return null;if(!(u[0]instanceof D||u[0]instanceof E))throw new t(n,r.InvalidParameter,e);const c=v(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);const m=v(d(u[4],10));if(isNaN(m))throw new t(n,r.InvalidParameter,e);const h=v(d(u[5],0));if(isNaN(h))throw new t(n,r.InvalidParameter,e);return Z.offset(u[0],c,l(d(u[2],-1)),s(d(u[3],"round")).toLowerCase(),m,h)}))},n.rotate=function(n,e){return R(n,e,((i,a,l)=>{l=o(l),f(l,2,3,n,e);let u=l[0];if(null===u)return null;if(!(u instanceof b))throw new t(n,r.InvalidParameter,e);u instanceof L&&(u=D.fromExtent(u));const s=v(l[1]);if(isNaN(s))throw new t(n,r.InvalidParameter,e);const c=d(l[2],null);if(null===c)return Z.rotate(u,s);if(c instanceof A)return Z.rotate(u,s,c);throw new t(n,r.InvalidParameter,e)}))},n.centroid=function(n,e){return R(n,e,((a,l,u)=>{if(u=o(u),f(u,1,1,n,e),null===u[0])return null;let s=u[0];if((c(u[0])||m(u[0]))&&(s=g(u[0],n.spatialReference)),null===s)return null;if(!(s instanceof b))throw new t(n,r.InvalidParameter,e);return s instanceof A?h(i(u[0]),n.spatialReference):s instanceof D?s.centroid:s instanceof E?I(s):s instanceof k?x(s):s instanceof L?s.center:null}))},n.multiparttosinglepart=function(n,e){return R(n,e,((a,l,u)=>{u=o(u),f(u,1,1,n,e);const s=[];if(null===u[0])return null;if(!(u[0]instanceof b))throw new t(n,r.InvalidParameter,e);if(u[0]instanceof A)return[h(i(u[0]),n.spatialReference)];if(u[0]instanceof L)return[h(i(u[0]),n.spatialReference)];const c=Z.simplify(u[0]);if(c instanceof D){const n=[],e=[];for(let t=0;t<c.rings.length;t++)if(c.isClockwise(c.rings[t])){const e=M({rings:[c.rings[t]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(e)}else e.push({ring:c.rings[t],pt:c.getPoint(t,0)});for(let t=0;t<e.length;t++)for(let r=0;r<n.length;r++)if(n[r].contains(e[t].pt)){n[r].addRing(e[t].ring);break}return n}if(c instanceof E){const n=[];for(let e=0;e<c.paths.length;e++){const t=M({paths:[c.paths[e]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(t)}return n}if(u[0]instanceof k){const e=h(i(u[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)s.push(e.getPoint(n));return s}return null}))},n.issimple=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return!0;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.isSimple(l[0])}))},n.simplify=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.simplify(l[0])}))},n.convexhull=function(n,e){return R(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof b))throw new t(n,r.InvalidParameter,e);return Z.convexHull(l[0])}))},n.nearestcoordinate=function(n,i){return R(n,i,((a,l,u)=>{if(u=o(u),f(u,2,2,n,i),!(u[0]instanceof b||null===u[0]))throw new t(n,r.InvalidParameter,i);if(!(u[1]instanceof A||null===u[1]))throw new t(n,r.InvalidParameter,i);if(null===u[0]||null===u[1])return null;const s=Z.nearestCoordinate(u[0],u[1]);return null===s||s.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance},y(n),!1,!0)}))},n.nearestvertex=function(n,i){return R(n,i,((a,l,u)=>{if(u=o(u),f(u,2,2,n,i),!(u[0]instanceof b||null===u[0]))throw new t(n,r.InvalidParameter,i);if(!(u[1]instanceof A||null===u[1]))throw new t(n,r.InvalidParameter,i);if(null===u[0]||null===u[1])return null;const s=Z.nearestVertex(u[0],u[1]);return null===s||s.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:s.coordinate,distance:s.distance},y(n),!1,!0)}))}}export{q as registerFunctions,z as setGeometryEngine};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{isBlockStatement as t,isVariableDeclarator as n,isBlockComment as e,isProgram as s}from"./types.js";function m(t,n){return!!n&&(n.loc.end.line===t.loc.start.line&&n.loc.end.column<=t.loc.start.column)}function i(t,n){return t.range[0]>=n.range[0]&&t.range[1]<=n.range[1]}class o{constructor(){this.comments=[],this._nodeStack=[],this._newComments=[]}insertInnerComments(n){if(!t(n)||0!==n.body.length)return;const e=[];for(let t=this._newComments.length-1;t>=0;--t){const s=this._newComments[t];n.range[1]>=s.range[0]&&(e.unshift(s),this._newComments.splice(t,1))}e.length&&(n.innerComments=e)}attachTrailingComments(n){if(!n)return;const e=this._nodeStack.at(-1);if(!e)return;if(t(n)&&i(e,n))for(let t=this._newComments.length-1;t>=0;--t){const s=this._newComments[t];i(s,n)&&(e.trailingComments=[...e.trailingComments??[],s],this._newComments.splice(t,1))}let s=[];if(this._newComments.length>0)for(let t=this._newComments.length-1;t>=0;--t){const i=this._newComments[t];m(i,e)?(e.trailingComments=[...e.trailingComments??[],i],this._newComments.splice(t,1)):m(i,n)&&(s.unshift(i),this._newComments.splice(t,1))}if(e?.trailingComments){m(e.trailingComments[0],n)&&(s=[...s,...e.trailingComments],delete e.trailingComments)}s.length>0&&(n.trailingComments=s)}attachLeadingComments(t){if(!t)return;let s;for(;this._nodeStack.length>0;){const n=this._nodeStack.at(-1);if(!(t.range[0]<=n.range[0]))break;s=n,this._nodeStack.pop()}const m=[],i=[];if(s){for(let o=(s.leadingComments?.length??0)-1;o>=0;--o){const l=s.leadingComments[o];t.range[0]>=l.range[1]?(m.unshift(l),s.leadingComments.splice(o,1)):n(t)&&!e(l)&&(i.unshift(l),s.leadingComments.splice(o,1))}return 0===s.leadingComments?.length&&delete s.leadingComments,m.length&&(t.leadingComments=m),void(i.length&&(t.trailingComments=[...i,...t.trailingComments??[]]))}for(let n=this._newComments.length-1;n>=0;--n){const e=this._newComments[n];t.range[0]>=e.range[0]&&(m.unshift(e),this._newComments.splice(n,1))}m.length&&(t.leadingComments=m)}attachComments(t){if(s(t)&&t.body.length>0){const n=this._nodeStack.at(-1);return n?(n.trailingComments=[...n.trailingComments??[],...this._newComments],this._newComments.length=0,void this._nodeStack.pop()):(t.trailingComments=[...this._newComments],void(this._newComments.length=0))}this.attachTrailingComments(t),this.attachLeadingComments(t),this.insertInnerComments(t),this._nodeStack.push(t)}collectComment(t){this.comments.push(t),this._newComments.push(t)}}export{o as CommentHandler};
5
+ import{isBlockStatement as t,isVariableDeclarator as n,isBlockComment as e,isProgram as s}from"./types.js";function i(t,n){return!!n&&(n.loc.end.line===t.loc.start.line&&n.loc.end.column<=t.loc.start.column)}function m(t,n){return t.range[0]>=n.range[0]&&t.range[1]<=n.range[1]}class o{constructor(){this.comments=[],this._nodeStack=[],this._newComments=[]}insertInnerComments(n){if(!t(n)||0!==n.body.length)return;const e=[];for(let t=this._newComments.length-1;t>=0;--t){const s=this._newComments[t];n.range[1]>=s.range[0]&&(e.unshift(s),this._newComments.splice(t,1))}e.length&&(n.innerComments=e)}attachTrailingComments(n){if(!n)return;const e=this._nodeStack[this._nodeStack.length-1];if(t(n)&&m(e,n))for(let t=this._newComments.length-1;t>=0;--t){const s=this._newComments[t];m(s,n)&&(e.trailingComments=[...e.trailingComments??[],s],this._newComments.splice(t,1))}let s=[];if(this._newComments.length>0)for(let t=this._newComments.length-1;t>=0;--t){const m=this._newComments[t];i(m,e)?(e.trailingComments=[...e.trailingComments??[],m],this._newComments.splice(t,1)):i(m,n)&&(s.unshift(m),this._newComments.splice(t,1))}if(e?.trailingComments){i(e.trailingComments[0],n)&&(s=[...s,...e.trailingComments],delete e.trailingComments)}s.length>0&&(n.trailingComments=s)}attachLeadingComments(t){if(!t)return;let s;for(;this._nodeStack.length>0;){const n=this._nodeStack[this._nodeStack.length-1];if(!(t.range[0]<=n.range[0]))break;s=n,this._nodeStack.pop()}const i=[],m=[];if(s){for(let o=(s.leadingComments?.length??0)-1;o>=0;--o){const l=s.leadingComments[o];t.range[0]>=l.range[1]?(i.unshift(l),s.leadingComments.splice(o,1)):n(t)&&!e(l)&&(m.unshift(l),s.leadingComments.splice(o,1))}return 0===s.leadingComments?.length&&delete s.leadingComments,i.length&&(t.leadingComments=i),void(m.length&&(t.trailingComments=[...m,...t.trailingComments??[]]))}for(let n=this._newComments.length-1;n>=0;--n){const e=this._newComments[n];t.range[0]>=e.range[0]&&(i.unshift(e),this._newComments.splice(n,1))}i.length&&(t.leadingComments=i)}attachComments(t){if(s(t)&&t.body.length>0){const n=this._nodeStack[this._nodeStack.length-1];return n?(n.trailingComments=[...n.trailingComments??[],...this._newComments],this._newComments.length=0,void this._nodeStack.pop()):(t.trailingComments=[...this._newComments],void(this._newComments.length=0))}this.attachTrailingComments(t),this.attachLeadingComments(t),this.insertInnerComments(t),this._nodeStack.push(t)}collectComment(t){this.comments.push(t),this._newComments.push(t)}}export{o as CommentHandler};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{CommentHandler as t}from"./comment-handler.js";import{ErrorHandler as e,formatErrorDescription as r}from"./error-handler.js";import{Scanner as i}from"./scanner.js";import{OperatorPrecedence as n,TokenType as s,ParsingErrorCodes as a,ParsingError as o,Syntax as h,TokenNames as c,Keywords as p,UpdateOperators as u,UnaryOperators as l,LogicalOperators as m,AssignmentOperators as d,isEmptyStatement as x}from"./types.js";var k,w;function y(t,e=0){let r=t.start-t.lineStart,i=t.lineNumber;return r<0&&(r+=e,i--),{index:t.start,line:i,column:r}}function T(t){return[{index:t.range[0],...t.loc.start},{index:t.range[1],...t.loc.end}]}function g(t){return n[t]??0}!function(t){t[t.None=0]="None",t[t.Function=1]="Function",t[t.IfClause=2]="IfClause",t[t.ForLoop=4]="ForLoop",t[t.WhileLoop=8]="WhileLoop"}(k||(k={})),function(t){t[t.AsObject=0]="AsObject",t[t.Automatic=1]="Automatic"}(w||(w={}));class f{constructor(r,n={},a){this.delegate=a,this.hasLineTerminator=!1,this.options={tokens:"boolean"==typeof n.tokens&&n.tokens,comments:"boolean"==typeof n.comments&&n.comments,tolerant:"boolean"==typeof n.tolerant&&n.tolerant},this.options.comments&&(this.commentHandler=new t),this.errorHandler=new e(this.options.tolerant),this.scanner=new i(r,this.errorHandler),this.context={isAssignmentTarget:!1,blockContext:k.None,curlyParsingType:w.AsObject},this.rawToken={type:s.EOF,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.endMarker={index:0,line:this.scanner.lineNumber,column:0},this.readNextRawToken(),this.endMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwIfInvalidType(t,e,{validTypes:r,invalidTypes:i}){r?.some((e=>t.type===e))||i?.some((e=>t.type===e))&&this.throwError(a.InvalidExpression,e)}throwError(t,e,r=this.endMarker){const{index:i,line:n,column:s}=e,a=r.index-i-1;this.errorHandler.throwError({code:t,index:i,line:n,column:s+1,len:a})}tolerateError(t,e){throw new Error("######################################### !!!")}unexpectedTokenError(t={}){const{rawToken:e}=t;let i,{code:n,data:h}=t;if(e){if(!n)switch(e.type){case s.EOF:n=a.UnexpectedEndOfScript;break;case s.Identifier:n=a.UnexpectedIdentifier;break;case s.NumericLiteral:n=a.UnexpectedNumber;break;case s.StringLiteral:n=a.UnexpectedString;break;case s.Template:n=a.UnexpectedTemplate}i=e.value.toString()}else i="ILLEGAL";n=n??a.UnexpectedToken,h||(h={value:i});const c=r(n,h);if(e){const t=e.start,r=e.lineNumber,i=e.start-e.lineStart+1;return new o({code:n,index:t,line:r,column:i,len:e.end-e.start-1,data:h,description:c})}const{index:p,line:u}=this.endMarker;return new o({code:n,index:p,line:u,column:this.endMarker.column+1,data:h,description:c})}throwUnexpectedToken(t={}){throw t.rawToken=t.rawToken??this.rawToken,this.unexpectedTokenError(t)}collectComments(t){const{commentHandler:e}=this;e&&t.length&&t.forEach((t=>{const r={type:t.multiLine?h.BlockComment:h.LineComment,value:this.getSourceValue(t),range:t.range,loc:t.loc};e.collectComment(r)}))}peekAhead(t){const e=()=>(this.scanner.scanComments(),this.scanner.lex()),r=this.scanner.saveState(),i=t.call(this,e);return this.scanner.restoreState(r),i}getSourceValue(t){return this.scanner.source.slice(t.start,t.end)}convertToToken(t){return{type:c[t.type],value:this.getSourceValue(t),range:[t.start,t.end],loc:{start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}}}readNextRawToken(){this.endMarker.index=this.scanner.index,this.endMarker.line=this.scanner.lineNumber,this.endMarker.column=this.scanner.index-this.scanner.lineStart;const t=this.rawToken;this.collectComments(this.scanner.scanComments()),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart),this.rawToken=this.scanner.lex(),this.hasLineTerminator=t.lineNumber!==this.rawToken.lineNumber,this.options.tokens&&this.rawToken.type!==s.EOF&&this.tokens.push(this.convertToToken(this.rawToken))}captureStartMarker(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}getItemLocation(t){return{range:[t.index,this.endMarker.index],loc:{start:{line:t.line,column:t.column},end:{line:this.endMarker.line,column:this.endMarker.column}}}}finalize(t){return(this.delegate||this.commentHandler)&&(this.commentHandler?.attachComments(t),this.delegate?.(t)),t}expectPunctuator(t){const e=this.rawToken;this.matchPunctuator(t)?this.readNextRawToken():this.throwUnexpectedToken({rawToken:e,code:a.PunctuatorExpected,data:{value:t}})}expectKeyword(t){this.rawToken.type!==s.Keyword||this.rawToken.value.toLowerCase()!==t?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}expectContextualKeyword(t){this.rawToken.type!==s.Identifier||this.rawToken.value.toLowerCase()!==t?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}matchKeyword(t){return this.rawToken.type===s.Keyword&&this.rawToken.value.toLowerCase()===t}matchContextualKeyword(t){return this.rawToken.type===s.Identifier&&this.rawToken.value===t}matchPunctuator(t){return this.rawToken.type===s.Punctuator&&this.rawToken.value===t}getMatchingPunctuator(t){if("string"==typeof t&&(t=t.split("")),this.rawToken.type===s.Punctuator&&t?.length)return t.find(this.matchPunctuator,this)}isolateCoverGrammar(t){const e=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const r=t.call(this);return this.context.isAssignmentTarget=e,r}inheritCoverGrammar(t){const e=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const r=t.call(this);return this.context.isAssignmentTarget=this.context.isAssignmentTarget&&e,r}withBlockContext(t,e){const r=this.context.blockContext;this.context.blockContext=this.context.blockContext|t;const i=this.context.curlyParsingType;this.context.curlyParsingType=w.Automatic;const n=e.call(this);return this.context.blockContext=r,this.context.curlyParsingType=i,n}consumeSemicolon(){if(this.matchPunctuator(";"))this.readNextRawToken();else if(!this.hasLineTerminator)return this.rawToken.type===s.EOF||this.matchPunctuator("}")?(this.endMarker.index=this.startMarker.index,this.endMarker.line=this.startMarker.line,void(this.endMarker.column=this.startMarker.column)):void this.throwUnexpectedToken({rawToken:this.rawToken})}parsePrimaryExpression(){const t=this.captureStartMarker(),e=this.rawToken;switch(e.type){case s.Identifier:return this.readNextRawToken(),this.finalize({type:h.Identifier,name:e.value,...this.getItemLocation(t)});case s.NumericLiteral:case s.StringLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:"string"==typeof e.value,...this.getItemLocation(t)});case s.BooleanLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value.toLowerCase()===p.True,raw:this.getSourceValue(e),isString:!1,...this.getItemLocation(t)});case s.NullLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:null,raw:this.getSourceValue(e),isString:!1,...this.getItemLocation(t)});case s.Template:return this.parseTemplateLiteral();case s.Punctuator:switch(e.value){case"(":return this.inheritCoverGrammar(this.parseGroupExpression);case"[":return this.inheritCoverGrammar(this.parseArrayInitializer);case"{":return this.inheritCoverGrammar(this.parseObjectExpression);default:return this.throwUnexpectedToken({rawToken:this.rawToken})}case s.Keyword:return this.context.isAssignmentTarget=!1,this.throwUnexpectedToken({rawToken:this.rawToken});default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseArrayInitializer(){const t=this.captureStartMarker();this.expectPunctuator("[");const e=[];for(;!this.matchPunctuator("]");){const t=this.captureStartMarker();this.matchPunctuator(",")?(this.readNextRawToken(),this.throwError(a.InvalidExpression,t)):(e.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.matchPunctuator("]")||this.expectPunctuator(","))}return this.expectPunctuator("]"),this.finalize({type:h.ArrayExpression,elements:e,...this.getItemLocation(t)})}parseObjectPropertyKey(){const t=this.captureStartMarker(),e=this.rawToken;switch(e.type){case s.StringLiteral:return this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:!0,...this.getItemLocation(t)});case s.Identifier:case s.BooleanLiteral:case s.NullLiteral:case s.Keyword:return this.readNextRawToken(),this.finalize({type:h.Identifier,name:e.value,...this.getItemLocation(t)});default:this.throwError(a.KeyMustBeString,t)}}parseObjectProperty(){const t=this.rawToken,e=this.captureStartMarker(),r=this.parseObjectPropertyKey();let i=!1,n=null;return this.matchPunctuator(":")?(this.readNextRawToken(),n=this.inheritCoverGrammar(this.parseAssignmentExpression)):t.type===s.Identifier?(i=!0,n=this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})):this.throwUnexpectedToken({rawToken:this.rawToken}),this.finalize({type:h.Property,kind:"init",key:r,value:n,shorthand:i,...this.getItemLocation(e)})}parseObjectExpression(){const t=this.captureStartMarker();this.expectPunctuator("{");const e=[];for(;!this.matchPunctuator("}");)e.push(this.parseObjectProperty()),this.matchPunctuator("}")||this.expectPunctuator(",");return this.expectPunctuator("}"),this.finalize({type:h.ObjectExpression,properties:e,...this.getItemLocation(t)})}parseTemplateElement(t=!1){const e=this.rawToken;e.type!==s.Template&&this.throwUnexpectedToken({rawToken:e}),t&&!e.head&&this.throwUnexpectedToken({code:a.InvalidTemplateHead,rawToken:e});const r=this.captureStartMarker();this.readNextRawToken();const{value:i,cooked:n,tail:o}=e,c=this.finalize({type:h.TemplateElement,value:{raw:i,cooked:n},tail:o,...this.getItemLocation(r)});return c.loc.start.column++,c.loc.end.column=c.loc.end.column-(o?1:2),c}parseTemplateLiteral(){const t=this.captureStartMarker(),e=[],r=[];let i=this.parseTemplateElement(!0);for(r.push(i);!i.tail;)e.push(this.parseExpression()),i=this.parseTemplateElement(),r.push(i);return this.finalize({type:h.TemplateLiteral,quasis:r,expressions:e,...this.getItemLocation(t)})}parseGroupExpression(){this.expectPunctuator("(");const t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.expectPunctuator(")"),t}parseArguments(){this.expectPunctuator("(");const t=[];if(!this.matchPunctuator(")"))for(;;){const e=this.isolateCoverGrammar(this.parseAssignmentExpression);if(t.push(e),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),t}parseMemberName(){const t=this.rawToken,e=this.captureStartMarker();return this.readNextRawToken(),t.type!==s.NullLiteral&&t.type!==s.Identifier&&t.type!==s.Keyword&&t.type!==s.BooleanLiteral&&this.throwUnexpectedToken({rawToken:t}),this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})}parseLeftHandSideExpression(){const t=this.captureStartMarker();let e=this.inheritCoverGrammar(this.parsePrimaryExpression);const r=this.captureStartMarker();let i;for(;i=this.getMatchingPunctuator("([.");)switch(i){case"(":{this.context.isAssignmentTarget=!1,e.type!==h.Identifier&&e.type!==h.MemberExpression&&this.throwError(a.IdentiferExpected,t,r);const i=this.parseArguments();e=this.finalize({type:h.CallExpression,callee:e,arguments:i,...this.getItemLocation(t)});continue}case"[":{this.context.isAssignmentTarget=!0,this.expectPunctuator("[");const r=this.isolateCoverGrammar(this.parseExpression);this.expectPunctuator("]"),e=this.finalize({type:h.MemberExpression,computed:!0,object:e,property:r,...this.getItemLocation(t)});continue}case".":{this.context.isAssignmentTarget=!0,this.expectPunctuator(".");const r=this.parseMemberName();e=this.finalize({type:h.MemberExpression,computed:!1,object:e,property:r,...this.getItemLocation(t)});continue}}return e}parseUpdateExpression(){const t=this.captureStartMarker();let e=this.getMatchingPunctuator(u);if(e){this.readNextRawToken();const r=this.captureStartMarker(),i=this.inheritCoverGrammar(this.parseUnaryExpression);return i.type!==h.Identifier&&i.type!==h.MemberExpression&&i.type!==h.CallExpression&&this.throwError(a.InvalidExpression,r),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.context.isAssignmentTarget=!1,this.finalize({type:h.UpdateExpression,operator:e,argument:i,prefix:!0,...this.getItemLocation(t)})}const r=this.captureStartMarker(),i=this.inheritCoverGrammar(this.parseLeftHandSideExpression),n=this.captureStartMarker();return this.hasLineTerminator?i:(e=this.getMatchingPunctuator(u),e?(i.type!==h.Identifier&&i.type!==h.MemberExpression&&this.throwError(a.InvalidExpression,r,n),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.readNextRawToken(),this.context.isAssignmentTarget=!1,this.finalize({type:h.UpdateExpression,operator:e,argument:i,prefix:!1,...this.getItemLocation(t)})):i)}parseUnaryExpression(){const t=this.getMatchingPunctuator(l);if(t){const e=this.captureStartMarker();this.readNextRawToken();const r=this.inheritCoverGrammar(this.parseUnaryExpression);return this.context.isAssignmentTarget=!1,this.finalize({type:h.UnaryExpression,operator:t,argument:r,prefix:!0,...this.getItemLocation(e)})}return this.parseUpdateExpression()}parseBinaryExpression(){const t=this.rawToken;let e=this.inheritCoverGrammar(this.parseUnaryExpression);if(this.rawToken.type!==s.Punctuator)return e;const r=this.rawToken.value;let i=g(r);if(0===i)return e;this.readNextRawToken(),this.context.isAssignmentTarget=!1;const n=[t,this.rawToken];let a=e,o=this.inheritCoverGrammar(this.parseUnaryExpression);const h=[a,r,o],c=[i];for(;this.rawToken.type===s.Punctuator&&(i=g(this.rawToken.value))>0;){for(;h.length>2&&i<=c.at(-1);){o=h.pop();const t=h.pop();c.pop(),a=h.pop(),n.pop();const e=n.at(-1),r=y(e,e.lineStart);h.push(this.finalize(this.createBinaryOrLogicalExpression(r,t,a,o)))}h.push(this.rawToken.value),c.push(i),n.push(this.rawToken),this.readNextRawToken(),h.push(this.inheritCoverGrammar(this.parseUnaryExpression))}let p=h.length-1;e=h[p];let u=n.pop();for(;p>1;){const t=n.pop();if(!t)break;const r=u?.lineStart,i=y(t,r),s=h[p-1];e=this.finalize(this.createBinaryOrLogicalExpression(i,s,h[p-2],e)),p-=2,u=t}return e}createBinaryOrLogicalExpression(t,e,r,i){const n=m.includes(e)?h.LogicalExpression:h.BinaryExpression;return n===h.BinaryExpression||(r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,...T(r)),i.type!==h.AssignmentExpression&&i.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,...T(r))),{type:n,operator:e,left:r,right:i,...this.getItemLocation(t)}}parseAssignmentExpression(){const t=this.captureStartMarker(),e=this.inheritCoverGrammar(this.parseBinaryExpression),r=this.captureStartMarker(),i=this.getMatchingPunctuator(d);if(!i)return e;e.type!==h.Identifier&&e.type!==h.MemberExpression&&this.throwError(a.InvalidExpression,t,r),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.matchPunctuator("=")||(this.context.isAssignmentTarget=!1),this.readNextRawToken();const n=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finalize({type:h.AssignmentExpression,left:e,operator:i,right:n,...this.getItemLocation(t)})}parseExpression(){return this.isolateCoverGrammar(this.parseAssignmentExpression)}parseStatements(t){const e=[];for(;this.rawToken.type!==s.EOF&&!this.matchPunctuator(t);){const t=this.parseStatementListItem();x(t)||e.push(t)}return e}parseStatementListItem(){return this.context.isAssignmentTarget=!0,this.matchKeyword(p.Function)?this.parseFunctionDeclaration():this.matchKeyword(p.Export)?this.parseExportDeclaration():this.matchKeyword(p.Import)?this.parseImportDeclaration():this.parseStatement()}parseBlock(){const t=this.captureStartMarker();this.expectPunctuator("{");const e=this.parseStatements("}");return this.expectPunctuator("}"),this.finalize({type:h.BlockStatement,body:e,...this.getItemLocation(t)})}parseObjectStatement(){const t=this.captureStartMarker(),e=this.parseObjectExpression();return this.finalize({type:h.ExpressionStatement,expression:e,...this.getItemLocation(t)})}parseBlockOrObjectStatement(){if(this.context.curlyParsingType===w.AsObject)return this.parseObjectStatement();return this.peekAhead((t=>{let e=t();return(e.type===s.Identifier||e.type===s.StringLiteral)&&(e=t(),e.type===s.Punctuator&&":"===e.value)}))?this.parseObjectStatement():this.parseBlock()}parseIdentifier(){const t=this.rawToken;if(t.type!==s.Identifier)return null;const e=this.captureStartMarker();return this.readNextRawToken(),this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})}parseVariableDeclarator(){const t=this.captureStartMarker(),e=this.parseIdentifier();e||this.throwUnexpectedToken({code:a.IdentiferExpected});let r=null;if(this.matchPunctuator("=")){this.readNextRawToken();const t=this.rawToken;try{r=this.isolateCoverGrammar(this.parseAssignmentExpression)}catch(i){this.throwUnexpectedToken({rawToken:t,code:a.InvalidVariableAssignment})}}return this.finalize({type:h.VariableDeclarator,id:e,init:r,...this.getItemLocation(t)})}parseVariableDeclarationList(){const t=[this.parseVariableDeclarator()];for(;this.matchPunctuator(",");)this.readNextRawToken(),t.push(this.parseVariableDeclarator());return t}parseVariableDeclaration(){const t=this.captureStartMarker();this.expectKeyword(p.Var);const e=this.parseVariableDeclarationList();return this.consumeSemicolon(),this.finalize({type:h.VariableDeclaration,declarations:e,kind:"var",...this.getItemLocation(t)})}parseEmptyStatement(){const t=this.captureStartMarker();return this.expectPunctuator(";"),this.finalize({type:h.EmptyStatement,...this.getItemLocation(t)})}parseExpressionStatement(){const t=this.captureStartMarker(),e=this.parseExpression();return this.consumeSemicolon(),this.finalize({type:h.ExpressionStatement,expression:e,...this.getItemLocation(t)})}parseIfClause(){return this.withBlockContext(k.IfClause,this.parseStatement)}parseIfStatement(){const t=this.captureStartMarker();this.expectKeyword(p.If),this.expectPunctuator("(");const e=this.captureStartMarker(),r=this.parseExpression(),i=this.captureStartMarker();this.expectPunctuator(")"),r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,e,i);const n=this.parseIfClause();let s=null;return this.matchKeyword(p.Else)&&(this.readNextRawToken(),s=this.parseIfClause()),this.finalize({type:h.IfStatement,test:r,consequent:n,alternate:s,...this.getItemLocation(t)})}parseWhileStatement(){const t=this.captureStartMarker();this.expectKeyword(p.While),this.expectPunctuator("(");const e=this.captureStartMarker(),r=this.parseExpression(),i=this.captureStartMarker();this.expectPunctuator(")"),r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,e,i);const n=this.withBlockContext(k.WhileLoop,this.parseStatement);return this.finalize({type:h.WhileStatement,test:r,body:n,...this.getItemLocation(t)})}parseForStatement(){let t=null,e=null,r=null,i=null,n=null;const s=this.captureStartMarker();if(this.expectKeyword(p.For),this.expectPunctuator("("),this.matchPunctuator(";"))this.readNextRawToken();else if(this.matchKeyword(p.Var)){const e=this.captureStartMarker();this.readNextRawToken();const r=this.parseVariableDeclarationList();if(1===r.length&&this.matchKeyword(p.In)){r[0].init&&this.throwError(a.ForInOfLoopInitializer,e),i=this.finalize({type:h.VariableDeclaration,declarations:r,kind:"var",...this.getItemLocation(e)}),this.readNextRawToken(),n=this.parseExpression()}else this.matchKeyword(p.In)&&this.throwError(a.InvalidLeftHandSideInForIn,e),t=this.finalize({type:h.VariableDeclaration,declarations:r,kind:"var",...this.getItemLocation(e)}),this.expectPunctuator(";")}else{const e=this.context.isAssignmentTarget,r=this.captureStartMarker();t=this.inheritCoverGrammar(this.parseAssignmentExpression),this.matchKeyword(p.In)?(this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInForIn,r),t.type!==h.Identifier&&this.throwError(a.InvalidLeftHandSideInForIn,r),this.readNextRawToken(),i=t,n=this.parseExpression(),t=null):(this.context.isAssignmentTarget=e,this.expectPunctuator(";"))}i||(this.matchPunctuator(";")||(e=this.isolateCoverGrammar(this.parseExpression)),this.expectPunctuator(";"),this.matchPunctuator(")")||(r=this.isolateCoverGrammar(this.parseExpression))),this.expectPunctuator(")");const o=this.withBlockContext(k.ForLoop,(()=>this.isolateCoverGrammar(this.parseStatement)));return i&&n?this.finalize({type:h.ForInStatement,left:i,right:n,body:o,...this.getItemLocation(s)}):this.finalize({type:h.ForStatement,init:t,test:e,update:r,body:o,...this.getItemLocation(s)})}parseContinueStatement(){const t=this.captureStartMarker();return this.expectKeyword(p.Continue),this.consumeSemicolon(),this.finalize({type:h.ContinueStatement,...this.getItemLocation(t)})}parseBreakStatement(){const t=this.captureStartMarker();return this.expectKeyword(p.Break),this.consumeSemicolon(),this.finalize({type:h.BreakStatement,...this.getItemLocation(t)})}parseReturnStatement(){const t=this.captureStartMarker();this.expectKeyword(p.Return);const e=!this.matchPunctuator(";")&&!this.matchPunctuator("}")&&!this.hasLineTerminator&&this.rawToken.type!==s.EOF||this.rawToken.type===s.StringLiteral||this.rawToken.type===s.Template?this.parseExpression():null;return this.consumeSemicolon(),this.finalize({type:h.ReturnStatement,argument:e,...this.getItemLocation(t)})}parseStatement(){switch(this.rawToken.type){case s.BooleanLiteral:case s.NullLiteral:case s.NumericLiteral:case s.StringLiteral:case s.Template:case s.Identifier:return this.parseExpressionStatement();case s.Punctuator:return"{"===this.rawToken.value?this.parseBlockOrObjectStatement():"("===this.rawToken.value?this.parseExpressionStatement():";"===this.rawToken.value?this.parseEmptyStatement():this.parseExpressionStatement();case s.Keyword:switch(this.rawToken.value.toLowerCase()){case p.Break:return this.parseBreakStatement();case p.Continue:return this.parseContinueStatement();case p.For:return this.parseForStatement();case p.Function:return this.parseFunctionDeclaration();case p.If:return this.parseIfStatement();case p.Return:return this.parseReturnStatement();case p.Var:return this.parseVariableDeclaration();case p.While:return this.parseWhileStatement();default:return this.parseExpressionStatement()}default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseFormalParameters(){const t=[];if(this.expectPunctuator("("),!this.matchPunctuator(")"))for(;this.rawToken.type!==s.EOF;){const e=this.parseIdentifier();if(e||this.throwUnexpectedToken({rawToken:this.rawToken,code:a.IdentiferExpected}),t.push(e),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),t}parseFunctionDeclaration(){(this.context.blockContext&k.Function)===k.Function&&this.throwUnexpectedToken({code:a.NoFunctionInsideFunction}),(this.context.blockContext&k.WhileLoop)!==k.WhileLoop&&(this.context.blockContext&k.IfClause)!==k.IfClause||this.throwUnexpectedToken({code:a.NoFunctionInsideBlock});const t=this.captureStartMarker();this.expectKeyword(p.Function);const e=this.parseIdentifier();e||this.throwUnexpectedToken({code:a.InvalidFunctionIdentifier});const r=this.parseFormalParameters(),i=this.context.blockContext;this.context.blockContext=this.context.blockContext|k.Function;const n=this.parseBlock();return this.context.blockContext=i,this.finalize({type:h.FunctionDeclaration,id:e,params:r,body:n,...this.getItemLocation(t)})}parseScript(){const t=this.captureStartMarker(),e=this.parseStatements(),r=this.finalize({type:h.Program,body:e,...this.getItemLocation(t)});return this.options.tokens&&(r.tokens=this.tokens),this.options.tolerant&&(r.errors=this.errorHandler.errors),r}parseExportDeclaration(){this.context.blockContext!==k.None&&this.throwUnexpectedToken({code:a.ModuleExportRootOnly});let t=null;const e=this.captureStartMarker();return this.expectKeyword(p.Export),this.matchKeyword(p.Var)?t=this.parseVariableDeclaration():this.matchKeyword("function")?t=this.parseFunctionDeclaration():this.throwUnexpectedToken({code:a.InvalidExpression}),this.finalize({type:h.ExportNamedDeclaration,declaration:t,specifiers:[],source:null,...this.getItemLocation(e)})}parseModuleSpecifier(){const t=this.captureStartMarker(),e=this.rawToken;if(e.type===s.StringLiteral)return this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:!0,...this.getItemLocation(t)});this.throwError(a.InvalidModuleUri,t)}parseDefaultSpecifier(){const t=this.captureStartMarker(),e=this.parseIdentifier();return e||this.throwUnexpectedToken({code:a.IdentiferExpected}),this.finalize({type:h.ImportDefaultSpecifier,local:e,...this.getItemLocation(t)})}parseImportDeclaration(){this.context.blockContext!==k.None&&this.throwUnexpectedToken({code:a.ModuleImportRootOnly});const t=this.captureStartMarker();this.expectKeyword(p.Import);const e=this.parseDefaultSpecifier();this.expectContextualKeyword(p.From);const r=this.parseModuleSpecifier();return this.finalize({type:h.ImportDeclaration,specifiers:[e],source:r,...this.getItemLocation(t)})}}export{f as Parser,g as binaryOperatorPrecedence};
5
+ import{CommentHandler as t}from"./comment-handler.js";import{ErrorHandler as e,formatErrorDescription as r}from"./error-handler.js";import{Scanner as i}from"./scanner.js";import{OperatorPrecedence as n,TokenType as s,ParsingErrorCodes as a,ParsingError as o,Syntax as h,TokenNames as c,Keywords as p,UpdateOperators as l,UnaryOperators as u,LogicalOperators as m,AssignmentOperators as d,isEmptyStatement as x}from"./types.js";var k,w;function g(t,e=0){let r=t.start-t.lineStart,i=t.lineNumber;return r<0&&(r+=e,i--),{index:t.start,line:i,column:r}}function y(t){return[{index:t.range[0],...t.loc.start},{index:t.range[1],...t.loc.end}]}function T(t){return n[t]??0}!function(t){t[t.None=0]="None",t[t.Function=1]="Function",t[t.IfClause=2]="IfClause",t[t.ForLoop=4]="ForLoop",t[t.WhileLoop=8]="WhileLoop"}(k||(k={})),function(t){t[t.AsObject=0]="AsObject",t[t.Automatic=1]="Automatic"}(w||(w={}));class f{constructor(r,n={},a){this.delegate=a,this.hasLineTerminator=!1,this.options={tokens:"boolean"==typeof n.tokens&&n.tokens,comments:"boolean"==typeof n.comments&&n.comments,tolerant:"boolean"==typeof n.tolerant&&n.tolerant},this.options.comments&&(this.commentHandler=new t),this.errorHandler=new e(this.options.tolerant),this.scanner=new i(r,this.errorHandler),this.context={isAssignmentTarget:!1,blockContext:k.None,curlyParsingType:w.AsObject},this.rawToken={type:s.EOF,value:"",lineNumber:this.scanner.lineNumber,lineStart:0,start:0,end:0},this.tokens=[],this.startMarker={index:0,line:this.scanner.lineNumber,column:0},this.endMarker={index:0,line:this.scanner.lineNumber,column:0},this.readNextRawToken(),this.endMarker={index:this.scanner.index,line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}throwIfInvalidType(t,e,{validTypes:r,invalidTypes:i}){r?.some((e=>t.type===e))||i?.some((e=>t.type===e))&&this.throwError(a.InvalidExpression,e)}throwError(t,e,r=this.endMarker){const{index:i,line:n,column:s}=e,a=r.index-i-1;this.errorHandler.throwError({code:t,index:i,line:n,column:s+1,len:a})}tolerateError(t,e){throw new Error("######################################### !!!")}unexpectedTokenError(t={}){const{rawToken:e}=t;let i,{code:n,data:h}=t;if(e){if(!n)switch(e.type){case s.EOF:n=a.UnexpectedEndOfScript;break;case s.Identifier:n=a.UnexpectedIdentifier;break;case s.NumericLiteral:n=a.UnexpectedNumber;break;case s.StringLiteral:n=a.UnexpectedString;break;case s.Template:n=a.UnexpectedTemplate}i=e.value.toString()}else i="ILLEGAL";n=n??a.UnexpectedToken,h||(h={value:i});const c=r(n,h);if(e){const t=e.start,r=e.lineNumber,i=e.start-e.lineStart+1;return new o({code:n,index:t,line:r,column:i,len:e.end-e.start-1,data:h,description:c})}const{index:p,line:l}=this.endMarker;return new o({code:n,index:p,line:l,column:this.endMarker.column+1,data:h,description:c})}throwUnexpectedToken(t={}){throw t.rawToken=t.rawToken??this.rawToken,this.unexpectedTokenError(t)}collectComments(t){const{commentHandler:e}=this;e&&t.length&&t.forEach((t=>{const r={type:t.multiLine?h.BlockComment:h.LineComment,value:this.getSourceValue(t),range:t.range,loc:t.loc};e.collectComment(r)}))}peekAhead(t){const e=()=>(this.scanner.scanComments(),this.scanner.lex()),r=this.scanner.saveState(),i=t.call(this,e);return this.scanner.restoreState(r),i}getSourceValue(t){return this.scanner.source.slice(t.start,t.end)}convertToToken(t){return{type:c[t.type],value:this.getSourceValue(t),range:[t.start,t.end],loc:{start:{line:this.startMarker.line,column:this.startMarker.column},end:{line:this.scanner.lineNumber,column:this.scanner.index-this.scanner.lineStart}}}}readNextRawToken(){this.endMarker.index=this.scanner.index,this.endMarker.line=this.scanner.lineNumber,this.endMarker.column=this.scanner.index-this.scanner.lineStart;const t=this.rawToken;this.collectComments(this.scanner.scanComments()),this.scanner.index!==this.startMarker.index&&(this.startMarker.index=this.scanner.index,this.startMarker.line=this.scanner.lineNumber,this.startMarker.column=this.scanner.index-this.scanner.lineStart),this.rawToken=this.scanner.lex(),this.hasLineTerminator=t.lineNumber!==this.rawToken.lineNumber,this.options.tokens&&this.rawToken.type!==s.EOF&&this.tokens.push(this.convertToToken(this.rawToken))}captureStartMarker(){return{index:this.startMarker.index,line:this.startMarker.line,column:this.startMarker.column}}getItemLocation(t){return{range:[t.index,this.endMarker.index],loc:{start:{line:t.line,column:t.column},end:{line:this.endMarker.line,column:this.endMarker.column}}}}finalize(t){return(this.delegate||this.commentHandler)&&(this.commentHandler?.attachComments(t),this.delegate?.(t)),t}expectPunctuator(t){const e=this.rawToken;this.matchPunctuator(t)?this.readNextRawToken():this.throwUnexpectedToken({rawToken:e,code:a.PunctuatorExpected,data:{value:t}})}expectKeyword(t){this.rawToken.type!==s.Keyword||this.rawToken.value.toLowerCase()!==t?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}expectContextualKeyword(t){this.rawToken.type!==s.Identifier||this.rawToken.value.toLowerCase()!==t?this.throwUnexpectedToken({rawToken:this.rawToken}):this.readNextRawToken()}matchKeyword(t){return this.rawToken.type===s.Keyword&&this.rawToken.value.toLowerCase()===t}matchContextualKeyword(t){return this.rawToken.type===s.Identifier&&this.rawToken.value===t}matchPunctuator(t){return this.rawToken.type===s.Punctuator&&this.rawToken.value===t}getMatchingPunctuator(t){if("string"==typeof t&&(t=t.split("")),this.rawToken.type===s.Punctuator&&t?.length)return t.find(this.matchPunctuator,this)}isolateCoverGrammar(t){const e=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const r=t.call(this);return this.context.isAssignmentTarget=e,r}inheritCoverGrammar(t){const e=this.context.isAssignmentTarget;this.context.isAssignmentTarget=!0;const r=t.call(this);return this.context.isAssignmentTarget=this.context.isAssignmentTarget&&e,r}withBlockContext(t,e){const r=this.context.blockContext;this.context.blockContext=this.context.blockContext|t;const i=this.context.curlyParsingType;this.context.curlyParsingType=w.Automatic;const n=e.call(this);return this.context.blockContext=r,this.context.curlyParsingType=i,n}consumeSemicolon(){if(this.matchPunctuator(";"))this.readNextRawToken();else if(!this.hasLineTerminator)return this.rawToken.type===s.EOF||this.matchPunctuator("}")?(this.endMarker.index=this.startMarker.index,this.endMarker.line=this.startMarker.line,void(this.endMarker.column=this.startMarker.column)):void this.throwUnexpectedToken({rawToken:this.rawToken})}parsePrimaryExpression(){const t=this.captureStartMarker(),e=this.rawToken;switch(e.type){case s.Identifier:return this.readNextRawToken(),this.finalize({type:h.Identifier,name:e.value,...this.getItemLocation(t)});case s.NumericLiteral:case s.StringLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:"string"==typeof e.value,...this.getItemLocation(t)});case s.BooleanLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value.toLowerCase()===p.True,raw:this.getSourceValue(e),isString:!1,...this.getItemLocation(t)});case s.NullLiteral:return this.context.isAssignmentTarget=!1,this.readNextRawToken(),this.finalize({type:h.Literal,value:null,raw:this.getSourceValue(e),isString:!1,...this.getItemLocation(t)});case s.Template:return this.parseTemplateLiteral();case s.Punctuator:switch(e.value){case"(":return this.inheritCoverGrammar(this.parseGroupExpression);case"[":return this.inheritCoverGrammar(this.parseArrayInitializer);case"{":return this.inheritCoverGrammar(this.parseObjectExpression);default:return this.throwUnexpectedToken({rawToken:this.rawToken})}case s.Keyword:return this.context.isAssignmentTarget=!1,this.throwUnexpectedToken({rawToken:this.rawToken});default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseArrayInitializer(){const t=this.captureStartMarker();this.expectPunctuator("[");const e=[];for(;!this.matchPunctuator("]");){const t=this.captureStartMarker();this.matchPunctuator(",")?(this.readNextRawToken(),this.throwError(a.InvalidExpression,t)):(e.push(this.inheritCoverGrammar(this.parseAssignmentExpression)),this.matchPunctuator("]")||this.expectPunctuator(","))}return this.expectPunctuator("]"),this.finalize({type:h.ArrayExpression,elements:e,...this.getItemLocation(t)})}parseObjectPropertyKey(){const t=this.captureStartMarker(),e=this.rawToken;switch(e.type){case s.StringLiteral:return this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:!0,...this.getItemLocation(t)});case s.Identifier:case s.BooleanLiteral:case s.NullLiteral:case s.Keyword:return this.readNextRawToken(),this.finalize({type:h.Identifier,name:e.value,...this.getItemLocation(t)});default:this.throwError(a.KeyMustBeString,t)}}parseObjectProperty(){const t=this.rawToken,e=this.captureStartMarker(),r=this.parseObjectPropertyKey();let i=!1,n=null;return this.matchPunctuator(":")?(this.readNextRawToken(),n=this.inheritCoverGrammar(this.parseAssignmentExpression)):t.type===s.Identifier?(i=!0,n=this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})):this.throwUnexpectedToken({rawToken:this.rawToken}),this.finalize({type:h.Property,kind:"init",key:r,value:n,shorthand:i,...this.getItemLocation(e)})}parseObjectExpression(){const t=this.captureStartMarker();this.expectPunctuator("{");const e=[];for(;!this.matchPunctuator("}");)e.push(this.parseObjectProperty()),this.matchPunctuator("}")||this.expectPunctuator(",");return this.expectPunctuator("}"),this.finalize({type:h.ObjectExpression,properties:e,...this.getItemLocation(t)})}parseTemplateElement(t=!1){const e=this.rawToken;e.type!==s.Template&&this.throwUnexpectedToken({rawToken:e}),t&&!e.head&&this.throwUnexpectedToken({code:a.InvalidTemplateHead,rawToken:e});const r=this.captureStartMarker();this.readNextRawToken();const{value:i,cooked:n,tail:o}=e,c=this.finalize({type:h.TemplateElement,value:{raw:i,cooked:n},tail:o,...this.getItemLocation(r)});return c.loc.start.column++,c.loc.end.column=c.loc.end.column-(o?1:2),c}parseTemplateLiteral(){const t=this.captureStartMarker(),e=[],r=[];let i=this.parseTemplateElement(!0);for(r.push(i);!i.tail;)e.push(this.parseExpression()),i=this.parseTemplateElement(),r.push(i);return this.finalize({type:h.TemplateLiteral,quasis:r,expressions:e,...this.getItemLocation(t)})}parseGroupExpression(){this.expectPunctuator("(");const t=this.inheritCoverGrammar(this.parseAssignmentExpression);return this.expectPunctuator(")"),t}parseArguments(){this.expectPunctuator("(");const t=[];if(!this.matchPunctuator(")"))for(;;){const e=this.isolateCoverGrammar(this.parseAssignmentExpression);if(t.push(e),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),t}parseMemberName(){const t=this.rawToken,e=this.captureStartMarker();return this.readNextRawToken(),t.type!==s.NullLiteral&&t.type!==s.Identifier&&t.type!==s.Keyword&&t.type!==s.BooleanLiteral&&this.throwUnexpectedToken({rawToken:t}),this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})}parseLeftHandSideExpression(){const t=this.captureStartMarker();let e=this.inheritCoverGrammar(this.parsePrimaryExpression);const r=this.captureStartMarker();let i;for(;i=this.getMatchingPunctuator("([.");)switch(i){case"(":{this.context.isAssignmentTarget=!1,e.type!==h.Identifier&&e.type!==h.MemberExpression&&this.throwError(a.IdentiferExpected,t,r);const i=this.parseArguments();e=this.finalize({type:h.CallExpression,callee:e,arguments:i,...this.getItemLocation(t)});continue}case"[":{this.context.isAssignmentTarget=!0,this.expectPunctuator("[");const r=this.isolateCoverGrammar(this.parseExpression);this.expectPunctuator("]"),e=this.finalize({type:h.MemberExpression,computed:!0,object:e,property:r,...this.getItemLocation(t)});continue}case".":{this.context.isAssignmentTarget=!0,this.expectPunctuator(".");const r=this.parseMemberName();e=this.finalize({type:h.MemberExpression,computed:!1,object:e,property:r,...this.getItemLocation(t)});continue}}return e}parseUpdateExpression(){const t=this.captureStartMarker();let e=this.getMatchingPunctuator(l);if(e){this.readNextRawToken();const r=this.captureStartMarker(),i=this.inheritCoverGrammar(this.parseUnaryExpression);return i.type!==h.Identifier&&i.type!==h.MemberExpression&&i.type!==h.CallExpression&&this.throwError(a.InvalidExpression,r),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.context.isAssignmentTarget=!1,this.finalize({type:h.UpdateExpression,operator:e,argument:i,prefix:!0,...this.getItemLocation(t)})}const r=this.captureStartMarker(),i=this.inheritCoverGrammar(this.parseLeftHandSideExpression),n=this.captureStartMarker();return this.hasLineTerminator?i:(e=this.getMatchingPunctuator(l),e?(i.type!==h.Identifier&&i.type!==h.MemberExpression&&this.throwError(a.InvalidExpression,r,n),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.readNextRawToken(),this.context.isAssignmentTarget=!1,this.finalize({type:h.UpdateExpression,operator:e,argument:i,prefix:!1,...this.getItemLocation(t)})):i)}parseUnaryExpression(){const t=this.getMatchingPunctuator(u);if(t){const e=this.captureStartMarker();this.readNextRawToken();const r=this.inheritCoverGrammar(this.parseUnaryExpression);return this.context.isAssignmentTarget=!1,this.finalize({type:h.UnaryExpression,operator:t,argument:r,prefix:!0,...this.getItemLocation(e)})}return this.parseUpdateExpression()}parseBinaryExpression(){const t=this.rawToken;let e=this.inheritCoverGrammar(this.parseUnaryExpression);if(this.rawToken.type!==s.Punctuator)return e;const r=this.rawToken.value;let i=T(r);if(0===i)return e;this.readNextRawToken(),this.context.isAssignmentTarget=!1;const n=[t,this.rawToken];let a=e,o=this.inheritCoverGrammar(this.parseUnaryExpression);const h=[a,r,o],c=[i];for(;this.rawToken.type===s.Punctuator&&(i=T(this.rawToken.value))>0;){for(;h.length>2&&i<=c[c.length-1];){o=h.pop();const t=h.pop();c.pop(),a=h.pop(),n.pop();const e=n[n.length-1],r=g(e,e.lineStart);h.push(this.finalize(this.createBinaryOrLogicalExpression(r,t,a,o)))}h.push(this.rawToken.value),c.push(i),n.push(this.rawToken),this.readNextRawToken(),h.push(this.inheritCoverGrammar(this.parseUnaryExpression))}let p=h.length-1;e=h[p];let l=n.pop();for(;p>1;){const t=n.pop();if(!t)break;const r=l?.lineStart,i=g(t,r),s=h[p-1];e=this.finalize(this.createBinaryOrLogicalExpression(i,s,h[p-2],e)),p-=2,l=t}return e}createBinaryOrLogicalExpression(t,e,r,i){const n=m.includes(e)?h.LogicalExpression:h.BinaryExpression;return n===h.BinaryExpression||(r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,...y(r)),i.type!==h.AssignmentExpression&&i.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,...y(r))),{type:n,operator:e,left:r,right:i,...this.getItemLocation(t)}}parseAssignmentExpression(){const t=this.captureStartMarker(),e=this.inheritCoverGrammar(this.parseBinaryExpression),r=this.captureStartMarker(),i=this.getMatchingPunctuator(d);if(!i)return e;e.type!==h.Identifier&&e.type!==h.MemberExpression&&this.throwError(a.InvalidExpression,t,r),this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInAssignment,t),this.matchPunctuator("=")||(this.context.isAssignmentTarget=!1),this.readNextRawToken();const n=this.isolateCoverGrammar(this.parseAssignmentExpression);return this.finalize({type:h.AssignmentExpression,left:e,operator:i,right:n,...this.getItemLocation(t)})}parseExpression(){return this.isolateCoverGrammar(this.parseAssignmentExpression)}parseStatements(t){const e=[];for(;this.rawToken.type!==s.EOF&&!this.matchPunctuator(t);){const t=this.parseStatementListItem();x(t)||e.push(t)}return e}parseStatementListItem(){return this.context.isAssignmentTarget=!0,this.matchKeyword(p.Function)?this.parseFunctionDeclaration():this.matchKeyword(p.Export)?this.parseExportDeclaration():this.matchKeyword(p.Import)?this.parseImportDeclaration():this.parseStatement()}parseBlock(){const t=this.captureStartMarker();this.expectPunctuator("{");const e=this.parseStatements("}");return this.expectPunctuator("}"),this.finalize({type:h.BlockStatement,body:e,...this.getItemLocation(t)})}parseObjectStatement(){const t=this.captureStartMarker(),e=this.parseObjectExpression();return this.finalize({type:h.ExpressionStatement,expression:e,...this.getItemLocation(t)})}parseBlockOrObjectStatement(){if(this.context.curlyParsingType===w.AsObject)return this.parseObjectStatement();return this.peekAhead((t=>{let e=t();return(e.type===s.Identifier||e.type===s.StringLiteral)&&(e=t(),e.type===s.Punctuator&&":"===e.value)}))?this.parseObjectStatement():this.parseBlock()}parseIdentifier(){const t=this.rawToken;if(t.type!==s.Identifier)return null;const e=this.captureStartMarker();return this.readNextRawToken(),this.finalize({type:h.Identifier,name:t.value,...this.getItemLocation(e)})}parseVariableDeclarator(){const t=this.captureStartMarker(),e=this.parseIdentifier();e||this.throwUnexpectedToken({code:a.IdentiferExpected});let r=null;if(this.matchPunctuator("=")){this.readNextRawToken();const t=this.rawToken;try{r=this.isolateCoverGrammar(this.parseAssignmentExpression)}catch(i){this.throwUnexpectedToken({rawToken:t,code:a.InvalidVariableAssignment})}}return this.finalize({type:h.VariableDeclarator,id:e,init:r,...this.getItemLocation(t)})}parseVariableDeclarationList(){const t=[this.parseVariableDeclarator()];for(;this.matchPunctuator(",");)this.readNextRawToken(),t.push(this.parseVariableDeclarator());return t}parseVariableDeclaration(){const t=this.captureStartMarker();this.expectKeyword(p.Var);const e=this.parseVariableDeclarationList();return this.consumeSemicolon(),this.finalize({type:h.VariableDeclaration,declarations:e,kind:"var",...this.getItemLocation(t)})}parseEmptyStatement(){const t=this.captureStartMarker();return this.expectPunctuator(";"),this.finalize({type:h.EmptyStatement,...this.getItemLocation(t)})}parseExpressionStatement(){const t=this.captureStartMarker(),e=this.parseExpression();return this.consumeSemicolon(),this.finalize({type:h.ExpressionStatement,expression:e,...this.getItemLocation(t)})}parseIfClause(){return this.withBlockContext(k.IfClause,this.parseStatement)}parseIfStatement(){const t=this.captureStartMarker();this.expectKeyword(p.If),this.expectPunctuator("(");const e=this.captureStartMarker(),r=this.parseExpression(),i=this.captureStartMarker();this.expectPunctuator(")"),r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,e,i);const n=this.parseIfClause();let s=null;return this.matchKeyword(p.Else)&&(this.readNextRawToken(),s=this.parseIfClause()),this.finalize({type:h.IfStatement,test:r,consequent:n,alternate:s,...this.getItemLocation(t)})}parseWhileStatement(){const t=this.captureStartMarker();this.expectKeyword(p.While),this.expectPunctuator("(");const e=this.captureStartMarker(),r=this.parseExpression(),i=this.captureStartMarker();this.expectPunctuator(")"),r.type!==h.AssignmentExpression&&r.type!==h.UpdateExpression||this.throwError(a.InvalidExpression,e,i);const n=this.withBlockContext(k.WhileLoop,this.parseStatement);return this.finalize({type:h.WhileStatement,test:r,body:n,...this.getItemLocation(t)})}parseForStatement(){let t=null,e=null,r=null,i=null,n=null;const s=this.captureStartMarker();if(this.expectKeyword(p.For),this.expectPunctuator("("),this.matchPunctuator(";"))this.readNextRawToken();else if(this.matchKeyword(p.Var)){const e=this.captureStartMarker();this.readNextRawToken();const r=this.parseVariableDeclarationList();if(1===r.length&&this.matchKeyword(p.In)){r[0].init&&this.throwError(a.ForInOfLoopInitializer,e),i=this.finalize({type:h.VariableDeclaration,declarations:r,kind:"var",...this.getItemLocation(e)}),this.readNextRawToken(),n=this.parseExpression()}else this.matchKeyword(p.In)&&this.throwError(a.InvalidLeftHandSideInForIn,e),t=this.finalize({type:h.VariableDeclaration,declarations:r,kind:"var",...this.getItemLocation(e)}),this.expectPunctuator(";")}else{const e=this.context.isAssignmentTarget,r=this.captureStartMarker();t=this.inheritCoverGrammar(this.parseAssignmentExpression),this.matchKeyword(p.In)?(this.context.isAssignmentTarget||this.tolerateError(a.InvalidLeftHandSideInForIn,r),t.type!==h.Identifier&&this.throwError(a.InvalidLeftHandSideInForIn,r),this.readNextRawToken(),i=t,n=this.parseExpression(),t=null):(this.context.isAssignmentTarget=e,this.expectPunctuator(";"))}i||(this.matchPunctuator(";")||(e=this.isolateCoverGrammar(this.parseExpression)),this.expectPunctuator(";"),this.matchPunctuator(")")||(r=this.isolateCoverGrammar(this.parseExpression))),this.expectPunctuator(")");const o=this.withBlockContext(k.ForLoop,(()=>this.isolateCoverGrammar(this.parseStatement)));return i&&n?this.finalize({type:h.ForInStatement,left:i,right:n,body:o,...this.getItemLocation(s)}):this.finalize({type:h.ForStatement,init:t,test:e,update:r,body:o,...this.getItemLocation(s)})}parseContinueStatement(){const t=this.captureStartMarker();return this.expectKeyword(p.Continue),this.consumeSemicolon(),this.finalize({type:h.ContinueStatement,...this.getItemLocation(t)})}parseBreakStatement(){const t=this.captureStartMarker();return this.expectKeyword(p.Break),this.consumeSemicolon(),this.finalize({type:h.BreakStatement,...this.getItemLocation(t)})}parseReturnStatement(){const t=this.captureStartMarker();this.expectKeyword(p.Return);const e=!this.matchPunctuator(";")&&!this.matchPunctuator("}")&&!this.hasLineTerminator&&this.rawToken.type!==s.EOF||this.rawToken.type===s.StringLiteral||this.rawToken.type===s.Template?this.parseExpression():null;return this.consumeSemicolon(),this.finalize({type:h.ReturnStatement,argument:e,...this.getItemLocation(t)})}parseStatement(){switch(this.rawToken.type){case s.BooleanLiteral:case s.NullLiteral:case s.NumericLiteral:case s.StringLiteral:case s.Template:case s.Identifier:return this.parseExpressionStatement();case s.Punctuator:return"{"===this.rawToken.value?this.parseBlockOrObjectStatement():"("===this.rawToken.value?this.parseExpressionStatement():";"===this.rawToken.value?this.parseEmptyStatement():this.parseExpressionStatement();case s.Keyword:switch(this.rawToken.value.toLowerCase()){case p.Break:return this.parseBreakStatement();case p.Continue:return this.parseContinueStatement();case p.For:return this.parseForStatement();case p.Function:return this.parseFunctionDeclaration();case p.If:return this.parseIfStatement();case p.Return:return this.parseReturnStatement();case p.Var:return this.parseVariableDeclaration();case p.While:return this.parseWhileStatement();default:return this.parseExpressionStatement()}default:return this.throwUnexpectedToken({rawToken:this.rawToken})}}parseFormalParameters(){const t=[];if(this.expectPunctuator("("),!this.matchPunctuator(")"))for(;this.rawToken.type!==s.EOF;){const e=this.parseIdentifier();if(e||this.throwUnexpectedToken({rawToken:this.rawToken,code:a.IdentiferExpected}),t.push(e),this.matchPunctuator(")"))break;if(this.expectPunctuator(","),this.matchPunctuator(")"))break}return this.expectPunctuator(")"),t}parseFunctionDeclaration(){(this.context.blockContext&k.Function)===k.Function&&this.throwUnexpectedToken({code:a.NoFunctionInsideFunction}),(this.context.blockContext&k.WhileLoop)!==k.WhileLoop&&(this.context.blockContext&k.IfClause)!==k.IfClause||this.throwUnexpectedToken({code:a.NoFunctionInsideBlock});const t=this.captureStartMarker();this.expectKeyword(p.Function);const e=this.parseIdentifier();e||this.throwUnexpectedToken({code:a.InvalidFunctionIdentifier});const r=this.parseFormalParameters(),i=this.context.blockContext;this.context.blockContext=this.context.blockContext|k.Function;const n=this.parseBlock();return this.context.blockContext=i,this.finalize({type:h.FunctionDeclaration,id:e,params:r,body:n,...this.getItemLocation(t)})}parseScript(){const t=this.captureStartMarker(),e=this.parseStatements(),r=this.finalize({type:h.Program,body:e,...this.getItemLocation(t)});return this.options.tokens&&(r.tokens=this.tokens),this.options.tolerant&&(r.errors=this.errorHandler.errors),r}parseExportDeclaration(){this.context.blockContext!==k.None&&this.throwUnexpectedToken({code:a.ModuleExportRootOnly});let t=null;const e=this.captureStartMarker();return this.expectKeyword(p.Export),this.matchKeyword(p.Var)?t=this.parseVariableDeclaration():this.matchKeyword("function")?t=this.parseFunctionDeclaration():this.throwUnexpectedToken({code:a.InvalidExpression}),this.finalize({type:h.ExportNamedDeclaration,declaration:t,specifiers:[],source:null,...this.getItemLocation(e)})}parseModuleSpecifier(){const t=this.captureStartMarker(),e=this.rawToken;if(e.type===s.StringLiteral)return this.readNextRawToken(),this.finalize({type:h.Literal,value:e.value,raw:this.getSourceValue(e),isString:!0,...this.getItemLocation(t)});this.throwError(a.InvalidModuleUri,t)}parseDefaultSpecifier(){const t=this.captureStartMarker(),e=this.parseIdentifier();return e||this.throwUnexpectedToken({code:a.IdentiferExpected}),this.finalize({type:h.ImportDefaultSpecifier,local:e,...this.getItemLocation(t)})}parseImportDeclaration(){this.context.blockContext!==k.None&&this.throwUnexpectedToken({code:a.ModuleImportRootOnly});const t=this.captureStartMarker();this.expectKeyword(p.Import);const e=this.parseDefaultSpecifier();this.expectContextualKeyword(p.From);const r=this.parseModuleSpecifier();return this.finalize({type:h.ImportDeclaration,specifiers:[e],source:r,...this.getItemLocation(t)})}}export{f as Parser,T as binaryOperatorPrecedence};