@arcgis/core 4.25.0-next.20221013 → 4.25.0-next.20221015

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 (161) hide show
  1. package/analysis/DimensionAnalysis.js +1 -1
  2. package/analysis/LengthDimension.js +1 -1
  3. package/arcade/arcadeRuntime.js +1 -1
  4. package/arcade/functions/featuresetbase.js +1 -1
  5. package/arcade/functions/featuresetgeom.js +1 -1
  6. package/arcade/functions/featuresetstring.js +1 -1
  7. package/arcade/functions/geometry.js +1 -1
  8. package/assets/esri/core/workers/RemoteClient.js +1 -1
  9. package/assets/esri/core/workers/chunks/0439cac609d6109d37b6.js +1 -0
  10. package/assets/esri/core/workers/chunks/0c60d1901db74aca19e3.js +1 -0
  11. package/assets/esri/core/workers/chunks/10293b5c137c35b6c3fd.js +1 -0
  12. package/assets/esri/core/workers/chunks/244cabe1762b545f06a0.js +1 -0
  13. package/assets/esri/core/workers/chunks/2522e626a37bfa2eb4b3.js +1 -0
  14. package/assets/esri/core/workers/chunks/27ac78a350d4f24ad7b6.js +1 -0
  15. package/assets/esri/core/workers/chunks/2b2db231b234d7dd84e6.js +1 -0
  16. package/assets/esri/core/workers/chunks/2e7b8bd584b0fb7896de.js +1 -0
  17. package/assets/esri/core/workers/chunks/306cf603b4ab2fbd8abd.js +1 -0
  18. package/assets/esri/core/workers/chunks/447eeae56c61a8e3b6e3.js +1 -0
  19. package/assets/esri/core/workers/chunks/46af54c9f3c14fd8c2c0.js +1 -0
  20. package/assets/esri/core/workers/chunks/48cb5f427fc7a8a83c81.js +1 -0
  21. package/assets/esri/core/workers/chunks/{2640d9f9cdde5ab9d03f.js → 4b460f4a0ae2073e33ad.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{bc05878c790a9a7dde31.js → 4b7b54389fcd2f9918e4.js} +1 -1
  23. package/assets/esri/core/workers/chunks/4d3c8f2c91223611ad9a.js +1 -0
  24. package/assets/esri/core/workers/chunks/59807a54b655261fa86d.js +1 -0
  25. package/assets/esri/core/workers/chunks/63dbede7309f22ec3561.js +1 -0
  26. package/assets/esri/core/workers/chunks/a824435cb5bdd44486ae.js +1 -0
  27. package/assets/esri/core/workers/chunks/ae96278f3df6ec54db79.js +1 -0
  28. package/assets/esri/core/workers/chunks/b728e77d1fa4b8439b14.js +1 -0
  29. package/assets/esri/core/workers/chunks/{86d2bfaf01832916896e.js → be752b2870b0a5134ac1.js} +1 -1
  30. package/assets/esri/core/workers/chunks/{6fdd5c0aa14a205408bc.js → cdcb512710f6f33af84e.js} +1 -1
  31. package/assets/esri/core/workers/chunks/e0457f3c3605e6963fe3.js +1 -0
  32. package/assets/esri/core/workers/chunks/{c0142d207900d8b40b46.js → e967ffca641947212992.js} +1 -1
  33. package/assets/esri/core/workers/chunks/{d0e614026500ffbdca90.js → ea771551382731d2dd2b.js} +1 -1
  34. package/assets/esri/core/workers/chunks/efd284732b5e6f8b29a5.js +1 -0
  35. package/assets/esri/core/workers/chunks/f33a0d4f1cfa08fdfed7.js +1 -0
  36. package/assets/esri/core/workers/chunks/f3602470674e4cf06ebc.js +1 -0
  37. package/assets/esri/core/workers/chunks/{c4889b5578e1dd2d52be.js → f6772f57bb1466e50d63.js} +1 -1
  38. package/assets/esri/core/workers/chunks/{88e9823d1e1a3ff41dab.js → f827083b19b310990ca1.js} +1 -1
  39. package/assets/esri/core/workers/chunks/f9506f185c9c7a28cab5.js +1 -0
  40. package/assets/esri/core/workers/chunks/{4f8145c325008d77d7c1.js → fbd49164a684776bce68.js} +1 -1
  41. package/assets/esri/themes/base/widgets/_Directions.scss +1 -8
  42. package/assets/esri/themes/dark/main.css +1 -1
  43. package/assets/esri/themes/light/main.css +1 -1
  44. package/assets/esri/themes/light/view.css +1 -1
  45. package/chunks/LineMarker.glsl.js +35 -28
  46. package/geohash/GeohashTree.js +1 -1
  47. package/geometry/projection.js +1 -1
  48. package/interfaces.d.ts +1667 -769
  49. package/layers/DimensionLayer.js +1 -1
  50. package/layers/RouteLayer.js +1 -1
  51. package/layers/VoxelLayer.js +1 -1
  52. package/layers/graphics/data/utils.js +1 -1
  53. package/layers/mixins/FeatureReductionLayer.d.ts +4 -0
  54. package/layers/support/ExpressionInfo.d.ts +4 -0
  55. package/layers/support/VoxelVariable.js +1 -1
  56. package/layers/support/VoxelVolumeStyle.js +1 -1
  57. package/layers/{support → voxel}/VoxelColorStop.js +1 -1
  58. package/layers/{support → voxel}/VoxelDimension.js +1 -1
  59. package/layers/{support → voxel}/VoxelDynamicSection.d.ts +0 -0
  60. package/layers/{support → voxel}/VoxelDynamicSection.js +1 -1
  61. package/layers/{support → voxel}/VoxelFormat.js +1 -1
  62. package/layers/{support → voxel}/VoxelIrregularSpacing.js +1 -1
  63. package/layers/voxel/VoxelIsosurface.js +5 -0
  64. package/layers/{support → voxel}/VoxelOpacityStop.js +1 -1
  65. package/layers/{support → voxel}/VoxelRangeFilter.js +1 -1
  66. package/layers/{support → voxel}/VoxelRegularSpacing.js +1 -1
  67. package/layers/{support → voxel}/VoxelSection.js +1 -1
  68. package/layers/{support → voxel}/VoxelSimpleShading.js +1 -1
  69. package/layers/{support → voxel}/VoxelSlice.d.ts +0 -0
  70. package/layers/{support → voxel}/VoxelSlice.js +1 -1
  71. package/layers/{support → voxel}/VoxelTransferFunctionStyle.d.ts +0 -0
  72. package/layers/{support → voxel}/VoxelTransferFunctionStyle.js +1 -1
  73. package/layers/{support → voxel}/VoxelUniqueValue.js +1 -1
  74. package/layers/voxel/VoxelVariable.d.ts +4 -0
  75. package/layers/voxel/VoxelVariable.js +5 -0
  76. package/layers/{support → voxel}/VoxelVariableStyle.d.ts +0 -0
  77. package/layers/{support → voxel}/VoxelVariableStyle.js +1 -1
  78. package/layers/{support → voxel}/VoxelVolume.d.ts +0 -0
  79. package/layers/voxel/VoxelVolume.js +5 -0
  80. package/layers/{support → voxel}/VoxelVolumeIndex.js +1 -1
  81. package/layers/voxel/VoxelVolumeStyle.d.ts +4 -0
  82. package/layers/voxel/VoxelVolumeStyle.js +5 -0
  83. package/layers/{support → voxel}/voxelPlaneUtils.js +0 -0
  84. package/package.json +1 -1
  85. package/portal/support/portalLayers.js +1 -1
  86. package/rest/knowledgeGraph/GraphApplyEdits.d.ts +4 -0
  87. package/rest/knowledgeGraph/GraphApplyEditsResult.d.ts +4 -0
  88. package/rest/knowledgeGraph/GraphQueryStreaming.d.ts +4 -0
  89. package/rest/knowledgeGraph/GraphQueryStreamingResult.d.ts +4 -0
  90. package/rest/knowledgeGraph/GraphSearchStreaming.d.ts +4 -0
  91. package/rest/knowledgeGraph/InputQuantizationParameters.d.ts +4 -0
  92. package/rest/knowledgeGraph/OutputQuantizationParameters.d.ts +4 -0
  93. package/rest/print.js +1 -1
  94. package/rest/query/operations/pbfJSONFeatureSet.js +1 -1
  95. package/rest/support/TravelMode.js +1 -1
  96. package/rest/support/networkEnums.js +1 -1
  97. package/smartMapping/support/adapters/support/utils.js +1 -1
  98. package/support/popupUtils.js +1 -1
  99. package/support/revision.js +1 -1
  100. package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
  101. package/symbols/cim/CIMSymbolHelper.js +1 -1
  102. package/symbols/cim/CIMSymbolRasterizer.js +1 -1
  103. package/symbols/support/previewCIMSymbol.js +1 -1
  104. package/symbols/support/svgUtils.js +1 -1
  105. package/views/2d/engine/webgl/effects/post-processing/DropShadow.js +1 -1
  106. package/views/2d/engine/webgl/mesh/templates/WGLDynamicFillTemplate.js +1 -1
  107. package/views/2d/layers/features/schemaUtils.js +1 -1
  108. package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
  109. package/views/2d/layers/support/clusterUtils.js +1 -1
  110. package/views/3d/analysis/Dimension/DimensionTool.js +1 -1
  111. package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
  112. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  113. package/views/3d/analysis/Dimension/LengthDimensionVisualization.js +1 -1
  114. package/views/3d/analysis/Dimension/lengthDimensionConstraintUtils.js +1 -1
  115. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  116. package/views/3d/analysis/Dimension/lengthDimensionUtils.js +1 -1
  117. package/views/3d/analysis/Dimension/settings.js +1 -1
  118. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  119. package/views/3d/interactive/editingTools/transformGraphic/ExtentTransformTool.js +1 -1
  120. package/views/3d/interactive/manipulatorUtils.js +1 -1
  121. package/views/3d/support/engineContent/marker.js +1 -1
  122. package/views/3d/terrain/Tile.js +1 -1
  123. package/views/3d/webgl-engine/lib/Camera.js +1 -1
  124. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  125. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  126. package/views/analysis/DimensionAnalysisView.js +1 -1
  127. package/webscene/spec-certification/index.js +1 -1
  128. package/widgets/Attachments/AttachmentsViewModel.js +1 -1
  129. package/widgets/Attachments.js +1 -1
  130. package/widgets/Directions.js +1 -1
  131. package/widgets/Legend/LegendViewModel.js +1 -1
  132. package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
  133. package/widgets/Legend/support/sizeRampUtils.js +1 -1
  134. package/widgets/NavigationToggle/NavigationToggleViewModel.js +1 -1
  135. package/widgets/UtilityNetworkTrace.js +1 -1
  136. package/assets/esri/core/workers/chunks/0a72f82e2c02e19226fc.js +0 -1
  137. package/assets/esri/core/workers/chunks/1bfc83dc9c70a1adc1da.js +0 -1
  138. package/assets/esri/core/workers/chunks/1ff6736efd5f66a228eb.js +0 -1
  139. package/assets/esri/core/workers/chunks/3900c702242358c5d00e.js +0 -1
  140. package/assets/esri/core/workers/chunks/579469915c99e12c470e.js +0 -1
  141. package/assets/esri/core/workers/chunks/5d84925d075a8789a49c.js +0 -1
  142. package/assets/esri/core/workers/chunks/5ed372c86a81fc830997.js +0 -1
  143. package/assets/esri/core/workers/chunks/5eea9b2e97b77a32637d.js +0 -1
  144. package/assets/esri/core/workers/chunks/668c8cc95c0f7c9e50c2.js +0 -1
  145. package/assets/esri/core/workers/chunks/7c0a7c33b3434ad98cb5.js +0 -1
  146. package/assets/esri/core/workers/chunks/99524b64e28693d4b80b.js +0 -1
  147. package/assets/esri/core/workers/chunks/9e1a0c930511c55fa9d8.js +0 -1
  148. package/assets/esri/core/workers/chunks/a1487ea5cdc1c1eef228.js +0 -1
  149. package/assets/esri/core/workers/chunks/a3ebd88ff0d1dc0c1d8a.js +0 -1
  150. package/assets/esri/core/workers/chunks/a7882b30aa710c210905.js +0 -1
  151. package/assets/esri/core/workers/chunks/ae0b6c3a5b23c8f84fee.js +0 -1
  152. package/assets/esri/core/workers/chunks/b72a833ccf5d42586bc9.js +0 -1
  153. package/assets/esri/core/workers/chunks/bfa6040ac9ee774c74ba.js +0 -1
  154. package/assets/esri/core/workers/chunks/c0bcd6f57cb4ff28469a.js +0 -1
  155. package/assets/esri/core/workers/chunks/d4684209de4db9d1ba3c.js +0 -1
  156. package/assets/esri/core/workers/chunks/f0d9d15202ed7474a3a9.js +0 -1
  157. package/assets/esri/core/workers/chunks/f44429af58ea2d327daa.js +0 -1
  158. package/assets/esri/core/workers/chunks/f9dd40a7ce5908b14384.js +0 -1
  159. package/layers/support/OutStatistic.d.ts +0 -4
  160. package/layers/support/VoxelIsosurface.js +0 -5
  161. package/layers/support/VoxelVolume.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.25/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../chunks/tslib.es6.js";import t from"./Analysis.js";import s from"./DimensionSimpleStyle.js";import o from"./LengthDimension.js";import r from"../core/Collection.js";import{referenceSetter as i,castForReferenceSetter as n}from"../core/collectionUtils.js";import{isNone as p,isSome as l}from"../core/maybe.js";import{property as m}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{subclass as c}from"../core/accessorSupport/decorators/subclass.js";const a=r.ofType(o);let d=class extends t{constructor(e){super(e),this.type="dimension",this.style=new s}get dimensions(){return this._get("dimensions")||new a}set dimensions(e){this._set("dimensions",i(e,this.dimensions,a))}get extent(){return this.dimensions.reduce(((e,t)=>p(e)?l(t.extent)?t.extent.clone():null:l(t.extent)?e.union(t.extent):e),null)}get requiredPropertiesForEditing(){return this.dimensions.reduce(((e,t)=>(e.push(t.startPoint,t.endPoint),e)),[])}clear(){this.dimensions.removeAll()}};e([m({type:["dimension"]})],d.prototype,"type",void 0),e([m({cast:n,type:a,nonNullable:!0})],d.prototype,"dimensions",null),e([m({types:{key:"type",base:null,typeMap:{simple:s}},nonNullable:!0})],d.prototype,"style",void 0),e([m({readOnly:!0})],d.prototype,"extent",null),e([m({readOnly:!0})],d.prototype,"requiredPropertiesForEditing",null),d=e([c("esri.analysis.DimensionAnalysis")],d);const u=d;export{u as default};
5
+ import{_ as e}from"../chunks/tslib.es6.js";import t from"./Analysis.js";import n from"./DimensionSimpleStyle.js";import o from"./LengthDimension.js";import s from"../core/Collection.js";import{referenceSetter as i,castForReferenceSetter as r}from"../core/collectionUtils.js";import{isNone as l,isSome as p,unwrap as m}from"../core/maybe.js";import{watch as a,syncAndInitial as u}from"../core/reactiveUtils.js";import{property as c}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{subclass as d}from"../core/accessorSupport/decorators/subclass.js";import y from"../geometry/Extent.js";import{projectOrLoadMany as f}from"../geometry/projection.js";const h=s.ofType(o);let g=class extends t{constructor(e){super(e),this.type="dimension",this.style=new n,this.extent=null}initialize(){this.addHandles(a((()=>this._computeExtent()),(e=>{(l(e)||l(e.pending))&&this._set("extent",p(e)?e.extent:null)}),u))}get dimensions(){return this._get("dimensions")||new h}set dimensions(e){this._set("dimensions",i(e,this.dimensions,h))}get spatialReference(){for(const e of this.dimensions){if(p(e.startPoint))return e.startPoint.spatialReference;if(p(e.endPoint))return e.endPoint.spatialReference}return null}get requiredPropertiesForEditing(){return this.dimensions.reduce(((e,t)=>(e.push(t.startPoint,t.endPoint),e)),[])}async waitComputeExtent(){const e=this._computeExtent();return p(e)?m(e.pending):null}_computeExtent(){const e=this.spatialReference;if(l(e))return{pending:null,extent:null};const t=[];for(const s of this.dimensions)p(s.startPoint)&&t.push(s.startPoint),p(s.endPoint)&&t.push(s.endPoint);const n=f(t,e);if(p(n.pending))return{pending:n.pending,extent:null};let o=null;return p(n.geometries)&&(o=n.geometries.reduce(((e,t)=>l(e)?p(t)?y.fromPoint(t):null:p(t)?e.union(y.fromPoint(t)):e),null)),{pending:null,extent:o}}clear(){this.dimensions.removeAll()}};e([c({type:["dimension"]})],g.prototype,"type",void 0),e([c({cast:r,type:h,nonNullable:!0})],g.prototype,"dimensions",null),e([c({readOnly:!0})],g.prototype,"spatialReference",null),e([c({types:{key:"type",base:null,typeMap:{simple:n}},nonNullable:!0})],g.prototype,"style",void 0),e([c({value:null,readOnly:!0})],g.prototype,"extent",void 0),e([c({readOnly:!0})],g.prototype,"requiredPropertiesForEditing",null),g=e([d("esri.analysis.DimensionAnalysis")],g);const j=g;export{j 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.25/esri/copyright.txt for details.
4
4
  */
5
- import{_ as t}from"../chunks/tslib.es6.js";import"../geometry.js";import{LengthDimensionMeasureType as o,lengthDimensionMeasureType as e}from"./dimensionUtils.js";import{Clonable as r}from"../core/Clonable.js";import{cyclicalDegrees as s}from"../core/Cyclical.js";import{JSONSupportMixin as i}from"../core/JSONSupport.js";import{isNone as n,isSome as p}from"../core/maybe.js";import{property as m}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as a}from"../core/accessorSupport/decorators/cast.js";import{subclass as l}from"../core/accessorSupport/decorators/subclass.js";import{ensureNumber as c}from"../core/accessorSupport/ensureType.js";import u from"../geometry/Extent.js";import y from"../geometry/Point.js";let d=class extends(i(r)){constructor(t){super(t),this.type="length",this.startPoint=null,this.endPoint=null,this.measureType=o.Direct,this.offset=0,this.orientation=0}get extent(){if(n(this.startPoint))return null;const t=u.fromPoint(this.startPoint);return p(this.endPoint)&&t.union(u.fromPoint(this.endPoint)),t}};t([m({type:["length"],json:{write:{isRequired:!0}}})],d.prototype,"type",void 0),t([m({type:y,json:{write:!0}})],d.prototype,"startPoint",void 0),t([m({type:y,json:{write:!0}})],d.prototype,"endPoint",void 0),t([m({type:e,nonNullable:!0,json:{write:{isRequired:!0}}})],d.prototype,"measureType",void 0),t([m({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],d.prototype,"offset",void 0),t([m({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),a((t=>s.normalize(c(t),0,!0)))],d.prototype,"orientation",void 0),t([m({readOnly:!0})],d.prototype,"extent",null),d=t([l("esri.analysis.LengthDimension")],d);const j=d;export{j as default};
5
+ import{_ as o}from"../chunks/tslib.es6.js";import"../geometry.js";import{LengthDimensionMeasureType as t,lengthDimensionMeasureType as e}from"./dimensionUtils.js";import{Clonable as r}from"../core/Clonable.js";import{cyclicalDegrees as s}from"../core/Cyclical.js";import{JSONSupportMixin as i}from"../core/JSONSupport.js";import{property as p}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import{cast as n}from"../core/accessorSupport/decorators/cast.js";import{subclass as m}from"../core/accessorSupport/decorators/subclass.js";import{ensureNumber as a}from"../core/accessorSupport/ensureType.js";import c from"../geometry/Point.js";let l=class extends(i(r)){constructor(o){super(o),this.type="length",this.startPoint=null,this.endPoint=null,this.measureType=t.Direct,this.offset=0,this.orientation=0}};o([p({type:["length"],json:{write:{isRequired:!0}}})],l.prototype,"type",void 0),o([p({type:c,json:{write:!0}})],l.prototype,"startPoint",void 0),o([p({type:c,json:{write:!0}})],l.prototype,"endPoint",void 0),o([p({type:e,nonNullable:!0,json:{write:{isRequired:!0}}})],l.prototype,"measureType",void 0),o([p({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}})],l.prototype,"offset",void 0),o([p({type:Number,nonNullable:!0,json:{write:{isRequired:!0}}}),n((o=>s.normalize(a(o),0,!0)))],l.prototype,"orientation",void 0),l=o([m("esri.analysis.LengthDimension")],l);const u=l;export{u as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.25/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeModule as e}from"./ArcadeModule.js";import{ArcadeModuleLoader as t}from"./ArcadeModuleLoader.js";import n from"./Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as o,ensureArcadeExecutionError as l}from"./executionError.js";import a from"./Feature.js";import{NativeFunction as i,ArcadeFunction as s,ScopeMarshalledFunction as u,wrapModuleScopedResponse as c}from"./FunctionWrapper.js";import{y as f,a as p,s as d,p as h,o as w,v as m,i as g,c as v,m as y,R as b,x,w as S,b as I,g as F,I as C,j as R,r as A,u as M,q as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as L}from"./treeAnalysis.js";import{A as N}from"../chunks/array.js";import{registerFunctions as O}from"./functions/date.js";import{registerFunctions as B,geometryMember as j}from"./functions/geometry.js";import{registerFunctions as k}from"./functions/geomsync.js";import{registerFunctions as D}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as U}from"./functions/string.js";import q from"../geometry/Geometry.js";import G from"../geometry/SpatialReference.js";class P extends s{constructor(e,t){super(),this.definition=null,this.context=null,this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,localScope:{},depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new r(e,o.MaximumCallDepth,null);return Ie(this.definition,n,t,null)}}call(e,t){return V(e,t,((n,l,a)=>{const i={spatialReference:e.spatialReference,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};if(i.depthCounter.depth>64)throw new r(e,o.MaximumCallDepth,t);return Ie(this.definition,i,a,t)}))}marshalledCall(e,t,n,r){return r(e,t,((o,l,a)=>{const i={spatialReference:e.spatialReference,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};return a=a.map((t=>!g(t)||t instanceof u?t:c(t,e,r))),c(Ie(this.definition,i,a,t),n,r)}))}}class T extends e{constructor(e){super(e)}global(e){const t=this.executingContext.globalScope[e.toLowerCase()];if(t.valueset||(t.value=_(this.executingContext,t.node),t.valueset=!0),g(t.value)&&!(t.value instanceof u)){const e=new u;e.fn=t.value,e.parameterEvaluator=V,e.context=this.executingContext,t.value=e}return t.value}setGlobal(e,t){if(g(t))throw new r(null,o.AssignModuleFunction,null);this.executingContext.globalScope[e.toLowerCase()]={value:t,valueset:!0,node:null}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.executingContext.exports[e]}loadModule(e){let n=e.spatialReference;null==n&&(n=new G({wkid:102100})),this.moduleScope=Ce({},e.customfunctions),this.executingContext={spatialReference:n,globalScope:this.moduleScope,localScope:null,libraryResolver:new t(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},console:e.console?e.console:Ae,lrucache:e.lrucache,interceptor:e.interceptor,depthCounter:{depth:1}},_(this.executingContext,this.source.syntax)}}function W(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(_(e,t.arguments[r]));return n}function V(e,t,n){try{return!0===t.preparsed?n(e,null,t.arguments):n(e,t,W(e,t))}catch(r){throw r}}function _(e,t){try{switch(t?.type){case"EmptyStatement":return m;case"VariableDeclarator":return ue(e,t);case"VariableDeclaration":return se(e,t);case"ImportDeclaration":return ae(e,t);case"ExportNamedDeclaration":return ie(e,t);case"BlockStatement":case"Program":return re(e,t);case"FunctionDeclaration":return le(e,t);case"ReturnStatement":return oe(e,t);case"IfStatement":return ne(e,t);case"ExpressionStatement":return te(e,t);case"AssignmentExpression":return ee(e,t);case"UpdateExpression":return Z(e,t);case"BreakStatement":return w;case"ContinueStatement":return h;case"TemplateElement":return we(e,t);case"TemplateLiteral":return ge(e,t);case"ForStatement":return J(e,t);case"ForInStatement":return H(e,t);case"WhileStatement":return Q(e,t);case"Identifier":return ve(e,t);case"MemberExpression":return ce(e,t);case"Literal":return t.value;case"CallExpression":return ye(e,t);case"UnaryExpression":return fe(e,t);case"BinaryExpression":return de(e,t);case"LogicalExpression":return he(e,t);case"ArrayExpression":return pe(e,t);case"ObjectExpression":return Y(e,t);case"Property":return z(e,t);default:throw new r(e,o.Unrecognised,t)}}catch(n){throw l(e,t,n)}}function Y(e,t){const l={},a=new Map;for(let n=0;n<t.properties.length;n++){const i=_(e,t.properties[n]);if(g(i.value))throw new r(e,o.NoFunctionInDictionary,t);if(!1===v(i.key))throw new r(e,o.KeyMustBeString,t);let s=i.key.toString();const u=s.toLowerCase();a.has(u)?s=a.get(u):a.set(u,s),i.value===m?l[s]=null:l[s]=i.value}const i=new n(l);return i.immutable=!1,i}function z(e,t){return{key:"Identifier"===t.key.type?t.key.name:_(e,t.key),value:_(e,t.value)}}function H(e,t){const l=_(e,t.right);"VariableDeclaration"===t.left.type&&_(e,t.left);let a=null,i="";if("VariableDeclaration"===t.left.type){const e=t.left.declarations[0].id;"Identifier"===e.type&&(i=e.name)}else"Identifier"===t.left.type&&(i=t.left.name);if(!i)throw new r(e,o.InvalidIdentifier,t);if(i=i.toLowerCase(),null!=e.localScope&&void 0!==e.localScope[i]&&(a=e.localScope[i]),null===a&&void 0!==e.globalScope[i]&&(a=e.globalScope[i]),null===a)throw new r(e,o.InvalidIdentifier,t);if(y(l)||v(l)){const n=l.length;for(let r=0;r<n;r++){a.value=r;const n=_(e,t.body);if(n===w)break;if(n instanceof b)return n}return m}if(x(l)){for(let n=0;n<l.length();n++){a.value=n;const r=_(e,t.body);if(r===w)break;if(r instanceof b)return r}return m}if(!(l instanceof n||S(l)))return m;{const n=l.keys();for(let r=0;r<n.length;r++){a.value=n[r];const o=_(e,t.body);if(o===w)break;if(o instanceof b)return o}}}function J(e,t){null!==t.init&&_(e,t.init);const n={testResult:!0,lastAction:m};do{X(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof b?n.lastAction:m}function Q(e,t){const n={testResult:!0,lastAction:m};if(n.testResult=_(e,t.test),!1===n.testResult)return m;if(!0!==n.testResult)throw new r(e,o.BooleanConditionRequired,t);for(;!0===n.testResult&&(n.lastAction=_(e,t.body),n.lastAction!==w)&&!(n.lastAction instanceof b);)if(n.testResult=_(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new r(e,o.BooleanConditionRequired,t);return n.lastAction instanceof b?n.lastAction:m}function X(e,t,n){if(null!==t.test){if(n.testResult=_(e,t.test),!1===n.testResult)return;if(!0!==n.testResult)throw new r(e,o.BooleanConditionRequired,t)}n.lastAction=_(e,t.body),n.lastAction!==w?n.lastAction instanceof b?n.testResult=!1:null!==t.update&&_(e,t.update):n.testResult=!1}function Z(e,t){let l,a=null,i="";if("MemberExpression"===t.argument.type){if(a=_(e,t.argument.object),!0===t.argument.computed?i=_(e,t.argument.property):"Identifier"===t.argument.property.type&&(i=t.argument.property.name),y(a)){if(!I(i))throw new r(e,o.ArrayAccessorMustBeNumber,t);if(i<0&&(i=a.length+i),i<0||i>=a.length)throw new r(e,o.OutOfBounds,t);l=F(a[i]),a[i]="++"===t.operator?l+1:l-1}else if(a instanceof n){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0!==a.hasField(i))throw new r(e,o.FieldNotFound,t);l=F(a.field(i)),a.setField(i,"++"===t.operator?l+1:l-1)}else if(S(a)){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0!==a.hasField(i))throw new r(e,o.FieldNotFound,t);l=F(a.field(i)),a.setField(i,"++"===t.operator?l+1:l-1)}else{if(x(a))throw new r(e,o.Immutable,t);if(!(a instanceof T))throw new r(e,o.InvalidParameter,t);if(!1===v(i))throw new r(e,o.ModuleAccessorMustBeString,t);if(!0!==a.hasGlobal(i))throw new r(e,o.ModuleExportNotFound,t);l=F(a.global(i)),a.setGlobal(i,"++"===t.operator?l+1:l-1)}return!1===t.prefix?l:"++"===t.operator?l+1:l-1}if(a="Identifier"===t.argument.type?t.argument.name.toLowerCase():"",!a)throw new r(e,o.InvalidIdentifier,t);if(null!=e.localScope&&void 0!==e.localScope[a])return l=F(e.localScope[a].value),e.localScope[a]={value:"++"===t.operator?l+1:l-1,valueset:!0,node:t},!1===t.prefix?l:"++"===t.operator?l+1:l-1;if(void 0!==e.globalScope[a])return l=F(e.globalScope[a].value),e.globalScope[a]={value:"++"===t.operator?l+1:l-1,valueset:!0,node:t},!1===t.prefix?l:"++"===t.operator?l+1:l-1;throw new r(e,o.InvalidIdentifier,t)}function $(e,t,n,l,a){switch(t){case"=":return e===m?null:e;case"/=":return F(n)/F(e);case"*=":return F(n)*F(e);case"-=":return F(n)-F(e);case"+=":return v(n)||v(e)?R(n)+R(e):F(n)+F(e);case"%=":return F(n)%F(e);default:throw new r(a,o.UnsupportedOperator,l)}}function ee(e,t){const l=_(e,t.right);let a=null,i="";if("MemberExpression"===t.left.type){if(a=_(e,t.left.object),!0===t.left.computed)i=_(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new r(e,o.InvalidIdentifier,t);i=t.left.property.name}if(y(a)){if(!I(i))throw new r(e,o.ArrayAccessorMustBeNumber,t);if(i<0&&(i=a.length+i),i<0||i>a.length)throw new r(e,o.OutOfBounds,t);if(i===a.length){if("="!==t.operator)throw new r(e,o.OutOfBounds,t);a[i]=$(l,t.operator,a[i],t,e)}else a[i]=$(l,t.operator,a[i],t,e)}else if(a instanceof n){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0===a.hasField(i))a.setField(i,$(l,t.operator,a.field(i),t,e));else{if("="!==t.operator)throw new r(e,o.FieldNotFound,t,{key:i});a.setField(i,$(l,t.operator,null,t,e))}}else if(S(a)){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0===a.hasField(i))a.setField(i,$(l,t.operator,a.field(i),t,e));else{if("="!==t.operator)throw new r(e,o.FieldNotFound,t,{key:i});a.setField(i,$(l,t.operator,null,t,e))}}else{if(x(a))throw new r(e,o.Immutable,t);if(!(a instanceof T))throw new r(e,o.InvalidIdentifier,t);if(!1===v(i))throw new r(e,o.ModuleAccessorMustBeString,t);if(!0!==a.hasGlobal(i))throw new r(e,o.ModuleExportNotFound,t);a.setGlobal(i,$(l,t.operator,a.global(i),t,e))}return m}if(a=t.left.name.toLowerCase(),null!=e.localScope&&void 0!==e.localScope[a])return e.localScope[a]={value:$(l,t.operator,e.localScope[a].value,t,e),valueset:!0,node:t.right},m;if(void 0!==e.globalScope[a])return e.globalScope[a]={value:$(l,t.operator,e.globalScope[a].value,t,e),valueset:!0,node:t.right},m;throw new r(e,o.InvalidIdentifier,t)}function te(e,t){if("AssignmentExpression"===t.expression.type||"UpdateExpression"===t.expression.type)return _(e,t.expression);if("CallExpression"===t.expression.type){const n=_(e,t.expression);return n===m?m:new C(n)}{const n=_(e,t.expression);return n===m?m:new C(n)}}function ne(e,t){const n=_(e,t.test);if(!0===n)return _(e,t.consequent);if(!1===n)return null!==t.alternate?_(e,t.alternate):m;throw new r(e,o.BooleanConditionRequired,t)}function re(e,t){let n=m;for(let r=0;r<t.body.length;r++)if(n=_(e,t.body[r]),n instanceof b||n===w||n===h)return n;return n}function oe(e,t){if(null===t.argument)return new b(m);const n=_(e,t.argument);return new b(n)}function le(e,t){const n=t.id.name.toLowerCase();return e.globalScope[n]={valueset:!0,node:null,value:new P(t,e)},m}function ae(e,t){const n=t.specifiers[0].local.name.toLowerCase(),r=e.libraryResolver.loadLibrary(n);let o=null;return e.libraryResolver._moduleSingletons?.has(r.uri)?o=e.libraryResolver._moduleSingletons.get(r.uri):(o=new T(r),o.loadModule(e),e.libraryResolver._moduleSingletons?.set(r.uri,o)),e.globalScope[n]={value:o,valueset:!0,node:t},m}function ie(e,t){if(_(e,t.declaration),"FunctionDeclaration"===t.declaration.type)e.exports[t.declaration.id.name.toLowerCase()]="function";else if("VariableDeclaration"===t.declaration.type)for(const n of t.declaration.declarations)e.exports[n.id.name.toLowerCase()]="variable";return m}function se(e,t){for(let n=0;n<t.declarations.length;n++)_(e,t.declarations[n]);return m}function ue(e,t){let n=null===t.init?null:_(e,t.init);if(n===m&&(n=null),"Identifier"!==t.id.type)throw new r(e,o.InvalidIdentifier,t);const l=t.id.name.toLowerCase();return null!=e.localScope?e.localScope[l]={value:n,valueset:!0,node:t.init}:e.globalScope[l]={value:n,valueset:!0,node:t.init},m}function ce(e,t){try{const l=_(e,t.object);if(null===l)throw new r(e,o.MemberOfNull,t);if(!1===t.computed){if("Identifier"===t.property.type){if(l instanceof n||S(l))return l.field(t.property.name);if(l instanceof q)return j(l,t.property.name,t,e);if(l instanceof T){if(!l.hasGlobal(t.property.name))throw new r(e,o.InvalidIdentifier,t);return l.global(t.property.name)}}throw new r(e,o.InvalidMemberAccessKey,t)}{let a=_(e,t.property);if(l instanceof n||S(l)){if(v(a))return l.field(a);throw new r(e,o.InvalidMemberAccessKey,t)}if(l instanceof T){if(v(a))return l.global(a);throw new r(e,o.InvalidMemberAccessKey,t)}if(l instanceof q){if(v(a))return j(l,a,t,e);throw new r(e,o.InvalidMemberAccessKey,t)}if(y(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length+a),a>=l.length||a<0)throw new r(e,o.OutOfBounds,t);return l[a]}throw new r(e,o.InvalidMemberAccessKey,t)}if(v(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length+a),a>=l.length||a<0)throw new r(e,o.OutOfBounds,t);return l[a]}throw new r(e,o.InvalidMemberAccessKey,t)}if(x(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length()+a),a>=l.length()||a<0)throw new r(e,o.OutOfBounds,t);return l.get(a)}throw new r(e,o.InvalidMemberAccessKey,t)}throw new r(e,o.InvalidMemberAccessKey,t)}}catch(l){throw l}}function fe(e,t){try{const n=_(e,t.argument);if(p(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new r(e,o.UnsupportedUnaryOperator,t)}if("~"===t.operator)return~F(n);if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);throw new r(e,o.UnsupportedUnaryOperator,t)}catch(n){throw n}}function pe(e,t){try{const n=[];for(let l=0;l<t.elements.length;l++){const a=_(e,t.elements[l]);if(g(a))throw new r(e,o.NoFunctionInArray,t);a===m?n.push(null):n.push(a)}return n}catch(n){throw n}}function de(e,t){try{const n=[_(e,t.left),_(e,t.right)],l=n[0],a=n[1];switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return M(F(l),F(a),t.operator);case"==":return d(l,a);case"!=":return!d(l,a);case"<":case">":case"<=":case">=":return A(l,a,t.operator);case"+":return v(l)||v(a)?R(l)+R(a):F(l)+F(a);case"-":return F(l)-F(a);case"*":return F(l)*F(a);case"/":return F(l)/F(a);case"%":return F(l)%F(a);default:throw new r(e,o.UnsupportedOperator,t)}}catch(n){throw n}}function he(e,t){try{const n=_(e,t.left);if(p(n))switch(t.operator){case"||":if(!0===n)return n;{const n=_(e,t.right);if(p(n))return n;throw new r(e,o.LogicExpressionOrAnd,t)}case"&&":if(!1===n)return n;{const n=_(e,t.right);if(p(n))return n;throw new r(e,o.LogicExpressionOrAnd,t)}default:throw new r(e,o.LogicExpressionOrAnd,t)}throw new r(e,o.LogicalExpressionOnlyBoolean,t)}catch(n){throw n}}function we(e,t){return t.value?t.value.cooked:""}function me(e,t,n){if(g(e))throw new r(t,o.NoFunctionInTemplateLiteral,n);return e}function ge(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){n+=t.expressions[r]?R(me(_(e,t.expressions[r]),e,t)):"",r++}return n}function ve(e,t){let n;try{const l=t.name.toLowerCase();if(null!=e.localScope&&void 0!==e.localScope[l])return n=e.localScope[l],!0===n.valueset||(n.value=_(e,n.node),n.valueset=!0),n.value;if(void 0!==e.globalScope[l])return n=e.globalScope[l],!0===n.valueset||(n.value=_(e,n.node),n.valueset=!0),n.value;throw new r(e,o.InvalidIdentifier,t)}catch(l){throw l}}function ye(e,t){try{if("MemberExpression"===t.callee.type){const n=_(e,t.callee.object);if(!(n instanceof T))throw new r(e,o.FuncionNotFound,t);const l=!1===t.callee.computed?t.callee.property.name:_(e,t.callee.property);if(!n.hasGlobal(l))throw new r(e,o.FuncionNotFound,t);const a=n.global(l);if(!g(a))throw new r(e,o.CallNonFunction,t);return a.call(e,t)}if("Identifier"!==t.callee.type)throw new r(e,o.FuncionNotFound,t);if(null!=e.localScope&&void 0!==e.localScope[t.callee.name.toLowerCase()]){const n=e.localScope[t.callee.name.toLowerCase()];if(g(n.value))return n.value.call(e,t);throw new r(e,o.CallNonFunction,t)}if(void 0!==e.globalScope[t.callee.name.toLowerCase()]){const n=e.globalScope[t.callee.name.toLowerCase()];if(g(n.value))return n.value.call(e,t);throw new r(e,o.CallNonFunction,t)}throw new r(e,o.FuncionNotFound,t)}catch(n){throw n}}const be={};function xe(e,t,n,r){try{const o=_(e,t.arguments[n]);if(d(o,r))return _(e,t.arguments[n+1]);{const o=t.arguments.length-n;return 1===o?_(e,t.arguments[n]):2===o?null:3===o?_(e,t.arguments[n+2]):xe(e,t,n+2,r)}}catch(o){throw o}}function Se(e,t,n,l){try{if(!0===l)return _(e,t.arguments[n+1]);if(3===t.arguments.length-n)return _(e,t.arguments[n+2]);{const l=_(e,t.arguments[n+2]);if(!1===p(l))throw new r(e,o.BooleanConditionRequired,t.arguments[n+2]);return Se(e,t,n+2,l)}}catch(a){throw a}}function Ie(e,t,n,l){try{const a=e.body;if(n.length!==e.params.length)throw new r(t,o.WrongNumberOfParameters,l);if(null!=t.localScope)for(let r=0;r<n.length;r++)t.localScope[e.params[r].name.toLowerCase()]={value:n[r],valueset:!0,node:null};const i=_(t,a);if(i instanceof b)return i.value;if(i===w)throw new r(t,o.UnexpectedToken,l);if(i===h)throw new r(t,o.UnexpectedToken,l);return i instanceof C?i.value:i}catch(a){throw a}}O(be,V),U(be,V),D(be,V),B(be,V),K(be,V),k(be,V),be.iif=function(e,t){try{f(null===t.arguments?[]:t.arguments,3,3,e,t);const n=_(e,t.arguments[0]);if(!1===p(n))throw new r(e,o.BooleanConditionRequired,t);return _(e,!0===n?t.arguments[1]:t.arguments[2])}catch(n){throw n}},be.decode=function(e,t){try{if(t.arguments.length<2)throw new r(e,o.WrongNumberOfParameters,t);if(2===t.arguments.length)return _(e,t.arguments[1]);{if((t.arguments.length-1)%2==0)throw new r(e,o.WrongNumberOfParameters,t);const n=_(e,t.arguments[0]);return xe(e,t,1,n)}}catch(n){throw n}},be.when=function(e,t){try{if(t.arguments.length<3)throw new r(e,o.WrongNumberOfParameters,t);if(t.arguments.length%2==0)throw new r(e,o.WrongNumberOfParameters,t);const n=_(e,t.arguments[0]);if(!1===p(n))throw new r(e,o.BooleanConditionRequired,t.arguments[0]);return Se(e,t,0,n)}catch(n){throw n}};for(const Le in be)be[Le]={value:new i(be[Le]),valueset:!0,node:null};const Fe=function(){};function Ce(e,t){const r=new Fe;e||(e={}),t||(t={});const o=new n({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});o.immutable=!1,r.textformatting={value:o,valueset:!0,node:null};for(const n in t)r[n]={value:new i(t[n]),native:!0,valueset:!0,node:null};for(const n in e)e[n]&&"esri.Graphic"===e[n].declaredClass?r[n]={value:a.createFromGraphic(e[n]),valueset:!0,node:null}:r[n]={value:e[n],valueset:!0,node:null};return r}Fe.prototype=be,Fe.prototype.infinity={value:Number.POSITIVE_INFINITY,valueset:!0,node:null},Fe.prototype.pi={value:Math.PI,valueset:!0,node:null};const Re={fixSpatialReference:E,parseArguments:W,standardFunction:V};function Ae(e){console.log(e)}function Me(e){const t={mode:"sync",compiled:!1,functions:{},signatures:[],standardFunction:V,evaluateIdentifier:ve};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const n in t.functions)be[n]={value:new i(t.functions[n]),valueset:!0,node:null},Fe.prototype[n]=be[n];for(let n=0;n<t.signatures.length;n++)L(t.signatures[n],"async")}function Ee(e,n){let l=n.spatialReference;null==l&&(l=new G({wkid:102100}));let a=null;e.usesModules&&(a=new t(new Map,e.loadedModules));const i={spatialReference:l,globalScope:Ce(n.vars,n.customfunctions),localScope:null,exports:{},libraryResolver:a,console:n.console?n.console:Ae,lrucache:n.lrucache,interceptor:n.interceptor,depthCounter:{depth:1}};let s=_(i,e);if(s instanceof b&&(s=s.value),s instanceof C&&(s=s.value),s===m&&(s=null),s===w)throw new r(i,o.IllegalResult,null);if(s===h)throw new r(i,o.IllegalResult,null);if(g(s))throw new r(i,o.IllegalResult,null);return s}Me([N]);export{Ee as executeScript,Me as extend,Re as functionHelper};
5
+ import{ArcadeModule as e}from"./ArcadeModule.js";import{ArcadeModuleLoader as t}from"./ArcadeModuleLoader.js";import n from"./Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as o,ensureArcadeExecutionError as l}from"./executionError.js";import a from"./Feature.js";import{NativeFunction as i,ArcadeFunction as s,ScopeMarshalledFunction as u,wrapModuleScopedResponse as c}from"./FunctionWrapper.js";import{y as f,a as p,s as d,p as h,o as w,v as m,i as g,c as v,m as y,R as b,x,w as S,b as I,g as F,I as C,j as R,r as A,u as M,q as E}from"../chunks/languageUtils.js";import{addFunctionDeclaration as L}from"./treeAnalysis.js";import{A as N}from"../chunks/array.js";import{registerFunctions as O}from"./functions/date.js";import{registerFunctions as B,geometryMember as j}from"./functions/geometry.js";import{registerFunctions as k}from"./functions/geomsync.js";import{registerFunctions as D}from"./functions/maths.js";import{registerFunctions as K}from"./functions/stats.js";import{registerFunctions as U}from"./functions/string.js";import q from"../geometry/Geometry.js";import G from"../geometry/SpatialReference.js";class P extends s{constructor(e,t){super(),this.definition=null,this.context=null,this.definition=e,this.context=t}createFunction(e){return(...t)=>{const n={spatialReference:this.context.spatialReference,console:this.context.console,lrucache:this.context.lrucache,exports:this.context.exports,libraryResolver:this.context.libraryResolver,interceptor:this.context.interceptor,localScope:{},depthCounter:{depth:e.depthCounter.depth+1},globalScope:this.context.globalScope};if(n.depthCounter.depth>64)throw new r(e,o.MaximumCallDepth,null);return Ie(this.definition,n,t,null)}}call(e,t){return V(e,t,((n,l,a)=>{const i={spatialReference:e.spatialReference,globalScope:e.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};if(i.depthCounter.depth>64)throw new r(e,o.MaximumCallDepth,t);return Ie(this.definition,i,a,t)}))}marshalledCall(e,t,n,r){return r(e,t,((o,l,a)=>{const i={spatialReference:e.spatialReference,globalScope:n.globalScope,depthCounter:{depth:e.depthCounter.depth+1},libraryResolver:e.libraryResolver,exports:e.exports,console:e.console,lrucache:e.lrucache,interceptor:e.interceptor,localScope:{}};return a=a.map((t=>!g(t)||t instanceof u?t:c(t,e,r))),c(Ie(this.definition,i,a,t),n,r)}))}}class T extends e{constructor(e){super(e)}global(e){const t=this.executingContext.globalScope[e.toLowerCase()];if(t.valueset||(t.value=_(this.executingContext,t.node),t.valueset=!0),g(t.value)&&!(t.value instanceof u)){const e=new u;e.fn=t.value,e.parameterEvaluator=V,e.context=this.executingContext,t.value=e}return t.value}setGlobal(e,t){if(g(t))throw new r(null,o.AssignModuleFunction,null);this.executingContext.globalScope[e.toLowerCase()]={value:t,valueset:!0,node:null}}hasGlobal(e){return void 0===this.executingContext.exports[e]&&(e=e.toLowerCase()),void 0!==this.executingContext.exports[e]}loadModule(e){let n=e.spatialReference;null==n&&(n=new G({wkid:102100})),this.moduleScope=Ce({},e.customfunctions),this.executingContext={spatialReference:n,globalScope:this.moduleScope,localScope:null,libraryResolver:new t(e.libraryResolver._moduleSingletons,this.source.syntax.loadedModules),exports:{},console:e.console?e.console:Ae,lrucache:e.lrucache,interceptor:e.interceptor,depthCounter:{depth:1}},_(this.executingContext,this.source.syntax)}}function W(e,t){const n=[];for(let r=0;r<t.arguments.length;r++)n.push(_(e,t.arguments[r]));return n}function V(e,t,n){try{return!0===t.preparsed?n(e,null,t.arguments):n(e,t,W(e,t))}catch(r){throw r}}function _(e,t){try{switch(t?.type){case"EmptyStatement":return m;case"VariableDeclarator":return ue(e,t);case"VariableDeclaration":return se(e,t);case"ImportDeclaration":return ae(e,t);case"ExportNamedDeclaration":return ie(e,t);case"BlockStatement":case"Program":return re(e,t);case"FunctionDeclaration":return le(e,t);case"ReturnStatement":return oe(e,t);case"IfStatement":return ne(e,t);case"ExpressionStatement":return te(e,t);case"AssignmentExpression":return ee(e,t);case"UpdateExpression":return Z(e,t);case"BreakStatement":return w;case"ContinueStatement":return h;case"TemplateElement":return we(e,t);case"TemplateLiteral":return ge(e,t);case"ForStatement":return J(e,t);case"ForInStatement":return H(e,t);case"WhileStatement":return Q(e,t);case"Identifier":return ve(e,t);case"MemberExpression":return ce(e,t);case"Literal":return t.value;case"CallExpression":return ye(e,t);case"UnaryExpression":return fe(e,t);case"BinaryExpression":return de(e,t);case"LogicalExpression":return he(e,t);case"ArrayExpression":return pe(e,t);case"ObjectExpression":return Y(e,t);case"Property":return z(e,t);default:throw new r(e,o.Unrecognised,t)}}catch(n){throw l(e,t,n)}}function Y(e,t){const l={},a=new Map;for(let n=0;n<t.properties.length;n++){const i=_(e,t.properties[n]);if(g(i.value))throw new r(e,o.NoFunctionInDictionary,t);if(!1===v(i.key))throw new r(e,o.KeyMustBeString,t);let s=i.key.toString();const u=s.toLowerCase();a.has(u)?s=a.get(u):a.set(u,s),i.value===m?l[s]=null:l[s]=i.value}const i=new n(l);return i.immutable=!1,i}function z(e,t){return{key:"Identifier"===t.key.type?t.key.name:_(e,t.key),value:_(e,t.value)}}function H(e,t){const l=_(e,t.right);"VariableDeclaration"===t.left.type&&_(e,t.left);let a=null,i="";if("VariableDeclaration"===t.left.type){const e=t.left.declarations[0].id;"Identifier"===e.type&&(i=e.name)}else"Identifier"===t.left.type&&(i=t.left.name);if(!i)throw new r(e,o.InvalidIdentifier,t);if(i=i.toLowerCase(),null!=e.localScope&&void 0!==e.localScope[i]&&(a=e.localScope[i]),null===a&&void 0!==e.globalScope[i]&&(a=e.globalScope[i]),null===a)throw new r(e,o.InvalidIdentifier,t);if(y(l)||v(l)){const n=l.length;for(let r=0;r<n;r++){a.value=r;const n=_(e,t.body);if(n===w)break;if(n instanceof b)return n}return m}if(x(l)){for(let n=0;n<l.length();n++){a.value=n;const r=_(e,t.body);if(r===w)break;if(r instanceof b)return r}return m}if(!(l instanceof n||S(l)))return m;{const n=l.keys();for(let r=0;r<n.length;r++){a.value=n[r];const o=_(e,t.body);if(o===w)break;if(o instanceof b)return o}}}function J(e,t){null!==t.init&&_(e,t.init);const n={testResult:!0,lastAction:m};do{X(e,t,n)}while(!0===n.testResult);return n.lastAction instanceof b?n.lastAction:m}function Q(e,t){const n={testResult:!0,lastAction:m};if(n.testResult=_(e,t.test),!1===n.testResult)return m;if(!0!==n.testResult)throw new r(e,o.BooleanConditionRequired,t);for(;!0===n.testResult&&(n.lastAction=_(e,t.body),n.lastAction!==w)&&!(n.lastAction instanceof b);)if(n.testResult=_(e,t.test),!0!==n.testResult&&!1!==n.testResult)throw new r(e,o.BooleanConditionRequired,t);return n.lastAction instanceof b?n.lastAction:m}function X(e,t,n){if(null!==t.test){if(n.testResult=_(e,t.test),!1===n.testResult)return;if(!0!==n.testResult)throw new r(e,o.BooleanConditionRequired,t)}n.lastAction=_(e,t.body),n.lastAction!==w?n.lastAction instanceof b?n.testResult=!1:null!==t.update&&_(e,t.update):n.testResult=!1}function Z(e,t){let l,a=null,i="";if("MemberExpression"===t.argument.type){if(a=_(e,t.argument.object),!0===t.argument.computed?i=_(e,t.argument.property):"Identifier"===t.argument.property.type&&(i=t.argument.property.name),y(a)){if(!I(i))throw new r(e,o.ArrayAccessorMustBeNumber,t);if(i<0&&(i=a.length+i),i<0||i>=a.length)throw new r(e,o.OutOfBounds,t);l=F(a[i]),a[i]="++"===t.operator?l+1:l-1}else if(a instanceof n){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0!==a.hasField(i))throw new r(e,o.FieldNotFound,t);l=F(a.field(i)),a.setField(i,"++"===t.operator?l+1:l-1)}else if(S(a)){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0!==a.hasField(i))throw new r(e,o.FieldNotFound,t);l=F(a.field(i)),a.setField(i,"++"===t.operator?l+1:l-1)}else{if(x(a))throw new r(e,o.Immutable,t);if(!(a instanceof T))throw new r(e,o.InvalidParameter,t);if(!1===v(i))throw new r(e,o.ModuleAccessorMustBeString,t);if(!0!==a.hasGlobal(i))throw new r(e,o.ModuleExportNotFound,t);l=F(a.global(i)),a.setGlobal(i,"++"===t.operator?l+1:l-1)}return!1===t.prefix?l:"++"===t.operator?l+1:l-1}if(a="Identifier"===t.argument.type?t.argument.name.toLowerCase():"",!a)throw new r(e,o.InvalidIdentifier,t);if(null!=e.localScope&&void 0!==e.localScope[a])return l=F(e.localScope[a].value),e.localScope[a]={value:"++"===t.operator?l+1:l-1,valueset:!0,node:t},!1===t.prefix?l:"++"===t.operator?l+1:l-1;if(void 0!==e.globalScope[a])return l=F(e.globalScope[a].value),e.globalScope[a]={value:"++"===t.operator?l+1:l-1,valueset:!0,node:t},!1===t.prefix?l:"++"===t.operator?l+1:l-1;throw new r(e,o.InvalidIdentifier,t)}function $(e,t,n,l,a){switch(t){case"=":return e===m?null:e;case"/=":return F(n)/F(e);case"*=":return F(n)*F(e);case"-=":return F(n)-F(e);case"+=":return v(n)||v(e)?R(n)+R(e):F(n)+F(e);case"%=":return F(n)%F(e);default:throw new r(a,o.UnsupportedOperator,l)}}function ee(e,t){const l=_(e,t.right);let a=null,i="";if("MemberExpression"===t.left.type){if(a=_(e,t.left.object),!0===t.left.computed)i=_(e,t.left.property);else{if("Identifier"!==t.left.property.type)throw new r(e,o.InvalidIdentifier,t);i=t.left.property.name}if(y(a)){if(!I(i))throw new r(e,o.ArrayAccessorMustBeNumber,t);if(i<0&&(i=a.length+i),i<0||i>a.length)throw new r(e,o.OutOfBounds,t);if(i===a.length){if("="!==t.operator)throw new r(e,o.OutOfBounds,t);a[i]=$(l,t.operator,a[i],t,e)}else a[i]=$(l,t.operator,a[i],t,e)}else if(a instanceof n){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0===a.hasField(i))a.setField(i,$(l,t.operator,a.field(i),t,e));else{if("="!==t.operator)throw new r(e,o.FieldNotFound,t,{key:i});a.setField(i,$(l,t.operator,null,t,e))}}else if(S(a)){if(!1===v(i))throw new r(e,o.KeyAccessorMustBeString,t);if(!0===a.hasField(i))a.setField(i,$(l,t.operator,a.field(i),t,e));else{if("="!==t.operator)throw new r(e,o.FieldNotFound,t,{key:i});a.setField(i,$(l,t.operator,null,t,e))}}else{if(x(a))throw new r(e,o.Immutable,t);if(!(a instanceof T))throw new r(e,o.InvalidIdentifier,t);if(!1===v(i))throw new r(e,o.ModuleAccessorMustBeString,t);if(!0!==a.hasGlobal(i))throw new r(e,o.ModuleExportNotFound,t);a.setGlobal(i,$(l,t.operator,a.global(i),t,e))}return m}if(a=t.left.name.toLowerCase(),null!=e.localScope&&void 0!==e.localScope[a])return e.localScope[a]={value:$(l,t.operator,e.localScope[a].value,t,e),valueset:!0,node:t.right},m;if(void 0!==e.globalScope[a])return e.globalScope[a]={value:$(l,t.operator,e.globalScope[a].value,t,e),valueset:!0,node:t.right},m;throw new r(e,o.InvalidIdentifier,t)}function te(e,t){if("AssignmentExpression"===t.expression.type||"UpdateExpression"===t.expression.type)return _(e,t.expression);if("CallExpression"===t.expression.type){const n=_(e,t.expression);return n===m?m:new C(n)}{const n=_(e,t.expression);return n===m?m:new C(n)}}function ne(e,t){const n=_(e,t.test);if(!0===n)return _(e,t.consequent);if(!1===n)return null!==t.alternate?_(e,t.alternate):m;throw new r(e,o.BooleanConditionRequired,t)}function re(e,t){let n=m;for(let r=0;r<t.body.length;r++)if(n=_(e,t.body[r]),n instanceof b||n===w||n===h)return n;return n}function oe(e,t){if(null===t.argument)return new b(m);const n=_(e,t.argument);return new b(n)}function le(e,t){const n=t.id.name.toLowerCase();return e.globalScope[n]={valueset:!0,node:null,value:new P(t,e)},m}function ae(e,t){const n=t.specifiers[0].local.name.toLowerCase(),r=e.libraryResolver.loadLibrary(n);let o=null;return e.libraryResolver._moduleSingletons?.has(r.uri)?o=e.libraryResolver._moduleSingletons.get(r.uri):(o=new T(r),o.loadModule(e),e.libraryResolver._moduleSingletons?.set(r.uri,o)),e.globalScope[n]={value:o,valueset:!0,node:t},m}function ie(e,t){if(_(e,t.declaration),"FunctionDeclaration"===t.declaration.type)e.exports[t.declaration.id.name.toLowerCase()]="function";else if("VariableDeclaration"===t.declaration.type)for(const n of t.declaration.declarations)e.exports[n.id.name.toLowerCase()]="variable";return m}function se(e,t){for(let n=0;n<t.declarations.length;n++)_(e,t.declarations[n]);return m}function ue(e,t){let n=null===t.init?null:_(e,t.init);if(n===m&&(n=null),"Identifier"!==t.id.type)throw new r(e,o.InvalidIdentifier,t);const l=t.id.name.toLowerCase();return null!=e.localScope?e.localScope[l]={value:n,valueset:!0,node:t.init}:e.globalScope[l]={value:n,valueset:!0,node:t.init},m}function ce(e,t){try{const l=_(e,t.object);if(null===l)throw new r(e,o.MemberOfNull,t);if(!1===t.computed){if("Identifier"===t.property.type){if(l instanceof n||S(l))return l.field(t.property.name);if(l instanceof q)return j(l,t.property.name,t,e);if(l instanceof T){if(!l.hasGlobal(t.property.name))throw new r(e,o.InvalidIdentifier,t);return l.global(t.property.name)}}throw new r(e,o.InvalidMemberAccessKey,t)}{let a=_(e,t.property);if(l instanceof n||S(l)){if(v(a))return l.field(a);throw new r(e,o.InvalidMemberAccessKey,t)}if(l instanceof T){if(v(a))return l.global(a);throw new r(e,o.InvalidMemberAccessKey,t)}if(l instanceof q){if(v(a))return j(l,a,t,e);throw new r(e,o.InvalidMemberAccessKey,t)}if(y(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length+a),a>=l.length||a<0)throw new r(e,o.OutOfBounds,t);return l[a]}throw new r(e,o.InvalidMemberAccessKey,t)}if(v(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length+a),a>=l.length||a<0)throw new r(e,o.OutOfBounds,t);return l[a]}throw new r(e,o.InvalidMemberAccessKey,t)}if(x(l)){if(I(a)&&isFinite(a)&&Math.floor(a)===a){if(a<0&&(a=l.length()+a),a>=l.length()||a<0)throw new r(e,o.OutOfBounds,t);return l.get(a)}throw new r(e,o.InvalidMemberAccessKey,t)}throw new r(e,o.InvalidMemberAccessKey,t)}}catch(l){throw l}}function fe(e,t){try{const n=_(e,t.argument);if(p(n)){if("!"===t.operator)return!n;if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);if("~"===t.operator)return~F(n);throw new r(e,o.UnsupportedUnaryOperator,t)}if("~"===t.operator)return~F(n);if("-"===t.operator)return-1*F(n);if("+"===t.operator)return 1*F(n);throw new r(e,o.UnsupportedUnaryOperator,t)}catch(n){throw n}}function pe(e,t){try{const n=[];for(let l=0;l<t.elements.length;l++){const a=_(e,t.elements[l]);if(g(a))throw new r(e,o.NoFunctionInArray,t);a===m?n.push(null):n.push(a)}return n}catch(n){throw n}}function de(e,t){try{const n=[_(e,t.left),_(e,t.right)],l=n[0],a=n[1];switch(t.operator){case"|":case"<<":case">>":case">>>":case"^":case"&":return M(F(l),F(a),t.operator);case"==":return d(l,a);case"!=":return!d(l,a);case"<":case">":case"<=":case">=":return A(l,a,t.operator);case"+":return v(l)||v(a)?R(l)+R(a):F(l)+F(a);case"-":return F(l)-F(a);case"*":return F(l)*F(a);case"/":return F(l)/F(a);case"%":return F(l)%F(a);default:throw new r(e,o.UnsupportedOperator,t)}}catch(n){throw n}}function he(e,t){try{const n=_(e,t.left);if(p(n))switch(t.operator){case"||":if(!0===n)return n;{const n=_(e,t.right);if(p(n))return n;throw new r(e,o.LogicExpressionOrAnd,t)}case"&&":if(!1===n)return n;{const n=_(e,t.right);if(p(n))return n;throw new r(e,o.LogicExpressionOrAnd,t)}default:throw new r(e,o.LogicExpressionOrAnd,t)}throw new r(e,o.LogicalExpressionOnlyBoolean,t)}catch(n){throw n}}function we(e,t){return t.value?t.value.cooked:""}function me(e,t,n){if(g(e))throw new r(t,o.NoFunctionInTemplateLiteral,n);return e}function ge(e,t){let n="",r=0;for(const o of t.quasis)if(n+=o.value?o.value.cooked:"",!1===o.tail){n+=t.expressions[r]?R(me(_(e,t.expressions[r]),e,t)):"",r++}return n}function ve(e,t){let n;try{const l=t.name.toLowerCase();if(null!=e.localScope&&void 0!==e.localScope[l])return n=e.localScope[l],!0===n.valueset||(n.value=_(e,n.node),n.valueset=!0),n.value;if(void 0!==e.globalScope[l])return n=e.globalScope[l],!0===n.valueset||(n.value=_(e,n.node),n.valueset=!0),n.value;throw new r(e,o.InvalidIdentifier,t)}catch(l){throw l}}function ye(e,t){try{if("MemberExpression"===t.callee.type){const n=_(e,t.callee.object);if(!(n instanceof T))throw new r(e,o.FuncionNotFound,t);const l=!1===t.callee.computed?t.callee.property.name:_(e,t.callee.property);if(!n.hasGlobal(l))throw new r(e,o.FuncionNotFound,t);const a=n.global(l);if(!g(a))throw new r(e,o.CallNonFunction,t);return a.call(e,t)}if("Identifier"!==t.callee.type)throw new r(e,o.FuncionNotFound,t);if(null!=e.localScope&&void 0!==e.localScope[t.callee.name.toLowerCase()]){const n=e.localScope[t.callee.name.toLowerCase()];if(g(n.value))return n.value.call(e,t);throw new r(e,o.CallNonFunction,t)}if(void 0!==e.globalScope[t.callee.name.toLowerCase()]){const n=e.globalScope[t.callee.name.toLowerCase()];if(g(n.value))return n.value.call(e,t);throw new r(e,o.CallNonFunction,t)}throw new r(e,o.FuncionNotFound,t)}catch(n){throw n}}const be={};function xe(e,t,n,r){try{const o=_(e,t.arguments[n]);if(d(o,r))return _(e,t.arguments[n+1]);{const o=t.arguments.length-n;return 1===o?_(e,t.arguments[n]):2===o?null:3===o?_(e,t.arguments[n+2]):xe(e,t,n+2,r)}}catch(o){throw o}}function Se(e,t,n,l){try{if(!0===l)return _(e,t.arguments[n+1]);if(3===t.arguments.length-n)return _(e,t.arguments[n+2]);{const l=_(e,t.arguments[n+2]);if(!1===p(l))throw new r(e,o.BooleanConditionRequired,t.arguments[n+2]);return Se(e,t,n+2,l)}}catch(a){throw a}}function Ie(e,t,n,l){try{const a=e.body;if(n.length!==e.params.length)throw new r(t,o.WrongNumberOfParameters,l);if(null!=t.localScope)for(let r=0;r<n.length;r++)t.localScope[e.params[r].name.toLowerCase()]={value:n[r],valueset:!0,node:null};const i=_(t,a);if(i instanceof b)return i.value;if(i===w)throw new r(t,o.UnexpectedToken,l);if(i===h)throw new r(t,o.UnexpectedToken,l);return i instanceof C?i.value:i}catch(a){throw a}}O(be,V),U(be,V),D(be,V),B(be,V),K(be,V),k(be,V),be.iif=function(e,t){try{f(null===t.arguments?[]:t.arguments,3,3,e,t);const n=_(e,t.arguments[0]);if(!1===p(n))throw new r(e,o.BooleanConditionRequired,t);return _(e,!0===n?t.arguments[1]:t.arguments[2])}catch(n){throw n}},be.decode=function(e,t){try{if(t.arguments.length<2)throw new r(e,o.WrongNumberOfParameters,t);if(2===t.arguments.length)return _(e,t.arguments[1]);{if((t.arguments.length-1)%2==0)throw new r(e,o.WrongNumberOfParameters,t);const n=_(e,t.arguments[0]);return xe(e,t,1,n)}}catch(n){throw n}},be.when=function(e,t){try{if(t.arguments.length<3)throw new r(e,o.WrongNumberOfParameters,t);if(t.arguments.length%2==0)throw new r(e,o.WrongNumberOfParameters,t);const n=_(e,t.arguments[0]);if(!1===p(n))throw new r(e,o.BooleanConditionRequired,t.arguments[0]);return Se(e,t,0,n)}catch(n){throw n}};for(const Le in be)be[Le]={value:new i(be[Le]),valueset:!0,node:null};const Fe=function(){};function Ce(e,t){const r=new Fe;e||(e={}),t||(t={});const o=new n({newline:"\n",tab:"\t",singlequote:"'",doublequote:'"',forwardslash:"/",backwardslash:"\\"});o.immutable=!1,r.textformatting={value:o,valueset:!0,node:null};for(const n in t)r[n]={value:new i(t[n]),native:!0,valueset:!0,node:null};for(const n in e)e[n]&&"esri.Graphic"===e[n].declaredClass?r[n]={value:a.createFromGraphic(e[n]),valueset:!0,node:null}:r[n]={value:e[n],valueset:!0,node:null};return r}Fe.prototype=be,Fe.prototype.infinity={value:Number.POSITIVE_INFINITY,valueset:!0,node:null},Fe.prototype.pi={value:Math.PI,valueset:!0,node:null};const Re={fixSpatialReference:E,parseArguments:W,standardFunction:V};function Ae(e){console.log(e)}function Me(e){const t={mode:"sync",compiled:!1,functions:{},signatures:[],standardFunction:V,evaluateIdentifier:ve};for(let n=0;n<e.length;n++)e[n].registerFunctions(t);for(const n in t.functions)be[n]={value:new i(t.functions[n]),valueset:!0,node:null},Fe.prototype[n]=be[n];for(let n=0;n<t.signatures.length;n++)L(t.signatures[n],"sync")}function Ee(e,n){let l=n.spatialReference;null==l&&(l=new G({wkid:102100}));let a=null;e.usesModules&&(a=new t(new Map,e.loadedModules));const i={spatialReference:l,globalScope:Ce(n.vars,n.customfunctions),localScope:null,exports:{},libraryResolver:a,console:n.console?n.console:Ae,lrucache:n.lrucache,interceptor:n.interceptor,depthCounter:{depth:1}};let s=_(i,e);if(s instanceof b&&(s=s.value),s instanceof C&&(s=s.value),s===m&&(s=null),s===w)throw new r(i,o.IllegalResult,null);if(s===h)throw new r(i,o.IllegalResult,null);if(g(s))throw new r(i,o.IllegalResult,null);return s}Me([N]);export{Ee as executeScript,Me as extend,Re as functionHelper};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.25/esri/copyright.txt for details.
4
4
  */
5
- import e from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as i}from"../executionError.js";import a from"../Feature.js";import r from"../featureSetCollection.js";import{getPortal as s,lookupUser as o,convertToFeatureSet as l,constructFeatureSetFromPortalItem as f,constructFeatureSet as c,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as d,constructAssociationMetaDataFeatureSetFromUrl as m}from"../featureSetUtils.js";import p from"../ImmutableArray.js";import{y,A as g,j as w,T as h,h as I,m as F,w as E,c as D,x as b,i as A,g as N,X as x,L as S}from"../../chunks/languageUtils.js";import{SqlExpressionAdapted as v,StringToCodeAdapted as $,FieldRename as L,AdaptedFeatureSet as T,OriginalField as j}from"../featureset/actions/Adapted.js";import P from"../featureset/actions/AttributeFilter.js";import R from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import C from"../featureset/sources/Empty.js";import M from"../featureset/sources/FeatureLayerMemory.js";import k from"../featureset/support/OrderbyClause.js";import{cloneField as H}from"../featureset/support/shared.js";import{isSingleField as z}from"../featureset/support/sqlUtils.js";import{calculateStat as G}from"./fieldStats.js";import{isPromiseLike as U}from"../../core/promiseUtils.js";import{WhereClause as W}from"../../core/sql/WhereClause.js";import _ from"../../layers/FeatureLayer.js";import B from"../../layers/support/Field.js";function J(e,t,n,i){if(1===i.length){if(F(i[0]))return G(e,i[0],-1);if(b(i[0]))return G(e,i[0].toArray(),-1)}return G(e,i,-1)}async function V(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 q(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function K(e){if(null===e)return null;const t={type:q(e,"type",""),name:q(e,"name","")};if("range"===t.type)t.range=q(e,"range",[]);else{t.codedValues=[];for(const n of q(e,"codedValues",[]))t.codedValues.push({name:q(n,"name",""),code:q(n,"code",null)})}return t}function X(e){if(null===e)return null;const t={},n=q(e,"wkt",null);null!==n&&(t.wkt=n);const i=q(e,"wkid",null);return null!==i&&(t.wkid=i),t}function Y(e){if(null===e)return null;const t={hasZ:q(e,"hasz",!1),hasM:q(e,"hasm",!1)},n=q(e,"spatialreference",null);n&&(t.spatialReference=X(n));const i=q(e,"x",null);if(null!==i)return t.x=i,t.y=q(e,"y",null),t;const a=q(e,"rings",null);if(null!==a)return t.rings=a,t;const r=q(e,"paths",null);if(null!==r)return t.paths=r,t;const s=q(e,"points",null);if(null!==s)return t.points=s,t;for(const o of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=q(e,o,null);null!==n&&(t[o]=n)}return t}function Z(e,t){for(const n of t)if(n===e)return!0;return!1}function Q(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==Z(e.layerDefinition.geometryType,["","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(null!==e.layerDefinition.objectIdField&&""!==e.layerDefinition.objectIdField&&(!1!==F(e.layerDefinition.fields)&&!1!==F(e.featureSet.features)))))}function ee(G){"async"===G.mode&&(G.functions.getuser=function(a,r){return G.standardFunctionAsync(a,r,(async(l,f,c)=>{y(c,0,2,a,r);let u=g(c[1],""),d=!0===u;if(u=!0===u||!1===u?"":w(u),0===c.length||c[0]instanceof e){let e=null;a.services&&a.services.portal&&(e=a.services.portal),c.length>0&&(e=s(c[0],e));const n=await o(e,u,d);if(n){const e=JSON.parse(JSON.stringify(n));for(const t of["lastLogin","created","modified"])void 0!==e[t]&&null!==e[t]&&(e[t]=new Date(e[t]));return t.convertObjectToArcadeDictionary(e)}return null}let m=null;if(h(c[0])&&(m=c[0]),m){if(d=!1,u)return null;await m.load();const n=await m.getOwningSystemUrl();if(!n){if(!u){const e=await m.getIdentityUser();return e?t.convertObjectToArcadeDictionary({username:e}):null}return null}let i=null;a.services&&a.services.portal&&(i=a.services.portal),i=s(new e(n),i);const r=await o(i,u,d);if(r){const e=JSON.parse(JSON.stringify(r));for(const t of["lastLogin","created","modified"])void 0!==e[t]&&null!==e[t]&&(e[t]=new Date(e[t]));return t.convertObjectToArcadeDictionary(e)}return null}throw new n(a,i.InvalidParameter,r)}))},G.signatures.push({name:"getuser",min:"1",max:"2"}),G.functions.featuresetbyid=function(e,t){return G.standardFunctionAsync(e,t,((a,s,o)=>{if(y(o,2,4,e,t),o[0]instanceof r){const a=w(o[1]);let r=g(o[2],null);const s=I(g(o[3],!0));if(null===r&&(r=["*"]),!1===F(r))throw new n(e,i.InvalidParameter,t);return o[0].featureSetById(a,s,r)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"featuresetbyid",min:"2",max:"4"}),G.functions.getfeatureset=function(e,t){return G.standardFunctionAsync(e,t,((a,r,s)=>{if(y(s,1,2,e,t),E(s[0])){let t=g(s[1],"datasource");return null===t&&(t="datasource"),t=w(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"getfeatureset",min:"1",max:"2"}),G.functions.featuresetbyportalitem=function(t,a){return G.standardFunctionAsync(t,a,((r,o,l)=>{if(y(l,2,5,t,a),null===l[0])throw new n(t,i.PortalRequired,a);if(l[0]instanceof e){const e=w(l[1]),r=w(l[2]);let o=g(l[3],null);const c=I(g(l[4],!0));if(null===o&&(o=["*"]),!1===F(o))throw new n(t,i.InvalidParameter,a);let u=null;return t.services&&t.services.portal&&(u=t.services.portal),u=s(l[0],u),f(e,r,t.spatialReference,o,c,u,t.lrucache,t.interceptor)}if(!1===D(l[0]))throw new n(t,i.PortalRequired,a);const c=w(l[0]),u=w(l[1]);let d=g(l[2],null);const m=I(g(l[3],!0));if(null===d&&(d=["*"]),!1===F(d))throw new n(t,i.InvalidParameter,a);if(t.services&&t.services.portal)return f(c,u,t.spatialReference,d,m,t.services.portal,t.lrucache,t.interceptor);throw new n(t,i.PortalRequired,a)}))},G.signatures.push({name:"featuresetbyportalitem",min:"2",max:"5"}),G.functions.featuresetbyname=function(e,t){return G.standardFunctionAsync(e,t,((a,s,o)=>{if(y(o,2,4,e,t),o[0]instanceof r){const a=w(o[1]);let r=g(o[2],null);const s=I(g(o[3],!0));if(null===r&&(r=["*"]),!1===F(r))throw new n(e,i.InvalidParameter,t);return o[0].featureSetByName(a,s,r)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"featuresetbyname",min:"2",max:"4"}),G.functions.featureset=function(e,a){return G.standardFunction(e,a,((r,s,o)=>{y(o,1,1,e,a);let l=o[0];const f={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(D(l))l=JSON.parse(l),void 0!==l.layerDefinition?(f.layerDefinition=l.layerDefinition,f.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(f.featureSet.features=l.features,f.featureSet.geometryType=l.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=l.objectIdFieldName,f.layerDefinition.typeIdField=l.typeIdFieldName,f.layerDefinition.globalIdField=l.globalIdFieldName,f.layerDefinition.fields=l.fields,l.spatialReference&&(f.layerDefinition.spatialReference=l.spatialReference));else{if(!(o[0]instanceof t))throw new n(e,i.InvalidParameter,a);{l=JSON.parse(o[0].castToText(!0));const e=q(l,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=q(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=q(e,"globalidfield",""),f.layerDefinition.objectIdField=q(e,"objectidfield",""),f.layerDefinition.typeIdField=q(e,"typeidfield","");const t=q(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=X(t));for(const i of q(e,"fields",[])){const e={name:q(i,"name",""),alias:q(i,"alias",""),type:q(i,"type",""),nullable:q(i,"nullable",!0),editable:q(i,"editable",!0),length:q(i,"length",null),domain:K(q(i,"domain"))};f.layerDefinition.fields.push(e)}const n=q(l,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of q(n,"features",[])){const n={},i=q(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:Y(q(t,"geometry",null))})}}}else{f.layerDefinition.geometryType=q(l,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=q(l,"objectidfieldname",""),f.layerDefinition.typeIdField=q(l,"typeidfieldname","");const e=q(l,"spatialreference",null);e&&(f.layerDefinition.spatialReference=X(e));for(const n of q(l,"fields",[])){const e={name:q(n,"name",""),alias:q(n,"alias",""),type:q(n,"type",""),nullable:q(n,"nullable",!0),editable:q(n,"editable",!0),length:q(n,"length",null),domain:K(q(n,"domain"))};f.layerDefinition.fields.push(e)}const t={};for(const n of f.layerDefinition.fields)t[n.name.toLowerCase()]=n.name;for(const n of q(l,"features",[])){const e={},i=q(n,"attributes",{});for(const n in i)e[t[n.toLowerCase()]]=i[n];f.featureSet.features.push({attributes:e,geometry:Y(q(n,"geometry",null))})}}}}if(!1===Q(f))throw new n(e,i.InvalidParameter,a);return M.create(f,e.spatialReference)}))},G.signatures.push({name:"featureset",min:"1",max:"1"}),G.functions.filter=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),F(s[0])||b(s[0])){const a=[];let r=s[0];r instanceof p&&(r=r.toArray());let o=null;if(!A(s[1]))throw new n(e,i.InvalidParameter,t);o=s[1].createFunction(e);for(const e of r){const t=o(e);U(t)?!0===await t&&a.push(e):!0===t&&a.push(e)}return a}if(h(s[0])){const t=await s[0].load(),n=W.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 G.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new P({parentfeatureset:s[0],whereclause:n})}return new P({parentfeatureset:s[0],whereclause:n})}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"filter",min:"2",max:"2"}),G.functions.orderby=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),h(s[0])){const e=new k(s[1]);return new R({parentfeatureset:s[0],orderbyclause:e})}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"orderby",min:"2",max:"2"}),G.functions.top=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),h(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(F(s[0]))return N(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,N(s[1]));if(b(s[0]))return N(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,N(s[1]));throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"top",min:"2",max:"2"}),G.functions.first=function(e,t){return G.standardFunctionAsync(e,t,(async(n,i,r)=>{if(y(r,1,1,e,t),h(r[0])){const e=await r[0].first(n.abortSignal);if(null!==e){const t=a.createFromGraphicLikeObject(e.geometry,e.attributes,r[0]);return t._underlyingGraphic=e,t}return e}return F(r[0])?0===r[0].length?null:r[0][0]:b(r[0])?0===r[0].length()?null:r[0].get(0):null}))},G.signatures.push({name:"first",min:"1",max:"1"}),G.functions.attachments=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{y(o,1,2,e,a);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(o.length>1)if(o[1]instanceof t){if(o[1].hasField("minsize")&&(l.minsize=N(o[1].field("minsize"))),o[1].hasField("metadata")&&(l.returnMetadata=I(o[1].field("metadata"))),o[1].hasField("maxsize")&&(l.maxsize=N(o[1].field("maxsize"))),o[1].hasField("types")){const e=x(o[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==o[1])throw new n(e,i.InvalidParameter,a);if(E(o[0])){let t=o[0]._layer;return t instanceof _&&(t=c(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===h(t)?[]:(await t.load(),t.queryAttachments(o[0].field(t.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===o[0])return[];throw new n(e,i.InvalidParameter,a)}))},G.signatures.push({name:"attachments",min:"1",max:"2"}),G.functions.featuresetbyrelationshipname=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{y(s,2,4,e,t);const o=s[0],l=w(s[1]);let f=g(s[2],null);const m=I(g(s[3],!0));if(null===f&&(f=["*"]),!1===F(f))throw new n(e,i.InvalidParameter,t);if(null===s[0])return null;if(!E(s[0]))throw new n(e,i.InvalidParameter,t);let p=o._layer;if(p instanceof _&&(p=c(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===h(p))return null;p=await p.load();const D=p.relationshipMetaData().filter((e=>e.name===l));if(0===D.length)return null;if(void 0!==D[0].relationshipTableId&&null!==D[0].relationshipTableId&&D[0].relationshipTableId>-1)return u(p,D[0],o.field(p.objectIdField),p.spatialReference,f,m,e.lrucache,e.interceptor);let b=p.serviceUrl();if(!b)return null;b="/"===b.charAt(b.length-1)?b+D[0].relatedTableId.toString():b+"/"+D[0].relatedTableId.toString();const A=await d(b,p.spatialReference,f,m,e.lrucache,e.interceptor);await A.load();let N=A.relationshipMetaData();if(N=N.filter((e=>e.id===D[0].id)),!1===o.hasField(D[0].keyField)||null===o.field(D[0].keyField)){const e=await p.getFeatureByObjectId(o.field(p.objectIdField),[D[0].keyField]);if(e){const t=W.create(N[0].keyField+"= @id",A.getFieldsIndex());return t.parameters={id:e.attributes[D[0].keyField]},A.filter(t)}return new C({parentfeatureset:A})}const x=W.create(N[0].keyField+"= @id",A.getFieldsIndex());return x.parameters={id:o.field(D[0].keyField)},A.filter(x)}))},G.signatures.push({name:"featuresetbyrelationshipname",min:"2",max:"4"}),G.functions.featuresetbyassociation=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{y(s,2,3,e,t);const o=s[0],l=w(g(s[1],"")).toLowerCase(),f=D(s[2])?w(s[2]):null;if(null===s[0])return null;if(!E(s[0]))throw new n(e,i.InvalidParameter,t);let u=o._layer;if(u instanceof _&&(u=c(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===h(u))return null;await u.load();const d=u.serviceUrl(),p=await m(d,e.spatialReference);let I=null,F=null,b=!1;if(null!==f&&""!==f&&void 0!==f){for(const e of p.terminals)e.terminalName===f&&(F=e.terminalId);null===F&&(b=!0)}const A=p.associations.getFieldsIndex(),N=A.get("TOGLOBALID").name,x=A.get("FROMGLOBALID").name,P=A.get("TOTERMINALID").name,R=A.get("FROMTERMINALID").name,O=A.get("FROMNETWORKSOURCEID").name,C=A.get("TONETWORKSOURCEID").name,M=A.get("ASSOCIATIONTYPE").name,k=A.get("ISCONTENTVISIBLE").name,z=A.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){I=o.field(e.name);break}let G=null,U=new v(new B({name:"percentalong",alias:"percentalong",type:"double"}),W.create("0",p.associations.getFieldsIndex())),J=new v(new B({name:"side",alias:"side",type:"string"}),W.create("''",p.associations.getFieldsIndex()));const V="globalid",q="globalId",K={};for(const e in p.lkp)K[e]=p.lkp[e].sourceId;const X=new $(new B({name:"classname",alias:"classname",type:"string"}),null,K);let Y="";switch(l){case"midspan":{Y=`((${N}='${I}') OR ( ${x}='${I}')) AND (${M} IN (5))`,X.codefield=W.create(`CASE WHEN (${N}='${I}') THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const e=H(T.findField(p.associations.fields,x));e.name=V,e.alias=V,G=new v(e,W.create(`CASE WHEN (${x}='${I}') THEN ${N} ELSE ${x} END`,p.associations.getFieldsIndex())),U=p.unVersion>=4?new j(T.findField(p.associations.fields,A.get("PERCENTALONG").name)):new v(new B({name:"percentalong",alias:"percentalong",type:"double"}),W.create("0",p.associations.getFieldsIndex()));break}case"junctionedge":{Y=`((${N}='${I}') OR ( ${x}='${I}')) AND (${M} IN (4,6))`,X.codefield=W.create(`CASE WHEN (${N}='${I}') THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const e=H(T.findField(p.associations.fields,x));e.name=V,e.alias=V,G=new v(e,W.create(`CASE WHEN (${x}='${I}') THEN ${N} ELSE ${x} END`,p.associations.getFieldsIndex())),J=new v(new B({name:"side",alias:"side",type:"string"}),W.create(`CASE WHEN (${M}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex()));break}case"connected":{let e=`${N}='@T'`,t=`${x}='@T'`;null!==F&&(e+=` AND ${P}=@A`,t+=` AND ${R}=@A`),Y="(("+e+") OR ("+t+"))",Y=S(Y,"@T",I??""),e=S(e,"@T",I??""),null!==F&&(e=S(e,"@A",F.toString()),Y=S(Y,"@A",F.toString())),X.codefield=W.create("CASE WHEN "+e+` THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const n=H(T.findField(p.associations.fields,x));n.name=V,n.alias=V,G=new v(n,W.create("CASE WHEN "+e+` THEN ${x} ELSE ${N} END`,p.associations.getFieldsIndex()));break}case"container":Y=`${N}='${I}' AND ${M} = 2`,null!==F&&(Y+=` AND ${P} = `+F.toString()),X.codefield=O,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,x),V,V);case"content":Y=`(${x}='${I}' AND ${M} = 2)`,null!==F&&(Y+=` AND ${R} = `+F.toString()),X.codefield=C,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,N),V,V);break;case"structure":Y=`(${N}='${I}' AND ${M} = 3)`,null!==F&&(Y+=` AND ${P} = `+F.toString()),X.codefield=O,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,x),V,q);break;case"attached":Y=`(${x}='${I}' AND ${M} = 3)`,null!==F&&(Y+=` AND ${R} = `+F.toString()),X.codefield=C,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,N),V,q);break;default:throw new n(e,i.InvalidParameter,t)}b&&(Y="1 <> 1");return new T({parentfeatureset:p.associations,adaptedFields:[new j(T.findField(p.associations.fields,z)),new j(T.findField(p.associations.fields,k)),G,J,X,U],extraFilter:Y?W.create(Y,p.associations.getFieldsIndex()):null})}))},G.signatures.push({name:"featuresetbyassociation",min:"2",max:"6"}),G.functions.groupby=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{if(y(o,3,3,e,a),!h(o[0]))throw new n(e,i.InvalidParameter,a);const l=await o[0].load(),f=[],c=[];let u=!1,d=[];if(D(o[1]))d.push(o[1]);else if(o[1]instanceof t)d.push(o[1]);else if(F(o[1]))d=o[1];else{if(!b(o[1]))throw new n(e,i.InvalidParameter,a);d=o[1].toArray()}for(const m of d)if(D(m)){const e=W.create(w(m),l.getFieldsIndex()),t=!0===z(e)?w(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(u=!0)}else{if(!(m instanceof t))throw new n(e,i.InvalidParameter,a);{const t=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===t&&(u=!0),!t)throw new n(e,i.InvalidParameter,a);f.push({name:t,expression:W.create(r||t,l.getFieldsIndex())})}}if(d=[],D(o[2]))d.push(o[2]);else if(F(o[2]))d=o[2];else if(b(o[2]))d=o[2].toArray();else{if(!(o[2]instanceof t))throw new n(e,i.InvalidParameter,a);d.push(o[2])}for(const m of d){if(!(m instanceof t))throw new n(e,i.InvalidParameter,a);{const t=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!t||!r||!s)throw new n(e,i.InvalidParameter,a);c.push({name:t,statistic:r.toLowerCase(),expression:W.create(s,l.getFieldsIndex())})}}if(u){const e={};for(const n of l.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of c)"%%%%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 V(t.expression,G,e);for(const t of c)await V(t.expression,G,e);return o[0].groupby(f,c)}))},G.signatures.push({name:"groupby",min:"3",max:"3"}),G.functions.distinct=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{if(h(o[0])){y(o,2,2,e,a);const r=await o[0].load(),s=[];let l=[];if(D(o[1]))l.push(o[1]);else if(o[1]instanceof t)l.push(o[1]);else if(F(o[1]))l=o[1];else{if(!b(o[1]))throw new n(e,i.InvalidParameter,a);l=o[1].toArray()}let f=!1;for(const o of l)if(D(o)){const e=W.create(w(o),r.getFieldsIndex()),t=!0===z(e)?w(o):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(o instanceof t))throw new n(e,i.InvalidParameter,a);{const t=o.hasField("name")?o.field("name"):"%%%%FIELDNAME",l=o.hasField("expression")?o.field("expression"):"";if("%%%%FIELDNAME"===t&&(f=!0),!t)throw new n(e,i.InvalidParameter,a);s.push({name:t,expression:W.create(l||t,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 V(t.expression,G,e);return o[0].groupby(s,[])}return J("distinct",r,s,o)}))})}export{ee as registerFunctions};
5
+ import e from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as i}from"../executionError.js";import a from"../Feature.js";import r from"../featureSetCollection.js";import{getPortal as s,lookupUser as o,convertToFeatureSet as l,constructFeatureSetFromPortalItem as f,constructFeatureSet as c,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as d,constructAssociationMetaDataFeatureSetFromUrl as m}from"../featureSetUtils.js";import p from"../ImmutableArray.js";import{y,A as g,j as w,T as h,h as I,m as F,w as E,c as D,x as b,i as A,g as N,X as x,L as S}from"../../chunks/languageUtils.js";import{SqlExpressionAdapted as v,StringToCodeAdapted as $,FieldRename as L,AdaptedFeatureSet as T,OriginalField as j}from"../featureset/actions/Adapted.js";import P from"../featureset/actions/AttributeFilter.js";import R from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import C from"../featureset/sources/Empty.js";import M from"../featureset/sources/FeatureLayerMemory.js";import k from"../featureset/support/OrderbyClause.js";import{cloneField as H}from"../featureset/support/shared.js";import{isSingleField as z}from"../featureset/support/sqlUtils.js";import{calculateStat as G}from"./fieldStats.js";import{isPromiseLike as U}from"../../core/promiseUtils.js";import{WhereClause as W}from"../../core/sql/WhereClause.js";import _ from"../../layers/FeatureLayer.js";import B from"../../layers/support/Field.js";function J(e,t,n,i){if(1===i.length){if(F(i[0]))return G(e,i[0],-1);if(b(i[0]))return G(e,i[0].toArray(),-1)}return G(e,i,-1)}async function V(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 q(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function K(e){if(null===e)return null;const t={type:q(e,"type",""),name:q(e,"name","")};if("range"===t.type)t.range=q(e,"range",[]);else{t.codedValues=[];for(const n of q(e,"codedValues",[]))t.codedValues.push({name:q(n,"name",""),code:q(n,"code",null)})}return t}function X(e){if(null===e)return null;const t={},n=q(e,"wkt",null);null!==n&&(t.wkt=n);const i=q(e,"wkid",null);return null!==i&&(t.wkid=i),t}function Y(e){if(null===e)return null;const t={hasZ:q(e,"hasz",!1),hasM:q(e,"hasm",!1)},n=q(e,"spatialreference",null);n&&(t.spatialReference=X(n));const i=q(e,"x",null);if(null!==i)return t.x=i,t.y=q(e,"y",null),t;const a=q(e,"rings",null);if(null!==a)return t.rings=a,t;const r=q(e,"paths",null);if(null!==r)return t.paths=r,t;const s=q(e,"points",null);if(null!==s)return t.points=s,t;for(const o of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=q(e,o,null);null!==n&&(t[o]=n)}return t}function Z(e,t){for(const n of t)if(n===e)return!0;return!1}function Q(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==Z(e.layerDefinition.geometryType,["","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(null!==e.layerDefinition.objectIdField&&""!==e.layerDefinition.objectIdField&&(!1!==F(e.layerDefinition.fields)&&!1!==F(e.featureSet.features)))))}function ee(G){"async"===G.mode&&(G.functions.getuser=function(a,r){return G.standardFunctionAsync(a,r,(async(l,f,c)=>{y(c,0,2,a,r);let u=g(c[1],""),d=!0===u;if(u=!0===u||!1===u?"":w(u),0===c.length||c[0]instanceof e){let e=null;a.services&&a.services.portal&&(e=a.services.portal),c.length>0&&(e=s(c[0],e));const n=await o(e,u,d);if(n){const e=JSON.parse(JSON.stringify(n));for(const t of["lastLogin","created","modified"])void 0!==e[t]&&null!==e[t]&&(e[t]=new Date(e[t]));return t.convertObjectToArcadeDictionary(e)}return null}let m=null;if(h(c[0])&&(m=c[0]),m){if(d=!1,u)return null;await m.load();const n=await m.getOwningSystemUrl();if(!n){if(!u){const e=await m.getIdentityUser();return e?t.convertObjectToArcadeDictionary({username:e}):null}return null}let i=null;a.services&&a.services.portal&&(i=a.services.portal),i=s(new e(n),i);const r=await o(i,u,d);if(r){const e=JSON.parse(JSON.stringify(r));for(const t of["lastLogin","created","modified"])void 0!==e[t]&&null!==e[t]&&(e[t]=new Date(e[t]));return t.convertObjectToArcadeDictionary(e)}return null}throw new n(a,i.InvalidParameter,r)}))},G.signatures.push({name:"getuser",min:1,max:2}),G.functions.featuresetbyid=function(e,t){return G.standardFunctionAsync(e,t,((a,s,o)=>{if(y(o,2,4,e,t),o[0]instanceof r){const a=w(o[1]);let r=g(o[2],null);const s=I(g(o[3],!0));if(null===r&&(r=["*"]),!1===F(r))throw new n(e,i.InvalidParameter,t);return o[0].featureSetById(a,s,r)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"featuresetbyid",min:2,max:4}),G.functions.getfeatureset=function(e,t){return G.standardFunctionAsync(e,t,((a,r,s)=>{if(y(s,1,2,e,t),E(s[0])){let t=g(s[1],"datasource");return null===t&&(t="datasource"),t=w(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"getfeatureset",min:1,max:2}),G.functions.featuresetbyportalitem=function(t,a){return G.standardFunctionAsync(t,a,((r,o,l)=>{if(y(l,2,5,t,a),null===l[0])throw new n(t,i.PortalRequired,a);if(l[0]instanceof e){const e=w(l[1]),r=w(l[2]);let o=g(l[3],null);const c=I(g(l[4],!0));if(null===o&&(o=["*"]),!1===F(o))throw new n(t,i.InvalidParameter,a);let u=null;return t.services&&t.services.portal&&(u=t.services.portal),u=s(l[0],u),f(e,r,t.spatialReference,o,c,u,t.lrucache,t.interceptor)}if(!1===D(l[0]))throw new n(t,i.PortalRequired,a);const c=w(l[0]),u=w(l[1]);let d=g(l[2],null);const m=I(g(l[3],!0));if(null===d&&(d=["*"]),!1===F(d))throw new n(t,i.InvalidParameter,a);if(t.services&&t.services.portal)return f(c,u,t.spatialReference,d,m,t.services.portal,t.lrucache,t.interceptor);throw new n(t,i.PortalRequired,a)}))},G.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),G.functions.featuresetbyname=function(e,t){return G.standardFunctionAsync(e,t,((a,s,o)=>{if(y(o,2,4,e,t),o[0]instanceof r){const a=w(o[1]);let r=g(o[2],null);const s=I(g(o[3],!0));if(null===r&&(r=["*"]),!1===F(r))throw new n(e,i.InvalidParameter,t);return o[0].featureSetByName(a,s,r)}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"featuresetbyname",min:2,max:4}),G.functions.featureset=function(e,a){return G.standardFunction(e,a,((r,s,o)=>{y(o,1,1,e,a);let l=o[0];const f={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(D(l))l=JSON.parse(l),void 0!==l.layerDefinition?(f.layerDefinition=l.layerDefinition,f.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(f.featureSet.features=l.features,f.featureSet.geometryType=l.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=l.objectIdFieldName,f.layerDefinition.typeIdField=l.typeIdFieldName,f.layerDefinition.globalIdField=l.globalIdFieldName,f.layerDefinition.fields=l.fields,l.spatialReference&&(f.layerDefinition.spatialReference=l.spatialReference));else{if(!(o[0]instanceof t))throw new n(e,i.InvalidParameter,a);{l=JSON.parse(o[0].castToText(!0));const e=q(l,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=q(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=q(e,"globalidfield",""),f.layerDefinition.objectIdField=q(e,"objectidfield",""),f.layerDefinition.typeIdField=q(e,"typeidfield","");const t=q(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=X(t));for(const i of q(e,"fields",[])){const e={name:q(i,"name",""),alias:q(i,"alias",""),type:q(i,"type",""),nullable:q(i,"nullable",!0),editable:q(i,"editable",!0),length:q(i,"length",null),domain:K(q(i,"domain"))};f.layerDefinition.fields.push(e)}const n=q(l,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of q(n,"features",[])){const n={},i=q(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:Y(q(t,"geometry",null))})}}}else{f.layerDefinition.geometryType=q(l,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=q(l,"objectidfieldname",""),f.layerDefinition.typeIdField=q(l,"typeidfieldname","");const e=q(l,"spatialreference",null);e&&(f.layerDefinition.spatialReference=X(e));for(const n of q(l,"fields",[])){const e={name:q(n,"name",""),alias:q(n,"alias",""),type:q(n,"type",""),nullable:q(n,"nullable",!0),editable:q(n,"editable",!0),length:q(n,"length",null),domain:K(q(n,"domain"))};f.layerDefinition.fields.push(e)}const t={};for(const n of f.layerDefinition.fields)t[n.name.toLowerCase()]=n.name;for(const n of q(l,"features",[])){const e={},i=q(n,"attributes",{});for(const n in i)e[t[n.toLowerCase()]]=i[n];f.featureSet.features.push({attributes:e,geometry:Y(q(n,"geometry",null))})}}}}if(!1===Q(f))throw new n(e,i.InvalidParameter,a);return M.create(f,e.spatialReference)}))},G.signatures.push({name:"featureset",min:1,max:1}),G.functions.filter=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),F(s[0])||b(s[0])){const a=[];let r=s[0];r instanceof p&&(r=r.toArray());let o=null;if(!A(s[1]))throw new n(e,i.InvalidParameter,t);o=s[1].createFunction(e);for(const e of r){const t=o(e);U(t)?!0===await t&&a.push(e):!0===t&&a.push(e)}return a}if(h(s[0])){const t=await s[0].load(),n=W.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 G.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new P({parentfeatureset:s[0],whereclause:n})}return new P({parentfeatureset:s[0],whereclause:n})}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"filter",min:2,max:2}),G.functions.orderby=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),h(s[0])){const e=new k(s[1]);return new R({parentfeatureset:s[0],orderbyclause:e})}throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"orderby",min:2,max:2}),G.functions.top=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{if(y(s,2,2,e,t),h(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(F(s[0]))return N(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,N(s[1]));if(b(s[0]))return N(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,N(s[1]));throw new n(e,i.InvalidParameter,t)}))},G.signatures.push({name:"top",min:2,max:2}),G.functions.first=function(e,t){return G.standardFunctionAsync(e,t,(async(n,i,r)=>{if(y(r,1,1,e,t),h(r[0])){const e=await r[0].first(n.abortSignal);if(null!==e){const t=a.createFromGraphicLikeObject(e.geometry,e.attributes,r[0]);return t._underlyingGraphic=e,t}return e}return F(r[0])?0===r[0].length?null:r[0][0]:b(r[0])?0===r[0].length()?null:r[0].get(0):null}))},G.signatures.push({name:"first",min:1,max:1}),G.functions.attachments=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{y(o,1,2,e,a);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(o.length>1)if(o[1]instanceof t){if(o[1].hasField("minsize")&&(l.minsize=N(o[1].field("minsize"))),o[1].hasField("metadata")&&(l.returnMetadata=I(o[1].field("metadata"))),o[1].hasField("maxsize")&&(l.maxsize=N(o[1].field("maxsize"))),o[1].hasField("types")){const e=x(o[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==o[1])throw new n(e,i.InvalidParameter,a);if(E(o[0])){let t=o[0]._layer;return t instanceof _&&(t=c(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===h(t)?[]:(await t.load(),t.queryAttachments(o[0].field(t.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===o[0])return[];throw new n(e,i.InvalidParameter,a)}))},G.signatures.push({name:"attachments",min:1,max:2}),G.functions.featuresetbyrelationshipname=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{y(s,2,4,e,t);const o=s[0],l=w(s[1]);let f=g(s[2],null);const m=I(g(s[3],!0));if(null===f&&(f=["*"]),!1===F(f))throw new n(e,i.InvalidParameter,t);if(null===s[0])return null;if(!E(s[0]))throw new n(e,i.InvalidParameter,t);let p=o._layer;if(p instanceof _&&(p=c(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===h(p))return null;p=await p.load();const D=p.relationshipMetaData().filter((e=>e.name===l));if(0===D.length)return null;if(void 0!==D[0].relationshipTableId&&null!==D[0].relationshipTableId&&D[0].relationshipTableId>-1)return u(p,D[0],o.field(p.objectIdField),p.spatialReference,f,m,e.lrucache,e.interceptor);let b=p.serviceUrl();if(!b)return null;b="/"===b.charAt(b.length-1)?b+D[0].relatedTableId.toString():b+"/"+D[0].relatedTableId.toString();const A=await d(b,p.spatialReference,f,m,e.lrucache,e.interceptor);await A.load();let N=A.relationshipMetaData();if(N=N.filter((e=>e.id===D[0].id)),!1===o.hasField(D[0].keyField)||null===o.field(D[0].keyField)){const e=await p.getFeatureByObjectId(o.field(p.objectIdField),[D[0].keyField]);if(e){const t=W.create(N[0].keyField+"= @id",A.getFieldsIndex());return t.parameters={id:e.attributes[D[0].keyField]},A.filter(t)}return new C({parentfeatureset:A})}const x=W.create(N[0].keyField+"= @id",A.getFieldsIndex());return x.parameters={id:o.field(D[0].keyField)},A.filter(x)}))},G.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),G.functions.featuresetbyassociation=function(e,t){return G.standardFunctionAsync(e,t,(async(a,r,s)=>{y(s,2,3,e,t);const o=s[0],l=w(g(s[1],"")).toLowerCase(),f=D(s[2])?w(s[2]):null;if(null===s[0])return null;if(!E(s[0]))throw new n(e,i.InvalidParameter,t);let u=o._layer;if(u instanceof _&&(u=c(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===h(u))return null;await u.load();const d=u.serviceUrl(),p=await m(d,e.spatialReference);let I=null,F=null,b=!1;if(null!==f&&""!==f&&void 0!==f){for(const e of p.terminals)e.terminalName===f&&(F=e.terminalId);null===F&&(b=!0)}const A=p.associations.getFieldsIndex(),N=A.get("TOGLOBALID").name,x=A.get("FROMGLOBALID").name,P=A.get("TOTERMINALID").name,R=A.get("FROMTERMINALID").name,O=A.get("FROMNETWORKSOURCEID").name,C=A.get("TONETWORKSOURCEID").name,M=A.get("ASSOCIATIONTYPE").name,k=A.get("ISCONTENTVISIBLE").name,z=A.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){I=o.field(e.name);break}let G=null,U=new v(new B({name:"percentalong",alias:"percentalong",type:"double"}),W.create("0",p.associations.getFieldsIndex())),J=new v(new B({name:"side",alias:"side",type:"string"}),W.create("''",p.associations.getFieldsIndex()));const V="globalid",q="globalId",K={};for(const e in p.lkp)K[e]=p.lkp[e].sourceId;const X=new $(new B({name:"classname",alias:"classname",type:"string"}),null,K);let Y="";switch(l){case"midspan":{Y=`((${N}='${I}') OR ( ${x}='${I}')) AND (${M} IN (5))`,X.codefield=W.create(`CASE WHEN (${N}='${I}') THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const e=H(T.findField(p.associations.fields,x));e.name=V,e.alias=V,G=new v(e,W.create(`CASE WHEN (${x}='${I}') THEN ${N} ELSE ${x} END`,p.associations.getFieldsIndex())),U=p.unVersion>=4?new j(T.findField(p.associations.fields,A.get("PERCENTALONG").name)):new v(new B({name:"percentalong",alias:"percentalong",type:"double"}),W.create("0",p.associations.getFieldsIndex()));break}case"junctionedge":{Y=`((${N}='${I}') OR ( ${x}='${I}')) AND (${M} IN (4,6))`,X.codefield=W.create(`CASE WHEN (${N}='${I}') THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const e=H(T.findField(p.associations.fields,x));e.name=V,e.alias=V,G=new v(e,W.create(`CASE WHEN (${x}='${I}') THEN ${N} ELSE ${x} END`,p.associations.getFieldsIndex())),J=new v(new B({name:"side",alias:"side",type:"string"}),W.create(`CASE WHEN (${M}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex()));break}case"connected":{let e=`${N}='@T'`,t=`${x}='@T'`;null!==F&&(e+=` AND ${P}=@A`,t+=` AND ${R}=@A`),Y="(("+e+") OR ("+t+"))",Y=S(Y,"@T",I??""),e=S(e,"@T",I??""),null!==F&&(e=S(e,"@A",F.toString()),Y=S(Y,"@A",F.toString())),X.codefield=W.create("CASE WHEN "+e+` THEN ${O} ELSE ${C} END`,p.associations.getFieldsIndex());const n=H(T.findField(p.associations.fields,x));n.name=V,n.alias=V,G=new v(n,W.create("CASE WHEN "+e+` THEN ${x} ELSE ${N} END`,p.associations.getFieldsIndex()));break}case"container":Y=`${N}='${I}' AND ${M} = 2`,null!==F&&(Y+=` AND ${P} = `+F.toString()),X.codefield=O,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,x),V,V);case"content":Y=`(${x}='${I}' AND ${M} = 2)`,null!==F&&(Y+=` AND ${R} = `+F.toString()),X.codefield=C,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,N),V,V);break;case"structure":Y=`(${N}='${I}' AND ${M} = 3)`,null!==F&&(Y+=` AND ${P} = `+F.toString()),X.codefield=O,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,x),V,q);break;case"attached":Y=`(${x}='${I}' AND ${M} = 3)`,null!==F&&(Y+=` AND ${R} = `+F.toString()),X.codefield=C,Y="( "+Y+" )",G=new L(T.findField(p.associations.fields,N),V,q);break;default:throw new n(e,i.InvalidParameter,t)}b&&(Y="1 <> 1");return new T({parentfeatureset:p.associations,adaptedFields:[new j(T.findField(p.associations.fields,z)),new j(T.findField(p.associations.fields,k)),G,J,X,U],extraFilter:Y?W.create(Y,p.associations.getFieldsIndex()):null})}))},G.signatures.push({name:"featuresetbyassociation",min:2,max:6}),G.functions.groupby=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{if(y(o,3,3,e,a),!h(o[0]))throw new n(e,i.InvalidParameter,a);const l=await o[0].load(),f=[],c=[];let u=!1,d=[];if(D(o[1]))d.push(o[1]);else if(o[1]instanceof t)d.push(o[1]);else if(F(o[1]))d=o[1];else{if(!b(o[1]))throw new n(e,i.InvalidParameter,a);d=o[1].toArray()}for(const m of d)if(D(m)){const e=W.create(w(m),l.getFieldsIndex()),t=!0===z(e)?w(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(u=!0)}else{if(!(m instanceof t))throw new n(e,i.InvalidParameter,a);{const t=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===t&&(u=!0),!t)throw new n(e,i.InvalidParameter,a);f.push({name:t,expression:W.create(r||t,l.getFieldsIndex())})}}if(d=[],D(o[2]))d.push(o[2]);else if(F(o[2]))d=o[2];else if(b(o[2]))d=o[2].toArray();else{if(!(o[2]instanceof t))throw new n(e,i.InvalidParameter,a);d.push(o[2])}for(const m of d){if(!(m instanceof t))throw new n(e,i.InvalidParameter,a);{const t=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!t||!r||!s)throw new n(e,i.InvalidParameter,a);c.push({name:t,statistic:r.toLowerCase(),expression:W.create(s,l.getFieldsIndex())})}}if(u){const e={};for(const n of l.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of c)"%%%%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 V(t.expression,G,e);for(const t of c)await V(t.expression,G,e);return o[0].groupby(f,c)}))},G.signatures.push({name:"groupby",min:3,max:3}),G.functions.distinct=function(e,a){return G.standardFunctionAsync(e,a,(async(r,s,o)=>{if(h(o[0])){y(o,2,2,e,a);const r=await o[0].load(),s=[];let l=[];if(D(o[1]))l.push(o[1]);else if(o[1]instanceof t)l.push(o[1]);else if(F(o[1]))l=o[1];else{if(!b(o[1]))throw new n(e,i.InvalidParameter,a);l=o[1].toArray()}let f=!1;for(const o of l)if(D(o)){const e=W.create(w(o),r.getFieldsIndex()),t=!0===z(e)?w(o):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(o instanceof t))throw new n(e,i.InvalidParameter,a);{const t=o.hasField("name")?o.field("name"):"%%%%FIELDNAME",l=o.hasField("expression")?o.field("expression"):"";if("%%%%FIELDNAME"===t&&(f=!0),!t)throw new n(e,i.InvalidParameter,a);s.push({name:t,expression:W.create(l||t,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 V(t.expression,G,e);return o[0].groupby(s,[])}return J("distinct",r,s,o)}))})}export{ee 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.25/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeExecutionError as e,ExecutionErrorCodes as n}from"../executionError.js";import{shapeExtent as t}from"../kernel.js";import{G as r,y as i,j as a,T as s}from"../../chunks/languageUtils.js";import u from"../featureset/actions/SpatialFilter.js";import o from"../featureset/sources/Empty.js";import l from"../../geometry/Geometry.js";import{relate as c,crosses as f,touches as p,within as m,overlaps as d,contains as w,intersects as y}from"../../geometry/geometryEngineAsync.js";function h(e){return e instanceof l}function S(i,a,c,S){return S(i,a,(async(S,R,v)=>{if(v.length<2)throw new e(i,n.WrongNumberOfParameters,a);if(null===(v=r(v))[0]&&null===v[1])return!1;if(s(v[0])){if(v[1]instanceof l)return new u({parentfeatureset:v[0],relation:c,relationGeom:v[1]});if(null===v[1])return new o({parentfeatureset:v[0]});throw new e(i,n.InvalidParameter,a)}if(h(v[0])){if(h(v[1])){switch(c){case"esriSpatialRelEnvelopeIntersects":return y(t(v[0]),t(v[1]));case"esriSpatialRelIntersects":return y(v[0],v[1]);case"esriSpatialRelContains":return w(v[0],v[1]);case"esriSpatialRelOverlaps":return d(v[0],v[1]);case"esriSpatialRelWithin":return m(v[0],v[1]);case"esriSpatialRelTouches":return p(v[0],v[1]);case"esriSpatialRelCrosses":return f(v[0],v[1])}throw new e(i,n.InvalidParameter,a)}if(s(v[1]))return new u({parentfeatureset:v[1],relation:c,relationGeom:v[0]});if(null===v[1])return!1;throw new e(i,n.InvalidParameter,a)}if(null!==v[0])throw new e(i,n.InvalidParameter,a);return s(v[1])?new o({parentfeatureset:v[1]}):!(v[1]instanceof l||null===v[1])&&void 0}))}function R(t){"async"===t.mode&&(t.functions.intersects=function(e,n){return S(e,n,"esriSpatialRelIntersects",t.standardFunctionAsync)},t.functions.envelopeintersects=function(e,n){return S(e,n,"esriSpatialRelEnvelopeIntersects",t.standardFunctionAsync)},t.signatures.push({name:"envelopeintersects",min:"2",max:"2"}),t.functions.contains=function(e,n){return S(e,n,"esriSpatialRelContains",t.standardFunctionAsync)},t.functions.overlaps=function(e,n){return S(e,n,"esriSpatialRelOverlaps",t.standardFunctionAsync)},t.functions.within=function(e,n){return S(e,n,"esriSpatialRelWithin",t.standardFunctionAsync)},t.functions.touches=function(e,n){return S(e,n,"esriSpatialRelTouches",t.standardFunctionAsync)},t.functions.crosses=function(e,n){return S(e,n,"esriSpatialRelCrosses",t.standardFunctionAsync)},t.functions.relate=function(u,f){return t.standardFunctionAsync(u,f,((t,p,m)=>{if(m=r(m),i(m,3,3,u,f),h(m[0])&&h(m[1]))return c(m[0],m[1],a(m[2]));if(m[0]instanceof l&&null===m[1])return!1;if(m[1]instanceof l&&null===m[0])return!1;if(s(m[0])&&null===m[1])return new o({parentfeatureset:m[0]});if(s(m[1])&&null===m[0])return new o({parentfeatureset:m[1]});if(s(m[0])&&m[1]instanceof l)return m[0].relate(m[1],a(m[2]));if(s(m[1])&&m[0]instanceof l)return m[1].relate(m[0],a(m[2]));if(null===m[0]&&null===m[1])return!1;throw new e(u,n.InvalidParameter,f)}))})}export{R as registerFunctions};
5
+ import{ArcadeExecutionError as e,ExecutionErrorCodes as n}from"../executionError.js";import{shapeExtent as t}from"../kernel.js";import{G as r,y as i,j as a,T as s}from"../../chunks/languageUtils.js";import u from"../featureset/actions/SpatialFilter.js";import o from"../featureset/sources/Empty.js";import l from"../../geometry/Geometry.js";import{relate as c,crosses as f,touches as p,within as m,overlaps as d,contains as w,intersects as y}from"../../geometry/geometryEngineAsync.js";function h(e){return e instanceof l}function S(i,a,c,S){return S(i,a,(async(S,R,v)=>{if(v.length<2)throw new e(i,n.WrongNumberOfParameters,a);if(null===(v=r(v))[0]&&null===v[1])return!1;if(s(v[0])){if(v[1]instanceof l)return new u({parentfeatureset:v[0],relation:c,relationGeom:v[1]});if(null===v[1])return new o({parentfeatureset:v[0]});throw new e(i,n.InvalidParameter,a)}if(h(v[0])){if(h(v[1])){switch(c){case"esriSpatialRelEnvelopeIntersects":return y(t(v[0]),t(v[1]));case"esriSpatialRelIntersects":return y(v[0],v[1]);case"esriSpatialRelContains":return w(v[0],v[1]);case"esriSpatialRelOverlaps":return d(v[0],v[1]);case"esriSpatialRelWithin":return m(v[0],v[1]);case"esriSpatialRelTouches":return p(v[0],v[1]);case"esriSpatialRelCrosses":return f(v[0],v[1])}throw new e(i,n.InvalidParameter,a)}if(s(v[1]))return new u({parentfeatureset:v[1],relation:c,relationGeom:v[0]});if(null===v[1])return!1;throw new e(i,n.InvalidParameter,a)}if(null!==v[0])throw new e(i,n.InvalidParameter,a);return s(v[1])?new o({parentfeatureset:v[1]}):!(v[1]instanceof l||null===v[1])&&void 0}))}function R(t){"async"===t.mode&&(t.functions.intersects=function(e,n){return S(e,n,"esriSpatialRelIntersects",t.standardFunctionAsync)},t.functions.envelopeintersects=function(e,n){return S(e,n,"esriSpatialRelEnvelopeIntersects",t.standardFunctionAsync)},t.signatures.push({name:"envelopeintersects",min:2,max:2}),t.functions.contains=function(e,n){return S(e,n,"esriSpatialRelContains",t.standardFunctionAsync)},t.functions.overlaps=function(e,n){return S(e,n,"esriSpatialRelOverlaps",t.standardFunctionAsync)},t.functions.within=function(e,n){return S(e,n,"esriSpatialRelWithin",t.standardFunctionAsync)},t.functions.touches=function(e,n){return S(e,n,"esriSpatialRelTouches",t.standardFunctionAsync)},t.functions.crosses=function(e,n){return S(e,n,"esriSpatialRelCrosses",t.standardFunctionAsync)},t.functions.relate=function(u,f){return t.standardFunctionAsync(u,f,((t,p,m)=>{if(m=r(m),i(m,3,3,u,f),h(m[0])&&h(m[1]))return c(m[0],m[1],a(m[2]));if(m[0]instanceof l&&null===m[1])return!1;if(m[1]instanceof l&&null===m[0])return!1;if(s(m[0])&&null===m[1])return new o({parentfeatureset:m[0]});if(s(m[1])&&null===m[0])return new o({parentfeatureset:m[1]});if(s(m[0])&&m[1]instanceof l)return m[0].relate(m[1],a(m[2]));if(s(m[1])&&m[0]instanceof l)return m[1].relate(m[0],a(m[2]));if(null===m[0]&&null===m[1])return!1;throw new e(u,n.InvalidParameter,f)}))})}export{R 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.25/esri/copyright.txt for details.
4
4
  */
5
- import n from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as a}from"../executionError.js";import{y as t,w as r,P as o,g as i,j as c,T as s,Y as d,O as u,Q as m,Z as f,S as l,_ as y,A as v,t as w,N as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as T}from"../featureset/support/shared.js";function h(e){return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?n.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:T[e.field.type],codedValues:e.domain.codedValues.map((n=>({name:n.name,code:n.code})))}):n.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:T[e.field.type],min:e.domain.min,max:e.domain.max}):null}function A(T){"async"===T.mode&&(T.functions.domain=function(n,u){return T.standardFunctionAsync(n,u,(async(m,f,l)=>{if(t(l,2,3,n,u),r(l[0])){return h(o(l[0],c(l[1]),void 0===l[2]?void 0:i(l[2])))}if(s(l[0])){await l[0]._ensureLoaded();return h(d(c(l[1]),l[0],null,void 0===l[2]?void 0:i(l[2])))}throw new e(n,a.InvalidParameter,u)}))},T.functions.subtypes=function(o,i){return T.standardFunctionAsync(o,i,(async(c,d,m)=>{if(t(m,1,1,o,i),r(m[0])){const e=u(m[0]);return e?n.convertObjectToArcadeDictionary(e):null}if(s(m[0])){await m[0]._ensureLoaded();const e=m[0].subtypes();return e?n.convertObjectToArcadeDictionary(e):null}throw new e(o,a.InvalidParameter,i)}))},T.functions.domainname=function(n,o){return T.standardFunctionAsync(n,o,(async(u,l,y)=>{if(t(y,2,4,n,o),r(y[0]))return m(y[0],c(y[1]),y[2],void 0===y[3]?void 0:i(y[3]));if(s(y[0])){await y[0]._ensureLoaded();const n=d(c(y[1]),y[0],null,void 0===y[3]?void 0:i(y[3]));return f(n,y[2])}throw new e(n,a.InvalidParameter,o)}))},T.signatures.push({name:"domainname",min:"2",max:"4"}),T.functions.domaincode=function(n,o){return T.standardFunctionAsync(n,o,(async(u,m,f)=>{if(t(f,2,4,n,o),r(f[0]))return l(f[0],c(f[1]),f[2],void 0===f[3]?void 0:i(f[3]));if(s(f[0])){await f[0]._ensureLoaded();const n=d(c(f[1]),f[0],null,void 0===f[3]?void 0:i(f[3]));return y(n,f[2])}throw new e(n,a.InvalidParameter,o)}))},T.signatures.push({name:"domaincode",min:"2",max:"4"})),T.functions.text=function(n,e){return T.standardFunctionAsync(n,e,((a,r,o)=>{if(t(o,1,2,n,e),!s(o[0]))return w(o[0],o[1]);{const n=v(o[1],"");if(""===n)return o[0].castToText();if("schema"===n.toLowerCase())return o[0].convertToText("schema",a.abortSignal);if("featureset"===n.toLowerCase())return o[0].convertToText("featureset",a.abortSignal)}}))},T.functions.gdbversion=function(n,o){return T.standardFunctionAsync(n,o,(async(i,c,d)=>{if(t(d,1,1,n,o),r(d[0]))return d[0].gdbVersion();if(s(d[0])){return(await d[0].load()).gdbVersion}throw new e(n,a.InvalidParameter,o)}))},T.functions.schema=function(o,i){return T.standardFunctionAsync(o,i,(async(c,d,u)=>{if(t(u,1,1,o,i),s(u[0]))return await u[0].load(),n.convertObjectToArcadeDictionary(u[0].schema());if(r(u[0])){const e=p(u[0]);return e?n.convertObjectToArcadeDictionary(e):null}throw new e(o,a.InvalidParameter,i)}))}}export{A as registerFunctions};
5
+ import n from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as a}from"../executionError.js";import{y as t,w as r,P as o,g as i,j as c,T as s,Y as d,O as u,Q as m,Z as f,S as l,_ as y,A as v,t as w,N as p}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as T}from"../featureset/support/shared.js";function h(e){return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?n.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:T[e.field.type],codedValues:e.domain.codedValues.map((n=>({name:n.name,code:n.code})))}):n.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:T[e.field.type],min:e.domain.min,max:e.domain.max}):null}function A(T){"async"===T.mode&&(T.functions.domain=function(n,u){return T.standardFunctionAsync(n,u,(async(m,f,l)=>{if(t(l,2,3,n,u),r(l[0])){return h(o(l[0],c(l[1]),void 0===l[2]?void 0:i(l[2])))}if(s(l[0])){await l[0]._ensureLoaded();return h(d(c(l[1]),l[0],null,void 0===l[2]?void 0:i(l[2])))}throw new e(n,a.InvalidParameter,u)}))},T.functions.subtypes=function(o,i){return T.standardFunctionAsync(o,i,(async(c,d,m)=>{if(t(m,1,1,o,i),r(m[0])){const e=u(m[0]);return e?n.convertObjectToArcadeDictionary(e):null}if(s(m[0])){await m[0]._ensureLoaded();const e=m[0].subtypes();return e?n.convertObjectToArcadeDictionary(e):null}throw new e(o,a.InvalidParameter,i)}))},T.functions.domainname=function(n,o){return T.standardFunctionAsync(n,o,(async(u,l,y)=>{if(t(y,2,4,n,o),r(y[0]))return m(y[0],c(y[1]),y[2],void 0===y[3]?void 0:i(y[3]));if(s(y[0])){await y[0]._ensureLoaded();const n=d(c(y[1]),y[0],null,void 0===y[3]?void 0:i(y[3]));return f(n,y[2])}throw new e(n,a.InvalidParameter,o)}))},T.signatures.push({name:"domainname",min:2,max:4}),T.functions.domaincode=function(n,o){return T.standardFunctionAsync(n,o,(async(u,m,f)=>{if(t(f,2,4,n,o),r(f[0]))return l(f[0],c(f[1]),f[2],void 0===f[3]?void 0:i(f[3]));if(s(f[0])){await f[0]._ensureLoaded();const n=d(c(f[1]),f[0],null,void 0===f[3]?void 0:i(f[3]));return y(n,f[2])}throw new e(n,a.InvalidParameter,o)}))},T.signatures.push({name:"domaincode",min:2,max:4})),T.functions.text=function(n,e){return T.standardFunctionAsync(n,e,((a,r,o)=>{if(t(o,1,2,n,e),!s(o[0]))return w(o[0],o[1]);{const n=v(o[1],"");if(""===n)return o[0].castToText();if("schema"===n.toLowerCase())return o[0].convertToText("schema",a.abortSignal);if("featureset"===n.toLowerCase())return o[0].convertToText("featureset",a.abortSignal)}}))},T.functions.gdbversion=function(n,o){return T.standardFunctionAsync(n,o,(async(i,c,d)=>{if(t(d,1,1,n,o),r(d[0]))return d[0].gdbVersion();if(s(d[0])){return(await d[0].load()).gdbVersion}throw new e(n,a.InvalidParameter,o)}))},T.functions.schema=function(o,i){return T.standardFunctionAsync(o,i,(async(c,d,u)=>{if(t(u,1,1,o,i),s(u[0]))return await u[0].load(),n.convertObjectToArcadeDictionary(u[0].schema());if(r(u[0])){const e=p(u[0]);return e?n.convertObjectToArcadeDictionary(e):null}throw new e(o,a.InvalidParameter,i)}))}}export{A 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.25/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import n from"../Feature.js";import t from"../ImmutablePointArray.js";import{y as r,m as a,x as i,q as o,F as s,G as l,v as c,c as f,j as u,k as m,b as h,a as p,i as w,f as d,w as y,s as g,H as R}from"../../chunks/languageUtils.js";import I from"../../geometry/Extent.js";import v from"../../geometry/Geometry.js";import P from"../../geometry/Multipoint.js";import x from"../../geometry/Point.js";import b from"../../geometry/Polygon.js";import F from"../../geometry/Polyline.js";import{angle2D as j,angleBetween2D as O,bearing2D as S,bearingBetween2D as N,pathsSelfIntersecting as k}from"./centroid.js";import{fromJSON as J}from"../../geometry/support/jsonUtils.js";import{ArcadeExecutionError as G,ExecutionErrorCodes as z}from"../executionError.js";import D from"../ImmutablePathArray.js";import{isClockwise as _}from"../../geometry/support/coordsUtils.js";function M(e){return e&&"esri.arcade.Feature"===e.arcadeDeclaredClass}function C(D,C){D.ringisclockwise=function(e,n){return C(e,n,((o,s,l)=>{r(l,1,1,e,n);let c=[],f=!1,u=!1;if(null===l[0])return!1;if(a(l[0])){for(const t of l[0]){if(!(t instanceof x))throw new G(e,z.InvalidParameter,n);c.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}c.length>0&&(f=l[0][0].hasZ,u=l[0][0].hasM)}else if(l[0]instanceof t)c=l[0]._elements,c.length>0&&(f=l[0]._hasZ,u=l[0]._hasM);else{if(!i(l[0]))throw new G(e,z.InvalidParameter,n);for(const t of l[0].toArray()){if(!(t instanceof x))throw new G(e,z.InvalidParameter,n);c.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}c.length>0&&(f=l[0].get(0).hasZ,u=l[0].get(0).hasM)}return!(c.length<3)&&_(c,u,f)}))},D.polygon=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof b==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof b?J(c[0].toJSON()):o(new b(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.polyline=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof F==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof F?J(c[0].toJSON()):o(new F(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.point=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof x==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof x?J(c[0].toJSON()):o(new x(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.multipoint=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof P==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof P?J(c[0].toJSON()):o(new P(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.extent=function(t,a){return C(t,a,((i,c,f)=>{f=l(f),r(f,1,1,t,a);let u=null;if(f[0]instanceof e)u=o(n.parseGeometryFromDictionary(f[0]),t.spatialReference);else if(f[0]instanceof x){const e={xmin:f[0].x,ymin:f[0].y,xmax:f[0].x,ymax:f[0].y,spatialReference:f[0].spatialReference.toJSON()},n=f[0];n.hasZ?(e.zmin=n.z,e.zmax=n.z):n.hasM&&(e.mmin=n.m,e.mmax=n.m),u=J(e)}else u=f[0]instanceof b||f[0]instanceof F||f[0]instanceof P?J(f[0].extent?.toJSON()):f[0]instanceof I?J(f[0].toJSON()):o(new I(JSON.parse(f[0])),t.spatialReference);if(null!==u&&!1===u.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(u)}))},D.geometry=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(null===c[0])return null;if(f=M(c[0])?o(c[0].geometry(),t.spatialReference):c[0]instanceof e?o(n.parseGeometryFromDictionary(c[0]),t.spatialReference):o(J(JSON.parse(c[0])),t.spatialReference),null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.setgeometry=function(e,n){return C(e,n,((t,a,i)=>{if(r(i,2,2,e,n),!M(i[0]))throw new G(e,z.InvalidParameter,n);if(!0===i[0].immutable)throw new G(e,z.Immutable,n);if(!(i[1]instanceof v||null===i[1]))throw new G(e,z.InvalidParameter,n);return i[0]._geometry=i[1],c}))},D.feature=function(t,r){return C(t,r,((a,i,s)=>{if(0===s.length)throw new G(t,z.WrongNumberOfParameters,r);let l=null;if(1===s.length)if(f(s[0]))l=n.fromJson(JSON.parse(s[0]));else if(M(s[0]))l=n.createFromArcadeFeature(s[0]);else if(s[0]instanceof v)l=n.createFromGraphicLikeObject(s[0],null,null);else{if(!(s[0]instanceof e))throw new G(t,z.InvalidParameter,r);{let t=s[0].hasField("geometry")?s[0].field("geometry"):null,r=s[0].hasField("attributes")?s[0].field("attributes"):null;null!==t&&t instanceof e&&(t=n.parseGeometryFromDictionary(t)),null!==r&&(r=n.parseAttributesFromDictionary(r)),l=n.createFromGraphicLikeObject(t,r,null)}}else if(2===s.length){let a=null,i=null;if(null!==s[0])if(s[0]instanceof v)a=s[0];else{if(!(a instanceof e))throw new G(t,z.InvalidParameter,r);a=n.parseGeometryFromDictionary(s[0])}if(null!==s[1]){if(!(s[1]instanceof e))throw new G(t,z.InvalidParameter,r);i=n.parseAttributesFromDictionary(s[1])}l=n.createFromGraphicLikeObject(a,i,null)}else{let a=null;const i={};if(null!==s[0])if(s[0]instanceof v)a=s[0];else{if(!(a instanceof e))throw new G(t,z.InvalidParameter,r);a=n.parseGeometryFromDictionary(s[0])}for(let e=1;e<s.length;e+=2){const n=u(s[e]),a=s[e+1];if(!(null==a||f(a)||isNaN(a)||m(a)||h(a)||p(a)))throw new G(t,z.InvalidParameter,r);if(w(a)||!1===d(a))throw new G(t,z.InvalidParameter,r);i[n]=a===c?null:a}l=n.createFromGraphicLikeObject(a,i,null)}return l._geometry=o(l.geometry(),t.spatialReference),l.immutable=!1,l}))},D.dictionary=function(n,t){return C(n,t,((r,o,s)=>{if(0===s.length){const n=new e;return n.immutable=!1,n}if(1===s.length&&f(s[0]))try{const n=JSON.parse(s[0]),t=e.convertObjectToArcadeDictionary(n,!1);return t.immutable=!1,t}catch(y){throw new G(n,z.InvalidParameter,t)}if(s.length%2!=0)throw new G(n,z.WrongNumberOfParameters,t);const l={};for(let e=0;e<s.length;e+=2){const r=u(s[e]),o=s[e+1];if(!(null==o||f(o)||isNaN(o)||m(o)||h(o)||p(o)||a(o)||i(o)))throw new G(n,z.InvalidParameter,t);if(w(o))throw new G(n,z.InvalidParameter,t);l[r]=o===c?null:o}const d=new e(l);return d.immutable=!1,d}))},D.haskey=function(n,t){return C(n,t,((a,i,o)=>{r(o,2,2,n,t);const s=u(o[1]);if(M(o[0]))return o[0].hasField(s);if(o[0]instanceof e)return o[0].hasField(s);throw new G(n,z.InvalidParameter,t)}))},D.hasvalue=function(n,t){return C(n,t,((a,i,o)=>{if(r(o,2,2,n,t),null===o[0]||null===o[1])return!1;const s=u(o[1]);if(y(o[0]))return!!o[0].hasField(s)&&null!==o[0].field(s);if(o[0]instanceof e)return!!o[0].hasField(s)&&null!==o[0].field(s);if(o[0]instanceof v){return null!==W(o[0],s,null,null,!1)}return!1}))},D.indexof=function(e,n){return C(e,n,((t,o,s)=>{r(s,2,2,e,n);const l=s[1];if(a(s[0])){for(let e=0;e<s[0].length;e++)if(g(l,s[0][e]))return e;return-1}if(i(s[0])){const e=s[0].length();for(let n=0;n<e;n++)if(g(l,s[0].get(n)))return n;return-1}throw new G(e,z.InvalidParameter,n)}))},D.angle=function(e,n){return C(e,n,((t,a,i)=>{if(i=l(i),r(i,2,3,e,n),!(i[0]instanceof x))throw new G(e,z.InvalidParameter,n);if(!(i[1]instanceof x))throw new G(e,z.InvalidParameter,n);if(i.length>2&&!(i[2]instanceof x))throw new G(e,z.InvalidParameter,n);return 2===i.length?j(i[0],i[1]):O(i[0],i[1],i[2])}))},D.bearing=function(e,n){return C(e,n,((t,a,i)=>{if(i=l(i),r(i,2,3,e,n),!(i[0]instanceof x))throw new G(e,z.InvalidParameter,n);if(!(i[1]instanceof x))throw new G(e,z.InvalidParameter,n);if(i.length>2&&!(i[2]instanceof x))throw new G(e,z.InvalidParameter,n);return 2===i.length?S(i[0],i[1]):N(i[0],i[1],i[2])}))},D.isselfintersecting=function(e,n){return C(e,n,((t,o,s)=>{s=l(s),r(s,1,1,e,n);let c=s[0];if(c instanceof b)return c.isSelfIntersecting;if(c instanceof F)return c=c.paths,k(c);if(c instanceof P){const e=c.points;for(let n=0;n<e.length;n++)for(let t=0;t<e.length;t++)if(t!==n){let r=!0;for(let a=0;a<e[n].length;a++)if(e[n][a]!==e[t][a]){r=!1;break}if(!0===r)return!0}}return!(!a(c)&&!i(c))&&(c=R(c,e.spatialReference),null!==c&&(c=c.paths),k(c))}))}}let Z=0;function W(n,r,a,i,o=!0){let s;switch(r=r.toLowerCase()){case"hasz":{const e=n.hasZ;return void 0!==e&&e}case"hasm":{const e=n.hasM;return void 0!==e&&e}case"spatialreference":{let t=n.spatialReference._arcadeCacheId;if(void 0===t){let e=!0;Object.freeze&&Object.isFrozen(n.spatialReference)&&(e=!1),e&&(Z++,n.spatialReference._arcadeCacheId=Z,t=Z)}const r=new e({wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return void 0!==t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(n.type){case"extent":switch(r){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=n[r];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(r){case"rings":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new D(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,s);case"type":return"Polygon"}break;case"point":switch(r){case"x":case"y":case"z":case"m":return void 0!==n[r]?n[r]:null;case"type":return"Point"}break;case"polyline":switch(r){case"paths":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new D(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,s);case"type":return"Polyline"}break;case"multipoint":switch(r){case"points":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new t(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,s,1);case"type":return"Multipoint"}}if(o)throw new G(a,z.InvalidIdentifier,i);return null}export{W as geometryMember,C as registerFunctions};
5
+ import e from"../Dictionary.js";import n from"../Feature.js";import t from"../ImmutablePointArray.js";import{y as r,m as a,x as i,q as o,F as s,G as l,v as c,c as f,j as u,k as m,b as h,a as p,i as w,f as d,w as y,s as g,H as R}from"../../chunks/languageUtils.js";import I from"../../geometry/Extent.js";import v from"../../geometry/Geometry.js";import P from"../../geometry/Multipoint.js";import x from"../../geometry/Point.js";import b from"../../geometry/Polygon.js";import F from"../../geometry/Polyline.js";import{angle2D as j,angleBetween2D as O,bearing2D as S,bearingBetween2D as N,pathsSelfIntersecting as k}from"./centroid.js";import{fromJSON as J}from"../../geometry/support/jsonUtils.js";import{ArcadeExecutionError as G,ExecutionErrorCodes as z}from"../executionError.js";import D from"../ImmutablePathArray.js";import{isClockwise as _}from"../../geometry/support/coordsUtils.js";function M(e){return e&&"esri.arcade.Feature"===e.arcadeDeclaredClass}function C(D,C){D.ringisclockwise=function(e,n){return C(e,n,((o,s,l)=>{r(l,1,1,e,n);let c=[],f=!1,u=!1;if(null===l[0])return!1;if(a(l[0])){for(const t of l[0]){if(!(t instanceof x))throw new G(e,z.InvalidParameter,n);c.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}c.length>0&&(f=l[0][0].hasZ,u=l[0][0].hasM)}else if(l[0]instanceof t)c=l[0]._elements,c.length>0&&(f=l[0]._hasZ,u=l[0]._hasM);else{if(!i(l[0]))throw new G(e,z.InvalidParameter,n);for(const t of l[0].toArray()){if(!(t instanceof x))throw new G(e,z.InvalidParameter,n);c.push(t.hasZ?t.hasM?[t.x,t.y,t.z,t.m]:[t.x,t.y,t.z]:[t.x,t.y])}c.length>0&&(f=l[0].get(0).hasZ,u=l[0].get(0).hasM)}return!(c.length<3)&&_(c,u,f)}))},D.polygon=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof b==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof b?J(c[0].toJSON()):o(new b(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.polyline=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof F==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof F?J(c[0].toJSON()):o(new F(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.point=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof x==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof x?J(c[0].toJSON()):o(new x(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.multipoint=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(c[0]instanceof e){if(f=o(n.parseGeometryFromDictionary(c[0]),t.spatialReference),f instanceof P==!1)throw new G(t,z.InvalidParameter,a)}else f=c[0]instanceof P?J(c[0].toJSON()):o(new P(JSON.parse(c[0])),t.spatialReference);if(null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.extent=function(t,a){return C(t,a,((i,c,f)=>{f=l(f),r(f,1,1,t,a);let u=null;if(f[0]instanceof e)u=o(n.parseGeometryFromDictionary(f[0]),t.spatialReference);else if(f[0]instanceof x){const e={xmin:f[0].x,ymin:f[0].y,xmax:f[0].x,ymax:f[0].y,spatialReference:f[0].spatialReference.toJSON()},n=f[0];n.hasZ?(e.zmin=n.z,e.zmax=n.z):n.hasM&&(e.mmin=n.m,e.mmax=n.m),u=J(e)}else u=f[0]instanceof b||f[0]instanceof F||f[0]instanceof P?J(f[0].extent?.toJSON()):f[0]instanceof I?J(f[0].toJSON()):o(new I(JSON.parse(f[0])),t.spatialReference);if(null!==u&&!1===u.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(u)}))},D.geometry=function(t,a){return C(t,a,((i,l,c)=>{r(c,1,1,t,a);let f=null;if(null===c[0])return null;if(f=M(c[0])?o(c[0].geometry(),t.spatialReference):c[0]instanceof e?o(n.parseGeometryFromDictionary(c[0]),t.spatialReference):o(J(JSON.parse(c[0])),t.spatialReference),null!==f&&!1===f.spatialReference.equals(t.spatialReference))throw new G(t,z.WrongSpatialReference,a);return s(f)}))},D.setgeometry=function(e,n){return C(e,n,((t,a,i)=>{if(r(i,2,2,e,n),!M(i[0]))throw new G(e,z.InvalidParameter,n);if(!0===i[0].immutable)throw new G(e,z.Immutable,n);if(!(i[1]instanceof v||null===i[1]))throw new G(e,z.InvalidParameter,n);return i[0]._geometry=i[1],c}))},D.feature=function(t,r){return C(t,r,((a,i,s)=>{if(0===s.length)throw new G(t,z.WrongNumberOfParameters,r);let l=null;if(1===s.length)if(f(s[0]))l=n.fromJson(JSON.parse(s[0]));else if(M(s[0]))l=n.createFromArcadeFeature(s[0]);else if(s[0]instanceof v)l=n.createFromGraphicLikeObject(s[0],null,null);else{if(!(s[0]instanceof e))throw new G(t,z.InvalidParameter,r);{let t=s[0].hasField("geometry")?s[0].field("geometry"):null,r=s[0].hasField("attributes")?s[0].field("attributes"):null;null!==t&&t instanceof e&&(t=n.parseGeometryFromDictionary(t)),null!==r&&(r=n.parseAttributesFromDictionary(r)),l=n.createFromGraphicLikeObject(t,r,null)}}else if(2===s.length){let a=null,i=null;if(null!==s[0])if(s[0]instanceof v)a=s[0];else{if(!(a instanceof e))throw new G(t,z.InvalidParameter,r);a=n.parseGeometryFromDictionary(s[0])}if(null!==s[1]){if(!(s[1]instanceof e))throw new G(t,z.InvalidParameter,r);i=n.parseAttributesFromDictionary(s[1])}l=n.createFromGraphicLikeObject(a,i,null)}else{let a=null;const i={};if(null!==s[0])if(s[0]instanceof v)a=s[0];else{if(!(a instanceof e))throw new G(t,z.InvalidParameter,r);a=n.parseGeometryFromDictionary(s[0])}for(let e=1;e<s.length;e+=2){const n=u(s[e]),a=s[e+1];if(!(null==a||f(a)||isNaN(a)||m(a)||h(a)||p(a)))throw new G(t,z.InvalidParameter,r);if(w(a)||!1===d(a))throw new G(t,z.InvalidParameter,r);i[n]=a===c?null:a}l=n.createFromGraphicLikeObject(a,i,null)}return l._geometry=o(l.geometry(),t.spatialReference),l.immutable=!1,l}))},D.dictionary=function(n,t){return C(n,t,((r,o,s)=>{if(0===s.length){const n=new e;return n.immutable=!1,n}if(1===s.length&&f(s[0]))try{const n=JSON.parse(s[0]),t=e.convertObjectToArcadeDictionary(n,!1);return t.immutable=!1,t}catch(y){throw new G(n,z.InvalidParameter,t)}if(s.length%2!=0)throw new G(n,z.WrongNumberOfParameters,t);const l={};for(let e=0;e<s.length;e+=2){const r=u(s[e]),o=s[e+1];if(!(null==o||f(o)||isNaN(o)||m(o)||h(o)||p(o)||a(o)||i(o)))throw new G(n,z.InvalidParameter,t);if(w(o))throw new G(n,z.InvalidParameter,t);l[r]=o===c?null:o}const d=new e(l);return d.immutable=!1,d}))},D.haskey=function(n,t){return C(n,t,((a,i,o)=>{r(o,2,2,n,t);const s=u(o[1]);if(M(o[0]))return o[0].hasField(s);if(o[0]instanceof e)return o[0].hasField(s);if(o[0]instanceof v){const e=W(o[0],s,null,null,2);return!e||"notfound"!==e.keystate}throw new G(n,z.InvalidParameter,t)}))},D.hasvalue=function(n,t){return C(n,t,((a,i,o)=>{if(r(o,2,2,n,t),null===o[0]||null===o[1])return!1;const s=u(o[1]);if(y(o[0]))return!!o[0].hasField(s)&&null!==o[0].field(s);if(o[0]instanceof e)return!!o[0].hasField(s)&&null!==o[0].field(s);if(o[0]instanceof v){return null!==W(o[0],s,null,null,0)}return!1}))},D.indexof=function(e,n){return C(e,n,((t,o,s)=>{r(s,2,2,e,n);const l=s[1];if(a(s[0])){for(let e=0;e<s[0].length;e++)if(g(l,s[0][e]))return e;return-1}if(i(s[0])){const e=s[0].length();for(let n=0;n<e;n++)if(g(l,s[0].get(n)))return n;return-1}throw new G(e,z.InvalidParameter,n)}))},D.angle=function(e,n){return C(e,n,((t,a,i)=>{if(i=l(i),r(i,2,3,e,n),!(i[0]instanceof x))throw new G(e,z.InvalidParameter,n);if(!(i[1]instanceof x))throw new G(e,z.InvalidParameter,n);if(i.length>2&&!(i[2]instanceof x))throw new G(e,z.InvalidParameter,n);return 2===i.length?j(i[0],i[1]):O(i[0],i[1],i[2])}))},D.bearing=function(e,n){return C(e,n,((t,a,i)=>{if(i=l(i),r(i,2,3,e,n),!(i[0]instanceof x))throw new G(e,z.InvalidParameter,n);if(!(i[1]instanceof x))throw new G(e,z.InvalidParameter,n);if(i.length>2&&!(i[2]instanceof x))throw new G(e,z.InvalidParameter,n);return 2===i.length?S(i[0],i[1]):N(i[0],i[1],i[2])}))},D.isselfintersecting=function(e,n){return C(e,n,((t,o,s)=>{s=l(s),r(s,1,1,e,n);let c=s[0];if(c instanceof b)return c.isSelfIntersecting;if(c instanceof F)return c=c.paths,k(c);if(c instanceof P){const e=c.points;for(let n=0;n<e.length;n++)for(let t=0;t<e.length;t++)if(t!==n){let r=!0;for(let a=0;a<e[n].length;a++)if(e[n][a]!==e[t][a]){r=!1;break}if(!0===r)return!0}}return!(!a(c)&&!i(c))&&(c=R(c,e.spatialReference),null!==c&&(c=c.paths),k(c))}))}}let Z=0;function W(n,r,a,i,o=1){let s;switch(r=r.toLowerCase()){case"hasz":{const e=n.hasZ;return void 0!==e&&e}case"hasm":{const e=n.hasM;return void 0!==e&&e}case"spatialreference":{let t=n.spatialReference._arcadeCacheId;if(void 0===t){let e=!0;Object.freeze&&Object.isFrozen(n.spatialReference)&&(e=!1),e&&(Z++,n.spatialReference._arcadeCacheId=Z,t=Z)}const r=new e({wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return void 0!==t&&(r._arcadeCacheId="SPREF"+t.toString()),r}}switch(n.type){case"extent":switch(r){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=n[r];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(r){case"rings":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new D(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,s);case"type":return"Polygon"}break;case"point":switch(r){case"x":case"y":case"z":case"m":return void 0!==n[r]?n[r]:null;case"type":return"Point"}break;case"polyline":switch(r){case"paths":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new D(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,s);case"type":return"Polyline"}break;case"multipoint":switch(r){case"points":s=n.cache._arcadeCacheId,void 0===s&&(Z++,s=Z,n.cache._arcadeCacheId=s);return new t(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,s,1);case"type":return"Multipoint"}}if(1===o)throw new G(a,z.InvalidIdentifier,i);return 2===o?{keystate:"notfound"}:null}export{W as geometryMember,C as registerFunctions};