@arcgis/core 4.34.0-next.35 → 4.34.0-next.36

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 (172) hide show
  1. package/analysis/ElevationProfileAnalysis.d.ts +4 -0
  2. package/analysis/ElevationProfileAnalysis.js +5 -0
  3. package/analysis/ElevationProfileLine.d.ts +4 -0
  4. package/analysis/ElevationProfileLine.js +5 -0
  5. package/analysis/ElevationProfileLineChartOptions.d.ts +4 -0
  6. package/analysis/ElevationProfileLineChartOptions.js +5 -0
  7. package/analysis/ElevationProfileLineGround.d.ts +4 -0
  8. package/analysis/ElevationProfileLineGround.js +5 -0
  9. package/analysis/ElevationProfileLineInput.d.ts +4 -0
  10. package/analysis/ElevationProfileLineInput.js +5 -0
  11. package/analysis/ElevationProfileLineQuery.d.ts +4 -0
  12. package/analysis/ElevationProfileLineQuery.js +5 -0
  13. package/analysis/ElevationProfileLineScene.d.ts +4 -0
  14. package/analysis/ElevationProfileLineScene.js +5 -0
  15. package/analysis/ElevationProfileLineViewOptions.d.ts +4 -0
  16. package/analysis/ElevationProfileLineViewOptions.js +5 -0
  17. package/analysis/ElevationProfileUnits.d.ts +4 -0
  18. package/analysis/ElevationProfileUnits.js +5 -0
  19. package/analysis/support/elevationProfileLineTypes.js +5 -0
  20. package/arcade/arcadeAsyncRuntime.js +1 -1
  21. package/arcade/arcadeCompiler.js +1 -1
  22. package/arcade/arcadeRuntime.js +1 -1
  23. package/arcade/compilerUtils.js +5 -0
  24. package/arcade/containerUtils.js +1 -1
  25. package/arcade/functions/convertdirection.js +1 -1
  26. package/arcade/functions/date.js +1 -1
  27. package/arcade/functions/feature.js +1 -1
  28. package/arcade/functions/featuresetbase.js +1 -1
  29. package/arcade/functions/featuresetgeom.js +1 -1
  30. package/arcade/functions/featuresetstring.js +1 -1
  31. package/arcade/functions/fieldStats.js +1 -1
  32. package/arcade/functions/geomasync.js +1 -1
  33. package/arcade/functions/geometry.js +1 -1
  34. package/arcade/functions/geomsync.js +1 -1
  35. package/arcade/functions/knowledgegraph.js +1 -1
  36. package/arcade/functions/maths.js +1 -1
  37. package/arcade/functions/string.js +1 -1
  38. package/arcade/functions/track.js +1 -1
  39. package/arcade/geometry/functions.js +1 -1
  40. package/arcade/languageUtils.js +1 -1
  41. package/arcade.js +1 -1
  42. package/assets/esri/core/workers/RemoteClient.js +1 -1
  43. package/assets/esri/core/workers/chunks/{7b1d14a921d30c95d68b.js → 0550e775677597f3752c.js} +1 -1
  44. package/assets/esri/core/workers/chunks/0c0080b652cf8afc4e6b.js +1 -0
  45. package/assets/esri/core/workers/chunks/152128775b4740e779ab.js +1 -0
  46. package/assets/esri/core/workers/chunks/1e58b1e191498417c21d.js +1 -0
  47. package/assets/esri/core/workers/chunks/2032b649350a75ba294f.js +1 -0
  48. package/assets/esri/core/workers/chunks/{55a763662bad03ae6bae.js → 209c70ba2925171ef742.js} +1 -1
  49. package/assets/esri/core/workers/chunks/2105d2cc75e75bf8f1c0.js +1 -0
  50. package/assets/esri/core/workers/chunks/236fc659747e812f6424.js +1 -0
  51. package/assets/esri/core/workers/chunks/2c29f8a708a03cb703ab.js +1 -0
  52. package/assets/esri/core/workers/chunks/{ddaaff5d6036a5eed50f.js → 44116cf0bd4d6a127c96.js} +1 -1
  53. package/assets/esri/core/workers/chunks/4c54239974a5847b8fdd.js +1 -0
  54. package/assets/esri/core/workers/chunks/4fb13252a985131d3dae.js +1 -0
  55. package/assets/esri/core/workers/chunks/{b89aacec211c66e3a011.js → 5d8c64693830506c8776.js} +1 -1
  56. package/assets/esri/core/workers/chunks/5f995450f720483fcffa.js +1 -0
  57. package/assets/esri/core/workers/chunks/81be8d23b8dfa4937eaf.js +1 -0
  58. package/assets/esri/core/workers/chunks/{0ec7b5f1a614a86ad3db.js → 948ecf0bfbc886ec3b52.js} +1 -1
  59. package/assets/esri/core/workers/chunks/9f43736d6d80c8e858b2.js +1 -0
  60. package/assets/esri/core/workers/chunks/a44f17397d8589433dae.js +1 -0
  61. package/assets/esri/core/workers/chunks/a53f2529b7067c28f320.js +1 -0
  62. package/assets/esri/core/workers/chunks/a6b6915b7321f77f765f.js +1 -0
  63. package/assets/esri/core/workers/chunks/ab73df4f809430db6249.js +1 -0
  64. package/assets/esri/core/workers/chunks/ae7f1499912c86973921.js +1 -0
  65. package/assets/esri/core/workers/chunks/b98a049561b12a0555b7.js +1 -0
  66. package/assets/esri/core/workers/chunks/{4784af2b04fafacfcc1b.js → c6077a893d5b5c34a46c.js} +1 -1
  67. package/assets/esri/core/workers/chunks/cd150c7e1516134c7437.js +1 -0
  68. package/assets/esri/core/workers/chunks/d4cadde4a9cbfe2c51d8.js +1 -0
  69. package/assets/esri/core/workers/chunks/dab82564928265b9f22d.js +1 -0
  70. package/assets/esri/core/workers/chunks/e897c5ce83db8a71b0a2.js +1 -0
  71. package/assets/esri/core/workers/chunks/{41071e672dcddec47492.js → f4e9640306f64b1af7a3.js} +1 -1
  72. package/assets/esri/core/workers/chunks/fa01d418237d7fa67efc.js +1 -0
  73. package/assets/esri/core/workers/chunks/ff736cb5a9fd18368244.js +1 -0
  74. package/chunks/arcade.js +1 -1
  75. package/chunks/array.js +1 -1
  76. package/chunks/languageUtils.js +1 -1
  77. package/config.js +1 -1
  78. package/copyright.txt +27 -0
  79. package/core/accessorSupport/ensureType.js +1 -1
  80. package/geometry/support/DoubleArray.js +1 -1
  81. package/interfaces.d.ts +671 -50
  82. package/kernel.js +1 -1
  83. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  84. package/layers/support/PromiseQueue.js +1 -1
  85. package/package.json +1 -1
  86. package/support/revision.js +1 -1
  87. package/views/3d/FocusAreasView.js +1 -1
  88. package/views/3d/analysis/AnalysisViewManager3D.js +1 -1
  89. package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +4 -0
  90. package/views/3d/analysis/ElevationProfileAnalysisView3D.js +5 -0
  91. package/views/3d/analysis/Slice/SliceController.js +1 -1
  92. package/views/3d/analysis/Slice/sliceToolUtils.js +1 -1
  93. package/views/3d/environment/Clouds.js +1 -1
  94. package/views/3d/environment/CloudsRenderer.js +1 -1
  95. package/views/3d/environment/EnvironmentRenderer.js +1 -1
  96. package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
  97. package/views/3d/layers/GraphicsView3D.js +1 -1
  98. package/views/3d/layers/GraphicsView3DDummyLayer.js +5 -0
  99. package/views/3d/layers/I3SMeshView3D.js +1 -1
  100. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  101. package/views/3d/layers/SceneLayerWorker.js +1 -1
  102. package/views/3d/layers/graphics/Deconflictor.js +1 -1
  103. package/views/3d/layers/graphics/ElevationQuery.js +1 -1
  104. package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
  105. package/views/3d/layers/graphics/Graphics3DElevationAlignment.js +1 -1
  106. package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
  107. package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
  108. package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
  109. package/views/3d/layers/graphics/LabelDeconflictor.js +1 -1
  110. package/views/3d/layers/graphics/Labeler.js +1 -1
  111. package/views/3d/layers/graphics/StreamController.js +1 -1
  112. package/views/3d/layers/i3s/I3SAsyncElevationUpdater.js +1 -1
  113. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  114. package/views/3d/layers/i3s/I3SFrameTask.js +1 -1
  115. package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
  116. package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
  117. package/views/3d/layers/support/FeatureVisibilityFilter.js +1 -1
  118. package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
  119. package/views/3d/support/StreamDataLoader.js +1 -1
  120. package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
  121. package/views/3d/support/pointsOfInterest/CenterOnSurface.js +1 -1
  122. package/views/3d/support/pointsOfInterest/Focus.js +1 -1
  123. package/views/3d/support/pointsOfInterest/SurfaceGeometryUpdates.js +1 -1
  124. package/views/3d/terrain/OverlayManager.js +1 -1
  125. package/views/3d/terrain/OverlayRenderer.js +1 -1
  126. package/views/3d/terrain/TerrainSurface.js +1 -1
  127. package/views/3d/webgl-engine/Stage.js +1 -1
  128. package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
  129. package/views/3d/webgl-engine/effects/RenderPluginManager.js +1 -1
  130. package/views/3d/webgl-engine/effects/focusArea/FocusAreaMaskNode.js +1 -1
  131. package/views/3d/webgl-engine/effects/geometry/RenderOccludedRenderNode.js +1 -1
  132. package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
  133. package/views/3d/webgl-engine/lib/Object3D.js +1 -1
  134. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  135. package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
  136. package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
  137. package/views/3d/webgl-engine/lib/depthRangeUtils.js +1 -1
  138. package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
  139. package/views/SceneView.js +1 -1
  140. package/views/analysis/ElevationProfileResult.d.ts +4 -0
  141. package/views/analysis/ElevationProfileResult.js +5 -0
  142. package/views/support/ScheduledQueueProcessor.js +1 -1
  143. package/views/support/Scheduler.js +1 -1
  144. package/widgets/ElevationProfile/ElevationProfileLine.d.ts +2 -2
  145. package/widgets/ElevationProfile/ElevationProfileLine.js +1 -1
  146. package/widgets/ElevationProfile/ElevationProfileLineGround.d.ts +2 -2
  147. package/widgets/ElevationProfile/ElevationProfileLineInput.d.ts +2 -2
  148. package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +2 -2
  149. package/assets/esri/core/workers/chunks/00870a35b254295bc408.js +0 -1
  150. package/assets/esri/core/workers/chunks/017adbbb77c9c9b4d49f.js +0 -1
  151. package/assets/esri/core/workers/chunks/086f3bc5938bf9a37274.js +0 -1
  152. package/assets/esri/core/workers/chunks/15a5a89cd228a9364332.js +0 -1
  153. package/assets/esri/core/workers/chunks/20aed6e1d9b6bf06a398.js +0 -1
  154. package/assets/esri/core/workers/chunks/2de11a8e5d426c381991.js +0 -1
  155. package/assets/esri/core/workers/chunks/3a7e43675163f7bed6ac.js +0 -1
  156. package/assets/esri/core/workers/chunks/3cd1ab26396052f17832.js +0 -1
  157. package/assets/esri/core/workers/chunks/50f58b2a933b56effd70.js +0 -1
  158. package/assets/esri/core/workers/chunks/6000a302369799ea42a6.js +0 -1
  159. package/assets/esri/core/workers/chunks/646227b500b92999f2c8.js +0 -1
  160. package/assets/esri/core/workers/chunks/674970c539d336a93ba1.js +0 -1
  161. package/assets/esri/core/workers/chunks/773feb0e0fad26df57ef.js +0 -1
  162. package/assets/esri/core/workers/chunks/91d48c32bf11ad1405c8.js +0 -1
  163. package/assets/esri/core/workers/chunks/9228f760129e48585b54.js +0 -1
  164. package/assets/esri/core/workers/chunks/aaf696a1026de569c82d.js +0 -1
  165. package/assets/esri/core/workers/chunks/ba29c535128c4e8ae2d3.js +0 -1
  166. package/assets/esri/core/workers/chunks/c038472cb7f60af9426e.js +0 -1
  167. package/assets/esri/core/workers/chunks/c1e5e2a6e7e2d7a1d63c.js +0 -1
  168. package/assets/esri/core/workers/chunks/c30adbead0ba4722acf9.js +0 -1
  169. package/assets/esri/core/workers/chunks/d9045b964f536695840b.js +0 -1
  170. package/assets/esri/core/workers/chunks/dde6000aa2f69f6ecad0.js +0 -1
  171. package/assets/esri/core/workers/chunks/e18bb372457cedbf4f8c.js +0 -1
  172. package/assets/esri/core/workers/chunks/ed05399f9a07fea66685.js +0 -1
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"./Dictionary.js";import{ArcadeExecutionError as a}from"./executionError.js";import t from"./ImmutablePathArray.js";import r from"./ImmutablePointArray.js";import{j as n,s,h as i}from"../chunks/languageUtils.js";import c from"../core/Accessor.js";import{isArray as l,isString as o,isNumber as u}from"../support/guards.js";const h={point:["hasZ","hasM","spatialReference","type","x","y","z","m"],multipoint:["hasZ","hasM","spatialReference","type","points"],polyline:["hasZ","hasM","spatialReference","type","paths"],polygon:["hasZ","hasM","spatialReference","type","rings"],extent:["hasZ","hasM","spatialReference","type","xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]};function p(e){return h[e.type]}let f=0;function m(n,s,i,l,o=1){let u;switch(s=s.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 a=n.spatialReference._arcadeCacheId;if(void 0===a){let e=!0;c.isFrozen(n.spatialReference)&&(e=!1),e&&(f++,n.spatialReference._arcadeCacheId=f,a=f)}const t=new e({__proto__:null,wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return void 0!==a&&(t._arcadeCacheId="SPREF"+a.toString()),t}}switch(n.type){case"extent":switch(s){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=n[s];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(s){case"rings":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new t(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,u);case"type":return"Polygon"}break;case"point":switch(s){case"x":case"y":case"z":case"m":return n[s]??null;case"type":return"Point"}break;case"polyline":switch(s){case"paths":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new t(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,u);case"type":return"Polyline"}break;case"multipoint":switch(s){case"points":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new r(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,u,1);case"type":return"Multipoint"}}if(1===o)throw new a(i,"InvalidIdentifier",l);return 2===o?{keystate:"notfound"}:null}function d(e,a){let t,r=e;if(null==r)return null;if(l(a))t=a;else if(n(a))t=a.toArray();else{if(null==a)return null;t=[a]}for(const c of t){if(s(r)){if(!1===o(c))return null;if(!r.hasField(c))return null;r=r.field(c)}else if(i(r)){if(!1===o(c))return null;r=m(r,c,null,null,0)}else if(l(r)){if(!1===u(c))return null;r=c>=0?r[c]:r[r.length+c]}else{if(!n(r))return null;if(!1===u(c))return null;r=c>=0?r.get(c):r.get(r.length()+c)}if(null==r)return null}return r}export{m as geometryMember,p as getGeometryKeys,d as getNestedOptionalValue};
5
+ import e from"./Dictionary.js";import{ArcadeExecutionError as a}from"./executionError.js";import t from"./ImmutablePathArray.js";import r from"./ImmutablePointArray.js";import{j as n,r as s,h as i}from"../chunks/languageUtils.js";import c from"../core/Accessor.js";import{isArray as l,isString as o,isNumber as u}from"../support/guards.js";const h={point:["hasZ","hasM","spatialReference","type","x","y","z","m"],multipoint:["hasZ","hasM","spatialReference","type","points"],polyline:["hasZ","hasM","spatialReference","type","paths"],polygon:["hasZ","hasM","spatialReference","type","rings"],extent:["hasZ","hasM","spatialReference","type","xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]};function p(e){return h[e.type]}let f=0;function m(n,s,i,l,o=1){let u;switch(s=s.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 a=n.spatialReference._arcadeCacheId;if(void 0===a){let e=!0;c.isFrozen(n.spatialReference)&&(e=!1),e&&(f++,n.spatialReference._arcadeCacheId=f,a=f)}const t=new e({__proto__:null,wkt:n.spatialReference.wkt,wkid:n.spatialReference.wkid});return void 0!==a&&(t._arcadeCacheId="SPREF"+a.toString()),t}}switch(n.type){case"extent":switch(s){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=n[s];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(s){case"rings":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new t(n.rings,n.spatialReference,!0===n.hasZ,!0===n.hasM,u);case"type":return"Polygon"}break;case"point":switch(s){case"x":case"y":case"z":case"m":return n[s]??null;case"type":return"Point"}break;case"polyline":switch(s){case"paths":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new t(n.paths,n.spatialReference,!0===n.hasZ,!0===n.hasM,u);case"type":return"Polyline"}break;case"multipoint":switch(s){case"points":u=n.cache._arcadeCacheId,void 0===u&&(f++,u=f,n.cache._arcadeCacheId=u);return new r(n.points,n.spatialReference,!0===n.hasZ,!0===n.hasM,u,1);case"type":return"Multipoint"}}if(1===o)throw new a(i,"InvalidIdentifier",l);return 2===o?{keystate:"notfound"}:null}function d(e,a){let t,r=e;if(null==r)return null;if(l(a))t=a;else if(n(a))t=a.toArray();else{if(null==a)return null;t=[a]}for(const c of t){if(s(r)){if(!1===o(c))return null;if(!r.hasField(c))return null;r=r.field(c)}else if(i(r)){if(!1===o(c))return null;r=m(r,c,null,null,0)}else if(l(r)){if(!1===u(c))return null;r=c>=0?r[c]:r[r.length+c]}else{if(!n(r))return null;if(!1===u(c))return null;r=c>=0?r.get(c):r.get(r.length()+c)}if(null==r)return null}return r}export{m as geometryMember,p as getGeometryKeys,d as getNestedOptionalValue};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{w as r,u as s,j as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,M=180*S/Math.PI,v=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t(null,"InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return v;case 7:return R;case 8:return F;default:throw new t(null,"LogicError",null,{reason:"unsupported evaluations"})}}const j=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function z(e){const n=j.lookup(e);if(null==n)throw new t(null,"LogicError",null,{reason:"unsupported directionType"});return n}const Q=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=Q.lookup(e);if(null==n)throw new t(null,"LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(v-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:v-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,v),i<0?v+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,M);break;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/M;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t(null,"LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t(null,"LogicError",null,{reason:"invalid conversion"});return n}throw new t(null,"LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t(null,"LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t(null,"LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t(null,"LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t(null,"LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t(null,"LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t(null,"LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t(null,"LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t(null,"InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t(null,"LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t(null,"LogicError",null,{reason:"missing angleType"});const o=z(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t(null,"InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t(null,"LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t(null,"LogicError",null,{reason:"missing angleType"});const a=z(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t(null,"LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t(null,"LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t(null,"InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
5
+ import e from"../Dictionary.js";import{StringEnum as n}from"../enum.js";import{ArcadeExecutionError as t}from"../executionError.js";import{u as r,s,j as i}from"../../chunks/languageUtils.js";import{assertIsSome as o}from"../../core/maybe.js";import{isString as c,isNumber as a,isArray as u}from"../../support/guards.js";const l=e=>(n,t,r=14)=>+e(n,t).toFixed(r),d=(e,n)=>e+n,h=(e,n)=>e-n,g=(e,n)=>e*n,m=(e,n)=>e/n,f=(e,n,t)=>l(d)(e,n,t),w=(e,n,t)=>l(h)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=(e,n,t)=>l(m)(e,n,t),p=360,T=400,E=2*Math.PI,S=3600,_=3240,R=60,F=60,M=180*S/Math.PI,v=p*R*F,L=90*S,U=180*S,x=270*S,N=String.fromCharCode(7501),b="°";function O(e){if(!1===c(e))throw new t(null,"InvalidParameter",null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function y(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}function H(e,n){switch(e){case 0:return"SHORT"===n?"N":"North";case 1:return"SHORT"===n?"E":"East";case 2:return"SHORT"===n?"S":"South";case 3:return"SHORT"===n?"W":"West"}}function k(e,n){return e-Math.floor(e/n)*n}function P(e){switch(e){case 6:case 1:return p;case 4:return E;case 5:return T;case 2:return v;case 7:return R;case 8:return F;default:throw new t(null,"LogicError",null,{reason:"unsupported evaluations"})}}const j=new n([],[["NORTH",1],["NORTH AZIMUTH",1],["POLAR",2],["QUADRANT",3],["SOUTH",4],["SOUTH AZIMUTH",4]]);function z(e){const n=j.lookup(e);if(null==n)throw new t(null,"LogicError",null,{reason:"unsupported directionType"});return n}const Q=new n([],[["D",1],["DD",1],["DECIMAL DEGREE",1],["DEGREE",1],["DECIMAL DEGREES",1],["DEGREES",1],["DMS",3],["DEGREES MINUTES SECONDS",3],["R",4],["RAD",4],["RADS",4],["RADIAN",4],["RADIANS",4],["G",5],["GON",5],["GONS",5],["GRAD",5],["GRADS",5],["GRADIAN",5],["GRADIANS",5]]);function C(e){const n=Q.lookup(e);if(null==n)throw new t(null,"LogicError",null,{reason:"unsupported units"});return n}class W{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case 1:case 6:return this.m_degrees;case 7:return this.m_minutes;case 2:case 8:return this.m_seconds;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=y(e).fraction;let t=y(e).integer;const r=Math.floor(t/S);t-=r*S;const s=Math.floor(t/F);return t-=s*F,new W(r,s,t+n)}static numberToDms(e){const n=y(e).fraction,t=y(e).integer,r=A(y(100*n).fraction,100),s=y(100*n).integer;return new W(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(2===e||8===e)F<=t&&(t-=F,++r),R<=r&&(r=0,++s),p<=s&&(s=0);else if(7===e)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),p<=s&&(s=0);else if(1===e||6===e){const e=D(this.m_seconds,S),n=D(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new W(s,r,t)}static dmsToSeconds(e,n,t){return e*S+n*F+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return 0===e?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new Z(V._convertDirectionFormat(e.extractAngularUnits(2),n,1)))}getAngle(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:case 4:case 2:return new Z(V._convertDirectionFormat(n,1,e));case 3:{const e=V.secondsNorthAzimuthToQuadrant(n);return new Z(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 0;case 4:return 2;case 2:return 1;case 3:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(2);switch(e){case 1:return 1;case 4:return 3;case 2:return 0;case 3:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=x?0:2,t=0===n?Math.min(v-e,e):Math.abs(e-U);return new B(n,t,e>U?3:1)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new Z(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(2),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return 0===n?1===t?e:v-e:1===t?U-e:U+e}static _convertDirectionFormat(e,n,r){let s=0;switch(n){case 1:s=e;break;case 2:s=L-e;break;case 3:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"});case 4:s=e+U}let i=0;switch(r){case 1:i=s;break;case 2:i=L-s;break;case 3:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"});case 4:i=s-U}return i=I(i,v),i<0?v+i:i}}function X(e,n,r){let s=null;switch(n){case 1:s=A(e,S);break;case 2:s=e;break;case 5:s=A(e,_);break;case 4:s=A(e,M);break;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}switch(r){case 1:return D(s,S);case 2:return s;case 5:return D(s,_);case 4:return s/M;default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}class Z{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new Z(X(e,n,2))}extractAngularUnits(e){return X(this._seconds,2,q(e))}static createFromDegreesMinutesSeconds(e,n,t){return new Z(f(f(A(e,S),A(n,F)),t))}}function q(e){switch(o(e),e){case 1:case 6:case 3:return 1;case 5:return 5;case 7:return 7;case 4:return 4;case 2:case 8:return 2}}class J{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new J(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=6,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=ae(this.view,r,s),n=6===n?7:n,r=e.newpos;continue;case"s":e=ae(this.view,r,s),n=8,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=W.secondsToDMS(this.angle.extractAngularUnits(2)),this._formattedDms=W.secondsToDMS(this.angle.extractAngularUnits(2)).format(n,t)}}function K(e,n,r,s,i){let o=null;switch(n){case 1:case 4:case 5:return o=k(G(e.extractAngularUnits(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 6:case 7:return o=k(i.fetchFormattedDms().getField(n),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");case 8:return o=k(G(i.fetchDms().getField(n),s),P(n)),o.toFixed(s).padStart(r+s+(s>0?1:0),"0");default:throw new t(null,"LogicError",null,{reason:"unexpected evaluation"})}}function Y(e,n,r){if(3===r)throw new t(null,"LogicError",null,{reason:"conversion error"});if(3===n){const n=W.numberToDms(e);return V.createFromAngleAndDirection(Z.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),r)}return V.createFromAngleAndDirection(Z.createFromAngleAndUnits(e,q(n)),r)}function $(e){switch(s(e)){case 1:return{first:0,second:1};case 2:return{first:2,second:1};case 3:return{first:2,second:3};case 4:return{first:0,second:3}}return null}function ee(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return 0;case"E":case"EAST":return 1;case"S":case"SOUTH":return 2;case"W":case"WEST":return 3}return null}function ne(e){const n=parseFloat(e);if(a(n)){if(isNaN(n))throw new t(null,"LogicError",null,{reason:"invalid conversion"});return n}throw new t(null,"LogicError",null,{reason:"invalid conversion"})}function te(e,n,s){const i=3===s;let o=null,c=null,a=0,u=0,l=0;if(i){if(e.length<2)throw new t(null,"LogicError",null,{reason:"conversion error"});l=1;const n=$(r(e[e.length-1]));if(n?(o=n.first,c=n.second):(a=1,o=ee(r(e[0])),c=ee(r(e[e.length-1]))),null===o||null===c)throw new t(null,"LogicError",null,{reason:"invalid conversion"})}switch(n){case 1:case 4:case 5:if(0===e.length)throw new t(null,"LogicError",null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),o,c):V.createFromAngleAndDirection(Z.createFromAngleAndUnits(ne(e[a]),q(n)),s);case 3:if(u=e.length-l-a,3===u){const n=Z.createFromDegreesMinutesSeconds(ne(e[a]),ne(e[a+1]),ne(e[a+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,s)}if(1===u){const n=ne(e[a]),t=W.numberToDms(n),r=Z.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,s)}}throw new t(null,"LogicError",null,{reason:"invalid conversion"})}function re(e){const n=new Set([" ","-","/","'",'"',"\\","^",b,N,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter(e=>""!==e)}function se(e,n,r){if(a(e))return Y(s(e),n,r);if(c(e))return te(re(e),n,r);if(u(e))return te(e,n,r);if(i(e))return te(e.toArray(),n,r);throw new t(null,"LogicError",null,{reason:"conversion error"})}function ie(e,n,r){const s=q(r);if(s&&3!==r){return e.getAngle(n).extractAngularUnits(s)}throw new t(null,"LogicError",null,{reason:"conversion error"})}function oe(e,n,t){const r=e.getAngle(n);if(3===n&&3===t){const t=W.secondsToDMS(r.extractAngularUnits(2));return[H(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,H(e.getDirection(n),"SHORT")]}if(3===t){const e=W.secondsToDMS(r.extractAngularUnits(2));return[e.m_degrees,e.m_minutes,e.m_seconds]}return 3===n?[H(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),H(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ce(e,n){let r="";switch(e){case 1:r=3===n?"DD.DD"+b:"DDD.DD"+b;break;case 3:r=3===n?"dd"+b+" mm' ss\"":"ddd"+b+" mm' ss.ss\"";break;case 4:r="R.RR";break;case 5:r="GGG.GG"+N;break;default:throw new t(null,"LogicError",null,{reason:"conversion error"})}return 3===n&&(r="p "+r+" b"),r}function ae(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const i=e[n];if(i===t)s?r.rounding++:r.padding++,n++;else{if("."!==i)break;s=!0,n++}}return r.newpos=n-1,r}function ue(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function le(e,n,t){let r="",s=null,i=null;const o=J.createFromStringAndBearing(n,e,t),c={D:1,d:6,m:7,s:8,R:4,G:5};for(let a=0;a<n.length;a++){const u=n[a];switch(u){case"[":s=ue(n,a),r+=s.escaped,a=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=ae(n,a,u),i=e.getAngle(t),r+=K(i,c[u],s.padding,s.rounding,o),a=s.newpos;continue;case"P":case"p":r+=H(o.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=H(o.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}const de=new n(["TEXT","VALUE"]);function he(n,s,i){if(!(s instanceof e))throw new t(null,"InvalidParameter",null);if(!1===s.hasField("directionType"))throw new t(null,"LogicError",null,{reason:"missing directionType"});if(!1===s.hasField("angleType"))throw new t(null,"LogicError",null,{reason:"missing angleType"});const o=z(O(s.field("directiontype"))),c=se(n,C(O(s.field("angletype"))),o);if(!(i instanceof e))throw new t(null,"InvalidParameter",null);if(!1===i.hasField("directionType"))throw new t(null,"LogicError",null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new t(null,"LogicError",null,{reason:"missing angleType"});const a=z(O(i.field("directiontype"))),u=i.hasField("angleType")?C(O(i.field("angletype"))):null,l=de.get(O(i.field("outputType")));if(!a||!l)throw new t(null,"LogicError",null,{reason:"conversion error"});if(!(u||"TEXT"===l&&i.hasField("format")))throw new t(null,"LogicError",null,{reason:"invalid unit"});switch(l){case"VALUE":return 3===a||3===u?oe(c,a,u):ie(c,a,u);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ce(u,a)),le(c,e,a)}default:throw new t(null,"InvalidParameter",null)}}export{he as convertDirection,f as preciseAdd,D as preciseDivide,w as preciseMinus,A as preciseMultiply};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{B as u,K as l,u as i,g as a,e as s,f as c,w as f,N as m,J as d,O as h,P as N}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as A}from"../../support/guards.js";function D(n,r,e){return n+(k(e)?p:P)[r]}function k(n){return n%4==0&&(n%100!=0||n%400==0)}const P=[0,31,59,90,120,151,181,212,243,273,304,334],p=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,r){switch(e(n)){case"":case"default":return l(r);case"z":return"UTC";default:return n}}function O(n,r){return c(n)?n.toArcadeDate():m(n,l(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(f(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,r,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,l(r))})},e.time=function(r,e){return t(r,e,(t,f,m)=>{switch(u(m,0,4,r,e),m.length){case 0:{const e=n.nowToArcadeDate(l(r));return new w(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(a(m[0]))return m[0].clone();if(s(m[0]))return new w(m[0].hour,m[0].minute,m[0].second,m[0].millisecond);if(c(m[0]))return new w(0,0,0,0);if(A(m[0]))return w.fromString(m[0]);const n=i(m[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return A(m[0])&&A(m[1])?w.fromString(m[0],m[1]):w.fromParts(i(m[0]),i(m[1]),0,0);case 3:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),0);case 4:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),i(m[3]))}throw new o(r,"InvalidParameter",e)})},e.dateonly=function(r,e){return t(r,e,(t,o,a)=>{if(u(a,0,3,r,e),3===a.length)return y.fromParts(i(a[0]),i(a[1])+1,i(a[2]));if(2===a.length){const n=f(a[1]);return""===n?null:"X"===n?y.fromSeconds(i(a[0])):"x"===n?y.fromMilliseconds(i(a[0])):y.fromString(f(a[0]),n)}if(1===a.length){if(A(a[0])){if(""===a[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(a[0]))return y.fromString(a[0]+"-01-01")}if(c(a[0]))return a[0].clone();if(s(a[0]))return y.fromParts(a[0].year,a[0].monthJS+1,a[0].day);const n=i(a[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(a[0])?y.fromString(a[0]):null}if(0===a.length){const e=n.nowToArcadeDate(l(r));return!1===e.isValid?null:y.fromParts(e.year,e.monthJS+1,e.day)}return null})},e.changetimezone=function(e,i){return t(e,i,(t,a,s)=>{if(u(s,2,2,e,i),null===s[0])return null;if(c(s[0]))throw new o(e,"CannotChangeTimeZoneDateOnly",i);if(c(s[0]))throw new o(e,"CannotChangeTimeZoneTime",i);const d=m(s[0],l(e));if(null===d)throw new o(e,"InvalidParameter",i);const h=r(Z(f(s[1]),e),!1);if(null===h)return null;const N=n.arcadeDateAndZoneToArcadeDate(d,h);return!1===N.isValid?null:N})},e.timezone=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,1,2,r,e),a(i[0]))return"Unknown";if(c(i[0]))return"Unknown";const s=m(i[0],l(r));if(null===s)return null;const f=s.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.timezoneoffset=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:60*i.timeZoneOffset*1e3})},e.now=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,r,e);const a=n.nowToArcadeDate(l(r));return!1===a.isValid?null:a})},e.timestamp=function(r,e){return t(r,e,(t,o,l)=>{u(l,0,0,r,e);const i=n.nowUTCToArcadeDate();return!1===i.isValid?null:i})},e.toutc=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:i.toUTC()})},e.tolocal=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:i.toLocal()})},e.day=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.day})},e.month=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.monthJS})},e.year=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.year})},e.hour=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].hour;const i=m(o[0],l(n));return null===i?NaN:i.hour})},e.second=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].second;const i=m(o[0],l(n));return null===i?NaN:i.second})},e.millisecond=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].millisecond;const i=m(o[0],l(n));return null===i?NaN:i.millisecond})},e.minute=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].minute;const i=m(o[0],l(n));return null===i?NaN:i.minute})},e.week=function(n,r){return t(n,r,(e,t,a)=>{u(a,1,2,n,r);const s=O(a[0],l(n));if(null===s)return NaN;const c=i(d(a[1],0));if(c<0||c>6)throw new o(n,"InvalidParameter",r);const f=s.day,m=s.monthJS,h=s.year,N=s.dayOfWeekJS,y=D(f,m,h)-1,w=Math.floor(y/7);return N-c+(N-c<0?7:0)<y-7*w?w+1:w})},e.weekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekJS})},e.isoweekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekISO})},e.isomonth=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.monthISO})},e.isoweek=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.weekISO})},e.isoyear=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.yearISO})},e.date=function(e,o){return t(e,o,(t,s,d)=>{if(u(d,0,8,e,o),3===d.length){if(c(d[0])&&a(d[1])&&A(d[2])){const t=r(Z(f(d[2])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,t))}return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),0,0,0,0,l(e)))}if(4===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),0,0,0,l(e)));if(5===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),0,0,l(e)));if(6===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),0,l(e)));if(7===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),l(e)));if(8===d.length){const t=r(Z(f(d[7])??"unknown",e),!1);return null===t?null:S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),t))}if(2===d.length){if(c(d[0])&&A(d[1])){const t=r(Z(f(d[1])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,t))}if(c(d[0])&&a(d[1]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,"unknown"));let t,o=f(d[1]);return""===o?null:(o=h(o,!0),t="X"===o?T.fromSeconds(i(d[0])):"x"===o?T.fromMillis(i(d[0])):T.fromFormat(f(d[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===d.length){if(c(d[0]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,"unknown"));if(A(d[0])){if(""===d[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(d[0]))return m(d[0]+"-01-01",l(e))}const r=i(d[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,l(e)):null}return m(d[0],l(e))}return 0===d.length?n.nowToArcadeDate(l(e)):null})},e.datediff=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,2,4,r,e),a(i[0]))return a(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(a(i[1]))return NaN;if(c(i[0]))return c(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(c(i[1]))return NaN;let s=m(i[0],l(r)),h=m(i[1],l(r));if(null===s||null===h)return NaN;let N=d(i[3],"");return""!==N&&null!==N?(N=Z(f(N),r),s=n.arcadeDateAndZoneToArcadeDate(s,N),h=n.arcadeDateAndZoneToArcadeDate(h,N)):s.timeZone!==h.timeZone&&(s.isUnknownTimeZone?s=n.arcadeDateAndZoneToArcadeDate(s,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,s.timeZone))),s.diff(h,U(i[2]))})},e.dateadd=function(n,r){return t(n,r,(e,t,o)=>{u(o,2,3,n,r);let s=i(o[1]);if(isNaN(s)||s===1/0||s===-1/0)return a(o[0])||c(o[0])?o[0].clone():m(o[0],l(n));const f=U(o[2]);if("days"!==f&&"months"!==f||(s=c(o[0])?s:N(s)),a(o[0]))return o[0].plus(f,s);if(c(o[0]))return o[0].plus(f,s);const d=m(o[0],l(n));return null===d?null:d.plus({[f]:s})})}}export{j as registerFunctions};
5
+ import{ArcadeDate as n,createDateTimeZone as r}from"../ArcadeDate.js";import{toStringEnumKey as e,StringEnum as t}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import{B as u,K as l,s as i,g as a,e as s,f as c,u as f,N as m,J as d,O as h,P as N}from"../../chunks/languageUtils.js";import{DateOnly as y}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as T}from"luxon";import{isString as A}from"../../support/guards.js";function D(n,r,e){return n+(k(e)?p:P)[r]}function k(n){return n%4==0&&(n%100!=0||n%400==0)}const P=[0,31,59,90,120,151,181,212,243,273,304,334],p=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,r){switch(e(n)){case"":case"default":return l(r);case"z":return"UTC";default:return n}}function O(n,r){return c(n)?n.toArcadeDate():m(n,l(r))}const C=new t(["days","months","minutes","seconds","hours","years","milliseconds"],[["day","days"],["d","days"],["month","months"],["minute","minutes"],["m","minutes"],["second","seconds"],["s","seconds"],["hour","hours"],["h","hours"],["year","years"],["y","years"],["millisecond","milliseconds"],["ms","milliseconds"]]);function U(n){return"M"===n?"months":C.lookup(f(n))??"milliseconds"}function j(e,t){e.today=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,r,e);const a=new Date;return a.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(a,l(r))})},e.time=function(r,e){return t(r,e,(t,f,m)=>{switch(u(m,0,4,r,e),m.length){case 0:{const e=n.nowToArcadeDate(l(r));return new w(e.hour,e.minute,e.second,e.millisecond)}case 1:{if(a(m[0]))return m[0].clone();if(s(m[0]))return new w(m[0].hour,m[0].minute,m[0].second,m[0].millisecond);if(c(m[0]))return new w(0,0,0,0);if(A(m[0]))return w.fromString(m[0]);const n=i(m[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return A(m[0])&&A(m[1])?w.fromString(m[0],m[1]):w.fromParts(i(m[0]),i(m[1]),0,0);case 3:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),0);case 4:return w.fromParts(i(m[0]),i(m[1]),i(m[2]),i(m[3]))}throw new o(r,"InvalidParameter",e)})},e.dateonly=function(r,e){return t(r,e,(t,o,a)=>{if(u(a,0,3,r,e),3===a.length)return y.fromParts(i(a[0]),i(a[1])+1,i(a[2]));if(2===a.length){const n=f(a[1]);return""===n?null:"X"===n?y.fromSeconds(i(a[0])):"x"===n?y.fromMilliseconds(i(a[0])):y.fromString(f(a[0]),n)}if(1===a.length){if(A(a[0])){if(""===a[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(a[0]))return y.fromString(a[0]+"-01-01")}if(c(a[0]))return a[0].clone();if(s(a[0]))return y.fromParts(a[0].year,a[0].monthJS+1,a[0].day);const n=i(a[0]);return!1===isNaN(n)?y.fromMilliseconds(n):A(a[0])?y.fromString(a[0]):null}if(0===a.length){const e=n.nowToArcadeDate(l(r));return!1===e.isValid?null:y.fromParts(e.year,e.monthJS+1,e.day)}return null})},e.changetimezone=function(e,i){return t(e,i,(t,a,s)=>{if(u(s,2,2,e,i),null===s[0])return null;if(c(s[0]))throw new o(e,"CannotChangeTimeZoneDateOnly",i);if(c(s[0]))throw new o(e,"CannotChangeTimeZoneTime",i);const d=m(s[0],l(e));if(null===d)throw new o(e,"InvalidParameter",i);const h=r(Z(f(s[1]),e),!1);if(null===h)return null;const N=n.arcadeDateAndZoneToArcadeDate(d,h);return!1===N.isValid?null:N})},e.timezone=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,1,2,r,e),a(i[0]))return"Unknown";if(c(i[0]))return"Unknown";const s=m(i[0],l(r));if(null===s)return null;const f=s.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.timezoneoffset=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:60*i.timeZoneOffset*1e3})},e.now=function(r,e){return t(r,e,(t,o,i)=>{u(i,0,0,r,e);const a=n.nowToArcadeDate(l(r));return!1===a.isValid?null:a})},e.timestamp=function(r,e){return t(r,e,(t,o,l)=>{u(l,0,0,r,e);const i=n.nowUTCToArcadeDate();return!1===i.isValid?null:i})},e.toutc=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:i.toUTC()})},e.tolocal=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=m(o[0],l(n));return null===i?null:i.toLocal()})},e.day=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.day})},e.month=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.monthJS})},e.year=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.year})},e.hour=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].hour;const i=m(o[0],l(n));return null===i?NaN:i.hour})},e.second=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].second;const i=m(o[0],l(n));return null===i?NaN:i.second})},e.millisecond=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].millisecond;const i=m(o[0],l(n));return null===i?NaN:i.millisecond})},e.minute=function(n,r){return t(n,r,(e,t,o)=>{if(u(o,1,1,n,r),a(o[0]))return o[0].minute;const i=m(o[0],l(n));return null===i?NaN:i.minute})},e.week=function(n,r){return t(n,r,(e,t,a)=>{u(a,1,2,n,r);const s=O(a[0],l(n));if(null===s)return NaN;const c=i(d(a[1],0));if(c<0||c>6)throw new o(n,"InvalidParameter",r);const f=s.day,m=s.monthJS,h=s.year,N=s.dayOfWeekJS,y=D(f,m,h)-1,w=Math.floor(y/7);return N-c+(N-c<0?7:0)<y-7*w?w+1:w})},e.weekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekJS})},e.isoweekday=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.dayOfWeekISO})},e.isomonth=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.monthISO})},e.isoweek=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.weekISO})},e.isoyear=function(n,r){return t(n,r,(e,t,o)=>{u(o,1,1,n,r);const i=O(o[0],l(n));return null===i?NaN:i.yearISO})},e.date=function(e,o){return t(e,o,(t,s,d)=>{if(u(d,0,8,e,o),3===d.length){if(c(d[0])&&a(d[1])&&A(d[2])){const t=r(Z(f(d[2])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,t))}return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),0,0,0,0,l(e)))}if(4===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),0,0,0,l(e)));if(5===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),0,0,l(e)));if(6===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),0,l(e)));if(7===d.length)return S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),l(e)));if(8===d.length){const t=r(Z(f(d[7])??"unknown",e),!1);return null===t?null:S(n.fromParts(i(d[0]),i(d[1])+1,i(d[2]),i(d[3]),i(d[4]),i(d[5]),i(d[6]),t))}if(2===d.length){if(c(d[0])&&A(d[1])){const t=r(Z(f(d[1])??"unknown",e),!1);return null===t?null:S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,t))}if(c(d[0])&&a(d[1]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,d[1].hour,d[1].minute,d[1].second,d[1].millisecond,"unknown"));let t,o=f(d[1]);return""===o?null:(o=h(o,!0),t="X"===o?T.fromSeconds(i(d[0])):"x"===o?T.fromMillis(i(d[0])):T.fromFormat(f(d[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===d.length){if(c(d[0]))return S(n.fromParts(d[0].year,d[0].month,d[0].day,0,0,0,0,"unknown"));if(A(d[0])){if(""===d[0].replaceAll(/^\s+|\s+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(d[0]))return m(d[0]+"-01-01",l(e))}const r=i(d[0]);if(!1===isNaN(r)){const t=T.fromMillis(r);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,l(e)):null}return m(d[0],l(e))}return 0===d.length?n.nowToArcadeDate(l(e)):null})},e.datediff=function(r,e){return t(r,e,(t,o,i)=>{if(u(i,2,4,r,e),a(i[0]))return a(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(a(i[1]))return NaN;if(c(i[0]))return c(i[1])?i[0].difference(i[1],f(i[2])):NaN;if(c(i[1]))return NaN;let s=m(i[0],l(r)),h=m(i[1],l(r));if(null===s||null===h)return NaN;let N=d(i[3],"");return""!==N&&null!==N?(N=Z(f(N),r),s=n.arcadeDateAndZoneToArcadeDate(s,N),h=n.arcadeDateAndZoneToArcadeDate(h,N)):s.timeZone!==h.timeZone&&(s.isUnknownTimeZone?s=n.arcadeDateAndZoneToArcadeDate(s,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,s.timeZone))),s.diff(h,U(i[2]))})},e.dateadd=function(n,r){return t(n,r,(e,t,o)=>{u(o,2,3,n,r);let s=i(o[1]);if(isNaN(s)||s===1/0||s===-1/0)return a(o[0])||c(o[0])?o[0].clone():m(o[0],l(n));const f=U(o[2]);if("days"!==f&&"months"!==f||(s=c(o[0])?s:N(s)),a(o[0]))return o[0].plus(f,s);if(c(o[0]))return o[0].plus(f,s);const d=m(o[0],l(n));return null===d?null:d.plus({[f]:s})})}}export{j 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import t from"../Dictionary.js";import{ArcadeExecutionError as n}from"../executionError.js";import o from"../Feature.js";import{B as i,k as a,Q as u,w as s,K as d,S as m,T as c,v as f,U as l,V as p,e as y}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as v}from"../featureset/support/shared.js";import{SqlTimeStampOffset as w}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as b}from"../../layers/support/streamLayerUtils.js";import{isString as T,isNumber as j}from"../../support/guards.js";function I(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function F(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(y(t)){const n=t.toDateTime(),o=F(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?w.fromDateTime(n):n}return t}};function P(o,w,P){o.domain=function(e,r){return w(e,r,(o,m,c)=>{if(i(c,2,3,e,r),a(c[0])){const r=u(c[0],s(c[1]),void 0===c[2]?void 0:c[2]);return r&&r.domain?"coded-value"===r.domain.type||"codedValue"===r.domain.type?t.convertObjectToArcadeDictionary({type:"codedValue",name:r.domain.name,dataType:v[r.field.type],codedValues:r.domain.codedValues.map(e=>({name:e.name,code:e.code}))},d(e)):t.convertObjectToArcadeDictionary({type:"range",name:r.domain.name,dataType:v[r.field.type],min:r.domain.minValue,max:r.domain.maxValue},d(e)):null}throw new n(e,"InvalidParameter",r)})},o.domaincode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return m(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.domainname=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return c(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.expects=function(e,r){return w(e,r,(t,o,i)=>{if(i.length<1)throw new n(e,"WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return w(e,r,(e,r,t)=>{i(t,2,2,e,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!T(u))throw new n(e,"InvalidParameter",r);const s=h.create(u,{fieldsIndex:F(o),timeZone:I(o)}),d=s.getVariables();for(const n of d)s.parameters[n]=P(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0]))return u[0].gdbVersion();throw new n(e,"InvalidParameter",r)})},o.schema=function(e,r){return w(e,r,(o,i,u)=>{if(a(u[0])){const r=l(u[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o.subtypecode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return null;if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n(e,"InvalidParameter",r)})},o.subtypename=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return"";if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n(e,"InvalidParameter",r)})},o.subtypes=function(e,r){return w(e,r,(o,u,s)=>{if(i(s,1,1,e,r),a(s[0])){const r=p(s[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return w(r,t,(r,t,o)=>{if(i(o,1,1,r,t),a(o[0])){if(o[0].hasField(b)){const t=o[0].field(b);return j(t)?e.epochToArcadeDate(t,r.timeZone??"system"):y(t)?t:null}return null}throw new n(r,"InvalidParameter",t)})}}export{P as registerFunctions};
5
+ import{ArcadeDate as e}from"../ArcadeDate.js";import{toSymbolId as r}from"../arcadeEnvironment.js";import t from"../Dictionary.js";import{ArcadeExecutionError as n}from"../executionError.js";import o from"../Feature.js";import{B as i,k as a,Q as u,u as s,K as d,S as m,T as c,v as f,U as l,V as p,e as y}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as v}from"../featureset/support/shared.js";import{SqlTimeStampOffset as w}from"../../core/sql/SqlTimestampOffset.js";import h from"../../core/sql/WhereClause.js";import{internalTimeReceivedField as b}from"../../layers/support/streamLayerUtils.js";import{isString as T,isNumber as j}from"../../support/guards.js";function I(e){const r=e?.fullSchema();return r?.datesInUnknownTimezone?"unknown":r?.dateFieldsTimeZone||"UTC"}function F(e){const r=e.fullSchema()?.fieldsIndex;return null==r&&e instanceof o?e.fieldsIndex:r}const g={getAttributeSQL(e,r){const t=e.field(r);if(null==t)return t;if(y(t)){const n=t.toDateTime(),o=F(e)?.get(r)?.type;return"esriFieldTypeTimestampOffset"===o||"timestamp-offset"===o?w.fromDateTime(n):n}return t}};function P(o,w,P){o.domain=function(e,r){return w(e,r,(o,m,c)=>{if(i(c,2,3,e,r),a(c[0])){const r=u(c[0],s(c[1]),void 0===c[2]?void 0:c[2]);return r&&r.domain?"coded-value"===r.domain.type||"codedValue"===r.domain.type?t.convertObjectToArcadeDictionary({type:"codedValue",name:r.domain.name,dataType:v[r.field.type],codedValues:r.domain.codedValues.map(e=>({name:e.name,code:e.code}))},d(e)):t.convertObjectToArcadeDictionary({type:"range",name:r.domain.name,dataType:v[r.field.type],min:r.domain.minValue,max:r.domain.maxValue},d(e)):null}throw new n(e,"InvalidParameter",r)})},o.domaincode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return m(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.domainname=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,2,4,e,r),a(u[0]))return c(u[0],s(u[1]),u[2],void 0===u[3]?void 0:u[3]);throw new n(e,"InvalidParameter",r)})},o.expects=function(e,r){return w(e,r,(t,o,i)=>{if(i.length<1)throw new n(e,"WrongNumberOfParameters",r);return f})},o.featureinfilter=function(e,r){return w(e,r,(e,r,t)=>{i(t,2,2,e,r);const[o,u]=t;if(null==o)return!1;if(""===u||null==u)return!0;if(!a(o)||!T(u))throw new n(e,"InvalidParameter",r);const s=h.create(u,{fieldsIndex:F(o),timeZone:I(o)}),d=s.getVariables();for(const n of d)s.parameters[n]=P(e,{name:n});return s.testFeature(o,g)})},o.gdbversion=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0]))return u[0].gdbVersion();throw new n(e,"InvalidParameter",r)})},o.schema=function(e,r){return w(e,r,(o,i,u)=>{if(a(u[0])){const r=l(u[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o.subtypecode=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return null;if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.code;return null}return null}throw new n(e,"InvalidParameter",r)})},o.subtypename=function(e,r){return w(e,r,(t,o,u)=>{if(i(u,1,1,e,r),a(u[0])){const e=p(u[0]);if(!e)return"";if(e.subtypeField&&u[0].hasField(e.subtypeField)){const r=u[0].field(e.subtypeField);for(const t of e.subtypes)if(t.code===r)return t.name;return""}return""}throw new n(e,"InvalidParameter",r)})},o.subtypes=function(e,r){return w(e,r,(o,u,s)=>{if(i(s,1,1,e,r),a(s[0])){const r=p(s[0]);return r?t.convertObjectToArcadeDictionary(r,d(e)):null}throw new n(e,"InvalidParameter",r)})},o[r("TimeReceived")]=function(r,t){return w(r,t,(r,t,o)=>{if(i(o,1,1,r,t),a(o[0])){if(o[0].hasField(b)){const t=o[0].field(b);return j(t)?e.epochToArcadeDate(t,r.timeZone??"system"):y(t)?t:null}return null}throw new n(r,"InvalidParameter",t)})}}export{P 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.34/esri/copyright.txt for details.
4
4
  */
5
- import e from"../../Graphic.js";import{ArcadeDate as t}from"../ArcadeDate.js";import n from"../ArcadePortal.js";import i from"../Dictionary.js";import{StringEnum as a,toStringEnumKey as r}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import s from"../Feature.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as f,constructFeatureSet as d,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as c,constructAssociationMetaDataFeatureSetFromUrl as m}from"../featureSetUtils.js";import p from"../ImmutableArray.js";import{B as y,g as w,f as I,m as h,w as g,N as F,K as b,e as T,l as D,J as x,H as E,k as N,j as A,i as v,u as S,L,Y as j}from"../../chunks/languageUtils.js";import{getPortal as C}from"../portalUtils.js";import{SqlExpressionAdapted as k,StringToCodeAdapted as Z,FieldRename as $,AdaptedFeatureSet as P,OriginalField as U}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import R from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import H from"../featureset/sources/FeatureLayerMemory.js";import W from"../featureset/support/OrderbyClause.js";import{isSupportedLayer as G,cloneField as V}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as B}from"./fieldStats.js";import{isPromiseLike as K}from"../../core/promiseUtils.js";import q from"../../core/sql/WhereClause.js";import Q from"../../layers/FeatureLayer.js";import J from"../../layers/support/Field.js";import Y from"../../portal/Portal.js";import{queryAssociations as X}from"../../rest/networks/queryAssociations.js";import ee from"../../rest/networks/support/NetworkElement.js";import te from"../../rest/networks/support/QueryAssociationsParameters.js";import{isString as ne,isArray as ie,isInteger as ae}from"../../support/guards.js";function re(e){if(1===e.length){if(ie(e[0]))return B("distinct",e[0],-1);if(A(e[0]))return B("distinct",e[0].toArray(),-1)}return B("distinct",e,-1)}function oe(e,t,n){const i=e.getVariables();if(i.length>0){const a={};for(const e of i)a[e]=t.evaluateIdentifier(n,{name:e});e.parameters=a}return e}function se(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function le(e){if(null===e)return null;const t={type:se(e,"type",""),name:se(e,"name","")};if("range"===t.type)t.range=se(e,"range",[]);else{t.codedValues=[];for(const n of se(e,"codedValues",[]))t.codedValues.push({name:se(n,"name",""),code:se(n,"code",null)})}return t}function fe(e){if(null===e)return null;const t={},n=se(e,"wkt");null!==n&&(t.wkt=n);const i=se(e,"wkid");return null!==i&&(t.wkid=i),t}function de(e){if(null===e)return null;const t={hasZ:se(e,"hasz",!1),hasM:se(e,"hasm",!1)},n=se(e,"spatialreference");null!=n&&(t.spatialReference=fe(n));const i=se(e,"x",null);if(null!==i)return t.x=i,t.y=se(e,"y",null),t.hasZ&&(t.z=se(e,"z",null)),t.hasM&&(t.m=se(e,"m",null)),t;const a=se(e,"rings",null);if(null!==a)return t.rings=a,t;const r=se(e,"paths",null);if(null!==r)return t.paths=r,t;const o=se(e,"points",null);if(null!==o)return t.points=o,t;for(const s of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=se(e,s,null);null!==n&&(t[s]=n)}return t}function ue(e,t){for(const n of t)if(n===e)return!0;return!1}function ce(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ue(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==ie(e.layerDefinition.fields)&&!1!==ie(e.featureSet.features))))}function me(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}async function pe(t,n,i,a,r,s,l){const f=await t.getFeatureSetInfo();if(null===(f?.layerId??null))return null;if(!r.layerIdLookup.get(f.layerId))return null;const u=t.serviceUrl().replace(/\/FeatureServer/i,"/UtilityNetworkServer"),c=[];switch(i){case"connected":c.push("connectivity"),c.push("junction-edge-from-connectivity"),c.push("junction-edge-to-connectivity"),c.push("junction-edge-midspan-connectivity"),c.push("junction-junction-connectivity");break;case"container":case"content":c.push("containment");break;case"structure":case"attached":c.push("attachment");break;case"junctionedge":c.push("junction-edge-from-connectivity"),c.push("junction-edge-to-connectivity");break;case"midspan":c.push("junction-edge-midspan-connectivity");break;default:throw new o(s,"InvalidParameter",l)}let m=null,p=!1;if(null!==a&&""!==a&&void 0!==a){for(const e of r.terminals)e.terminalName===a&&(m=e.terminalId);null===m&&(p=!0)}const y=[];if(!p){const a=new ee({globalId:n.field(t.globalIdField),networkSourceId:r.layerIdLookup.get(f.layerId).sourceId,...m?{terminalId:m}:""}),o=await X(u,new te({types:c,elements:[a]}));let s=0;for(const t of o.associations){let n=null,o="",l="";if(t.fromNetworkElement?.globalId===a.globalId?(n=t.toNetworkElement,l="to"):t.toNetworkElement?.globalId===a.globalId&&(n=t.fromNetworkElement,l="from"),!n)continue;switch(i){case"attached":if("attachment"!==t.associationType)continue;if("to"!==l)continue;break;case"structure":if("attachment"!==t.associationType)continue;if("from"!==l)continue;break;case"container":if("containment"!==t.associationType)continue;if("from"!==l)continue;break;case"content":if("containment"!==t.associationType)continue;if("to"!==l)continue;break;case"connected":break;case"junctionedge":"junction-edge-to-connectivity"===t.associationType?o="to":"junction-edge-from-connectivity"===t.associationType&&(o="from");break;case"midspan":if("junction-edge-midspan-connectivity"!==t.associationType)continue}const f=r.sourceIdLookup.get(n.networkSourceId)?.className??"";y.push(new e({geometry:null,attributes:{objectId:s++,globalId:n.globalId,percentAlong:t.percentAlong??0,isContentVisible:t.isContentVisible?0:1,className:f,side:o}}))}}const w=new Q({source:y,geometryType:null,objectIdField:"objectId",globalIdField:"globalId",fields:[new J({name:"objectId",alias:"objectId",type:"oid"}),new J({name:"globalId",alias:"globalId",type:"global-id"}),new J({name:"percentAlong",alias:"percentAlong",type:"double"}),new J({name:"side",alias:"side",type:"string"}),new J({name:"isContentVisible",alias:"isContentVisible",type:"integer"}),new J({name:"className",alias:"className",type:"string"})]});return d(w)}function ye(e){if("async"===e.mode){e.functions.timezone=function(n,a){return e.standardFunctionAsync(n,a,async(e,r,s)=>{if(y(s,1,2,n,a),w(s[0]))return"Unknown";if(I(s[0]))return"Unknown";if(h(s[0])){if(await s[0].load(),1===s.length||null===s[1])return s[0].datesInUnknownTimezone?me("unknown"):me(s[0].dateFieldsTimeZone);if(!(s[1]instanceof i)||!1===s[1].hasField("type"))throw new o(n,"InvalidParameter",a);const e=s[1].field("type");if(!1===ne(e))throw new o(n,"InvalidParameter",a);switch(g(e).toLowerCase()){case"preferredtimezone":return me(s[0].preferredTimeZone);case"editfieldsinfo":return me(s[0].editFieldsInfo?.timeZone??null);case"timeinfo":return me(s[0].timeInfo?.timeZone??null);case"field":if(s[1].hasField("fieldname")&&ne(s[1].field("fieldname")))return me(s[0].fieldTimeZone(g(s[1].field("fieldname"))))}throw new o(n,"InvalidParameter",a)}const l=F(s[0],b(n));if(null===l)return null;const f=l.timeZone;return"system"===f?t.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.functions.sqltimestamp=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,1,3,t,n);const r=a[0];if(T(r)){if(1===a.length)return r.toSQLWithKeyword();if(2===a.length)return r.changeTimeZone(g(a[1])).toSQLWithKeyword();throw new o(t,"InvalidParameter",n)}if(I(r))return r.toSQLWithKeyword();if(h(r)){if(3!==a.length)throw new o(t,"InvalidParameter",n);await r.load();const e=g(a[1]);if(I(a[2]))return a[2].toSQLWithKeyword();if(!1===T(a[2]))throw new o(t,"InvalidParameter",n);const i=r.fieldTimeZone(e);return null==i?a[2].toSQLWithKeyword():a[2].changeTimeZone(i).toSQLWithKeyword()}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"sqltimestamp",min:2,max:4}),e.functions.featuresetbyid=function(t,n){return e.standardFunctionAsync(t,n,(e,i,a)=>{if(y(a,2,4,t,n),D(a[0])){const e=g(a[1]);let i=x(a[2],null);const r=E(x(a[3],!0));if(null===i&&(i=["*"]),!1===ie(i))throw new o(t,"InvalidParameter",n);return a[0].featureSetById(e,r,i)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"featuresetbyid",min:2,max:4});const B=new a(["datasource","parent","root"]);e.functions.getfeatureset=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,1,2,t,n),N(a[0])){const e=null==a[1]?"datasource":B.lookup(g(a[1]));return l(a[0].fullSchema(),e,t.lrucache,t.interceptor,t.spatialReference)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"getfeatureset",min:1,max:2}),e.functions.featuresetbyportalitem=function(t,i){return e.standardFunctionAsync(t,i,(e,a,r)=>{if(y(r,2,5,t,i),null===r[0])throw new o(t,"PortalRequired",i);if(r[0]instanceof n){const e=g(r[1]),n=g(r[2]);let a=x(r[3],null);const s=E(x(r[4],!0));if(null===a&&(a=["*"]),!1===ie(a))throw new o(t,"InvalidParameter",i);let l;return l=t.services?.portal?t.services.portal:Y.getDefault(),l=C(r[0],l),f(e,n,t.spatialReference,a,s,l,t.lrucache,t.interceptor)}if(!1===ne(r[0]))throw new o(t,"PortalRequired",i);const s=g(r[0]),l=g(r[1]);let d=x(r[2],null);const u=E(x(r[3],!0));if(null===d&&(d=["*"]),!1===ie(d))throw new o(t,"InvalidParameter",i);return f(s,l,t.spatialReference,d,u,t.services?.portal??Y.getDefault(),t.lrucache,t.interceptor)})},e.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),e.functions.featuresetbyname=function(t,n){return e.standardFunctionAsync(t,n,(e,i,a)=>{if(y(a,2,4,t,n),D(a[0])){const e=g(a[1]);let i=x(a[2],null);const r=E(x(a[3],!0));if(null===i&&(i=["*"]),!1===ie(i))throw new o(t,"InvalidParameter",n);return a[0].featureSetByName(e,r,i)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"featuresetbyname",min:2,max:4}),e.functions.featureset=function(t,n){return e.standardFunction(t,n,(e,a,r)=>{y(r,1,1,t,n);const s={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",hasM:!1,hasZ:!1,fields:[]},featureSet:{geometryType:"",features:[]}};if(ne(r[0])){const e=JSON.parse(r[0]);void 0!==e.layerDefinition?(s.layerDefinition=e.layerDefinition,s.featureSet=e.featureSet,e.layerDefinition.spatialReference&&(s.layerDefinition.spatialReference=e.layerDefinition.spatialReference)):(s.featureSet.features=e.features,s.featureSet.geometryType=e.geometryType,s.layerDefinition.geometryType=s.featureSet.geometryType,s.layerDefinition.objectIdField=e.objectIdFieldName??"",s.layerDefinition.typeIdField=e.typeIdFieldName,s.layerDefinition.globalIdField=e.globalIdFieldName,s.layerDefinition.fields=e.fields,e.spatialReference&&(s.layerDefinition.spatialReference=e.spatialReference))}else{if(!(r[0]instanceof i))throw new o(t,"InvalidParameter",n);{const e=JSON.parse(r[0].castToText(!0)),i=se(e,"layerdefinition");if(null!==i){s.layerDefinition.geometryType=se(i,"geometrytype",""),s.featureSet.geometryType=s.layerDefinition.geometryType,s.layerDefinition.globalIdField=se(i,"globalidfield",""),s.layerDefinition.objectIdField=se(i,"objectidfield",""),s.layerDefinition.typeIdField=se(i,"typeidfield",""),s.layerDefinition.hasZ=!0===se(i,"hasz",!1),s.layerDefinition.hasM=!0===se(i,"hasm",!1);const t=se(i,"spatialreference");t&&(s.layerDefinition.spatialReference=fe(t));const n=[];for(const e of se(i,"fields",[])){const t={name:se(e,"name",""),alias:se(e,"alias",""),type:se(e,"type",""),nullable:se(e,"nullable",!0),editable:se(e,"editable",!0),length:se(e,"length",null),domain:le(se(e,"domain"))};n.push(t)}s.layerDefinition.fields=n;const a=se(e,"featureset");if(a){const e={};for(const t of n)e[t.name.toLowerCase()]=t.name;for(const t of se(a,"features",[])){const n={},i=se(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];s.featureSet.features.push({attributes:n,geometry:de(se(t,"geometry"))})}}}else{s.layerDefinition.hasZ=!0===se(e,"hasz",!1),s.layerDefinition.hasM=!0===se(e,"hasm",!1),s.layerDefinition.geometryType=se(e,"geometrytype",""),s.featureSet.geometryType=s.layerDefinition.geometryType,s.layerDefinition.objectIdField=se(e,"objectidfieldname",""),s.layerDefinition.typeIdField=se(e,"typeidfieldname","");const i=se(e,"spatialreference");i&&(s.layerDefinition.spatialReference=fe(i));const a=[],r=se(e,"fields",null);if(!ie(r))throw new o(t,"InvalidParameter",n);for(const e of r){const t={name:se(e,"name",""),alias:se(e,"alias",""),type:se(e,"type",""),nullable:se(e,"nullable",!0),editable:se(e,"editable",!0),length:se(e,"length",null),domain:le(se(e,"domain"))};a.push(t)}s.layerDefinition.fields=a;const l={};for(const e of a)l[e.name.toLowerCase()]=e.name;let f=se(e,"features",null);if(ie(f))for(const e of f){const t={},n=se(e,"attributes",{});for(const e in n)t[l[e.toLowerCase()]]=n[e];s.featureSet.features.push({attributes:t,geometry:de(se(e,"geometry",null))})}else f=null,s.featureSet.features=f}}}if(!1===ce(s))throw new o(t,"InvalidParameter",n);return s.layerDefinition.geometryType||(s.layerDefinition.geometryType="esriGeometryNull"),H.create(s,t.spatialReference)})},e.signatures.push({name:"featureset",min:1,max:1}),e.functions.filter=function(t,n){return e.standardFunctionAsync(t,n,async(i,a,r)=>{if(y(r,2,2,t,n),ie(r[0])||A(r[0])){const e=[];let i,a=r[0];if(a instanceof p&&(a=a.toArray()),!v(r[1]))throw new o(t,"InvalidParameter",n);i=r[1].createFunction(t);for(const t of a){const n=i(t);K(n)?!0===await n&&e.push(t):!0===n&&e.push(t)}return e}if(h(r[0])){const n=await r[0].load(),i=q.create(r[1],{fieldsIndex:n.getFieldsIndex(),timeZone:n.dateFieldsTimeZoneDefaultUTC}),a=i.getVariables();if(a.length>0){const n={};for(const i of a)n[i]=e.evaluateIdentifier(t,{name:i});i.parameters=n}return new M({parentfeatureset:r[0],whereclause:i})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"filter",min:2,max:2}),e.functions.orderby=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0])){const e=new W(a[1]);return new R({parentfeatureset:a[0],orderbyclause:e})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"orderby",min:2,max:2}),e.functions.top=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0]))return new O({parentfeatureset:a[0],topnum:a[1]});if(ie(a[0]))return S(a[1])>=a[0].length?a[0].slice():a[0].slice(0,S(a[1]));if(A(a[0]))return S(a[1])>=a[0].length()?a[0].slice():a[0].slice(0,S(a[1]));throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"top",min:2,max:2}),e.functions.first=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,1,1,t,n),h(a[0])){const n=await a[0].first(e.abortSignal);if(null!==n){const e=s.createFromGraphicLikeObject(n.geometry,n.attributes,a[0],t.timeZone);return e._underlyingGraphic=n,e}return n}return ie(a[0])?0===a[0].length?null:a[0][0]:A(a[0])?0===a[0].length()?null:a[0].get(0):null})},e.signatures.push({name:"first",min:1,max:1}),e.functions.attachments=function(t,n){return e.standardFunctionAsync(t,n,async(e,a,r)=>{y(r,1,2,t,n);const s={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(r.length>1)if(r[1]instanceof i){if(r[1].hasField("minsize")&&(s.minsize=S(r[1].field("minsize"))),r[1].hasField("metadata")&&(s.returnMetadata=E(r[1].field("metadata"))),r[1].hasField("maxsize")&&(s.maxsize=S(r[1].field("maxsize"))),r[1].hasField("types")){const e=L(r[1].field("types"),!1);e.length>0&&(s.types=e)}}else if(null!==r[1])throw new o(t,"InvalidParameter",n);if(N(r[0])){const e=r[0]._layer;let n;if(h(e))n=e;else{if(null==e||!G(e))return[];n=d(e,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}return await n.load(),n.queryAttachments(r[0].field(n.objectIdField),s.minsize,s.maxsize,s.types,s.returnMetadata)}if(null===r[0])return[];throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"attachments",min:1,max:2}),e.functions.featuresetbyrelationshipname=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,2,4,t,n);const r=a[0],s=g(a[1]);let l=x(a[2],null);const f=E(x(a[3],!0));if(null===l&&(l=["*"]),!1===ie(l))throw new o(t,"InvalidParameter",n);if(null===a[0])return null;if(!N(a[0]))throw new o(t,"InvalidParameter",n);const m=r._layer;let p;if(h(m))p=m;else{if(null==m||!G(m))return null;p=d(m,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}p=await p.load();const w=p.relationshipMetaData().filter(e=>e.name===s);if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(p,w[0],r.field(p.objectIdField),p.spatialReference,l,f,t.lrucache,t.interceptor);let I=p.serviceUrl();if(!I)return null;I="/"===I.charAt(I.length-1)?I+w[0].relatedTableId.toString():I+"/"+w[0].relatedTableId.toString();const F=await c(I,p.spatialReference,l,f,t.lrucache,t.interceptor);await F.load();let b=F.relationshipMetaData();if(b=b.filter(e=>e.id===w[0].id),!1===r.hasField(w[0].keyField)||null===r.field(w[0].keyField)){const e=await p.getFeatureByObjectId(r.field(p.objectIdField),[w[0].keyField]);if(e){const t=q.create(b[0].keyField+"= @id",{fieldsIndex:F.getFieldsIndex(),timeZone:F.dateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[w[0].keyField]},F.filter(t)}return new z({parentfeatureset:F})}const T=q.create(b[0].keyField+"= @id",{fieldsIndex:F.getFieldsIndex(),timeZone:F.dateFieldsTimeZoneDefaultUTC});return T.parameters={id:r.field(w[0].keyField)},F.filter(T)})},e.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),e.functions.featuresetbyassociation=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,2,3,t,n);const s=a[0],l=r(g(x(a[1],""))),f=ne(a[2])?g(a[2]):null;if(null===a[0])return null;if(!N(a[0]))throw new o(t,"InvalidParameter",n);let u=s._layer;if(u instanceof Q&&(u=d(u,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===u)return null;if(!1===h(u))return null;await u.load();const c=u.serviceUrl(),p=await m(c,t.spatialReference,!0);if(p.unVersion>=8)return await pe(u,s,l,f,p,t,n);const w=p.associations;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 T=w.getFieldsIndex(),D=T.get("TOGLOBALID").name,E=T.get("FROMGLOBALID").name,A=T.get("TOTERMINALID").name,v=T.get("FROMTERMINALID").name,S=T.get("FROMNETWORKSOURCEID").name,L=T.get("TONETWORKSOURCEID").name,C=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,R=T.get("OBJECTID").name;for(const t of u.fields)if("global-id"===t.type){I=s.field(t.name);break}let O=null,z=new k(new J({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),H=new k(new J({name:"side",alias:"side",type:"string"}),q.create("''",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));const W="globalid",G="globalId",_={};for(const t in p.lkp)_[t]=p.lkp[t].sourceId;const B=new Z(new J({name:"classname",alias:"classname",type:"string"}),null,_);let K="";switch(l){case"midspan":{K=`((${D}='${I}') OR ( ${E}='${I}')) AND (${C} IN (5))`,B.codefield=q.create(`CASE WHEN (${D}='${I}') THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=V(P.findField(w.fields,E));e.name=W,e.alias=W,O=new k(e,q.create(`CASE WHEN (${E}='${I}') THEN ${D} ELSE ${E} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),z=p.unVersion>=4?new U(P.findField(w.fields,T.get("PERCENTALONG").name)):new k(new J({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{K=`((${D}='${I}') OR ( ${E}='${I}')) AND (${C} IN (4,6))`,B.codefield=q.create(`CASE WHEN (${D}='${I}') THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=V(P.findField(w.fields,E));e.name=W,e.alias=W,O=new k(e,q.create(`CASE WHEN (${E}='${I}') THEN ${D} ELSE ${E} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),H=new k(new J({name:"side",alias:"side",type:"string"}),q.create(`CASE WHEN (${C}=4) THEN 'from' ELSE 'to' END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${D}='@T'`,t=`${E}='@T'`;null!==F&&(e+=` AND ${A}=@A`,t+=` AND ${v}=@A`),K="(("+e+") OR ("+t+"))",K=j(K,"@T",I??""),e=j(e,"@T",I??""),null!==F&&(e=j(e,"@A",F.toString()),K=j(K,"@A",F.toString())),B.codefield=q.create("CASE WHEN "+e+` THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const n=V(P.findField(w.fields,E));n.name=W,n.alias=W,O=new k(n,q.create("CASE WHEN "+e+` THEN ${E} ELSE ${D} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"container":K=`${D}='${I}' AND ${C} = 2`,null!==F&&(K+=` AND ${A} = `+F.toString()),B.codefield=S,K="( "+K+" )",O=new $(P.findField(w.fields,E),W,W);break;case"content":K=`(${E}='${I}' AND ${C} = 2)`,null!==F&&(K+=` AND ${v} = `+F.toString()),B.codefield=L,K="( "+K+" )",O=new $(P.findField(w.fields,D),W,W);break;case"structure":K=`(${D}='${I}' AND ${C} = 3)`,null!==F&&(K+=` AND ${A} = `+F.toString()),B.codefield=S,K="( "+K+" )",O=new $(P.findField(w.fields,E),W,G);break;case"attached":K=`(${E}='${I}' AND ${C} = 3)`,null!==F&&(K+=` AND ${v} = `+F.toString()),B.codefield=L,K="( "+K+" )",O=new $(P.findField(w.fields,D),W,G);break;default:throw new o(t,"InvalidParameter",n)}b&&(K="1 <> 1");return new P({parentfeatureset:w,adaptedFields:[new U(P.findField(w.fields,R)),new U(P.findField(w.fields,M)),O,H,B,z],extraFilter:K?q.create(K,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}):null})})},e.signatures.push({name:"featuresetbyassociation",min:2,max:6}),e.functions.groupby=function(t,n){return e.standardFunctionAsync(t,n,async(a,r,s)=>{if(y(s,3,3,t,n),!h(s[0]))throw new o(t,"InvalidParameter",n);const l=await s[0].load(),f=[],d=[];let u=!1,c=[];if(ne(s[1]))c.push(s[1]);else if(s[1]instanceof i)c.push(s[1]);else if(ie(s[1]))c=s[1];else{if(!A(s[1]))throw new o(t,"InvalidParameter",n);c=s[1].toArray()}for(const e of c)if(ne(e)){const t=q.create(g(e),{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC}),n=!0===_(t)?g(e):"%%%%FIELDNAME";f.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(u=!0)}else{if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",a=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(u=!0),!i)throw new o(t,"InvalidParameter",n);f.push({name:i,expression:q.create(a||i,{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC})})}}if(c=[],ne(s[2]))c.push(s[2]);else if(ie(s[2]))c=s[2];else if(A(s[2]))c=s[2].toArray();else{if(!(s[2]instanceof i))throw new o(t,"InvalidParameter",n);c.push(s[2])}for(const e of c){if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"",a=e.hasField("statistic")?e.field("statistic"):"",r=e.hasField("expression")?e.field("expression"):"";if(!(i&&a&&ne(a)&&r))throw new o(t,"InvalidParameter",n);d.push({name:i,statistic:a,expression:q.create(r,{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC})})}}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 d)"%%%%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 n of f)oe(n.expression,e,t);for(const n of d)oe(n.expression,e,t);return s[0].groupby(f,d)})},e.signatures.push({name:"groupby",min:3,max:3}),e.functions.distinct=function(t,n){return e.standardFunctionAsync(t,n,async(a,r,s)=>{if(h(s[0])){y(s,2,2,t,n);const a=await s[0].load(),r=[];let l=[];if(ne(s[1]))l.push(s[1]);else if(s[1]instanceof i)l.push(s[1]);else if(ie(s[1]))l=s[1];else{if(!A(s[1]))throw new o(t,"InvalidParameter",n);l=s[1].toArray()}let f=!1;for(const e of l)if(ne(e)){const t=q.create(g(e),{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC}),n=!0===_(t)?g(e):"%%%%FIELDNAME";r.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(f=!0)}else{if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",s=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(f=!0),!i)throw new o(t,"InvalidParameter",n);r.push({name:i,expression:q.create(s||i,{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC})})}}if(f){const e={};for(const n of a.fields)e[n.name.toLowerCase()]=1;for(const n of r)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of r)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of r)oe(n.expression,e,t);return s[0].groupby(r,[])}return re(s)})},e.functions.getfeaturesetinfo=function(t,n){return e.standardFunctionAsync(t,n,async(e,a,r)=>{if(y(r,1,1,t,n),!h(r[0]))return null;const o=await r[0].getFeatureSetInfo();return o?i.convertObjectToArcadeDictionary({layerId:o.layerId,layerName:o.layerName,itemId:o.itemId,serviceLayerUrl:o.serviceLayerUrl,webMapLayerId:o.webMapLayerId??null,webMapLayerTitle:o.webMapLayerTitle??null,className:null,objectClassId:null},b(t),!1,!1):null})},e.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),e.functions.filterbysubtypecode=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0])){const e=await a[0].load(),i=a[1];if(!ae(i))throw new o(t,"InvalidParameter",n);if(e.subtypeField){const t=q.create(`${e.subtypeField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new M({parentfeatureset:a[0],whereclause:t})}if(null===e.typeIdField||""===e.typeIdField)throw new o(t,"FeatureSetDoesNotHaveSubtypes",n);const r=q.create(`${e.typeIdField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new M({parentfeatureset:a[0],whereclause:r})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"filterbysubtypecode",min:2,max:2})}}export{ye as registerFunctions};
5
+ import e from"../../Graphic.js";import{ArcadeDate as t}from"../ArcadeDate.js";import n from"../ArcadePortal.js";import i from"../Dictionary.js";import{StringEnum as a,toStringEnumKey as r}from"../enum.js";import{ArcadeExecutionError as o}from"../executionError.js";import s from"../Feature.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as f,constructFeatureSet as d,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as c,constructAssociationMetaDataFeatureSetFromUrl as m}from"../featureSetUtils.js";import p from"../ImmutableArray.js";import{B as y,g as w,f as I,m as h,u as g,N as F,K as b,e as T,l as D,J as x,H as E,k as N,j as A,i as v,s as S,L,Y as j}from"../../chunks/languageUtils.js";import{getPortal as C}from"../portalUtils.js";import{SqlExpressionAdapted as k,StringToCodeAdapted as Z,FieldRename as $,AdaptedFeatureSet as P,OriginalField as U}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import R from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import H from"../featureset/sources/FeatureLayerMemory.js";import W from"../featureset/support/OrderbyClause.js";import{isSupportedLayer as G,cloneField as V}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as B}from"./fieldStats.js";import{isPromiseLike as K}from"../../core/promiseUtils.js";import q from"../../core/sql/WhereClause.js";import Q from"../../layers/FeatureLayer.js";import J from"../../layers/support/Field.js";import Y from"../../portal/Portal.js";import{queryAssociations as X}from"../../rest/networks/queryAssociations.js";import ee from"../../rest/networks/support/NetworkElement.js";import te from"../../rest/networks/support/QueryAssociationsParameters.js";import{isString as ne,isArray as ie,isInteger as ae}from"../../support/guards.js";function re(e){if(1===e.length){if(ie(e[0]))return B("distinct",e[0],-1);if(A(e[0]))return B("distinct",e[0].toArray(),-1)}return B("distinct",e,-1)}function oe(e,t,n){const i=e.getVariables();if(i.length>0){const a={};for(const e of i)a[e]=t.evaluateIdentifier(n,{name:e});e.parameters=a}return e}function se(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function le(e){if(null===e)return null;const t={type:se(e,"type",""),name:se(e,"name","")};if("range"===t.type)t.range=se(e,"range",[]);else{t.codedValues=[];for(const n of se(e,"codedValues",[]))t.codedValues.push({name:se(n,"name",""),code:se(n,"code",null)})}return t}function fe(e){if(null===e)return null;const t={},n=se(e,"wkt");null!==n&&(t.wkt=n);const i=se(e,"wkid");return null!==i&&(t.wkid=i),t}function de(e){if(null===e)return null;const t={hasZ:se(e,"hasz",!1),hasM:se(e,"hasm",!1)},n=se(e,"spatialreference");null!=n&&(t.spatialReference=fe(n));const i=se(e,"x",null);if(null!==i)return t.x=i,t.y=se(e,"y",null),t.hasZ&&(t.z=se(e,"z",null)),t.hasM&&(t.m=se(e,"m",null)),t;const a=se(e,"rings",null);if(null!==a)return t.rings=a,t;const r=se(e,"paths",null);if(null!==r)return t.paths=r,t;const o=se(e,"points",null);if(null!==o)return t.points=o,t;for(const s of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=se(e,s,null);null!==n&&(t[s]=n)}return t}function ue(e,t){for(const n of t)if(n===e)return!0;return!1}function ce(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ue(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==ie(e.layerDefinition.fields)&&!1!==ie(e.featureSet.features))))}function me(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}async function pe(t,n,i,a,r,s,l){const f=await t.getFeatureSetInfo();if(null===(f?.layerId??null))return null;if(!r.layerIdLookup.get(f.layerId))return null;const u=t.serviceUrl().replace(/\/FeatureServer/i,"/UtilityNetworkServer"),c=[];switch(i){case"connected":c.push("connectivity"),c.push("junction-edge-from-connectivity"),c.push("junction-edge-to-connectivity"),c.push("junction-edge-midspan-connectivity"),c.push("junction-junction-connectivity");break;case"container":case"content":c.push("containment");break;case"structure":case"attached":c.push("attachment");break;case"junctionedge":c.push("junction-edge-from-connectivity"),c.push("junction-edge-to-connectivity");break;case"midspan":c.push("junction-edge-midspan-connectivity");break;default:throw new o(s,"InvalidParameter",l)}let m=null,p=!1;if(null!==a&&""!==a&&void 0!==a){for(const e of r.terminals)e.terminalName===a&&(m=e.terminalId);null===m&&(p=!0)}const y=[];if(!p){const a=new ee({globalId:n.field(t.globalIdField),networkSourceId:r.layerIdLookup.get(f.layerId).sourceId,...m?{terminalId:m}:""}),o=await X(u,new te({types:c,elements:[a]}));let s=0;for(const t of o.associations){let n=null,o="",l="";if(t.fromNetworkElement?.globalId===a.globalId?(n=t.toNetworkElement,l="to"):t.toNetworkElement?.globalId===a.globalId&&(n=t.fromNetworkElement,l="from"),!n)continue;switch(i){case"attached":if("attachment"!==t.associationType)continue;if("to"!==l)continue;break;case"structure":if("attachment"!==t.associationType)continue;if("from"!==l)continue;break;case"container":if("containment"!==t.associationType)continue;if("from"!==l)continue;break;case"content":if("containment"!==t.associationType)continue;if("to"!==l)continue;break;case"connected":break;case"junctionedge":"junction-edge-to-connectivity"===t.associationType?o="to":"junction-edge-from-connectivity"===t.associationType&&(o="from");break;case"midspan":if("junction-edge-midspan-connectivity"!==t.associationType)continue}const f=r.sourceIdLookup.get(n.networkSourceId)?.className??"";y.push(new e({geometry:null,attributes:{objectId:s++,globalId:n.globalId,percentAlong:t.percentAlong??0,isContentVisible:t.isContentVisible?0:1,className:f,side:o}}))}}const w=new Q({source:y,geometryType:null,objectIdField:"objectId",globalIdField:"globalId",fields:[new J({name:"objectId",alias:"objectId",type:"oid"}),new J({name:"globalId",alias:"globalId",type:"global-id"}),new J({name:"percentAlong",alias:"percentAlong",type:"double"}),new J({name:"side",alias:"side",type:"string"}),new J({name:"isContentVisible",alias:"isContentVisible",type:"integer"}),new J({name:"className",alias:"className",type:"string"})]});return d(w)}function ye(e){if("async"===e.mode){e.functions.timezone=function(n,a){return e.standardFunctionAsync(n,a,async(e,r,s)=>{if(y(s,1,2,n,a),w(s[0]))return"Unknown";if(I(s[0]))return"Unknown";if(h(s[0])){if(await s[0].load(),1===s.length||null===s[1])return s[0].datesInUnknownTimezone?me("unknown"):me(s[0].dateFieldsTimeZone);if(!(s[1]instanceof i)||!1===s[1].hasField("type"))throw new o(n,"InvalidParameter",a);const e=s[1].field("type");if(!1===ne(e))throw new o(n,"InvalidParameter",a);switch(g(e).toLowerCase()){case"preferredtimezone":return me(s[0].preferredTimeZone);case"editfieldsinfo":return me(s[0].editFieldsInfo?.timeZone??null);case"timeinfo":return me(s[0].timeInfo?.timeZone??null);case"field":if(s[1].hasField("fieldname")&&ne(s[1].field("fieldname")))return me(s[0].fieldTimeZone(g(s[1].field("fieldname"))))}throw new o(n,"InvalidParameter",a)}const l=F(s[0],b(n));if(null===l)return null;const f=l.timeZone;return"system"===f?t.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f})},e.functions.sqltimestamp=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,1,3,t,n);const r=a[0];if(T(r)){if(1===a.length)return r.toSQLWithKeyword();if(2===a.length)return r.changeTimeZone(g(a[1])).toSQLWithKeyword();throw new o(t,"InvalidParameter",n)}if(I(r))return r.toSQLWithKeyword();if(h(r)){if(3!==a.length)throw new o(t,"InvalidParameter",n);await r.load();const e=g(a[1]);if(I(a[2]))return a[2].toSQLWithKeyword();if(!1===T(a[2]))throw new o(t,"InvalidParameter",n);const i=r.fieldTimeZone(e);return null==i?a[2].toSQLWithKeyword():a[2].changeTimeZone(i).toSQLWithKeyword()}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"sqltimestamp",min:2,max:4}),e.functions.featuresetbyid=function(t,n){return e.standardFunctionAsync(t,n,(e,i,a)=>{if(y(a,2,4,t,n),D(a[0])){const e=g(a[1]);let i=x(a[2],null);const r=E(x(a[3],!0));if(null===i&&(i=["*"]),!1===ie(i))throw new o(t,"InvalidParameter",n);return a[0].featureSetById(e,r,i)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"featuresetbyid",min:2,max:4});const B=new a(["datasource","parent","root"]);e.functions.getfeatureset=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,1,2,t,n),N(a[0])){const e=null==a[1]?"datasource":B.lookup(g(a[1]));return l(a[0].fullSchema(),e,t.lrucache,t.interceptor,t.spatialReference)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"getfeatureset",min:1,max:2}),e.functions.featuresetbyportalitem=function(t,i){return e.standardFunctionAsync(t,i,(e,a,r)=>{if(y(r,2,5,t,i),null===r[0])throw new o(t,"PortalRequired",i);if(r[0]instanceof n){const e=g(r[1]),n=g(r[2]);let a=x(r[3],null);const s=E(x(r[4],!0));if(null===a&&(a=["*"]),!1===ie(a))throw new o(t,"InvalidParameter",i);let l;return l=t.services?.portal?t.services.portal:Y.getDefault(),l=C(r[0],l),f(e,n,t.spatialReference,a,s,l,t.lrucache,t.interceptor)}if(!1===ne(r[0]))throw new o(t,"PortalRequired",i);const s=g(r[0]),l=g(r[1]);let d=x(r[2],null);const u=E(x(r[3],!0));if(null===d&&(d=["*"]),!1===ie(d))throw new o(t,"InvalidParameter",i);return f(s,l,t.spatialReference,d,u,t.services?.portal??Y.getDefault(),t.lrucache,t.interceptor)})},e.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),e.functions.featuresetbyname=function(t,n){return e.standardFunctionAsync(t,n,(e,i,a)=>{if(y(a,2,4,t,n),D(a[0])){const e=g(a[1]);let i=x(a[2],null);const r=E(x(a[3],!0));if(null===i&&(i=["*"]),!1===ie(i))throw new o(t,"InvalidParameter",n);return a[0].featureSetByName(e,r,i)}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"featuresetbyname",min:2,max:4}),e.functions.featureset=function(t,n){return e.standardFunction(t,n,(e,a,r)=>{y(r,1,1,t,n);const s={layerDefinition:{geometryType:"",objectIdField:"",globalIdField:"",typeIdField:"",hasM:!1,hasZ:!1,fields:[]},featureSet:{geometryType:"",features:[]}};if(ne(r[0])){const e=JSON.parse(r[0]);void 0!==e.layerDefinition?(s.layerDefinition=e.layerDefinition,s.featureSet=e.featureSet,e.layerDefinition.spatialReference&&(s.layerDefinition.spatialReference=e.layerDefinition.spatialReference)):(s.featureSet.features=e.features,s.featureSet.geometryType=e.geometryType,s.layerDefinition.geometryType=s.featureSet.geometryType,s.layerDefinition.objectIdField=e.objectIdFieldName??"",s.layerDefinition.typeIdField=e.typeIdFieldName,s.layerDefinition.globalIdField=e.globalIdFieldName,s.layerDefinition.fields=e.fields,e.spatialReference&&(s.layerDefinition.spatialReference=e.spatialReference))}else{if(!(r[0]instanceof i))throw new o(t,"InvalidParameter",n);{const e=JSON.parse(r[0].castToText(!0)),i=se(e,"layerdefinition");if(null!==i){s.layerDefinition.geometryType=se(i,"geometrytype",""),s.featureSet.geometryType=s.layerDefinition.geometryType,s.layerDefinition.globalIdField=se(i,"globalidfield",""),s.layerDefinition.objectIdField=se(i,"objectidfield",""),s.layerDefinition.typeIdField=se(i,"typeidfield",""),s.layerDefinition.hasZ=!0===se(i,"hasz",!1),s.layerDefinition.hasM=!0===se(i,"hasm",!1);const t=se(i,"spatialreference");t&&(s.layerDefinition.spatialReference=fe(t));const n=[];for(const e of se(i,"fields",[])){const t={name:se(e,"name",""),alias:se(e,"alias",""),type:se(e,"type",""),nullable:se(e,"nullable",!0),editable:se(e,"editable",!0),length:se(e,"length",null),domain:le(se(e,"domain"))};n.push(t)}s.layerDefinition.fields=n;const a=se(e,"featureset");if(a){const e={};for(const t of n)e[t.name.toLowerCase()]=t.name;for(const t of se(a,"features",[])){const n={},i=se(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];s.featureSet.features.push({attributes:n,geometry:de(se(t,"geometry"))})}}}else{s.layerDefinition.hasZ=!0===se(e,"hasz",!1),s.layerDefinition.hasM=!0===se(e,"hasm",!1),s.layerDefinition.geometryType=se(e,"geometrytype",""),s.featureSet.geometryType=s.layerDefinition.geometryType,s.layerDefinition.objectIdField=se(e,"objectidfieldname",""),s.layerDefinition.typeIdField=se(e,"typeidfieldname","");const i=se(e,"spatialreference");i&&(s.layerDefinition.spatialReference=fe(i));const a=[],r=se(e,"fields",null);if(!ie(r))throw new o(t,"InvalidParameter",n);for(const e of r){const t={name:se(e,"name",""),alias:se(e,"alias",""),type:se(e,"type",""),nullable:se(e,"nullable",!0),editable:se(e,"editable",!0),length:se(e,"length",null),domain:le(se(e,"domain"))};a.push(t)}s.layerDefinition.fields=a;const l={};for(const e of a)l[e.name.toLowerCase()]=e.name;let f=se(e,"features",null);if(ie(f))for(const e of f){const t={},n=se(e,"attributes",{});for(const e in n)t[l[e.toLowerCase()]]=n[e];s.featureSet.features.push({attributes:t,geometry:de(se(e,"geometry",null))})}else f=null,s.featureSet.features=f}}}if(!1===ce(s))throw new o(t,"InvalidParameter",n);return s.layerDefinition.geometryType||(s.layerDefinition.geometryType="esriGeometryNull"),H.create(s,t.spatialReference)})},e.signatures.push({name:"featureset",min:1,max:1}),e.functions.filter=function(t,n){return e.standardFunctionAsync(t,n,async(i,a,r)=>{if(y(r,2,2,t,n),ie(r[0])||A(r[0])){const e=[];let i,a=r[0];if(a instanceof p&&(a=a.toArray()),!v(r[1]))throw new o(t,"InvalidParameter",n);i=r[1].createFunction(t);for(const t of a){const n=i(t);K(n)?!0===await n&&e.push(t):!0===n&&e.push(t)}return e}if(h(r[0])){const n=await r[0].load(),i=q.create(r[1],{fieldsIndex:n.getFieldsIndex(),timeZone:n.dateFieldsTimeZoneDefaultUTC}),a=i.getVariables();if(a.length>0){const n={};for(const i of a)n[i]=e.evaluateIdentifier(t,{name:i});i.parameters=n}return new M({parentfeatureset:r[0],whereclause:i})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"filter",min:2,max:2}),e.functions.orderby=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0])){const e=new W(a[1]);return new R({parentfeatureset:a[0],orderbyclause:e})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"orderby",min:2,max:2}),e.functions.top=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0]))return new O({parentfeatureset:a[0],topnum:a[1]});if(ie(a[0]))return S(a[1])>=a[0].length?a[0].slice():a[0].slice(0,S(a[1]));if(A(a[0]))return S(a[1])>=a[0].length()?a[0].slice():a[0].slice(0,S(a[1]));throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"top",min:2,max:2}),e.functions.first=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,1,1,t,n),h(a[0])){const n=await a[0].first(e.abortSignal);if(null!==n){const e=s.createFromGraphicLikeObject(n.geometry,n.attributes,a[0],t.timeZone);return e._underlyingGraphic=n,e}return n}return ie(a[0])?0===a[0].length?null:a[0][0]:A(a[0])?0===a[0].length()?null:a[0].get(0):null})},e.signatures.push({name:"first",min:1,max:1}),e.functions.attachments=function(t,n){return e.standardFunctionAsync(t,n,async(e,a,r)=>{y(r,1,2,t,n);const s={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(r.length>1)if(r[1]instanceof i){if(r[1].hasField("minsize")&&(s.minsize=S(r[1].field("minsize"))),r[1].hasField("metadata")&&(s.returnMetadata=E(r[1].field("metadata"))),r[1].hasField("maxsize")&&(s.maxsize=S(r[1].field("maxsize"))),r[1].hasField("types")){const e=L(r[1].field("types"),!1);e.length>0&&(s.types=e)}}else if(null!==r[1])throw new o(t,"InvalidParameter",n);if(N(r[0])){const e=r[0]._layer;let n;if(h(e))n=e;else{if(null==e||!G(e))return[];n=d(e,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}return await n.load(),n.queryAttachments(r[0].field(n.objectIdField),s.minsize,s.maxsize,s.types,s.returnMetadata)}if(null===r[0])return[];throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"attachments",min:1,max:2}),e.functions.featuresetbyrelationshipname=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,2,4,t,n);const r=a[0],s=g(a[1]);let l=x(a[2],null);const f=E(x(a[3],!0));if(null===l&&(l=["*"]),!1===ie(l))throw new o(t,"InvalidParameter",n);if(null===a[0])return null;if(!N(a[0]))throw new o(t,"InvalidParameter",n);const m=r._layer;let p;if(h(m))p=m;else{if(null==m||!G(m))return null;p=d(m,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)}p=await p.load();const w=p.relationshipMetaData().filter(e=>e.name===s);if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(p,w[0],r.field(p.objectIdField),p.spatialReference,l,f,t.lrucache,t.interceptor);let I=p.serviceUrl();if(!I)return null;I="/"===I.charAt(I.length-1)?I+w[0].relatedTableId.toString():I+"/"+w[0].relatedTableId.toString();const F=await c(I,p.spatialReference,l,f,t.lrucache,t.interceptor);await F.load();let b=F.relationshipMetaData();if(b=b.filter(e=>e.id===w[0].id),!1===r.hasField(w[0].keyField)||null===r.field(w[0].keyField)){const e=await p.getFeatureByObjectId(r.field(p.objectIdField),[w[0].keyField]);if(e){const t=q.create(b[0].keyField+"= @id",{fieldsIndex:F.getFieldsIndex(),timeZone:F.dateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[w[0].keyField]},F.filter(t)}return new z({parentfeatureset:F})}const T=q.create(b[0].keyField+"= @id",{fieldsIndex:F.getFieldsIndex(),timeZone:F.dateFieldsTimeZoneDefaultUTC});return T.parameters={id:r.field(w[0].keyField)},F.filter(T)})},e.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),e.functions.featuresetbyassociation=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{y(a,2,3,t,n);const s=a[0],l=r(g(x(a[1],""))),f=ne(a[2])?g(a[2]):null;if(null===a[0])return null;if(!N(a[0]))throw new o(t,"InvalidParameter",n);let u=s._layer;if(u instanceof Q&&(u=d(u,t.spatialReference,["*"],!0,t.lrucache,t.interceptor)),null===u)return null;if(!1===h(u))return null;await u.load();const c=u.serviceUrl(),p=await m(c,t.spatialReference,!0);if(p.unVersion>=8)return await pe(u,s,l,f,p,t,n);const w=p.associations;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 T=w.getFieldsIndex(),D=T.get("TOGLOBALID").name,E=T.get("FROMGLOBALID").name,A=T.get("TOTERMINALID").name,v=T.get("FROMTERMINALID").name,S=T.get("FROMNETWORKSOURCEID").name,L=T.get("TONETWORKSOURCEID").name,C=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,R=T.get("OBJECTID").name;for(const t of u.fields)if("global-id"===t.type){I=s.field(t.name);break}let O=null,z=new k(new J({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),H=new k(new J({name:"side",alias:"side",type:"string"}),q.create("''",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));const W="globalid",G="globalId",_={};for(const t in p.lkp)_[t]=p.lkp[t].sourceId;const B=new Z(new J({name:"classname",alias:"classname",type:"string"}),null,_);let K="";switch(l){case"midspan":{K=`((${D}='${I}') OR ( ${E}='${I}')) AND (${C} IN (5))`,B.codefield=q.create(`CASE WHEN (${D}='${I}') THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=V(P.findField(w.fields,E));e.name=W,e.alias=W,O=new k(e,q.create(`CASE WHEN (${E}='${I}') THEN ${D} ELSE ${E} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),z=p.unVersion>=4?new U(P.findField(w.fields,T.get("PERCENTALONG").name)):new k(new J({name:"percentalong",alias:"percentalong",type:"double"}),q.create("0",{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{K=`((${D}='${I}') OR ( ${E}='${I}')) AND (${C} IN (4,6))`,B.codefield=q.create(`CASE WHEN (${D}='${I}') THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const e=V(P.findField(w.fields,E));e.name=W,e.alias=W,O=new k(e,q.create(`CASE WHEN (${E}='${I}') THEN ${D} ELSE ${E} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC})),H=new k(new J({name:"side",alias:"side",type:"string"}),q.create(`CASE WHEN (${C}=4) THEN 'from' ELSE 'to' END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${D}='@T'`,t=`${E}='@T'`;null!==F&&(e+=` AND ${A}=@A`,t+=` AND ${v}=@A`),K="(("+e+") OR ("+t+"))",K=j(K,"@T",I??""),e=j(e,"@T",I??""),null!==F&&(e=j(e,"@A",F.toString()),K=j(K,"@A",F.toString())),B.codefield=q.create("CASE WHEN "+e+` THEN ${S} ELSE ${L} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC});const n=V(P.findField(w.fields,E));n.name=W,n.alias=W,O=new k(n,q.create("CASE WHEN "+e+` THEN ${E} ELSE ${D} END`,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}));break}case"container":K=`${D}='${I}' AND ${C} = 2`,null!==F&&(K+=` AND ${A} = `+F.toString()),B.codefield=S,K="( "+K+" )",O=new $(P.findField(w.fields,E),W,W);break;case"content":K=`(${E}='${I}' AND ${C} = 2)`,null!==F&&(K+=` AND ${v} = `+F.toString()),B.codefield=L,K="( "+K+" )",O=new $(P.findField(w.fields,D),W,W);break;case"structure":K=`(${D}='${I}' AND ${C} = 3)`,null!==F&&(K+=` AND ${A} = `+F.toString()),B.codefield=S,K="( "+K+" )",O=new $(P.findField(w.fields,E),W,G);break;case"attached":K=`(${E}='${I}' AND ${C} = 3)`,null!==F&&(K+=` AND ${v} = `+F.toString()),B.codefield=L,K="( "+K+" )",O=new $(P.findField(w.fields,D),W,G);break;default:throw new o(t,"InvalidParameter",n)}b&&(K="1 <> 1");return new P({parentfeatureset:w,adaptedFields:[new U(P.findField(w.fields,R)),new U(P.findField(w.fields,M)),O,H,B,z],extraFilter:K?q.create(K,{fieldsIndex:w.getFieldsIndex(),timeZone:w.dateFieldsTimeZoneDefaultUTC}):null})})},e.signatures.push({name:"featuresetbyassociation",min:2,max:6}),e.functions.groupby=function(t,n){return e.standardFunctionAsync(t,n,async(a,r,s)=>{if(y(s,3,3,t,n),!h(s[0]))throw new o(t,"InvalidParameter",n);const l=await s[0].load(),f=[],d=[];let u=!1,c=[];if(ne(s[1]))c.push(s[1]);else if(s[1]instanceof i)c.push(s[1]);else if(ie(s[1]))c=s[1];else{if(!A(s[1]))throw new o(t,"InvalidParameter",n);c=s[1].toArray()}for(const e of c)if(ne(e)){const t=q.create(g(e),{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC}),n=!0===_(t)?g(e):"%%%%FIELDNAME";f.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(u=!0)}else{if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",a=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(u=!0),!i)throw new o(t,"InvalidParameter",n);f.push({name:i,expression:q.create(a||i,{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC})})}}if(c=[],ne(s[2]))c.push(s[2]);else if(ie(s[2]))c=s[2];else if(A(s[2]))c=s[2].toArray();else{if(!(s[2]instanceof i))throw new o(t,"InvalidParameter",n);c.push(s[2])}for(const e of c){if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"",a=e.hasField("statistic")?e.field("statistic"):"",r=e.hasField("expression")?e.field("expression"):"";if(!(i&&a&&ne(a)&&r))throw new o(t,"InvalidParameter",n);d.push({name:i,statistic:a,expression:q.create(r,{fieldsIndex:l.getFieldsIndex(),timeZone:l.dateFieldsTimeZoneDefaultUTC})})}}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 d)"%%%%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 n of f)oe(n.expression,e,t);for(const n of d)oe(n.expression,e,t);return s[0].groupby(f,d)})},e.signatures.push({name:"groupby",min:3,max:3}),e.functions.distinct=function(t,n){return e.standardFunctionAsync(t,n,async(a,r,s)=>{if(h(s[0])){y(s,2,2,t,n);const a=await s[0].load(),r=[];let l=[];if(ne(s[1]))l.push(s[1]);else if(s[1]instanceof i)l.push(s[1]);else if(ie(s[1]))l=s[1];else{if(!A(s[1]))throw new o(t,"InvalidParameter",n);l=s[1].toArray()}let f=!1;for(const e of l)if(ne(e)){const t=q.create(g(e),{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC}),n=!0===_(t)?g(e):"%%%%FIELDNAME";r.push({name:n,expression:t}),"%%%%FIELDNAME"===n&&(f=!0)}else{if(!(e instanceof i))throw new o(t,"InvalidParameter",n);{const i=e.hasField("name")?e.field("name"):"%%%%FIELDNAME",s=e.hasField("expression")?e.field("expression"):"";if("%%%%FIELDNAME"===i&&(f=!0),!i)throw new o(t,"InvalidParameter",n);r.push({name:i,expression:q.create(s||i,{fieldsIndex:a.getFieldsIndex(),timeZone:a.dateFieldsTimeZoneDefaultUTC})})}}if(f){const e={};for(const n of a.fields)e[n.name.toLowerCase()]=1;for(const n of r)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of r)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const n of r)oe(n.expression,e,t);return s[0].groupby(r,[])}return re(s)})},e.functions.getfeaturesetinfo=function(t,n){return e.standardFunctionAsync(t,n,async(e,a,r)=>{if(y(r,1,1,t,n),!h(r[0]))return null;const o=await r[0].getFeatureSetInfo();return o?i.convertObjectToArcadeDictionary({layerId:o.layerId,layerName:o.layerName,itemId:o.itemId,serviceLayerUrl:o.serviceLayerUrl,webMapLayerId:o.webMapLayerId??null,webMapLayerTitle:o.webMapLayerTitle??null,className:null,objectClassId:null},b(t),!1,!1):null})},e.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),e.functions.filterbysubtypecode=function(t,n){return e.standardFunctionAsync(t,n,async(e,i,a)=>{if(y(a,2,2,t,n),h(a[0])){const e=await a[0].load(),i=a[1];if(!ae(i))throw new o(t,"InvalidParameter",n);if(e.subtypeField){const t=q.create(`${e.subtypeField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new M({parentfeatureset:a[0],whereclause:t})}if(null===e.typeIdField||""===e.typeIdField)throw new o(t,"FeatureSetDoesNotHaveSubtypes",n);const r=q.create(`${e.typeIdField}= ${a[1]}`,{fieldsIndex:e.getFieldsIndex(),timeZone:e.dateFieldsTimeZoneDefaultUTC});return new M({parentfeatureset:a[0],whereclause:r})}throw new o(t,"InvalidParameter",n)})},e.signatures.push({name:"filterbysubtypecode",min:2,max:2})}}export{ye 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeExecutionError as e}from"../executionError.js";import{shapeExtent as t}from"../kernel.js";import{C as n,B as r,h as s,w as i,m as a}from"../../chunks/languageUtils.js";import o from"../featureset/actions/SpatialFilter.js";import u from"../featureset/sources/Empty.js";import{invokeRemoteGeometryOp as l}from"../geometry/operatorsWorkerConnection.js";function c(i){return async(c,f,p)=>{if(r(p,2,2,c,f),null===(p=n(p))[0]&&null===p[1])return!1;if(a(p[0])){if(s(p[1]))return new o({parentfeatureset:p[0],relation:i,relationGeom:p[1]});if(null===p[1])return new u({parentfeatureset:p[0]});throw new e(c,"InvalidParameter",f)}if(s(p[0])){if(s(p[1])){switch(i){case"esriSpatialRelEnvelopeIntersects":{const e=t(p[0]),n=t(p[1]);return null!=e&&null!=n&&l("intersects",[e.toJSON(),n.toJSON()])}case"esriSpatialRelIntersects":return l("intersects",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelContains":return l("contains",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelOverlaps":return l("overlaps",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelWithin":return l("within",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelTouches":return l("touches",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelCrosses":return l("crosses",[p[0].toJSON(),p[1].toJSON()])}throw new e(c,"InvalidParameter",f)}if(a(p[1]))return new o({parentfeatureset:p[1],relation:i,relationGeom:p[0]});if(null===p[1])return!1;throw new e(c,"InvalidParameter",f)}if(null===p[0]){if(a(p[1]))return new u({parentfeatureset:p[1]});if(s(p[1])||null===p[1])return!1}throw new e(c,"InvalidParameter",f)}}function f(t){"async"===t.mode&&(t.functions.intersects=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelIntersects"))},t.functions.envelopeintersects=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelEnvelopeIntersects"))},t.signatures.push({name:"envelopeintersects",min:2,max:2}),t.functions.contains=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelContains"))},t.functions.overlaps=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelOverlaps"))},t.functions.within=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelWithin"))},t.functions.touches=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelTouches"))},t.functions.crosses=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelCrosses"))},t.functions.relate=function(o,c){return t.standardFunctionAsync(o,c,async(t,f,p)=>{if(p=n(p),r(p,3,3,o,c),s(p[0])&&s(p[1]))return l("relate",[p[0].toJSON(),p[1].toJSON(),i(p[2])]);if(s(p[0])&&null===p[1])return!1;if(s(p[1])&&null===p[0])return!1;if(a(p[0])&&null===p[1])return new u({parentfeatureset:p[0]});if(a(p[1])&&null===p[0])return new u({parentfeatureset:p[1]});if(a(p[0])&&s(p[1]))return p[0].relate(p[1],i(p[2]));if(a(p[1])&&s(p[0]))return p[1].relate(p[0],i(p[2]));if(null===p[0]&&null===p[1])return!1;throw new e(o,"InvalidParameter",c)})})}export{f as registerFunctions};
5
+ import{ArcadeExecutionError as e}from"../executionError.js";import{shapeExtent as t}from"../kernel.js";import{C as n,B as r,h as s,u as i,m as a}from"../../chunks/languageUtils.js";import o from"../featureset/actions/SpatialFilter.js";import u from"../featureset/sources/Empty.js";import{invokeRemoteGeometryOp as l}from"../geometry/operatorsWorkerConnection.js";function c(i){return async(c,f,p)=>{if(r(p,2,2,c,f),null===(p=n(p))[0]&&null===p[1])return!1;if(a(p[0])){if(s(p[1]))return new o({parentfeatureset:p[0],relation:i,relationGeom:p[1]});if(null===p[1])return new u({parentfeatureset:p[0]});throw new e(c,"InvalidParameter",f)}if(s(p[0])){if(s(p[1])){switch(i){case"esriSpatialRelEnvelopeIntersects":{const e=t(p[0]),n=t(p[1]);return null!=e&&null!=n&&l("intersects",[e.toJSON(),n.toJSON()])}case"esriSpatialRelIntersects":return l("intersects",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelContains":return l("contains",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelOverlaps":return l("overlaps",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelWithin":return l("within",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelTouches":return l("touches",[p[0].toJSON(),p[1].toJSON()]);case"esriSpatialRelCrosses":return l("crosses",[p[0].toJSON(),p[1].toJSON()])}throw new e(c,"InvalidParameter",f)}if(a(p[1]))return new o({parentfeatureset:p[1],relation:i,relationGeom:p[0]});if(null===p[1])return!1;throw new e(c,"InvalidParameter",f)}if(null===p[0]){if(a(p[1]))return new u({parentfeatureset:p[1]});if(s(p[1])||null===p[1])return!1}throw new e(c,"InvalidParameter",f)}}function f(t){"async"===t.mode&&(t.functions.intersects=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelIntersects"))},t.functions.envelopeintersects=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelEnvelopeIntersects"))},t.signatures.push({name:"envelopeintersects",min:2,max:2}),t.functions.contains=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelContains"))},t.functions.overlaps=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelOverlaps"))},t.functions.within=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelWithin"))},t.functions.touches=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelTouches"))},t.functions.crosses=function(e,n){return t.standardFunctionAsync(e,n,c("esriSpatialRelCrosses"))},t.functions.relate=function(o,c){return t.standardFunctionAsync(o,c,async(t,f,p)=>{if(p=n(p),r(p,3,3,o,c),s(p[0])&&s(p[1]))return l("relate",[p[0].toJSON(),p[1].toJSON(),i(p[2])]);if(s(p[0])&&null===p[1])return!1;if(s(p[1])&&null===p[0])return!1;if(a(p[0])&&null===p[1])return new u({parentfeatureset:p[0]});if(a(p[1])&&null===p[0])return new u({parentfeatureset:p[1]});if(a(p[0])&&s(p[1]))return p[0].relate(p[1],i(p[2]));if(a(p[1])&&s(p[0]))return p[1].relate(p[0],i(p[2]));if(null===p[0]&&null===p[1])return!1;throw new e(o,"InvalidParameter",c)})})}export{f 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.34/esri/copyright.txt for details.
4
4
  */
5
- import n from"../Dictionary.js";import{ArcadeExecutionError as a}from"../executionError.js";import{B as e,k as t,Q as r,w as o,m as i,a1 as c,V as s,K as d,T as u,a2 as m,S as f,a3 as l,J as y,t as v,U as w}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as p}from"../featureset/support/shared.js";function h(a,e){return a&&a.domain?"coded-value"===a.domain.type||"codedValue"===a.domain.type?n.convertObjectToArcadeDictionary({type:"codedValue",name:a.domain.name,dataType:p[a.field.type],codedValues:a.domain.codedValues.map(n=>({name:n.name,code:n.code}))},d(e)):n.convertObjectToArcadeDictionary({type:"range",name:a.domain.name,dataType:p[a.field.type],min:a.domain.minValue,max:a.domain.maxValue},d(e)):null}function T(p){"async"===p.mode&&(p.functions.domain=function(n,s){return p.standardFunctionAsync(n,s,async(d,u,m)=>{if(e(m,2,3,n,s),t(m[0])){return h(r(m[0],o(m[1]),void 0===m[2]?void 0:m[2]),n)}if(i(m[0])){await m[0]._ensureLoaded();return h(c(o(m[1]),m[0],null,void 0===m[2]?void 0:m[2]),n)}throw new a(n,"InvalidParameter",s)})},p.functions.subtypes=function(r,o){return p.standardFunctionAsync(r,o,async(c,u,m)=>{if(e(m,1,1,r,o),t(m[0])){const a=s(m[0]);return a?n.convertObjectToArcadeDictionary(a,d(r)):null}if(i(m[0])){await m[0]._ensureLoaded();const a=m[0].subtypeMetaData();return a?n.convertObjectToArcadeDictionary(a,d(r)):null}throw new a(r,"InvalidParameter",o)})},p.functions.domainname=function(n,r){return p.standardFunctionAsync(n,r,async(s,d,f)=>{if(e(f,2,4,n,r),t(f[0]))return u(f[0],o(f[1]),f[2],void 0===f[3]?void 0:f[3]);if(i(f[0])){await f[0]._ensureLoaded();const n=c(o(f[1]),f[0],null,void 0===f[3]?void 0:f[3]);return m(n,f[2])}throw new a(n,"InvalidParameter",r)})},p.signatures.push({name:"domainname",min:2,max:4}),p.functions.domaincode=function(n,r){return p.standardFunctionAsync(n,r,async(s,d,u)=>{if(e(u,2,4,n,r),t(u[0]))return f(u[0],o(u[1]),u[2],void 0===u[3]?void 0:u[3]);if(i(u[0])){await u[0]._ensureLoaded();const n=c(o(u[1]),u[0],null,void 0===u[3]?void 0:u[3]);return l(n,u[2])}throw new a(n,"InvalidParameter",r)})},p.signatures.push({name:"domaincode",min:2,max:4}),p.functions.text=function(n,t){return p.standardFunctionAsync(n,t,async(r,o,c)=>{if(e(c,1,2,n,t),i(c[0])){const e=y(c[1],"");if(""===e)return c[0].castToText();if("schema"===e.toLowerCase())return c[0].convertToText("schema",r.abortSignal);if("featureset"===e.toLowerCase())return c[0].convertToText("featureset",r.abortSignal);throw new a(n,"InvalidParameter",t)}return v(c[0],c[1])})},p.functions.gdbversion=function(n,r){return p.standardFunctionAsync(n,r,async(o,c,s)=>{if(e(s,1,1,n,r),t(s[0]))return s[0].gdbVersion();if(i(s[0])){return(await s[0].load()).gdbVersion}throw new a(n,"InvalidParameter",r)})},p.functions.schema=function(r,o){return p.standardFunctionAsync(r,o,async(c,s,u)=>{if(e(u,1,1,r,o),i(u[0]))return await u[0].load(),n.convertObjectToArcadeDictionary(u[0].schema(),d(r));if(t(u[0])){const a=w(u[0]);return a?n.convertObjectToArcadeDictionary(a,d(r)):null}throw new a(r,"InvalidParameter",o)})})}export{T as registerFunctions};
5
+ import n from"../Dictionary.js";import{ArcadeExecutionError as a}from"../executionError.js";import{B as e,k as t,Q as r,u as o,m as i,a1 as c,V as s,K as d,T as u,a2 as m,S as f,a3 as l,J as y,t as v,U as w}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as p}from"../featureset/support/shared.js";function h(a,e){return a&&a.domain?"coded-value"===a.domain.type||"codedValue"===a.domain.type?n.convertObjectToArcadeDictionary({type:"codedValue",name:a.domain.name,dataType:p[a.field.type],codedValues:a.domain.codedValues.map(n=>({name:n.name,code:n.code}))},d(e)):n.convertObjectToArcadeDictionary({type:"range",name:a.domain.name,dataType:p[a.field.type],min:a.domain.minValue,max:a.domain.maxValue},d(e)):null}function T(p){"async"===p.mode&&(p.functions.domain=function(n,s){return p.standardFunctionAsync(n,s,async(d,u,m)=>{if(e(m,2,3,n,s),t(m[0])){return h(r(m[0],o(m[1]),void 0===m[2]?void 0:m[2]),n)}if(i(m[0])){await m[0]._ensureLoaded();return h(c(o(m[1]),m[0],null,void 0===m[2]?void 0:m[2]),n)}throw new a(n,"InvalidParameter",s)})},p.functions.subtypes=function(r,o){return p.standardFunctionAsync(r,o,async(c,u,m)=>{if(e(m,1,1,r,o),t(m[0])){const a=s(m[0]);return a?n.convertObjectToArcadeDictionary(a,d(r)):null}if(i(m[0])){await m[0]._ensureLoaded();const a=m[0].subtypeMetaData();return a?n.convertObjectToArcadeDictionary(a,d(r)):null}throw new a(r,"InvalidParameter",o)})},p.functions.domainname=function(n,r){return p.standardFunctionAsync(n,r,async(s,d,f)=>{if(e(f,2,4,n,r),t(f[0]))return u(f[0],o(f[1]),f[2],void 0===f[3]?void 0:f[3]);if(i(f[0])){await f[0]._ensureLoaded();const n=c(o(f[1]),f[0],null,void 0===f[3]?void 0:f[3]);return m(n,f[2])}throw new a(n,"InvalidParameter",r)})},p.signatures.push({name:"domainname",min:2,max:4}),p.functions.domaincode=function(n,r){return p.standardFunctionAsync(n,r,async(s,d,u)=>{if(e(u,2,4,n,r),t(u[0]))return f(u[0],o(u[1]),u[2],void 0===u[3]?void 0:u[3]);if(i(u[0])){await u[0]._ensureLoaded();const n=c(o(u[1]),u[0],null,void 0===u[3]?void 0:u[3]);return l(n,u[2])}throw new a(n,"InvalidParameter",r)})},p.signatures.push({name:"domaincode",min:2,max:4}),p.functions.text=function(n,t){return p.standardFunctionAsync(n,t,async(r,o,c)=>{if(e(c,1,2,n,t),i(c[0])){const e=y(c[1],"");if(""===e)return c[0].castToText();if("schema"===e.toLowerCase())return c[0].convertToText("schema",r.abortSignal);if("featureset"===e.toLowerCase())return c[0].convertToText("featureset",r.abortSignal);throw new a(n,"InvalidParameter",t)}return v(c[0],c[1])})},p.functions.gdbversion=function(n,r){return p.standardFunctionAsync(n,r,async(o,c,s)=>{if(e(s,1,1,n,r),t(s[0]))return s[0].gdbVersion();if(i(s[0])){return(await s[0].load()).gdbVersion}throw new a(n,"InvalidParameter",r)})},p.functions.schema=function(r,o){return p.standardFunctionAsync(r,o,async(c,s,u)=>{if(e(u,1,1,r,o),i(u[0]))return await u[0].load(),n.convertObjectToArcadeDictionary(u[0].schema(),d(r));if(t(u[0])){const a=w(u[0]);return a?n.convertObjectToArcadeDictionary(a,d(r)):null}throw new a(r,"InvalidParameter",o)})})}export{T 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e,v as t,y as r}from"../../chunks/languageUtils.js";import{isNumber as n,isString as s}from"../../support/guards.js";function a(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t/e.length}function u(e){const t=a(e);let r=0;for(let n=0;n<e.length;n++)r+=(t-e[n])**2;return r/e.length}function c(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t}function o(e,a){const u=[],c={},o=[];for(let i=0;i<e.length;i++){if(void 0!==e[i]&&null!==e[i]&&e[i]!==t){const t=e[i];if(n(t)||s(t))void 0===c[t]&&(u.push(t),c[t]=1);else{let e=!1;for(let n=0;n<o.length;n++)!0===r(o[n],t)&&(e=!0);!1===e&&(o.push(t),u.push(t))}}if(u.length>=a&&-1!==a)return u}return u}function i(e){switch(e.toLowerCase()){case"distinct":return"distinct";case"avg":case"mean":return"avg";case"min":return"min";case"sum":return"sum";case"max":return"max";case"stdev":case"stddev":return"stddev";case"var":case"variance":return"var";case"count":return"count"}return""}function l(t,r,n=1e3){switch(t.toLowerCase()){case"distinct":return o(r,n);case"avg":case"mean":return a(e(r));case"min":return Math.min.apply(Math,e(r));case"sum":return c(e(r));case"max":return Math.max.apply(Math,e(r));case"stdev":case"stddev":return Math.sqrt(u(e(r)));case"var":case"variance":return u(e(r));case"count":return r.length}return 0}export{l as calculateStat,i as decodeStatType};
5
+ import{_ as e,v as t,x as r}from"../../chunks/languageUtils.js";import{isNumber as n,isString as s}from"../../support/guards.js";function a(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t/e.length}function u(e){const t=a(e);let r=0;for(let n=0;n<e.length;n++)r+=(t-e[n])**2;return r/e.length}function c(e){let t=0;for(let r=0;r<e.length;r++)t+=e[r];return t}function o(e,a){const u=[],c={},o=[];for(let i=0;i<e.length;i++){if(void 0!==e[i]&&null!==e[i]&&e[i]!==t){const t=e[i];if(n(t)||s(t))void 0===c[t]&&(u.push(t),c[t]=1);else{let e=!1;for(let n=0;n<o.length;n++)!0===r(o[n],t)&&(e=!0);!1===e&&(o.push(t),u.push(t))}}if(u.length>=a&&-1!==a)return u}return u}function i(e){switch(e.toLowerCase()){case"distinct":return"distinct";case"avg":case"mean":return"avg";case"min":return"min";case"sum":return"sum";case"max":return"max";case"stdev":case"stddev":return"stddev";case"var":case"variance":return"var";case"count":return"count"}return""}function l(t,r,n=1e3){switch(t.toLowerCase()){case"distinct":return o(r,n);case"avg":case"mean":return a(e(r));case"min":return Math.min.apply(Math,e(r));case"sum":return c(e(r));case"max":return Math.max.apply(Math,e(r));case"stdev":case"stddev":return Math.sqrt(u(e(r)));case"var":case"variance":return u(e(r));case"count":return r.length}return 0}export{l as calculateStat,i as decodeStatType};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.34/esri/copyright.txt for details.
4
4
  */
5
- import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e}from"../executionError.js";import{cloneGeometry as r}from"../kernel.js";import{C as a,B as i,e as o,g as s,f as c,w as l,j as u,D as f,m as d,E as w,h as m,F as y,G as h,u as p,H as g,J as N,K as S}from"../../chunks/languageUtils.js";import{getPortal as O}from"../portalUtils.js";import{commonRelationsCheck as v,toCurveType as J,planarLength3D as P,toOffsetJoinType as A,toCentroidAlgorithm as I,measureToCoordinateFunc as F,pointToCoordinateFunc as j,distanceToCoordinateFunc as R}from"../geometry/functions.js";import{invokeRemoteGeometryOp as b}from"../geometry/operatorsWorkerConnection.js";import{equals as x}from"../../core/arrayUtils.js";import D from"../../geometry/Extent.js";import L from"../../geometry/Geometry.js";import C from"../../geometry/Multipoint.js";import U from"../../geometry/Point.js";import E from"../../geometry/Polygon.js";import k from"../../geometry/Polyline.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";import T from"../../portal/Portal.js";import{lookupUser as Z}from"../../portal/support/utils.js";import{isArray as q}from"../../support/guards.js";function z(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,"InvalidParameter",null)}}function B(B){"async"===B.mode&&(B.functions.disjoint=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null===i[0]||null===i[1]||b("disjoint",[i[0].toJSON(),i[1].toJSON()])))},B.functions.intersects=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("intersects",[i[0].toJSON(),i[1].toJSON()])))},B.functions.touches=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("touches",[i[0].toJSON(),i[1].toJSON()])))},B.functions.crosses=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("crosses",[i[0].toJSON(),i[1].toJSON()])))},B.functions.within=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("within",[i[0].toJSON(),i[1].toJSON()])))},B.functions.contains=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("contains",[i[0].toJSON(),i[1].toJSON()])))},B.functions.overlaps=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("overlaps",[i[0].toJSON(),i[1].toJSON()])))},B.functions.equals=function(n,t){return B.standardFunctionAsync(n,t,(e,r,a)=>(i(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof L&&a[1]instanceof L?b("equals",[a[0].toJSON(),a[1].toJSON()]):(o(a[0])&&o(a[1])||!!(s(a[0])&&s(a[1])||c(a[0])&&c(a[1])))&&a[0].equals(a[1]))))},B.functions.relate=function(n,t){return B.standardFunctionAsync(n,t,(r,o,s)=>{if(s=a(s),i(s,3,3,n,t),s[0]instanceof L&&s[1]instanceof L)return b("relate",[s[0].toJSON(),s[1].toJSON(),l(s[2])]);if(s[0]instanceof L&&null===s[1])return!1;if(s[1]instanceof L&&null===s[0])return!1;if(null===s[0]&&null===s[1])return!1;throw new e(n,"InvalidParameter",t)})},B.functions.intersection=function(n,t){return B.standardFunctionAsync(n,t,async(e,r,i)=>(i=a(i),v(i,n,t),null===i[0]||null===i[1]?null:M(await b("intersection",[i[0].toJSON(),i[1].toJSON()]))))},B.functions.union=function(n,t){return B.standardFunctionAsync(n,t,async(i,o,s)=>{if(0===(s=a(s)).length)throw new e(n,"WrongNumberOfParameters",t);const c=[];if(1===s.length)if(q(s[0])){for(const r of a(s[0]))if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}}else{if(!u(s[0])){if(s[0]instanceof L)return f(r(s[0]),n.spatialReference);if(null===s[0])return null;throw new e(n,"InvalidParameter",t)}for(const r of a(s[0].toArray()))if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}}else for(const r of s)if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}return 0===c.length?null:M(await b("union",[c]))})},B.functions.difference=function(n,t){return B.standardFunctionAsync(n,t,async(e,i,o)=>(o=a(o),v(o,n,t),null===o[0]?null:null===o[1]?r(o[0]):M(await b("difference",[o[0].toJSON(),o[1].toJSON()]))))},B.functions.symmetricdifference=function(n,t){return B.standardFunctionAsync(n,t,async(e,i,o)=>(o=a(o),v(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?r(o[1]):null===o[1]?r(o[0]):M(await b("symmetricDifference",[o[0].toJSON(),o[1].toJSON()]))))},B.functions.clip=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,2,n,t),!(s[1]instanceof D)&&null!==s[1])throw new e(n,"InvalidParameter",t);if(null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return null===s[1]?null:M(await b("clip",[s[0].toJSON(),s[1].toJSON()]))})},B.functions.cut=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,t),!(c[1]instanceof k)&&null!==c[1])throw new e(n,"InvalidParameter",t);if(null===c[0])return[];if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);return null===c[1]?[r(c[0])]:(await b("cut",[c[0].toJSON(),c[1].toJSON()])).map(n=>M(n))})},B.functions.area=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),s=a(s),d(s[0])){const r=await s[0].sumArea(z(s[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}let c=s[0];if((q(c)||u(c))&&(c=w(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);return b("area",[c.toJSON(),z(s[1])])})},B.functions.areageodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{i(s,1,3,n,t);let c=(s=a(s))[0];(q(c)||u(c))&&(c=w(c,n.spatialReference));const l=z(s[1]),f=J(s[2]);if(d(c)){const r=await c.sumArea(l,f,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}if(null==c)return 0;if(!m(c))throw new e(n,"InvalidParameter",t);return b("geodeticArea",[c.toJSON(),l,f])})},B.functions.length=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),s=a(s),d(s[0])){const r=await s[0].sumLength(z(s[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}let c=s[0];if((q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);return b("length",[c.toJSON(),z(s[1])])})},B.functions.length3d=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),null===(s=a(s))[0])return 0;let c=s[0];if((q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);if(!0===c.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=P(c);return n(c.spatialReference,t(s[1]),e)}return b("length",[c.toJSON(),z(s[1])])})},B.functions.lengthgeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{i(s,1,3,n,t);let c=(s=a(s))[0];(q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference));const l=z(s[1]),f=J(s[2]);if(d(c)){const r=await c.sumLength(l,f,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}if(null===c)return 0;if(!m(c))throw new e(n,"InvalidParameter",t);return b("geodeticLength",[c.toJSON(),l,f])})},B.functions.distance=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,3,n,t);let c=s[0];if((q(s[0])||u(s[0]))&&(c=h(s[0],n.spatialReference)),!(c instanceof L))throw new e(n,"InvalidParameter",t);let l=s[1];if((q(s[1])||u(s[1]))&&(l=h(s[1],n.spatialReference)),!(l instanceof L))throw new e(n,"InvalidParameter",t);return b("distance",[c.toJSON(),l.toJSON(),z(s[2])])})},B.functions.distancegeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,4,n,t);const c=s[0];if(!(c instanceof U))throw new e(n,"InvalidParameter",t);const l=s[1];if(!(l instanceof U))throw new e(n,"InvalidParameter",t);const u=new k({paths:[],spatialReference:c.spatialReference});return u.addPath([c,l]),b("geodeticLength",[u.toJSON(),z(s[2]),J(s[3])])})},B.functions.densify=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,3,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);if(c<=0)throw new e(n,"InvalidParameter",t);switch(s[0].type){case"polygon":case"polyline":case"extent":return M(await b("densify",[s[0].toJSON(),c,z(s[2])]));default:return s[0]}})},B.functions.densifygeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,4,n,t);const c=s[0];if(null==c)return null;if(!m(c))throw new e(n,"InvalidParameter",t);const l=p(s[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);if(l<=0)throw new e(n,"InvalidParameter",t);const u=z(s[2]),f=J(s[3]);switch(c.type){case"polygon":case"polyline":case"extent":return M(await b("geodeticDensify",[c.toJSON(),l,u,f]));default:return c}})},B.functions.generalize=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,4,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);const l=g(N(s[2],!0));return M(await b("generalize",[s[0].toJSON(),c,z(s[3]),{removeDegenerateParts:l}]))})},B.functions.buffer=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);const l=p(c[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);return 0===l?r(c[0]):M(await b("buffer",[c[0].toJSON(),l,z(c[2])]))})},B.functions.buffergeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{c=a(c),i(c,2,4,n,t);const l=c[0];if(null==l)return null;if(!m(l))throw new e(n,"InvalidParameter",t);const u=p(c[1]);if(isNaN(u))throw new e(n,"InvalidParameter",t);if(0===u)return r(l);const f=z(c[2]),d=J(c[3]);return M(await b("geodesicBuffer",[l.toJSON(),u,f,d]))})},B.functions.offset=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,6,n,t),null===s[0])return null;if(!(s[0]instanceof E||s[0]instanceof k))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);const l=A(s[3]),u=p(N(s[4],10));if(isNaN(u))throw new e(n,"InvalidParameter",t);const f=p(N(s[5],0));if(isNaN(f))throw new e(n,"InvalidParameter",t);return M(await b("offset",[s[0].toJSON(),c,z(s[2]),{joins:l,miterLimit:u,flattenError:f}]))})},B.functions.rotate=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,3,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=s[0]instanceof D?E.fromExtent(s[0]):s[0],l=p(s[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);const u=N(s[2],null);if(null===u){const n="point"===c.type?c:c.extent?.center;return M(await b("rotate",[c.toJSON(),l,n?.x,n?.y]))}if(u instanceof U)return M(await b("rotate",[c.toJSON(),l,u.x,u.y]));throw new e(n,"InvalidParameter",t)})},B.functions.centroid=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,2,n,t),null===s[0])return null;const c=I(s[1]);let l=s[0];if((q(s[0])||u(s[0]))&&(l="geometric"===c?h(s[0],n.spatialReference):w(s[0],n.spatialReference),null===l))return null;if(!(l instanceof L))throw new e(n,"InvalidParameter",t);return M("geometric"===c?await b("centroid",[l.toJSON()]):await b("labelPoint",[l.toJSON()]))})},B.functions.measuretocoordinate=function(n,t){return B.standardFunctionAsync(n,t,F)},B.functions.pointtocoordinate=function(n,t){return B.standardFunctionAsync(n,t,j)},B.functions.distancetocoordinate=function(n,t){return B.standardFunctionAsync(n,t,R)},B.functions.multiparttosinglepart=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);if(c[0]instanceof U)return[f(r(c[0]),n.spatialReference)];if(c[0]instanceof D)return[f(r(c[0]),n.spatialReference)];const l=M(await b("simplify",[c[0].toJSON()]));if(l instanceof E){const n=[],t=[];for(let e=0;e<l.rings.length;e++)if(l.isClockwise(l.rings[e])){const t=M({rings:[l.rings[e]],hasZ:!0===l.hasZ,hasM:!0===l.hasM,spatialReference:l.spatialReference.toJSON()});n.push(t)}else t.push({ring:l.rings[e],pt:l.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(l instanceof k){const n=[];for(let t=0;t<l.paths.length;t++){const e=M({paths:[l.paths[t]],hasZ:!0===l.hasZ,hasM:!0===l.hasM,spatialReference:l.spatialReference.toJSON()});n.push(e)}return n}if(c[0]instanceof C){const t=[],e=f(r(c[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null})},B.functions.isselfintersecting=function(n,t){return B.standardFunctionAsync(n,t,async(n,t,e)=>{i(e,1,1,n,t);let r=(e=a(e))[0];if((q(e[0])||u(e[0]))&&(r=y(e[0],n.spatialReference)),r instanceof C){const n=r.points;for(let t=0;t<n.length;t++)for(let e=t+1;e<n.length;e++)if(x(n[t],n[e]))return!0;return!1}return(r instanceof k||r instanceof E)&&await b("isSelfIntersecting",[r.toJSON()])})},B.functions.issimple=function(n,t){return B.standardFunctionAsync(n,t,(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return!0;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return b("isSimple",[s[0].toJSON()])})},B.functions.simplify=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return M(await b("simplify",[s[0].toJSON()]))})},B.functions.convexhull=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return M(await b("convexHull",[s[0].toJSON()]))})},B.functions.getuser=function(r,a){return B.standardFunctionAsync(r,a,async(o,s,c)=>{i(c,0,2,r,a);let u=N(c[1],""),f=!0===u;if(u=!0===u||!1===u?"":l(u),0===c.length||c[0]instanceof n){let n;n=r.services?.portal?r.services.portal:T.getDefault(),c.length>0&&(n=O(c[0],n));const e=await Z(n,u,f);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(r))}return null}let w=null;if(d(c[0])&&(w=c[0]),w){if(f=!1,u)return null;await w.load();const e=await w.getOwningSystemUrl();if(!e){if(!u){const n=await w.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},S(r)):null}return null}let a;a=r.services?.portal?r.services.portal:T.getDefault(),a=O(new n(e),a);const i=await Z(a,u,f);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(r))}return null}throw new e(r,"InvalidParameter",a)})},B.functions.nearestcoordinate=function(n,r){return B.standardFunctionAsync(n,r,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,r),!(c[0]instanceof L||null===c[0]))throw new e(n,"InvalidParameter",r);if(!(c[1]instanceof U||null===c[1]))throw new e(n,"InvalidParameter",r);if(null===c[0]||null===c[1])return null;const l=c[0]instanceof D?E.fromExtent(c[0]):c[0],u=await b("getNearestCoordinate",[l.toJSON(),c[1].toJSON(),{calculateLeftRightSide:!0}]);return null===u?null:t.convertObjectToArcadeDictionary({coordinate:M(u.coordinate),distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},S(n),!1,!0)})},B.functions.nearestvertex=function(n,r){return B.standardFunctionAsync(n,r,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,r),!(c[0]instanceof L||null===c[0]))throw new e(n,"InvalidParameter",r);if(!(c[1]instanceof U||null===c[1]))throw new e(n,"InvalidParameter",r);if(null===c[0]||null===c[1])return null;const l=c[0]instanceof D?E.fromExtent(c[0]):c[0],u=await b("getNearestVertex",[l.toJSON(),c[1].toJSON()]);return null===u?null:t.convertObjectToArcadeDictionary({coordinate:M(u.coordinate),distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},S(n),!1,!0)})})}export{B as registerFunctions};
5
+ import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e}from"../executionError.js";import{cloneGeometry as r}from"../kernel.js";import{C as a,B as i,e as o,g as s,f as c,u as l,j as u,D as f,m as d,E as w,h as m,F as y,G as h,s as p,H as g,J as N,K as S}from"../../chunks/languageUtils.js";import{getPortal as O}from"../portalUtils.js";import{commonRelationsCheck as v,toCurveType as J,planarLength3D as P,toOffsetJoinType as A,toCentroidAlgorithm as I,measureToCoordinateFunc as F,pointToCoordinateFunc as j,distanceToCoordinateFunc as R}from"../geometry/functions.js";import{invokeRemoteGeometryOp as b}from"../geometry/operatorsWorkerConnection.js";import{equals as x}from"../../core/arrayUtils.js";import D from"../../geometry/Extent.js";import L from"../../geometry/Geometry.js";import C from"../../geometry/Multipoint.js";import U from"../../geometry/Point.js";import E from"../../geometry/Polygon.js";import k from"../../geometry/Polyline.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";import T from"../../portal/Portal.js";import{lookupUser as Z}from"../../portal/support/utils.js";import{isArray as q}from"../../support/guards.js";function z(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,"InvalidParameter",null)}}function B(B){"async"===B.mode&&(B.functions.disjoint=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null===i[0]||null===i[1]||b("disjoint",[i[0].toJSON(),i[1].toJSON()])))},B.functions.intersects=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("intersects",[i[0].toJSON(),i[1].toJSON()])))},B.functions.touches=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("touches",[i[0].toJSON(),i[1].toJSON()])))},B.functions.crosses=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("crosses",[i[0].toJSON(),i[1].toJSON()])))},B.functions.within=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("within",[i[0].toJSON(),i[1].toJSON()])))},B.functions.contains=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("contains",[i[0].toJSON(),i[1].toJSON()])))},B.functions.overlaps=function(n,t){return B.standardFunctionAsync(n,t,(e,r,i)=>(i=a(i),v(i,n,t),null!==i[0]&&null!==i[1]&&b("overlaps",[i[0].toJSON(),i[1].toJSON()])))},B.functions.equals=function(n,t){return B.standardFunctionAsync(n,t,(e,r,a)=>(i(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof L&&a[1]instanceof L?b("equals",[a[0].toJSON(),a[1].toJSON()]):(o(a[0])&&o(a[1])||!!(s(a[0])&&s(a[1])||c(a[0])&&c(a[1])))&&a[0].equals(a[1]))))},B.functions.relate=function(n,t){return B.standardFunctionAsync(n,t,(r,o,s)=>{if(s=a(s),i(s,3,3,n,t),s[0]instanceof L&&s[1]instanceof L)return b("relate",[s[0].toJSON(),s[1].toJSON(),l(s[2])]);if(s[0]instanceof L&&null===s[1])return!1;if(s[1]instanceof L&&null===s[0])return!1;if(null===s[0]&&null===s[1])return!1;throw new e(n,"InvalidParameter",t)})},B.functions.intersection=function(n,t){return B.standardFunctionAsync(n,t,async(e,r,i)=>(i=a(i),v(i,n,t),null===i[0]||null===i[1]?null:M(await b("intersection",[i[0].toJSON(),i[1].toJSON()]))))},B.functions.union=function(n,t){return B.standardFunctionAsync(n,t,async(i,o,s)=>{if(0===(s=a(s)).length)throw new e(n,"WrongNumberOfParameters",t);const c=[];if(1===s.length)if(q(s[0])){for(const r of a(s[0]))if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}}else{if(!u(s[0])){if(s[0]instanceof L)return f(r(s[0]),n.spatialReference);if(null===s[0])return null;throw new e(n,"InvalidParameter",t)}for(const r of a(s[0].toArray()))if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}}else for(const r of s)if(null!==r){if(!(r instanceof L))throw new e(n,"InvalidParameter",t);c.push(r.toJSON())}return 0===c.length?null:M(await b("union",[c]))})},B.functions.difference=function(n,t){return B.standardFunctionAsync(n,t,async(e,i,o)=>(o=a(o),v(o,n,t),null===o[0]?null:null===o[1]?r(o[0]):M(await b("difference",[o[0].toJSON(),o[1].toJSON()]))))},B.functions.symmetricdifference=function(n,t){return B.standardFunctionAsync(n,t,async(e,i,o)=>(o=a(o),v(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?r(o[1]):null===o[1]?r(o[0]):M(await b("symmetricDifference",[o[0].toJSON(),o[1].toJSON()]))))},B.functions.clip=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,2,n,t),!(s[1]instanceof D)&&null!==s[1])throw new e(n,"InvalidParameter",t);if(null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return null===s[1]?null:M(await b("clip",[s[0].toJSON(),s[1].toJSON()]))})},B.functions.cut=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,t),!(c[1]instanceof k)&&null!==c[1])throw new e(n,"InvalidParameter",t);if(null===c[0])return[];if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);return null===c[1]?[r(c[0])]:(await b("cut",[c[0].toJSON(),c[1].toJSON()])).map(n=>M(n))})},B.functions.area=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),s=a(s),d(s[0])){const r=await s[0].sumArea(z(s[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}let c=s[0];if((q(c)||u(c))&&(c=w(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);return b("area",[c.toJSON(),z(s[1])])})},B.functions.areageodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{i(s,1,3,n,t);let c=(s=a(s))[0];(q(c)||u(c))&&(c=w(c,n.spatialReference));const l=z(s[1]),f=J(s[2]);if(d(c)){const r=await c.sumArea(l,f,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}if(null==c)return 0;if(!m(c))throw new e(n,"InvalidParameter",t);return b("geodeticArea",[c.toJSON(),l,f])})},B.functions.length=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),s=a(s),d(s[0])){const r=await s[0].sumLength(z(s[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}let c=s[0];if((q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);return b("length",[c.toJSON(),z(s[1])])})},B.functions.length3d=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(i(s,1,2,n,t),null===(s=a(s))[0])return 0;let c=s[0];if((q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference)),null===c)return 0;if(!(c instanceof L))throw new e(n,"InvalidParameter",t);if(!0===c.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=P(c);return n(c.spatialReference,t(s[1]),e)}return b("length",[c.toJSON(),z(s[1])])})},B.functions.lengthgeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{i(s,1,3,n,t);let c=(s=a(s))[0];(q(s[0])||u(s[0]))&&(c=y(s[0],n.spatialReference));const l=z(s[1]),f=J(s[2]);if(d(c)){const r=await c.sumLength(l,f,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,"Cancelled",t);return r}if(null===c)return 0;if(!m(c))throw new e(n,"InvalidParameter",t);return b("geodeticLength",[c.toJSON(),l,f])})},B.functions.distance=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,3,n,t);let c=s[0];if((q(s[0])||u(s[0]))&&(c=h(s[0],n.spatialReference)),!(c instanceof L))throw new e(n,"InvalidParameter",t);let l=s[1];if((q(s[1])||u(s[1]))&&(l=h(s[1],n.spatialReference)),!(l instanceof L))throw new e(n,"InvalidParameter",t);return b("distance",[c.toJSON(),l.toJSON(),z(s[2])])})},B.functions.distancegeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,4,n,t);const c=s[0];if(!(c instanceof U))throw new e(n,"InvalidParameter",t);const l=s[1];if(!(l instanceof U))throw new e(n,"InvalidParameter",t);const u=new k({paths:[],spatialReference:c.spatialReference});return u.addPath([c,l]),b("geodeticLength",[u.toJSON(),z(s[2]),J(s[3])])})},B.functions.densify=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,3,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);if(c<=0)throw new e(n,"InvalidParameter",t);switch(s[0].type){case"polygon":case"polyline":case"extent":return M(await b("densify",[s[0].toJSON(),c,z(s[2])]));default:return s[0]}})},B.functions.densifygeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{s=a(s),i(s,2,4,n,t);const c=s[0];if(null==c)return null;if(!m(c))throw new e(n,"InvalidParameter",t);const l=p(s[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);if(l<=0)throw new e(n,"InvalidParameter",t);const u=z(s[2]),f=J(s[3]);switch(c.type){case"polygon":case"polyline":case"extent":return M(await b("geodeticDensify",[c.toJSON(),l,u,f]));default:return c}})},B.functions.generalize=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,4,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);const l=g(N(s[2],!0));return M(await b("generalize",[s[0].toJSON(),c,z(s[3]),{removeDegenerateParts:l}]))})},B.functions.buffer=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);const l=p(c[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);return 0===l?r(c[0]):M(await b("buffer",[c[0].toJSON(),l,z(c[2])]))})},B.functions.buffergeodetic=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{c=a(c),i(c,2,4,n,t);const l=c[0];if(null==l)return null;if(!m(l))throw new e(n,"InvalidParameter",t);const u=p(c[1]);if(isNaN(u))throw new e(n,"InvalidParameter",t);if(0===u)return r(l);const f=z(c[2]),d=J(c[3]);return M(await b("geodesicBuffer",[l.toJSON(),u,f,d]))})},B.functions.offset=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,6,n,t),null===s[0])return null;if(!(s[0]instanceof E||s[0]instanceof k))throw new e(n,"InvalidParameter",t);const c=p(s[1]);if(isNaN(c))throw new e(n,"InvalidParameter",t);const l=A(s[3]),u=p(N(s[4],10));if(isNaN(u))throw new e(n,"InvalidParameter",t);const f=p(N(s[5],0));if(isNaN(f))throw new e(n,"InvalidParameter",t);return M(await b("offset",[s[0].toJSON(),c,z(s[2]),{joins:l,miterLimit:u,flattenError:f}]))})},B.functions.rotate=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,2,3,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);const c=s[0]instanceof D?E.fromExtent(s[0]):s[0],l=p(s[1]);if(isNaN(l))throw new e(n,"InvalidParameter",t);const u=N(s[2],null);if(null===u){const n="point"===c.type?c:c.extent?.center;return M(await b("rotate",[c.toJSON(),l,n?.x,n?.y]))}if(u instanceof U)return M(await b("rotate",[c.toJSON(),l,u.x,u.y]));throw new e(n,"InvalidParameter",t)})},B.functions.centroid=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,2,n,t),null===s[0])return null;const c=I(s[1]);let l=s[0];if((q(s[0])||u(s[0]))&&(l="geometric"===c?h(s[0],n.spatialReference):w(s[0],n.spatialReference),null===l))return null;if(!(l instanceof L))throw new e(n,"InvalidParameter",t);return M("geometric"===c?await b("centroid",[l.toJSON()]):await b("labelPoint",[l.toJSON()]))})},B.functions.measuretocoordinate=function(n,t){return B.standardFunctionAsync(n,t,F)},B.functions.pointtocoordinate=function(n,t){return B.standardFunctionAsync(n,t,j)},B.functions.distancetocoordinate=function(n,t){return B.standardFunctionAsync(n,t,R)},B.functions.multiparttosinglepart=function(n,t){return B.standardFunctionAsync(n,t,async(o,s,c)=>{if(c=a(c),i(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof L))throw new e(n,"InvalidParameter",t);if(c[0]instanceof U)return[f(r(c[0]),n.spatialReference)];if(c[0]instanceof D)return[f(r(c[0]),n.spatialReference)];const l=M(await b("simplify",[c[0].toJSON()]));if(l instanceof E){const n=[],t=[];for(let e=0;e<l.rings.length;e++)if(l.isClockwise(l.rings[e])){const t=M({rings:[l.rings[e]],hasZ:!0===l.hasZ,hasM:!0===l.hasM,spatialReference:l.spatialReference.toJSON()});n.push(t)}else t.push({ring:l.rings[e],pt:l.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(l instanceof k){const n=[];for(let t=0;t<l.paths.length;t++){const e=M({paths:[l.paths[t]],hasZ:!0===l.hasZ,hasM:!0===l.hasM,spatialReference:l.spatialReference.toJSON()});n.push(e)}return n}if(c[0]instanceof C){const t=[],e=f(r(c[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null})},B.functions.isselfintersecting=function(n,t){return B.standardFunctionAsync(n,t,async(n,t,e)=>{i(e,1,1,n,t);let r=(e=a(e))[0];if((q(e[0])||u(e[0]))&&(r=y(e[0],n.spatialReference)),r instanceof C){const n=r.points;for(let t=0;t<n.length;t++)for(let e=t+1;e<n.length;e++)if(x(n[t],n[e]))return!0;return!1}return(r instanceof k||r instanceof E)&&await b("isSelfIntersecting",[r.toJSON()])})},B.functions.issimple=function(n,t){return B.standardFunctionAsync(n,t,(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return!0;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return b("isSimple",[s[0].toJSON()])})},B.functions.simplify=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return M(await b("simplify",[s[0].toJSON()]))})},B.functions.convexhull=function(n,t){return B.standardFunctionAsync(n,t,async(r,o,s)=>{if(s=a(s),i(s,1,1,n,t),null===s[0])return null;if(!(s[0]instanceof L))throw new e(n,"InvalidParameter",t);return M(await b("convexHull",[s[0].toJSON()]))})},B.functions.getuser=function(r,a){return B.standardFunctionAsync(r,a,async(o,s,c)=>{i(c,0,2,r,a);let u=N(c[1],""),f=!0===u;if(u=!0===u||!1===u?"":l(u),0===c.length||c[0]instanceof n){let n;n=r.services?.portal?r.services.portal:T.getDefault(),c.length>0&&(n=O(c[0],n));const e=await Z(n,u,f);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(r))}return null}let w=null;if(d(c[0])&&(w=c[0]),w){if(f=!1,u)return null;await w.load();const e=await w.getOwningSystemUrl();if(!e){if(!u){const n=await w.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},S(r)):null}return null}let a;a=r.services?.portal?r.services.portal:T.getDefault(),a=O(new n(e),a);const i=await Z(a,u,f);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(r))}return null}throw new e(r,"InvalidParameter",a)})},B.functions.nearestcoordinate=function(n,r){return B.standardFunctionAsync(n,r,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,r),!(c[0]instanceof L||null===c[0]))throw new e(n,"InvalidParameter",r);if(!(c[1]instanceof U||null===c[1]))throw new e(n,"InvalidParameter",r);if(null===c[0]||null===c[1])return null;const l=c[0]instanceof D?E.fromExtent(c[0]):c[0],u=await b("getNearestCoordinate",[l.toJSON(),c[1].toJSON(),{calculateLeftRightSide:!0}]);return null===u?null:t.convertObjectToArcadeDictionary({coordinate:M(u.coordinate),distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},S(n),!1,!0)})},B.functions.nearestvertex=function(n,r){return B.standardFunctionAsync(n,r,async(o,s,c)=>{if(c=a(c),i(c,2,2,n,r),!(c[0]instanceof L||null===c[0]))throw new e(n,"InvalidParameter",r);if(!(c[1]instanceof U||null===c[1]))throw new e(n,"InvalidParameter",r);if(null===c[0]||null===c[1])return null;const l=c[0]instanceof D?E.fromExtent(c[0]):c[0],u=await b("getNearestVertex",[l.toJSON(),c[1].toJSON()]);return null===u?null:t.convertObjectToArcadeDictionary({coordinate:M(u.coordinate),distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},S(n),!1,!0)})})}export{B 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.34/esri/copyright.txt for details.
4
4
  */
5
- import{geometryMember as e,getNestedOptionalValue as t}from"../containerUtils.js";import n from"../Dictionary.js";import{ArcadeExecutionError as r}from"../executionError.js";import a from"../Feature.js";import i from"../ImmutablePointArray.js";import{B as l,j as o,D as s,W as f,C as c,k as u,v as m,n as p,h as w,w as h,e as R,g,f as y,i as d,d as P,K as v,X as I,s as b,y as O}from"../../chunks/languageUtils.js";import{angle2D as j,angleBetween2D as N,bearing2D as S,bearingBetween2D as x}from"./centroid.js";import{constructGeometryFromDictionary as J}from"../geometry/constructors.js";import F from"../../geometry/Extent.js";import k from"../../geometry/Geometry.js";import Z from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import z from"../../geometry/Polygon.js";import A from"../../geometry/Polyline.js";import{isClockwise as q}from"../../geometry/support/coordsUtils.js";import{fromJSON as D}from"../../geometry/support/jsonUtils.js";import{isArray as M,isString as G,isNumber as L,isBoolean as U}from"../../support/guards.js";function _(_,C){_.ringisclockwise=function(e,t){return C(e,t,(n,a,s)=>{l(s,1,1,e,t);let f=[];if(null===s[0])return!1;if(M(s[0]))for(const i of s[0]){if(!(i instanceof W))throw new r(e,"InvalidParameter",t);f.push(i.hasZ?i.hasM?[i.x,i.y,i.z,i.m]:[i.x,i.y,i.z]:[i.x,i.y])}else if(s[0]instanceof i)f=s[0]._elements;else{if(!o(s[0]))throw new r(e,"InvalidParameter",t);for(const n of s[0].toArray()){if(!(n instanceof W))throw new r(e,"InvalidParameter",t);f.push(n.hasZ?n.hasM?[n.x,n.y,n.z,n.m]:[n.x,n.y,n.z]:[n.x,n.y])}}return!(f.length<3)&&q(f)})},_.polygon=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"polygon"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof z)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new z(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.polyline=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"polyline"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof A)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new A(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.point=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"point"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof W)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new W(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.multipoint=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"multipoint"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof Z)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new Z(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.extent=function(e,t){return C(e,t,(a,i,o)=>{o=c(o),l(o,1,1,e,t);let u=null;if(o[0]instanceof n)u=s(J(o[0],e.spatialReference),e.spatialReference);else if(o[0]instanceof W){const e={xmin:o[0].x,ymin:o[0].y,xmax:o[0].x,ymax:o[0].y,spatialReference:o[0].spatialReference.toJSON()},t=o[0];t.hasZ&&(e.zmin=t.z,e.zmax=t.z),t.hasM&&(e.mmin=t.m,e.mmax=t.m),u=D(e)}else if(o[0]instanceof z)u=D(o[0].extent?.toJSON());else if(o[0]instanceof A)u=D(o[0].extent?.toJSON());else if(o[0]instanceof Z)u=D(o[0].extent?.toJSON());else if(o[0]instanceof F)u=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),u=s(new F(t),e.spatialReference)}if(null!==u&&!1===u.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(u)})},_.geometry=function(e,t){return C(e,t,(a,i,o)=>{l(o,1,1,e,t);let c=null;if(null===o[0])return null;if(u(o[0]))c=s(o[0].geometry(),e.spatialReference);else if(o[0]instanceof n)c=s(J(o[0],e.spatialReference),e.spatialReference);else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(D(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.setgeometry=function(e,t){return C(e,t,(n,a,i)=>{if(l(i,2,2,e,t),!u(i[0]))throw new r(e,"InvalidParameter",t);if(!0===i[0].immutable)throw new r(e,"Immutable",t);if(!(i[1]instanceof k||null===i[1]))throw new r(e,"InvalidParameter",t);return i[0]._geometry=i[1],m})},_.feature=function(e,t){return C(e,t,(i,l,o)=>{if(0===o.length)throw new r(e,"WrongNumberOfParameters",t);let f;if(1===o.length)if(G(o[0]))f=a.fromJson(JSON.parse(o[0]),e.timeZone);else if(u(o[0]))f=a.createFromArcadeFeature(o[0]);else if(o[0]instanceof k)f=a.createFromGraphicLikeObject(o[0],null,null,e.timeZone);else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);{const n=o[0].hasField("geometry")?o[0].field("geometry"):null,i=o[0].hasField("attributes")?o[0].field("attributes"):null;let l,s;if(p(n))l=J(n,e.spatialReference);else{if(null!=n&&!w(n))throw new r(e,"InvalidParameter",t);l=n}if(p(i))s=a.parseAttributesFromDictionary(i);else{if(null!=i)throw new r(e,"InvalidParameter",t);s=null}f=a.createFromGraphicLikeObject(l,s,null,e.timeZone)}}else if(2===o.length){let i=null,l=null;if(null!==o[0])if(o[0]instanceof k)i=o[0];else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);i=J(o[0],e.spatialReference)}if(null!==o[1]){if(!(o[1]instanceof n))throw new r(e,"InvalidParameter",t);l=a.parseAttributesFromDictionary(o[1])}f=a.createFromGraphicLikeObject(i,l,null,e.timeZone)}else{let i=null;const l={};if(null!==o[0])if(o[0]instanceof k)i=o[0];else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);i=J(o[0],e.spatialReference)}for(let n=1;n<o.length;n+=2){const a=h(o[n]),i=o[n+1];if(!(null==i||G(i)||isNaN(i)||R(i)||L(i)||g(i)||y(i)||U(i)))throw new r(e,"InvalidParameter",t);if(d(i)||!1===P(i))throw new r(e,"InvalidParameter",t);l[a]=i===m?null:i}f=a.createFromGraphicLikeObject(i,l,null,e.timeZone)}return f._geometry=s(f.geometry(),e.spatialReference),f.immutable=!1,f})},_.dictionary=function(e,t){return C(e,t,(a,i,l)=>{if(0===l.length||1===l.length&&null===l[0]){const e=new n;return e.immutable=!1,e}if(1===l.length&&G(l[0]))try{const t=JSON.parse(l[0]),r=n.convertObjectToArcadeDictionary(t,v(e),!1);return r.immutable=!1,r}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&l[0]instanceof k)try{const t=l[0].toJSON();t.hasZ=!0===l[0].hasZ,t.hasM=!0===l[0].hasM;const r=n.convertObjectToArcadeDictionary(t,v(e),!1);return r.immutable=!1,r}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&u(l[0]))try{const e=new n;e.immutable=!1,e.setField("geometry",l[0].geometry());const t=new n;t.immutable=!1,e.setField("attributes",t);for(const n of l[0].keys())t.setField(n,l[0].field(n));return e}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&(p(l[0])||I(l[0])))try{const e=new n;e.immutable=!1;for(const t of l[0].keys())e.setField(t,l[0].field(t));return e}catch(c){throw new r(e,"InvalidParameter",t)}if(2===l.length&&l[0]instanceof n&&U(l[1]))try{if(!(!0===l[1])){const e=new n;e.immutable=!1;for(const t of l[0].keys())e.setField(t,l[0].field(t));return e}return l[0].deepClone()}catch(c){throw new r(e,"InvalidParameter",t)}if(l.length%2!=0)throw new r(e,"WrongNumberOfParameters",t);const s=Object.create(null);for(let n=0;n<l.length;n+=2){const a=h(l[n]),i=l[n+1];if(!(null==i||G(i)||isNaN(i)||R(i)||L(i)||U(i)||y(i)||g(i)||M(i)||o(i)))throw new r(e,"InvalidParameter",t);if(d(i))throw new r(e,"InvalidParameter",t);s[a]=i===m?null:i}const f=new n(s);return f.immutable=!1,f})},_.haskey=function(t,a){return C(t,a,(i,o,s)=>{l(s,2,2,t,a);const f=h(s[1]);if(b(s[0])||s[0]instanceof n)return s[0].hasField(f);if(s[0]instanceof k){const t=e(s[0],f,null,null,2);return!t||"notfound"!==t.keystate}throw new r(t,"InvalidParameter",a)})},_.hasvalue=function(e,n){return C(e,n,(r,a,i)=>(l(i,2,2,e,n),null!=t(i[0],i[1])))},_.indexof=function(e,t){return C(e,t,(n,a,i)=>{l(i,2,2,e,t);const s=i[1];if(M(i[0])){for(let e=0;e<i[0].length;e++)if(O(s,i[0][e]))return e;return-1}if(o(i[0])){const e=i[0].length();for(let t=0;t<e;t++)if(O(s,i[0].get(t)))return t;return-1}throw new r(e,"InvalidParameter",t)})},_.angle=function(e,t){return C(e,t,(n,a,i)=>{if(i=c(i),l(i,2,3,e,t),!(i[0]instanceof W))throw new r(e,"InvalidParameter",t);if(!(i[1]instanceof W))throw new r(e,"InvalidParameter",t);if(i.length>2&&!(i[2]instanceof W))throw new r(e,"InvalidParameter",t);return 2===i.length?j(i[0],i[1]):N(i[0],i[1],i[2])})},_.bearing=function(e,t){return C(e,t,(n,a,i)=>{if(i=c(i),l(i,2,3,e,t),!(i[0]instanceof W))throw new r(e,"InvalidParameter",t);if(!(i[1]instanceof W))throw new r(e,"InvalidParameter",t);if(i.length>2&&!(i[2]instanceof W))throw new r(e,"InvalidParameter",t);return 2===i.length?S(i[0],i[1]):x(i[0],i[1],i[2])})}}export{_ as registerFunctions};
5
+ import{geometryMember as e,getNestedOptionalValue as t}from"../containerUtils.js";import n from"../Dictionary.js";import{ArcadeExecutionError as r}from"../executionError.js";import a from"../Feature.js";import i from"../ImmutablePointArray.js";import{B as l,j as o,D as s,W as f,C as c,k as u,v as m,n as p,h as w,u as h,e as R,g,f as y,i as d,d as P,K as v,X as I,r as b,x as O}from"../../chunks/languageUtils.js";import{angle2D as j,angleBetween2D as N,bearing2D as S,bearingBetween2D as x}from"./centroid.js";import{constructGeometryFromDictionary as J}from"../geometry/constructors.js";import F from"../../geometry/Extent.js";import k from"../../geometry/Geometry.js";import Z from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import z from"../../geometry/Polygon.js";import A from"../../geometry/Polyline.js";import{isClockwise as q}from"../../geometry/support/coordsUtils.js";import{fromJSON as D}from"../../geometry/support/jsonUtils.js";import{isArray as M,isString as G,isNumber as L,isBoolean as U}from"../../support/guards.js";function _(_,C){_.ringisclockwise=function(e,t){return C(e,t,(n,a,s)=>{l(s,1,1,e,t);let f=[];if(null===s[0])return!1;if(M(s[0]))for(const i of s[0]){if(!(i instanceof W))throw new r(e,"InvalidParameter",t);f.push(i.hasZ?i.hasM?[i.x,i.y,i.z,i.m]:[i.x,i.y,i.z]:[i.x,i.y])}else if(s[0]instanceof i)f=s[0]._elements;else{if(!o(s[0]))throw new r(e,"InvalidParameter",t);for(const n of s[0].toArray()){if(!(n instanceof W))throw new r(e,"InvalidParameter",t);f.push(n.hasZ?n.hasM?[n.x,n.y,n.z,n.m]:[n.x,n.y,n.z]:[n.x,n.y])}}return!(f.length<3)&&q(f)})},_.polygon=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"polygon"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof z)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new z(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.polyline=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"polyline"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof A)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new A(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.point=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"point"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof W)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new W(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.multipoint=function(e,t){return C(e,t,(a,i,o)=>{let c;if(l(o,1,1,e,t),o[0]instanceof n){const t=s(J(o[0],e.spatialReference,"multipoint"),e.spatialReference);if(null==t)return null;c=t}else if(o[0]instanceof Z)c=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(new Z(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.extent=function(e,t){return C(e,t,(a,i,o)=>{o=c(o),l(o,1,1,e,t);let u=null;if(o[0]instanceof n)u=s(J(o[0],e.spatialReference),e.spatialReference);else if(o[0]instanceof W){const e={xmin:o[0].x,ymin:o[0].y,xmax:o[0].x,ymax:o[0].y,spatialReference:o[0].spatialReference.toJSON()},t=o[0];t.hasZ&&(e.zmin=t.z,e.zmax=t.z),t.hasM&&(e.mmin=t.m,e.mmax=t.m),u=D(e)}else if(o[0]instanceof z)u=D(o[0].extent?.toJSON());else if(o[0]instanceof A)u=D(o[0].extent?.toJSON());else if(o[0]instanceof Z)u=D(o[0].extent?.toJSON());else if(o[0]instanceof F)u=D(o[0].toJSON());else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),u=s(new F(t),e.spatialReference)}if(null!==u&&!1===u.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(u)})},_.geometry=function(e,t){return C(e,t,(a,i,o)=>{l(o,1,1,e,t);let c=null;if(null===o[0])return null;if(u(o[0]))c=s(o[0].geometry(),e.spatialReference);else if(o[0]instanceof n)c=s(J(o[0],e.spatialReference),e.spatialReference);else{const t=JSON.parse(o[0]);t&&!t.spatialReference&&(t.spatialReference=e.spatialReference),c=s(D(t),e.spatialReference)}if(null!==c&&!1===c.spatialReference.equals(e.spatialReference))throw new r(e,"WrongSpatialReference",t);return f(c)})},_.setgeometry=function(e,t){return C(e,t,(n,a,i)=>{if(l(i,2,2,e,t),!u(i[0]))throw new r(e,"InvalidParameter",t);if(!0===i[0].immutable)throw new r(e,"Immutable",t);if(!(i[1]instanceof k||null===i[1]))throw new r(e,"InvalidParameter",t);return i[0]._geometry=i[1],m})},_.feature=function(e,t){return C(e,t,(i,l,o)=>{if(0===o.length)throw new r(e,"WrongNumberOfParameters",t);let f;if(1===o.length)if(G(o[0]))f=a.fromJson(JSON.parse(o[0]),e.timeZone);else if(u(o[0]))f=a.createFromArcadeFeature(o[0]);else if(o[0]instanceof k)f=a.createFromGraphicLikeObject(o[0],null,null,e.timeZone);else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);{const n=o[0].hasField("geometry")?o[0].field("geometry"):null,i=o[0].hasField("attributes")?o[0].field("attributes"):null;let l,s;if(p(n))l=J(n,e.spatialReference);else{if(null!=n&&!w(n))throw new r(e,"InvalidParameter",t);l=n}if(p(i))s=a.parseAttributesFromDictionary(i);else{if(null!=i)throw new r(e,"InvalidParameter",t);s=null}f=a.createFromGraphicLikeObject(l,s,null,e.timeZone)}}else if(2===o.length){let i=null,l=null;if(null!==o[0])if(o[0]instanceof k)i=o[0];else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);i=J(o[0],e.spatialReference)}if(null!==o[1]){if(!(o[1]instanceof n))throw new r(e,"InvalidParameter",t);l=a.parseAttributesFromDictionary(o[1])}f=a.createFromGraphicLikeObject(i,l,null,e.timeZone)}else{let i=null;const l={};if(null!==o[0])if(o[0]instanceof k)i=o[0];else{if(!(o[0]instanceof n))throw new r(e,"InvalidParameter",t);i=J(o[0],e.spatialReference)}for(let n=1;n<o.length;n+=2){const a=h(o[n]),i=o[n+1];if(!(null==i||G(i)||isNaN(i)||R(i)||L(i)||g(i)||y(i)||U(i)))throw new r(e,"InvalidParameter",t);if(d(i)||!1===P(i))throw new r(e,"InvalidParameter",t);l[a]=i===m?null:i}f=a.createFromGraphicLikeObject(i,l,null,e.timeZone)}return f._geometry=s(f.geometry(),e.spatialReference),f.immutable=!1,f})},_.dictionary=function(e,t){return C(e,t,(a,i,l)=>{if(0===l.length||1===l.length&&null===l[0]){const e=new n;return e.immutable=!1,e}if(1===l.length&&G(l[0]))try{const t=JSON.parse(l[0]),r=n.convertObjectToArcadeDictionary(t,v(e),!1);return r.immutable=!1,r}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&l[0]instanceof k)try{const t=l[0].toJSON();t.hasZ=!0===l[0].hasZ,t.hasM=!0===l[0].hasM;const r=n.convertObjectToArcadeDictionary(t,v(e),!1);return r.immutable=!1,r}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&u(l[0]))try{const e=new n;e.immutable=!1,e.setField("geometry",l[0].geometry());const t=new n;t.immutable=!1,e.setField("attributes",t);for(const n of l[0].keys())t.setField(n,l[0].field(n));return e}catch(c){throw new r(e,"InvalidParameter",t)}if(1===l.length&&(p(l[0])||I(l[0])))try{const e=new n;e.immutable=!1;for(const t of l[0].keys())e.setField(t,l[0].field(t));return e}catch(c){throw new r(e,"InvalidParameter",t)}if(2===l.length&&l[0]instanceof n&&U(l[1]))try{if(!(!0===l[1])){const e=new n;e.immutable=!1;for(const t of l[0].keys())e.setField(t,l[0].field(t));return e}return l[0].deepClone()}catch(c){throw new r(e,"InvalidParameter",t)}if(l.length%2!=0)throw new r(e,"WrongNumberOfParameters",t);const s=Object.create(null);for(let n=0;n<l.length;n+=2){const a=h(l[n]),i=l[n+1];if(!(null==i||G(i)||isNaN(i)||R(i)||L(i)||U(i)||y(i)||g(i)||M(i)||o(i)))throw new r(e,"InvalidParameter",t);if(d(i))throw new r(e,"InvalidParameter",t);s[a]=i===m?null:i}const f=new n(s);return f.immutable=!1,f})},_.haskey=function(t,a){return C(t,a,(i,o,s)=>{l(s,2,2,t,a);const f=h(s[1]);if(b(s[0])||s[0]instanceof n)return s[0].hasField(f);if(s[0]instanceof k){const t=e(s[0],f,null,null,2);return!t||"notfound"!==t.keystate}throw new r(t,"InvalidParameter",a)})},_.hasvalue=function(e,n){return C(e,n,(r,a,i)=>(l(i,2,2,e,n),null!=t(i[0],i[1])))},_.indexof=function(e,t){return C(e,t,(n,a,i)=>{l(i,2,2,e,t);const s=i[1];if(M(i[0])){for(let e=0;e<i[0].length;e++)if(O(s,i[0][e]))return e;return-1}if(o(i[0])){const e=i[0].length();for(let t=0;t<e;t++)if(O(s,i[0].get(t)))return t;return-1}throw new r(e,"InvalidParameter",t)})},_.angle=function(e,t){return C(e,t,(n,a,i)=>{if(i=c(i),l(i,2,3,e,t),!(i[0]instanceof W))throw new r(e,"InvalidParameter",t);if(!(i[1]instanceof W))throw new r(e,"InvalidParameter",t);if(i.length>2&&!(i[2]instanceof W))throw new r(e,"InvalidParameter",t);return 2===i.length?j(i[0],i[1]):N(i[0],i[1],i[2])})},_.bearing=function(e,t){return C(e,t,(n,a,i)=>{if(i=c(i),l(i,2,3,e,t),!(i[0]instanceof W))throw new r(e,"InvalidParameter",t);if(!(i[1]instanceof W))throw new r(e,"InvalidParameter",t);if(i.length>2&&!(i[2]instanceof W))throw new r(e,"InvalidParameter",t);return 2===i.length?S(i[0],i[1]):x(i[0],i[1],i[2])})}}export{_ as registerFunctions};