@arcgis/core 4.28.0-next.20230911 → 4.28.0-next.20230913

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 (136) hide show
  1. package/arcade/Feature.js +1 -1
  2. package/arcade/arcadeTimeUtils.js +1 -1
  3. package/arcade/executionError.js +1 -1
  4. package/arcade/featureSetUtils.js +1 -1
  5. package/arcade/featureset/actions/Adapted.js +1 -1
  6. package/arcade/featureset/actions/GroupBy.js +1 -1
  7. package/arcade/featureset/support/FeatureSet.js +1 -1
  8. package/arcade/featureset/support/errorsupport.js +1 -1
  9. package/arcade/functions/featuresetbase.js +1 -1
  10. package/arcade/functions/featuresetstats.js +1 -1
  11. package/arcade/functions/string.js +1 -1
  12. package/arcade.js +1 -1
  13. package/assets/esri/core/workers/RemoteClient.js +1 -1
  14. package/assets/esri/core/workers/chunks/0920312e3c7b63c2e253.js +1 -0
  15. package/assets/esri/core/workers/chunks/0cb007ab5db0a2a598ec.js +1 -0
  16. package/assets/esri/core/workers/chunks/0cc61f1b2c0473ded5c2.js +1 -0
  17. package/assets/esri/core/workers/chunks/0f804e3f888cb4998f46.js +1 -0
  18. package/assets/esri/core/workers/chunks/189dd81cf95bd8417ee3.js +1 -0
  19. package/assets/esri/core/workers/chunks/1a723bb4a341f645e5fe.js +1 -0
  20. package/assets/esri/core/workers/chunks/24c717492ea1b35310d8.js +1 -0
  21. package/assets/esri/core/workers/chunks/{3ce73dd4113dbc7d11de.js → 2eb58dc339b2bb03d9e3.js} +1 -1
  22. package/assets/esri/core/workers/chunks/{38c07a8574352a7f2f6d.js → 2ff0dbd5eb7ca57bb7fc.js} +1 -1
  23. package/assets/esri/core/workers/chunks/{768f3db2705fa9e57641.js → 49dfdc0463450491df9d.js} +1 -1
  24. package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +1 -0
  25. package/assets/esri/core/workers/chunks/{56ed099745360888604e.js → 67f01c71280fa0759742.js} +1 -1
  26. package/assets/esri/core/workers/chunks/{f62842807744bdfaced7.js → 67fab13f56b340076763.js} +1 -1
  27. package/assets/esri/core/workers/chunks/6d94b358e8d1cf79bba3.js +1 -0
  28. package/assets/esri/core/workers/chunks/718607d7a3b33fc33b0a.js +1 -0
  29. package/assets/esri/core/workers/chunks/{4c63d6b9460aa6ae9843.js → 860417f4138f53d315ba.js} +2 -2
  30. package/assets/esri/core/workers/chunks/8aa7e994b74f66522c37.js +1 -0
  31. package/assets/esri/core/workers/chunks/9fa485b04b997b0a5509.js +1 -0
  32. package/assets/esri/core/workers/chunks/a047fcf3c7307a69b63c.js +1 -0
  33. package/assets/esri/core/workers/chunks/a753d9874801cd448946.js +1 -0
  34. package/assets/esri/core/workers/chunks/c51233ad51823cb98c35.js +1 -0
  35. package/assets/esri/core/workers/chunks/c61f20d91a5c432b07dc.js +1 -0
  36. package/assets/esri/core/workers/chunks/d3d11242e5af57ba77f4.js +1 -0
  37. package/assets/esri/core/workers/chunks/dbf343d1fb746f99bb6e.js +1 -0
  38. package/assets/esri/core/workers/chunks/{271ec1d1666bf6dc3dda.js → dc74b4ec85e8e3de5b27.js} +1 -1
  39. package/assets/esri/core/workers/chunks/e8a8791d765ab6c450dd.js +1 -0
  40. package/assets/esri/core/workers/chunks/{5fe7b5665710ec6d3046.js → eb0d1c5c96f735c162d3.js} +1 -1
  41. package/assets/esri/themes/base/widgets/_Sketch.scss +0 -5
  42. package/assets/esri/themes/base/widgets/_SketchTooltipControls.scss +0 -5
  43. package/assets/esri/themes/dark/main.css +1 -1
  44. package/assets/esri/themes/light/main.css +1 -1
  45. package/assets/esri/themes/light/view.css +1 -1
  46. package/chunks/HUDMaterial.glsl.js +38 -45
  47. package/chunks/languageUtils.js +1 -1
  48. package/core/promiseUtils.js +1 -1
  49. package/core/sql/AggregateFunctions.js +1 -1
  50. package/core/sql/DateOnly.js +1 -1
  51. package/core/sql/SqlTimestampOffset.js +1 -1
  52. package/core/sql/TimeOnly.js +1 -1
  53. package/core/sql/WhereClause.js +1 -1
  54. package/core/sql/WhereGrammar.js +1 -1
  55. package/core/sql/sqlCompareUtils.js +1 -1
  56. package/geometry/GeometryCursor.js +1 -1
  57. package/geometry/Mesh.js +1 -1
  58. package/geometry/support/labelPoint.js +1 -1
  59. package/geometry/support/meshUtils/bounds.js +1 -1
  60. package/geometry/support/meshUtils/georeference.js +1 -1
  61. package/interfaces.d.ts +190 -144
  62. package/layers/ImageryLayer.js +1 -1
  63. package/layers/SceneLayer.js +1 -1
  64. package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
  65. package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
  66. package/layers/graphics/sources/csv/csv.js +1 -1
  67. package/layers/support/FetchAssociatedFeatureLayer.js +1 -1
  68. package/layers/support/TilemapCache.js +1 -1
  69. package/layers/support/fieldUtils.js +1 -1
  70. package/layers/support/rasterDatasets/BaseRaster.js +1 -1
  71. package/layers/support/wmsUtils.js +1 -1
  72. package/layers/video/VideoController.js +1 -1
  73. package/package.json +3 -3
  74. package/smartMapping/heuristics/sizeRange.js +1 -1
  75. package/smartMapping/labels/bins.js +1 -1
  76. package/smartMapping/labels/clusters.js +1 -1
  77. package/smartMapping/labels/support/utils.js +1 -1
  78. package/smartMapping/popup/support/clusterUtils.js +1 -1
  79. package/smartMapping/support/clusterUtils.js +1 -1
  80. package/support/revision.js +1 -1
  81. package/views/2d/engine/webgl/DisplayId.js +1 -1
  82. package/views/2d/engine/webgl/Utils.js +1 -1
  83. package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
  84. package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
  85. package/views/3d/analysis/Dimension/DimensionVisualization.js +1 -1
  86. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  87. package/views/3d/analysis/Dimension/LengthDimensionVisualization.js +1 -1
  88. package/views/3d/analysis/Dimension/lengthDimensionManipulatorUtils.js +1 -1
  89. package/views/3d/analysis/Dimension/settings.js +1 -1
  90. package/views/3d/interactive/Manipulator3D.js +1 -1
  91. package/views/3d/interactive/editingTools/originGraphicVisualElementUtils.js +1 -1
  92. package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
  93. package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DTool.js +1 -1
  94. package/views/3d/layers/I3SMeshView3D.js +1 -1
  95. package/views/3d/layers/I3SMeshWorkerHandle.js +1 -1
  96. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  97. package/views/3d/layers/SceneLayerWorker.js +1 -1
  98. package/views/3d/layers/i3s/I3SClientNodeLoader.js +1 -1
  99. package/views/3d/webgl-engine/core/FBOCache.js +1 -1
  100. package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
  101. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  102. package/views/3d/webgl-engine/shaders/HUDMaterialTechniqueConfiguration.js +1 -1
  103. package/views/ToolViewManager.js +1 -1
  104. package/views/View.js +1 -1
  105. package/views/animation/easing.js +1 -1
  106. package/views/webgl/FramebufferObject.js +1 -1
  107. package/views/webgl/RenderingContext.js +1 -1
  108. package/views/webgl/enums.js +1 -1
  109. package/views/webgl/renderState.js +1 -1
  110. package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
  111. package/widgets/Feature/FeatureMedia.js +1 -1
  112. package/widgets/FeatureForm.js +1 -1
  113. package/widgets/Features.js +1 -1
  114. package/widgets/Search/SearchViewModel.js +1 -1
  115. package/widgets/support/SketchTooltipControls/SketchTooltipControlsViewModel.js +1 -1
  116. package/widgets/support/SketchTooltipControls.js +1 -1
  117. package/widgets/support/SnappingControls.js +1 -1
  118. package/assets/esri/core/workers/chunks/055575ed2ab78be0bdb2.js +0 -1
  119. package/assets/esri/core/workers/chunks/0ee90a0b4d09a56c0d48.js +0 -1
  120. package/assets/esri/core/workers/chunks/15056f91d87f11b00bcc.js +0 -1
  121. package/assets/esri/core/workers/chunks/344e40934c98d6fe66ae.js +0 -1
  122. package/assets/esri/core/workers/chunks/558049fcac3a82a093fc.js +0 -1
  123. package/assets/esri/core/workers/chunks/5c41eb67d19b8710118a.js +0 -1
  124. package/assets/esri/core/workers/chunks/5d183ac1a8b68ba9c656.js +0 -1
  125. package/assets/esri/core/workers/chunks/610d4a5d2511fa81460e.js +0 -1
  126. package/assets/esri/core/workers/chunks/6755bb1f2a6575a8e082.js +0 -1
  127. package/assets/esri/core/workers/chunks/84173936b309712ba9b3.js +0 -1
  128. package/assets/esri/core/workers/chunks/877302d6e39a0d530aab.js +0 -1
  129. package/assets/esri/core/workers/chunks/a07dc782e69111e2eeaf.js +0 -1
  130. package/assets/esri/core/workers/chunks/b825019841247d173072.js +0 -1
  131. package/assets/esri/core/workers/chunks/bed1bc13b168fae46404.js +0 -1
  132. package/assets/esri/core/workers/chunks/c8dd21a332559c99815c.js +0 -1
  133. package/assets/esri/core/workers/chunks/ccc3564e76c0ec5c0228.js +0 -1
  134. package/assets/esri/core/workers/chunks/d0a81c7ec8a84eeadd31.js +0 -1
  135. package/assets/esri/core/workers/chunks/e7a852b319c1d89eddc5.js +0 -1
  136. package/assets/esri/core/workers/chunks/ebde11fdccb437954ce7.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.28/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as e}from"../ArcadeDate.js";import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import o from"../featureSetCollection.js";import{convertToFeatureSet as s,constructFeatureSetFromPortalItem as l,constructFeatureSet as f,constructFeatureSetFromRelationship as d,constructFeatureSetFromUrl as u,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as y,n as p,m as h,u as I,c as w,j as g,l as T,L as F,k as D,H as x,h as E,o as b,r as A,q as N,i as S,g as R,a2 as L,S as C}from"../../chunks/languageUtils.js";import{getPortal as Z}from"../portalUtils.js";import{SqlExpressionAdapted as $,StringToCodeAdapted as v,FieldRename as P,AdaptedFeatureSet as j,OriginalField as U}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import k from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import H from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import{WhereClause as K}from"../../core/sql/WhereClause.js";import V from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Y(e,n,t,i){if(1===i.length){if(b(i[0]))return q(e,i[0],-1);if(N(i[0]))return q(e,i[0].toArray(),-1)}return q(e,i,-1)}async function X(e,n,t){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await n.evaluateIdentifier(t,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function ee(e,n,t=null){for(const i in e)if(i.toLowerCase()===n.toLowerCase())return e[i];return t}function ne(e){if(null===e)return null;const n={type:ee(e,"type",""),name:ee(e,"name","")};if("range"===n.type)n.range=ee(e,"range",[]);else{n.codedValues=[];for(const t of ee(e,"codedValues",[]))n.codedValues.push({name:ee(t,"name",""),code:ee(t,"code",null)})}return n}function te(e){if(null===e)return null;const n={},t=ee(e,"wkt",null);null!==t&&(n.wkt=t);const i=ee(e,"wkid",null);return null!==i&&(n.wkid=i),n}function ie(e){if(null===e)return null;const n={hasZ:ee(e,"hasz",!1),hasM:ee(e,"hasm",!1)},t=ee(e,"spatialreference",null);t&&(n.spatialReference=te(t));const i=ee(e,"x",null);if(null!==i)return n.x=i,n.y=ee(e,"y",null),n;const a=ee(e,"rings",null);if(null!==a)return n.rings=a,n;const r=ee(e,"paths",null);if(null!==r)return n.paths=r,n;const o=ee(e,"points",null);if(null!==o)return n.points=o,n;for(const s of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const t=ee(e,s,null);null!==t&&(n[s]=t)}return n}function ae(e,n){for(const t of n)if(t===e)return!0;return!1}function re(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ae(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function oe(e){return"utc"===e?.toLowerCase()?"UTC":e}function se(q){"async"===q.mode&&(q.functions.timezone=function(n,r){return q.standardFunctionAsync(n,r,(async(o,s,l)=>{if(y(l,1,2,n,r),p(l[0]))return"unknown";if(h(l[0]))return"unknown";if(I(l[0])){if(await l[0].load(),1===l.length||null===l[1])return oe(l[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone);if(!(l[1]instanceof t)||!1===l[1].hasField("type"))throw new i(n,a.InvalidParameter,r);const e=l[1].field("type");if(!1===w(e))throw new i(n,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return oe(l[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone);case"editfieldsinfo":return oe(l[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone);case"timeinfo":return oe(l[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone);case"field":if(l[1].hasField("fieldname")&&w(l[1].field("fieldname")))return oe(l[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(l[1].field("fieldname"))))}throw new i(n,a.InvalidParameter,r)}const f=T(l[0],F(n));if(null===f)return null;const d=f.timeZone;return"system"===d?e.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":d}))},q.functions.sqltimestamp=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{y(o,1,3,e,n);const s=o[0];if(D(s)){if(1===o.length)return s.toSQLWithKeyword();if(2===o.length)return s.changeTimeZone(g(o[1])).toSQLWithKeyword();throw new i(e,a.InvalidParameter,n)}if(h(s))return s.toSQLWithKeyword();if(I(s)){if(3!==o.length)throw new i(e,a.InvalidParameter,n);await s.load();const t=g(o[1]);if(h(o[2]))return o[2].toSQLWithKeyword();if(!1===D(o[2]))throw new i(e,a.InvalidParameter,n);const r=s.fieldTimeZone(t);return null===r?o[2].toSQLWithKeyword():o[2].changeTimeZone(r).toSQLWithKeyword()}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"sqltimestamp",min:2,max:4}),q.functions.featuresetbyid=function(e,n){return q.standardFunctionAsync(e,n,((t,r,s)=>{if(y(s,2,4,e,n),s[0]instanceof o){const t=g(s[1]);let r=x(s[2],null);const o=E(x(s[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,n);return s[0].featureSetById(t,o,r)}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"featuresetbyid",min:2,max:4}),q.functions.getfeatureset=function(e,n){return q.standardFunctionAsync(e,n,((t,r,o)=>{if(y(o,1,2,e,n),A(o[0])){let n=x(o[1],"datasource");return null===n&&(n="datasource"),n=g(n).toLowerCase(),s(o[0].fullSchema(),n,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"getfeatureset",min:1,max:2}),q.functions.featuresetbyportalitem=function(e,t){return q.standardFunctionAsync(e,t,((r,o,s)=>{if(y(s,2,5,e,t),null===s[0])throw new i(e,a.PortalRequired,t);if(s[0]instanceof n){const n=g(s[1]),r=g(s[2]);let o=x(s[3],null);const f=E(x(s[4],!0));if(null===o&&(o=["*"]),!1===b(o))throw new i(e,a.InvalidParameter,t);let d=null;return d=e.services&&e.services.portal?e.services.portal:J.getDefault(),d=Z(s[0],d),l(n,r,e.spatialReference,o,f,d,e.lrucache,e.interceptor)}if(!1===w(s[0]))throw new i(e,a.PortalRequired,t);const f=g(s[0]),d=g(s[1]);let u=x(s[2],null);const c=E(x(s[3],!0));if(null===u&&(u=["*"]),!1===b(u))throw new i(e,a.InvalidParameter,t);return l(f,d,e.spatialReference,u,c,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},q.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),q.functions.featuresetbyname=function(e,n){return q.standardFunctionAsync(e,n,((t,r,s)=>{if(y(s,2,4,e,n),s[0]instanceof o){const t=g(s[1]);let r=x(s[2],null);const o=E(x(s[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,n);return s[0].featureSetByName(t,o,r)}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"featuresetbyname",min:2,max:4}),q.functions.featureset=function(e,n){return q.standardFunction(e,n,((r,o,s)=>{y(s,1,1,e,n);let l=s[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(w(l))l=JSON.parse(l),void 0!==l.layerDefinition?(f.layerDefinition=l.layerDefinition,f.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(f.featureSet.features=l.features,f.featureSet.geometryType=l.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=l.objectIdFieldName??"",f.layerDefinition.typeIdField=l.typeIdFieldName,f.layerDefinition.globalIdField=l.globalIdFieldName,f.layerDefinition.fields=l.fields,l.spatialReference&&(f.layerDefinition.spatialReference=l.spatialReference));else{if(!(s[0]instanceof t))throw new i(e,a.InvalidParameter,n);{l=JSON.parse(s[0].castToText(!0));const e=ee(l,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=ee(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=ee(e,"globalidfield",""),f.layerDefinition.objectIdField=ee(e,"objectidfield",""),f.layerDefinition.typeIdField=ee(e,"typeidfield",""),f.layerDefinition.hasZ=!0===ee(e,"hasz",!1),f.layerDefinition.hasM=!0===ee(e,"hasm",!1);const n=ee(e,"spatialreference",null);n&&(f.layerDefinition.spatialReference=te(n));for(const i of ee(e,"fields",[])){const e={name:ee(i,"name",""),alias:ee(i,"alias",""),type:ee(i,"type",""),nullable:ee(i,"nullable",!0),editable:ee(i,"editable",!0),length:ee(i,"length",null),domain:ne(ee(i,"domain"))};f.layerDefinition.fields.push(e)}const t=ee(l,"featureset",null);if(t){const e={};for(const n of f.layerDefinition.fields)e[n.name.toLowerCase()]=n.name;for(const n of ee(t,"features",[])){const t={},i=ee(n,"attributes",{});for(const n in i)t[e[n.toLowerCase()]]=i[n];f.featureSet.features.push({attributes:t,geometry:ie(ee(n,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===ee(l,"hasz",!1),f.layerDefinition.hasM=!0===ee(l,"hasm",!1),f.layerDefinition.geometryType=ee(l,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=ee(l,"objectidfieldname",""),f.layerDefinition.typeIdField=ee(l,"typeidfieldname","");const e=ee(l,"spatialreference",null);e&&(f.layerDefinition.spatialReference=te(e));let n=ee(l,"fields",null);if(b(n))for(const a of n){const e={name:ee(a,"name",""),alias:ee(a,"alias",""),type:ee(a,"type",""),nullable:ee(a,"nullable",!0),editable:ee(a,"editable",!0),length:ee(a,"length",null),domain:ne(ee(a,"domain"))};f.layerDefinition.fields.push(e)}else n=null,f.layerDefinition.fields=n;const t={};for(const a of f.layerDefinition.fields)t[a.name.toLowerCase()]=a.name;let i=ee(l,"features",null);if(b(i))for(const a of i){const e={},n=ee(a,"attributes",{});for(const i in n)e[t[i.toLowerCase()]]=n[i];f.featureSet.features.push({attributes:e,geometry:ie(ee(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===re(f))throw new i(e,a.InvalidParameter,n);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},q.signatures.push({name:"featureset",min:1,max:1}),q.functions.filter=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{if(y(o,2,2,e,n),b(o[0])||N(o[0])){const t=[];let r=o[0];r instanceof m&&(r=r.toArray());let s=null;if(!S(o[1]))throw new i(e,a.InvalidParameter,n);s=o[1].createFunction(e);for(const e of r){const n=s(e);B(n)?!0===await n&&t.push(e):!0===n&&t.push(e)}return t}if(I(o[0])){const n=await o[0].load(),t=K.create(o[1],n.getFieldsIndex(),{timeZone:n.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}),i=t.getVariables();if(i.length>0){const n=[];for(let t=0;t<i.length;t++){const a={name:i[t]};n.push(await q.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=n[e];return t.parameters=a,new M({parentfeatureset:o[0],whereclause:t})}return new M({parentfeatureset:o[0],whereclause:t})}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"filter",min:2,max:2}),q.functions.orderby=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{if(y(o,2,2,e,n),I(o[0])){const e=new H(o[1]);return new k({parentfeatureset:o[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"orderby",min:2,max:2}),q.functions.top=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{if(y(o,2,2,e,n),I(o[0]))return new O({parentfeatureset:o[0],topnum:o[1]});if(b(o[0]))return R(o[1])>=o[0].length?o[0].slice(0):o[0].slice(0,R(o[1]));if(N(o[0]))return R(o[1])>=o[0].length()?o[0].slice(0):o[0].slice(0,R(o[1]));throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"top",min:2,max:2}),q.functions.first=function(e,n){return q.standardFunctionAsync(e,n,(async(t,i,a)=>{if(y(a,1,1,e,n),I(a[0])){const n=await a[0].first(t.abortSignal);if(null!==n){const t=r.createFromGraphicLikeObject(n.geometry,n.attributes,a[0],e.timeReference);return t._underlyingGraphic=n,t}return n}return b(a[0])?0===a[0].length?null:a[0][0]:N(a[0])?0===a[0].length()?null:a[0].get(0):null}))},q.signatures.push({name:"first",min:1,max:1}),q.functions.attachments=function(e,n){return q.standardFunctionAsync(e,n,(async(r,o,s)=>{y(s,1,2,e,n);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(s.length>1)if(s[1]instanceof t){if(s[1].hasField("minsize")&&(l.minsize=R(s[1].field("minsize"))),s[1].hasField("metadata")&&(l.returnMetadata=E(s[1].field("metadata"))),s[1].hasField("maxsize")&&(l.maxsize=R(s[1].field("maxsize"))),s[1].hasField("types")){const e=L(s[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==s[1])throw new i(e,a.InvalidParameter,n);if(A(s[0])){let n=s[0]._layer;return n instanceof V&&(n=f(n,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===n?[]:!1===I(n)?[]:(await n.load(),n.queryAttachments(s[0].field(n.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===s[0])return[];throw new i(e,a.InvalidParameter,n)}))},q.signatures.push({name:"attachments",min:1,max:2}),q.functions.featuresetbyrelationshipname=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{y(o,2,4,e,n);const s=o[0],l=g(o[1]);let c=x(o[2],null);const m=E(x(o[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,n);if(null===o[0])return null;if(!A(o[0]))throw new i(e,a.InvalidParameter,n);let p=s._layer;if(p instanceof V&&(p=f(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===I(p))return null;p=await p.load();const h=p.relationshipMetaData().filter((e=>e.name===l));if(0===h.length)return null;if(void 0!==h[0].relationshipTableId&&null!==h[0].relationshipTableId&&h[0].relationshipTableId>-1)return d(p,h[0],s.field(p.objectIdField),p.spatialReference,c,m,e.lrucache,e.interceptor);let w=p.serviceUrl();if(!w)return null;w="/"===w.charAt(w.length-1)?w+h[0].relatedTableId.toString():w+"/"+h[0].relatedTableId.toString();const T=await u(w,p.spatialReference,c,m,e.lrucache,e.interceptor);await T.load();let F=T.relationshipMetaData();if(F=F.filter((e=>e.id===h[0].id)),!1===s.hasField(h[0].keyField)||null===s.field(h[0].keyField)){const e=await p.getFeatureByObjectId(s.field(p.objectIdField),[h[0].keyField]);if(e){const n=K.create(F[0].keyField+"= @id",T.getFieldsIndex(),{timeZone:T.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC});return n.parameters={id:e.attributes[h[0].keyField]},T.filter(n)}return new z({parentfeatureset:T})}const D=K.create(F[0].keyField+"= @id",T.getFieldsIndex(),{timeZone:T.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC});return D.parameters={id:s.field(h[0].keyField)},T.filter(D)}))},q.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),q.functions.featuresetbyassociation=function(e,n){return q.standardFunctionAsync(e,n,(async(t,r,o)=>{y(o,2,3,e,n);const s=o[0],l=g(x(o[1],"")).toLowerCase(),d=w(o[2])?g(o[2]):null;if(null===o[0])return null;if(!A(o[0]))throw new i(e,a.InvalidParameter,n);let u=s._layer;if(u instanceof V&&(u=f(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===I(u))return null;await u.load();const m=u.serviceUrl(),p=await c(m,e.spatialReference);let h=null,T=null,F=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of p.terminals)e.terminalName===d&&(T=e.terminalId);null===T&&(F=!0)}const D=p.associations.getFieldsIndex(),E=D.get("TOGLOBALID").name,b=D.get("FROMGLOBALID").name,N=D.get("TOTERMINALID").name,S=D.get("FROMTERMINALID").name,R=D.get("FROMNETWORKSOURCEID").name,L=D.get("TONETWORKSOURCEID").name,Z=D.get("ASSOCIATIONTYPE").name,M=D.get("ISCONTENTVISIBLE").name,k=D.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){h=s.field(e.name);break}let O=null,z=new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create("''",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}));const H="globalid",_="globalId",q={};for(const e in p.lkp)q[e]=p.lkp[e].sourceId;const B=new v(new Q({name:"classname",alias:"classname",type:"string"}),null,q);let J="";switch(l){case"midspan":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (5))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})),z=p.unVersion>=4?new U(j.findField(p.associations.fields,D.get("PERCENTALONG").name)):new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}));break}case"junctionedge":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (4,6))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create(`CASE WHEN (${Z}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}));break}case"connected":{let e=`${E}='@T'`,n=`${b}='@T'`;null!==T&&(e+=` AND ${N}=@A`,n+=` AND ${S}=@A`),J="(("+e+") OR ("+n+"))",J=C(J,"@T",h??""),e=C(e,"@T",h??""),null!==T&&(e=C(e,"@A",T.toString()),J=C(J,"@A",T.toString())),B.codefield=K.create("CASE WHEN "+e+` THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC});const t=G(j.findField(p.associations.fields,b));t.name=H,t.alias=H,O=new $(t,K.create("CASE WHEN "+e+` THEN ${b} ELSE ${E} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}));break}case"container":J=`${E}='${h}' AND ${Z} = 2`,null!==T&&(J+=` AND ${N} = `+T.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,H);break;case"content":J=`(${b}='${h}' AND ${Z} = 2)`,null!==T&&(J+=` AND ${S} = `+T.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,H);break;case"structure":J=`(${E}='${h}' AND ${Z} = 3)`,null!==T&&(J+=` AND ${N} = `+T.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,_);break;case"attached":J=`(${b}='${h}' AND ${Z} = 3)`,null!==T&&(J+=` AND ${S} = `+T.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,_);break;default:throw new i(e,a.InvalidParameter,n)}F&&(J="1 <> 1");return new j({parentfeatureset:p.associations,adaptedFields:[new U(j.findField(p.associations.fields,k)),new U(j.findField(p.associations.fields,M)),O,W,B,z],extraFilter:J?K.create(J,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}):null})}))},q.signatures.push({name:"featuresetbyassociation",min:2,max:6}),q.functions.groupby=function(e,n){return q.standardFunctionAsync(e,n,(async(r,o,s)=>{if(y(s,3,3,e,n),!I(s[0]))throw new i(e,a.InvalidParameter,n);const l=await s[0].load(),f=[],d=[];let u=!1,c=[];if(w(s[1]))c.push(s[1]);else if(s[1]instanceof t)c.push(s[1]);else if(b(s[1]))c=s[1];else{if(!N(s[1]))throw new i(e,a.InvalidParameter,n);c=s[1].toArray()}for(const m of c)if(w(m)){const e=K.create(g(m),l.getFieldsIndex(),{timeZone:l.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}),n=!0===_(e)?g(m):"%%%%FIELDNAME";f.push({name:n,expression:e}),"%%%%FIELDNAME"===n&&(u=!0)}else{if(!(m instanceof t))throw new i(e,a.InvalidParameter,n);{const t=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===t&&(u=!0),!t)throw new i(e,a.InvalidParameter,n);f.push({name:t,expression:K.create(r||t,l.getFieldsIndex(),{timeZone:l.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})})}}if(c=[],w(s[2]))c.push(s[2]);else if(b(s[2]))c=s[2];else if(N(s[2]))c=s[2].toArray();else{if(!(s[2]instanceof t))throw new i(e,a.InvalidParameter,n);c.push(s[2])}for(const m of c){if(!(m instanceof t))throw new i(e,a.InvalidParameter,n);{const t=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",o=m.hasField("expression")?m.field("expression"):"";if(!t||!r||!o)throw new i(e,a.InvalidParameter,n);d.push({name:t,statistic:r.toLowerCase(),expression:K.create(o,l.getFieldsIndex(),{timeZone:l.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})})}}if(u){const e={};for(const t of l.fields)e[t.name.toLowerCase()]=1;for(const t of f)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);for(const t of d)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);let n=0;for(const t of f)if("%%%%FIELDNAME"===t.name){for(;1===e["field_"+n.toString()];)n++;e["field_"+n.toString()]=1,t.name="FIELD_"+n.toString()}}for(const n of f)await X(n.expression,q,e);for(const n of d)await X(n.expression,q,e);return s[0].groupby(f,d)}))},q.signatures.push({name:"groupby",min:3,max:3}),q.functions.distinct=function(e,n){return q.standardFunctionAsync(e,n,(async(r,o,s)=>{if(I(s[0])){y(s,2,2,e,n);const r=await s[0].load(),o=[];let l=[];if(w(s[1]))l.push(s[1]);else if(s[1]instanceof t)l.push(s[1]);else if(b(s[1]))l=s[1];else{if(!N(s[1]))throw new i(e,a.InvalidParameter,n);l=s[1].toArray()}let f=!1;for(const s of l)if(w(s)){const e=K.create(g(s),r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}),n=!0===_(e)?g(s):"%%%%FIELDNAME";o.push({name:n,expression:e}),"%%%%FIELDNAME"===n&&(f=!0)}else{if(!(s instanceof t))throw new i(e,a.InvalidParameter,n);{const t=s.hasField("name")?s.field("name"):"%%%%FIELDNAME",l=s.hasField("expression")?s.field("expression"):"";if("%%%%FIELDNAME"===t&&(f=!0),!t)throw new i(e,a.InvalidParameter,n);o.push({name:t,expression:K.create(l||t,r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC})})}}if(f){const e={};for(const t of r.fields)e[t.name.toLowerCase()]=1;for(const t of o)"%%%%FIELDNAME"!==t.name&&(e[t.name.toLowerCase()]=1);let n=0;for(const t of o)if("%%%%FIELDNAME"===t.name){for(;1===e["field_"+n.toString()];)n++;e["field_"+n.toString()]=1,t.name="FIELD_"+n.toString()}}for(const n of o)await X(n.expression,q,e);return s[0].groupby(o,[])}return Y("distinct",r,o,s)}))})}export{se as registerFunctions};
5
+ import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as o,constructFeatureSet as f,constructFeatureSetFromRelationship as d,constructFeatureSetFromUrl as u,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as y,n as p,m as h,u as F,c as w,j as g,l as I,L as D,k as T,H as x,h as E,o as b,r as A,q as N,i as S,g as R,a2 as L,S as C}from"../../chunks/languageUtils.js";import{getPortal as Z}from"../portalUtils.js";import{SqlExpressionAdapted as $,StringToCodeAdapted as v,FieldRename as P,AdaptedFeatureSet as j,OriginalField as U}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import k from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import H from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import{WhereClause as K}from"../../core/sql/WhereClause.js";import V from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Y(e,t,n,i){if(1===i.length){if(b(i[0]))return q(e,i[0],-1);if(N(i[0]))return q(e,i[0].toArray(),-1)}return q(e,i,-1)}async function X(e,t,n){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function ee(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function te(e){if(null===e)return null;const t={type:ee(e,"type",""),name:ee(e,"name","")};if("range"===t.type)t.range=ee(e,"range",[]);else{t.codedValues=[];for(const n of ee(e,"codedValues",[]))t.codedValues.push({name:ee(n,"name",""),code:ee(n,"code",null)})}return t}function ne(e){if(null===e)return null;const t={},n=ee(e,"wkt",null);null!==n&&(t.wkt=n);const i=ee(e,"wkid",null);return null!==i&&(t.wkid=i),t}function ie(e){if(null===e)return null;const t={hasZ:ee(e,"hasz",!1),hasM:ee(e,"hasm",!1)},n=ee(e,"spatialreference",null);n&&(t.spatialReference=ne(n));const i=ee(e,"x",null);if(null!==i)return t.x=i,t.y=ee(e,"y",null),t;const a=ee(e,"rings",null);if(null!==a)return t.rings=a,t;const r=ee(e,"paths",null);if(null!==r)return t.paths=r,t;const s=ee(e,"points",null);if(null!==s)return t.points=s,t;for(const l of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=ee(e,l,null);null!==n&&(t[l]=n)}return t}function ae(e,t){for(const n of t)if(n===e)return!0;return!1}function re(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ae(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function se(e){return"utc"===e?.toLowerCase()?"UTC":e}function le(q){"async"===q.mode&&(q.functions.timezone=function(t,r){return q.standardFunctionAsync(t,r,(async(s,l,o)=>{if(y(o,1,2,t,r),p(o[0]))return"unknown";if(h(o[0]))return"unknown";if(F(o[0])){if(await o[0].load(),1===o.length||null===o[1])return se(o[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone);if(!(o[1]instanceof n)||!1===o[1].hasField("type"))throw new i(t,a.InvalidParameter,r);const e=o[1].field("type");if(!1===w(e))throw new i(t,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return se(o[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone);case"editfieldsinfo":return se(o[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone);case"timeinfo":return se(o[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone);case"field":if(o[1].hasField("fieldname")&&w(o[1].field("fieldname")))return se(o[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(o[1].field("fieldname"))))}throw new i(t,a.InvalidParameter,r)}const f=I(o[0],D(t));if(null===f)return null;const d=f.timeZone;return"system"===d?e.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":d}))},q.functions.sqltimestamp=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,1,3,e,t);const l=s[0];if(T(l)){if(1===s.length)return l.toSQLWithKeyword();if(2===s.length)return l.changeTimeZone(g(s[1])).toSQLWithKeyword();throw new i(e,a.InvalidParameter,t)}if(h(l))return l.toSQLWithKeyword();if(F(l)){if(3!==s.length)throw new i(e,a.InvalidParameter,t);await l.load();const n=g(s[1]);if(h(s[2]))return s[2].toSQLWithKeyword();if(!1===T(s[2]))throw new i(e,a.InvalidParameter,t);const r=l.fieldTimeZone(n);return null===r?s[2].toSQLWithKeyword():s[2].changeTimeZone(r).toSQLWithKeyword()}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"sqltimestamp",min:2,max:4}),q.functions.featuresetbyid=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetById(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyid",min:2,max:4}),q.functions.getfeatureset=function(e,t){return q.standardFunctionAsync(e,t,((n,r,s)=>{if(y(s,1,2,e,t),A(s[0])){let t=x(s[1],"datasource");return null===t&&(t="datasource"),t=g(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"getfeatureset",min:1,max:2}),q.functions.featuresetbyportalitem=function(e,n){return q.standardFunctionAsync(e,n,((r,s,l)=>{if(y(l,2,5,e,n),null===l[0])throw new i(e,a.PortalRequired,n);if(l[0]instanceof t){const t=g(l[1]),r=g(l[2]);let s=x(l[3],null);const f=E(x(l[4],!0));if(null===s&&(s=["*"]),!1===b(s))throw new i(e,a.InvalidParameter,n);let d=null;return d=e.services&&e.services.portal?e.services.portal:J.getDefault(),d=Z(l[0],d),o(t,r,e.spatialReference,s,f,d,e.lrucache,e.interceptor)}if(!1===w(l[0]))throw new i(e,a.PortalRequired,n);const f=g(l[0]),d=g(l[1]);let u=x(l[2],null);const c=E(x(l[3],!0));if(null===u&&(u=["*"]),!1===b(u))throw new i(e,a.InvalidParameter,n);return o(f,d,e.spatialReference,u,c,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},q.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),q.functions.featuresetbyname=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetByName(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyname",min:2,max:4}),q.functions.featureset=function(e,t){return q.standardFunction(e,t,((r,s,l)=>{y(l,1,1,e,t);let o=l[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(w(o))o=JSON.parse(o),void 0!==o.layerDefinition?(f.layerDefinition=o.layerDefinition,f.featureSet=o.featureSet,o.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=o.layerDefinition.spatialReference)):(f.featureSet.features=o.features,f.featureSet.geometryType=o.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=o.objectIdFieldName??"",f.layerDefinition.typeIdField=o.typeIdFieldName,f.layerDefinition.globalIdField=o.globalIdFieldName,f.layerDefinition.fields=o.fields,o.spatialReference&&(f.layerDefinition.spatialReference=o.spatialReference));else{if(!(l[0]instanceof n))throw new i(e,a.InvalidParameter,t);{o=JSON.parse(l[0].castToText(!0));const e=ee(o,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=ee(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=ee(e,"globalidfield",""),f.layerDefinition.objectIdField=ee(e,"objectidfield",""),f.layerDefinition.typeIdField=ee(e,"typeidfield",""),f.layerDefinition.hasZ=!0===ee(e,"hasz",!1),f.layerDefinition.hasM=!0===ee(e,"hasm",!1);const t=ee(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ne(t));for(const i of ee(e,"fields",[])){const e={name:ee(i,"name",""),alias:ee(i,"alias",""),type:ee(i,"type",""),nullable:ee(i,"nullable",!0),editable:ee(i,"editable",!0),length:ee(i,"length",null),domain:te(ee(i,"domain"))};f.layerDefinition.fields.push(e)}const n=ee(o,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of ee(n,"features",[])){const n={},i=ee(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:ie(ee(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===ee(o,"hasz",!1),f.layerDefinition.hasM=!0===ee(o,"hasm",!1),f.layerDefinition.geometryType=ee(o,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=ee(o,"objectidfieldname",""),f.layerDefinition.typeIdField=ee(o,"typeidfieldname","");const e=ee(o,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ne(e));let t=ee(o,"fields",null);if(b(t))for(const a of t){const e={name:ee(a,"name",""),alias:ee(a,"alias",""),type:ee(a,"type",""),nullable:ee(a,"nullable",!0),editable:ee(a,"editable",!0),length:ee(a,"length",null),domain:te(ee(a,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const a of f.layerDefinition.fields)n[a.name.toLowerCase()]=a.name;let i=ee(o,"features",null);if(b(i))for(const a of i){const e={},t=ee(a,"attributes",{});for(const i in t)e[n[i.toLowerCase()]]=t[i];f.featureSet.features.push({attributes:e,geometry:ie(ee(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===re(f))throw new i(e,a.InvalidParameter,t);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},q.signatures.push({name:"featureset",min:1,max:1}),q.functions.filter=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),b(s[0])||N(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let l=null;if(!S(s[1]))throw new i(e,a.InvalidParameter,t);l=s[1].createFunction(e);for(const e of r){const t=l(e);B(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(F(s[0])){const t=await s[0].load(),n=K.create(s[1],t.getFieldsIndex(),{timeZone:t.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),i=n.getVariables();if(i.length>0){const t=[];for(let n=0;n<i.length;n++){const a={name:i[n]};t.push(await q.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new M({parentfeatureset:s[0],whereclause:n})}return new M({parentfeatureset:s[0],whereclause:n})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"filter",min:2,max:2}),q.functions.orderby=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),F(s[0])){const e=new H(s[1]);return new k({parentfeatureset:s[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"orderby",min:2,max:2}),q.functions.top=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),F(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(b(s[0]))return R(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,R(s[1]));if(N(s[0]))return R(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,R(s[1]));throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"top",min:2,max:2}),q.functions.first=function(e,t){return q.standardFunctionAsync(e,t,(async(n,i,a)=>{if(y(a,1,1,e,t),F(a[0])){const t=await a[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,a[0],e.timeReference);return n._underlyingGraphic=t,n}return t}return b(a[0])?0===a[0].length?null:a[0][0]:N(a[0])?0===a[0].length()?null:a[0].get(0):null}))},q.signatures.push({name:"first",min:1,max:1}),q.functions.attachments=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{y(l,1,2,e,t);const o={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(l.length>1)if(l[1]instanceof n){if(l[1].hasField("minsize")&&(o.minsize=R(l[1].field("minsize"))),l[1].hasField("metadata")&&(o.returnMetadata=E(l[1].field("metadata"))),l[1].hasField("maxsize")&&(o.maxsize=R(l[1].field("maxsize"))),l[1].hasField("types")){const e=L(l[1].field("types"),!1);e.length>0&&(o.types=e)}}else if(null!==l[1])throw new i(e,a.InvalidParameter,t);if(A(l[0])){let t=l[0]._layer;return t instanceof V&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===F(t)?[]:(await t.load(),t.queryAttachments(l[0].field(t.objectIdField),o.minsize,o.maxsize,o.types,o.returnMetadata))}if(null===l[0])return[];throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"attachments",min:1,max:2}),q.functions.featuresetbyrelationshipname=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,4,e,t);const l=s[0],o=g(s[1]);let c=x(s[2],null);const m=E(x(s[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,t);if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let p=l._layer;if(p instanceof V&&(p=f(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===F(p))return null;p=await p.load();const h=p.relationshipMetaData().filter((e=>e.name===o));if(0===h.length)return null;if(void 0!==h[0].relationshipTableId&&null!==h[0].relationshipTableId&&h[0].relationshipTableId>-1)return d(p,h[0],l.field(p.objectIdField),p.spatialReference,c,m,e.lrucache,e.interceptor);let w=p.serviceUrl();if(!w)return null;w="/"===w.charAt(w.length-1)?w+h[0].relatedTableId.toString():w+"/"+h[0].relatedTableId.toString();const I=await u(w,p.spatialReference,c,m,e.lrucache,e.interceptor);await I.load();let D=I.relationshipMetaData();if(D=D.filter((e=>e.id===h[0].id)),!1===l.hasField(h[0].keyField)||null===l.field(h[0].keyField)){const e=await p.getFeatureByObjectId(l.field(p.objectIdField),[h[0].keyField]);if(e){const t=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),{timeZone:I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[h[0].keyField]},I.filter(t)}return new z({parentfeatureset:I})}const T=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),{timeZone:I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});return T.parameters={id:l.field(h[0].keyField)},I.filter(T)}))},q.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),q.functions.featuresetbyassociation=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,3,e,t);const l=s[0],o=g(x(s[1],"")).toLowerCase(),d=w(s[2])?g(s[2]):null;if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let u=l._layer;if(u instanceof V&&(u=f(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===F(u))return null;await u.load();const m=u.serviceUrl(),p=await c(m,e.spatialReference);let h=null,I=null,D=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of p.terminals)e.terminalName===d&&(I=e.terminalId);null===I&&(D=!0)}const T=p.associations.getFieldsIndex(),E=T.get("TOGLOBALID").name,b=T.get("FROMGLOBALID").name,N=T.get("TOTERMINALID").name,S=T.get("FROMTERMINALID").name,R=T.get("FROMNETWORKSOURCEID").name,L=T.get("TONETWORKSOURCEID").name,Z=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,k=T.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){h=l.field(e.name);break}let O=null,z=new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create("''",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));const H="globalid",_="globalId",q={};for(const e in p.lkp)q[e]=p.lkp[e].sourceId;const B=new v(new Q({name:"classname",alias:"classname",type:"string"}),null,q);let J="";switch(o){case"midspan":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (5))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),z=p.unVersion>=4?new U(j.findField(p.associations.fields,T.get("PERCENTALONG").name)):new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (4,6))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create(`CASE WHEN (${Z}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${E}='@T'`,t=`${b}='@T'`;null!==I&&(e+=` AND ${N}=@A`,t+=` AND ${S}=@A`),J="(("+e+") OR ("+t+"))",J=C(J,"@T",h??""),e=C(e,"@T",h??""),null!==I&&(e=C(e,"@A",I.toString()),J=C(J,"@A",I.toString())),B.codefield=K.create("CASE WHEN "+e+` THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const n=G(j.findField(p.associations.fields,b));n.name=H,n.alias=H,O=new $(n,K.create("CASE WHEN "+e+` THEN ${b} ELSE ${E} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"container":J=`${E}='${h}' AND ${Z} = 2`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,H);break;case"content":J=`(${b}='${h}' AND ${Z} = 2)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,H);break;case"structure":J=`(${E}='${h}' AND ${Z} = 3)`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,_);break;case"attached":J=`(${b}='${h}' AND ${Z} = 3)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,_);break;default:throw new i(e,a.InvalidParameter,t)}D&&(J="1 <> 1");return new j({parentfeatureset:p.associations,adaptedFields:[new U(j.findField(p.associations.fields,k)),new U(j.findField(p.associations.fields,M)),O,W,B,z],extraFilter:J?K.create(J,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}):null})}))},q.signatures.push({name:"featuresetbyassociation",min:2,max:6}),q.functions.groupby=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(y(l,3,3,e,t),!F(l[0]))throw new i(e,a.InvalidParameter,t);const o=await l[0].load(),f=[],d=[];let u=!1,c=[];if(w(l[1]))c.push(l[1]);else if(l[1]instanceof n)c.push(l[1]);else if(b(l[1]))c=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);c=l[1].toArray()}for(const m of c)if(w(m)){const e=K.create(g(m),o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),t=!0===_(e)?g(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(u=!0)}else{if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(u=!0),!n)throw new i(e,a.InvalidParameter,t);f.push({name:n,expression:K.create(r||n,o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(c=[],w(l[2]))c.push(l[2]);else if(b(l[2]))c=l[2];else if(N(l[2]))c=l[2].toArray();else{if(!(l[2]instanceof n))throw new i(e,a.InvalidParameter,t);c.push(l[2])}for(const m of c){if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new i(e,a.InvalidParameter,t);d.push({name:n,statistic:r.toLowerCase(),expression:K.create(s,o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(u){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of 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 t of f)await X(t.expression,q,e);for(const t of d)await X(t.expression,q,e);return l[0].groupby(f,d)}))},q.signatures.push({name:"groupby",min:3,max:3}),q.functions.distinct=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(F(l[0])){y(l,2,2,e,t);const r=await l[0].load(),s=[];let o=[];if(w(l[1]))o.push(l[1]);else if(l[1]instanceof n)o.push(l[1]);else if(b(l[1]))o=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);o=l[1].toArray()}let f=!1;for(const l of o)if(w(l)){const e=K.create(g(l),r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),t=!0===_(e)?g(l):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(l instanceof n))throw new i(e,a.InvalidParameter,t);{const n=l.hasField("name")?l.field("name"):"%%%%FIELDNAME",o=l.hasField("expression")?l.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new i(e,a.InvalidParameter,t);s.push({name:n,expression:K.create(o||n,r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await X(t.expression,q,e);return l[0].groupby(s,[])}return Y("distinct",r,s,l)}))})}export{le as registerFunctions};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import{ArcadeDate as n}from"../ArcadeDate.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as e}from"../executionError.js";import{E as a,u as r,o as i,c as o,q as s,H as c,L as u}from"../../chunks/languageUtils.js";import{calculateStat as f}from"./fieldStats.js";import{SqlTimeStampOffset as d}from"../../core/sql/SqlTimestampOffset.js";import{WhereClause as l}from"../../core/sql/WhereClause.js";async function m(n,t,e,a,o,u){if(1===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1))}else if(2===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1));if(r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),{timeZone:e.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}}else if(3===a.length&&r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),{timeZone:e.dateTimeReferenceFieldIndex.layerTimeInfoTimeZoneDefaultUTC}),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}return f(n,a,-1)}function g(t,e){return e instanceof d?n.fromReaderAsTimeStampOffset(e.toStorageFormat()):e instanceof Date?n.dateJSAndZoneToArcadeDate(e,u(t)):e}async function y(n,t,e){const a=n.getVariables();if(a.length>0){const r=[];for(let n=0;n<a.length;n++){const i={name:a[n]};r.push(await t.evaluateIdentifier(e,i))}const i={};for(let n=0;n<a.length;n++)i[a[n]]=r[n];return n.parameters=i,n}return n}function A(n){"async"===n.mode&&(n.functions.stdev=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("stdev",e,a,r,t,n)))},n.functions.variance=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("variance",e,a,r,t,n)))},n.functions.average=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.mean=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.sum=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("sum",e,a,r,t,n)))},n.functions.min=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("min",e,a,r,t,n)))},n.functions.max=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("max",e,a,r,t,n)))},n.functions.count=function(c,u){return n.standardFunctionAsync(c,u,((n,f,d)=>{if(a(d,1,1,c,u),r(d[0]))return d[0].count(n.abortSignal);if(i(d[0])||o(d[0]))return d[0].length;if(s(d[0]))return d[0].length();throw new t(c,e.InvalidParameter,u)}))})}export{A as registerFunctions};
5
+ import{ArcadeDate as n}from"../ArcadeDate.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as e}from"../executionError.js";import{E as a,u as r,o as i,c as o,q as s,H as c,L as u}from"../../chunks/languageUtils.js";import{calculateStat as f}from"./fieldStats.js";import{SqlTimeStampOffset as d}from"../../core/sql/SqlTimestampOffset.js";import{WhereClause as l}from"../../core/sql/WhereClause.js";async function m(n,t,e,a,o,u){if(1===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1))}else if(2===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1));if(r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),{timeZone:e.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}}else if(3===a.length&&r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),{timeZone:e.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}return f(n,a,-1)}function g(t,e){return e instanceof d?n.fromReaderAsTimeStampOffset(e.toStorageFormat()):e instanceof Date?n.dateJSAndZoneToArcadeDate(e,u(t)):e}async function y(n,t,e){const a=n.getVariables();if(a.length>0){const r=[];for(let n=0;n<a.length;n++){const i={name:a[n]};r.push(await t.evaluateIdentifier(e,i))}const i={};for(let n=0;n<a.length;n++)i[a[n]]=r[n];return n.parameters=i,n}return n}function F(n){"async"===n.mode&&(n.functions.stdev=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("stdev",e,a,r,t,n)))},n.functions.variance=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("variance",e,a,r,t,n)))},n.functions.average=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.mean=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.sum=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("sum",e,a,r,t,n)))},n.functions.min=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("min",e,a,r,t,n)))},n.functions.max=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("max",e,a,r,t,n)))},n.functions.count=function(c,u){return n.standardFunctionAsync(c,u,((n,f,d)=>{if(a(d,1,1,c,u),r(d[0]))return d[0].count(n.abortSignal);if(i(d[0])||o(d[0]))return d[0].length;if(s(d[0]))return d[0].length();throw new t(c,e.InvalidParameter,u)}))})}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.28/esri/copyright.txt for details.
4
4
  */
5
- import t from"../ArcadePortal.js";import e from"../Attachment.js";import r from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as a}from"../executionError.js";import{E as o,j as i,N as u,g as s,T as l,x as d,H as p,h as c,t as f,o as h,q as y,S as m,r as g,U as A,L as w,V as I,W as v,X as U,Y as b,c as j,Z as x,k as N,m as P,n as F,a as T,b as C,i as O,u as L,s as k}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as S}from"../featureset/support/shared.js";import{convertDirection as z}from"./convertdirection.js";import{XXH as D}from"./hash.js";import{hasSamePortal as R}from"../../core/urlUtils.js";import H from"../../geometry/Extent.js";import M from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import J from"../../geometry/Polygon.js";import V from"../../geometry/Polyline.js";import E from"../../geometry/SpatialReference.js";import Z from"../../portal/Portal.js";function B(t){if("loaded"===t.loadStatus&&t.user&&t.user.sourceJSON){return t.user.sourceJSON}return null}function q(t,e){return!!t&&R(t,e?.restUrl||"")}function X(t,e){if(!t||!e)return t===e;if(t.x===e.x&&t.y===e.y){if(t.hasZ){if(t.z!==e.z)return!1}else if(e.hasZ)return!1;if(t.hasM){if(t.m!==e.m)return!1}else if(e.hasM)return!1;return!0}return!1}function Y(o,i,u){if(null!==o)if(h(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o)Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else if(y(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.toArray())Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else{if(N(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([241]);if(P(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([257]);if(F(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([263]);if(j(o))return i.updateIntArray([o.length]),i.updateWithString(o),void i.updateUint8Array([41]);if(T(o))i.updateUint8Array([!0===o?1:0,113]);else{if(C(o))return i.updateFloatArray([o]),void i.updateUint8Array([173]);if(o instanceof e)throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof t)throw new n(u.context,a.UnsupportedHashType,u.node);if(!(o instanceof r)){if(g(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof W)return i.updateIntArray([3833836621]),i.updateIntArray([0]),i.updateFloatArray([o.x]),i.updateIntArray([1]),i.updateFloatArray([o.y]),o.hasZ&&(i.updateIntArray([2]),i.updateFloatArray([o.z])),o.hasM&&(i.updateIntArray([3]),i.updateFloatArray([o.m])),i.updateIntArray([3765347959]),void Y(o.spatialReference.wkid,i,u);if(o instanceof J){i.updateIntArray([1266616829]);for(let t=0;t<o.rings.length;t++){const e=o.rings[t],r=[];let n=null,a=null;for(let i=0;i<e.length;i++){const u=o.getPoint(t,i);if(0===i)n=u;else if(X(a,u))continue;a=u,i===e.length-1&&X(n,u)||r.push(u)}i.updateIntArray([1397116793,r.length]);for(let t=0;t<r.length;t++){const e=r[t];i.updateIntArray([3962308117,t]),Y(e,i,u),i.updateIntArray([2716288009])}i.updateIntArray([2278822459])}return i.updateIntArray([3878477243]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof V){i.updateIntArray([4106883559]);for(let t=0;t<o.paths.length;t++){const e=o.paths[t];i.updateIntArray([1397116793,e.length]);for(let r=0;r<e.length;r++)i.updateIntArray([3962308117,r]),Y(o.getPoint(t,r),i,u),i.updateIntArray([2716288009]);i.updateIntArray([2278822459])}return i.updateIntArray([2568784753]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof M){i.updateIntArray([588535921,o.points.length]);for(let t=0;t<o.points.length;t++){const e=o.getPoint(t);i.updateIntArray([t]),Y(e,i,u)}return i.updateIntArray([1700171621]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof H)return i.updateIntArray([3483648373]),i.updateIntArray([0]),i.updateFloatArray([o.xmax]),i.updateIntArray([1]),i.updateFloatArray([o.xmin]),i.updateIntArray([2]),i.updateFloatArray([o.ymax]),i.updateIntArray([3]),i.updateFloatArray([o.ymin]),o.hasZ&&(i.updateIntArray([4]),i.updateFloatArray([o.zmax]),i.updateIntArray([5]),i.updateFloatArray([o.zmin])),o.hasM&&(i.updateIntArray([6]),i.updateFloatArray([o.mmax]),i.updateIntArray([7]),i.updateFloatArray([o.mmin])),i.updateIntArray([3622027469]),void Y(o.spatialReference.wkid,i,u);if(o instanceof E)return i.updateIntArray([14]),void 0!==o.wkid&&null!==o.wkid&&i.updateIntArray([o.wkid]),void(o.wkt&&i.updateWithString(o.wkt));if(O(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(L(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(k(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o===d)throw new n(u.context,a.UnsupportedHashType,u.node);throw new n(u.context,a.UnsupportedHashType,u.node)}if(i.updateUint8Array([223]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.keys()){i.updateIntArray([t.length]),i.updateWithString(t),i.updateUint8Array([251]);Y(o.field(t),i,u),i.updateUint8Array([239])}u.map.delete(o),u.currentLength--}i.updateUint8Array([73])}}else i.updateUint8Array([0,139])}function $(e,N){e.portal=function(e,r){return N(e,r,((n,a,u)=>(o(u,1,1,e,r),new t(i(u[0])))))},e.typeof=function(t,e){return N(t,e,((r,i,s)=>{o(s,1,1,t,e);const l=u(s[0]);if("Unrecognized Type"===l)throw new n(t,a.UnrecognizedType,e);return l}))},e.trim=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).trim())))},e.tohex=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=s(a[0]);return isNaN(i)?i:i.toString(16)}))},e.upper=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toUpperCase())))},e.proper=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,2,t,e);let u=1;2===a.length&&"firstword"===i(a[1]).toLowerCase()&&(u=2);const s=/\s/,l=i(a[0]);let d="",p=!0;for(let t=0;t<l.length;t++){let e=l[t];if(s.test(e))1===u&&(p=!0);else{e.toUpperCase()!==e.toLowerCase()&&(p?(e=e.toUpperCase(),p=!1):e=e.toLowerCase())}d+=e}return d}))},e.lower=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toLowerCase())))},e.guid=function(t,e){return N(t,e,((r,n,a)=>{if(o(a,0,1,t,e),a.length>0)switch(i(a[0]).toLowerCase()){case"digits":return l().replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return l();case"digits-hyphen-braces":return"{"+l()+"}";case"digits-hyphen-parentheses":return"("+l()+")"}return"{"+l()+"}"}))},e.standardizeguid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=i(a[0]);if(""===u||null===u)return"";const s=/^(\{|\()?(?<partA>[0-9a-z]{8})(\-?)(?<partB>[0-9a-z]{4})(\-?)(?<partC>[0-9a-z]{4})(\-?)(?<partD>[0-9a-z]{4})(\-?)(?<partE>[0-9a-z]{12})(\}|\))?$/gim.exec(u);if(!s)return"";const l=s.groups;switch(u=l.partA+"-"+l.partB+"-"+l.partC+"-"+l.partD+"-"+l.partE,i(a[1]).toLowerCase()){case"digits":return u.replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return u;case"digits-hyphen-braces":return"{"+u+"}";case"digits-hyphen-parentheses":return"("+u+")"}return"{"+u+"}"}))},e.console=function(t,e){return N(t,e,((e,r,n)=>(0===n.length||(1===n.length?t.console(i(n[0])):t.console(i(n))),d)))},e.mid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=s(a[1]);if(isNaN(u))return"";if(u<0&&(u=0),2===a.length)return i(a[0]).substr(u);let l=s(a[2]);return isNaN(l)?"":(l<0&&(l=0),i(a[0]).substr(u,l))}))},e.find=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=0;if(a.length>2){if(u=s(p(a[2],0)),isNaN(u))return-1;u<0&&(u=0)}return i(a[1]).indexOf(i(a[0]),u)}))},e.left=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(0,u))}))},e.right=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(-1*u,u))}))},e.split=function(t,e){return N(t,e,((r,n,a)=>{let u;o(a,2,4,t,e);let l=s(p(a[2],-1));const d=c(p(a[3],!1));if(-1===l||null===l||!0===d?u=i(a[0]).split(i(a[1])):(isNaN(l)&&(l=-1),l<-1&&(l=-1),u=i(a[0]).split(i(a[1]),l)),!1===d)return u;const f=[];for(let t=0;t<u.length&&!(-1!==l&&f.length>=l);t++)""!==u[t]&&void 0!==u[t]&&f.push(u[t]);return f}))},e.text=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,2,t,e),f(a[0],a[1]))))},e.concatenate=function(t,e){return N(t,e,((t,e,r)=>{const n=[];if(r.length<1)return"";if(h(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length;e++)n[e]=f(r[0][e],t);return r.length>1?n.join(r[1]):n.join("")}if(y(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length();e++)n[e]=f(r[0].get(e),t);return r.length>1?n.join(r[1]):n.join("")}for(let a=0;a<r.length;a++)n[a]=f(r[a]);return n.join("")}))},e.reverse=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),h(u[0])){const t=u[0].slice(0);return t.reverse(),t}if(y(u[0])){const t=u[0].toArray().slice(0);return t.reverse(),t}throw new n(t,a.InvalidParameter,e)}))},e.replace=function(t,e){return N(t,e,((r,n,a)=>{o(a,3,4,t,e);const u=i(a[0]),s=i(a[1]),l=i(a[2]);return 4!==a.length||c(a[3])?m(u,s,l):u.replace(s,l)}))},e.schema=function(t,e){return N(t,e,((o,i,u)=>{if(g(u[0])){const e=A(u[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypes=function(t,e){return N(t,e,((i,u,s)=>{if(o(s,1,1,t,e),g(s[0])){const e=I(s[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypecode=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return null;if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.code;return null}return null}throw new n(t,a.InvalidParameter,e)}))},e.subtypename=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return"";if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.name;return""}return""}throw new n(t,a.InvalidParameter,e)}))},e.gdbversion=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0]))return u[0].gdbVersion();throw new n(t,a.InvalidParameter,e)}))},e.domain=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,2,3,t,e),g(l[0])){const e=v(l[0],i(l[1]),void 0===l[2]?void 0:l[2]);return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?r.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:S[e.field.type],codedValues:e.domain.codedValues.map((t=>({name:t.name,code:t.code})))},w(t)):r.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:S[e.field.type],min:e.domain.min,max:e.domain.max},w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.domainname=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return U(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.domaincode=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return b(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.urlencode=function(t,e){return N(t,e,((n,a,u)=>{if(o(u,1,1,t,e),null===u[0])return"";if(u[0]instanceof r){let t="";for(const e of u[0].keys()){const r=u[0].field(e);""!==t&&(t+="&"),t+=null===r?encodeURIComponent(e)+"=":encodeURIComponent(e)+"="+encodeURIComponent(r)}return t}return encodeURIComponent(i(u[0]))}))},e.hash=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=new D(0);return Y(a[0],i,{context:t,node:e,map:new Map,currentLength:0}),i.digest()}))},e.convertdirection=function(t,e){return N(t,e,((r,n,a)=>(o(a,3,3,t,e),z(a[0],a[1],a[2]))))},e.fromjson=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,1,1,t,e),!1===j(l[0]))throw new n(t,a.InvalidParameter,e);return r.convertJsonToArcade(JSON.parse(i(l[0])),w(t))}))},e.expects=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);return d}))},e.tocharcode=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.charCodeAt(d)}))},e.tocodepoint=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.codePointAt(d)}))},e.fromcharcode=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);const u=i.map((t=>Math.trunc(s(t)))).filter((t=>t>=0&&t<=65535));return 0===u.length?null:String.fromCharCode.apply(null,u)}))},e.fromcodepoint=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);let u;try{u=i.map((t=>Math.trunc(s(t)))).filter((t=>t<=1114111&&t>>>0===t))}catch(l){return null}return 0===u.length?null:String.fromCodePoint.apply(null,u)}))},e.getuser=function(e,u){return N(e,u,((s,l,d)=>{o(d,0,2,e,u);let c=p(d[1],"");if(c=!0===c||!1===c?"":i(c),null!==c&&""!==c)return null;if(0===d.length||d[0]instanceof t){let t=null;if(t=e.services&&e.services.portal?e.services.portal:Z.getDefault(),d.length>0){if(!q(d[0].field("url"),t))return null}if(!t)return null;if(""===c){const n=B(t);if(n){const t=JSON.parse(JSON.stringify(n));for(const e of["lastLogin","created","modified"])void 0!==t[e]&&null!==t[e]&&(t[e]=new Date(t[e]));return r.convertObjectToArcadeDictionary(t,w(e))}}return null}throw new n(e,a.InvalidParameter,u)}))},e.getenvironment=function(t,e){return N(t,e,((n,a,i)=>(o(i,0,0,t,e),r.convertObjectToArcadeDictionary(x(w(t),t.spatialReference),w(t),!0))))}}export{$ as registerFunctions};
5
+ import t from"../ArcadePortal.js";import e from"../Attachment.js";import r from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as a}from"../executionError.js";import{E as o,j as i,N as u,g as s,T as l,x as d,H as p,h as c,t as f,o as h,q as y,S as m,r as g,U as A,L as w,V as I,W as v,X as U,Y as b,c as j,Z as x,k as N,m as P,n as F,a as T,b as C,i as O,u as L,s as k}from"../../chunks/languageUtils.js";import{layerFieldEsriConstants as S}from"../featureset/support/shared.js";import{convertDirection as z}from"./convertdirection.js";import{XXH as D}from"./hash.js";import{hasSamePortal as R}from"../../core/urlUtils.js";import H from"../../geometry/Extent.js";import M from"../../geometry/Multipoint.js";import W from"../../geometry/Point.js";import J from"../../geometry/Polygon.js";import V from"../../geometry/Polyline.js";import E from"../../geometry/SpatialReference.js";import Z from"../../portal/Portal.js";function B(t){if("loaded"===t.loadStatus&&t.user&&t.user.sourceJSON){return t.user.sourceJSON}return null}function q(t,e){return!!t&&R(t,e?.restUrl||"")}function X(t,e){if(!t||!e)return t===e;if(t.x===e.x&&t.y===e.y){if(t.hasZ){if(t.z!==e.z)return!1}else if(e.hasZ)return!1;if(t.hasM){if(t.m!==e.m)return!1}else if(e.hasM)return!1;return!0}return!1}function Y(o,i,u){if(null!==o)if(h(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o)Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else if(y(o)){if(i.updateUint8Array([61]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.toArray())Y(t,i,u);u.map.delete(o),u.currentLength--}i.updateUint8Array([199])}else{if(N(o))return i.updateIntArray([o.toNumber()]),void i.updateUint8Array([241]);if(P(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([257]);if(F(o))return i.updateIntArray([o.toNumber()]),void i.updateIntArray([263]);if(j(o))return i.updateIntArray([o.length]),i.updateWithString(o),void i.updateUint8Array([41]);if(T(o))i.updateUint8Array([!0===o?1:0,113]);else{if(C(o))return i.updateFloatArray([o]),void i.updateUint8Array([173]);if(o instanceof e)throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof t)throw new n(u.context,a.UnsupportedHashType,u.node);if(!(o instanceof r)){if(g(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o instanceof W)return i.updateIntArray([3833836621]),i.updateIntArray([0]),i.updateFloatArray([o.x]),i.updateIntArray([1]),i.updateFloatArray([o.y]),o.hasZ&&(i.updateIntArray([2]),i.updateFloatArray([o.z])),o.hasM&&(i.updateIntArray([3]),i.updateFloatArray([o.m])),i.updateIntArray([3765347959]),void Y(o.spatialReference.wkid,i,u);if(o instanceof J){i.updateIntArray([1266616829]);for(let t=0;t<o.rings.length;t++){const e=o.rings[t],r=[];let n=null,a=null;for(let i=0;i<e.length;i++){const u=o.getPoint(t,i);if(0===i)n=u;else if(X(a,u))continue;a=u,i===e.length-1&&X(n,u)||r.push(u)}i.updateIntArray([1397116793,r.length]);for(let t=0;t<r.length;t++){const e=r[t];i.updateIntArray([3962308117,t]),Y(e,i,u),i.updateIntArray([2716288009])}i.updateIntArray([2278822459])}return i.updateIntArray([3878477243]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof V){i.updateIntArray([4106883559]);for(let t=0;t<o.paths.length;t++){const e=o.paths[t];i.updateIntArray([1397116793,e.length]);for(let r=0;r<e.length;r++)i.updateIntArray([3962308117,r]),Y(o.getPoint(t,r),i,u),i.updateIntArray([2716288009]);i.updateIntArray([2278822459])}return i.updateIntArray([2568784753]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof M){i.updateIntArray([588535921,o.points.length]);for(let t=0;t<o.points.length;t++){const e=o.getPoint(t);i.updateIntArray([t]),Y(e,i,u)}return i.updateIntArray([1700171621]),void Y(o.spatialReference.wkid,i,u)}if(o instanceof H)return i.updateIntArray([3483648373]),i.updateIntArray([0]),i.updateFloatArray([o.xmax]),i.updateIntArray([1]),i.updateFloatArray([o.xmin]),i.updateIntArray([2]),i.updateFloatArray([o.ymax]),i.updateIntArray([3]),i.updateFloatArray([o.ymin]),o.hasZ&&(i.updateIntArray([4]),i.updateFloatArray([o.zmax]),i.updateIntArray([5]),i.updateFloatArray([o.zmin])),o.hasM&&(i.updateIntArray([6]),i.updateFloatArray([o.mmax]),i.updateIntArray([7]),i.updateFloatArray([o.mmin])),i.updateIntArray([3622027469]),void Y(o.spatialReference.wkid,i,u);if(o instanceof E)return i.updateIntArray([14]),void 0!==o.wkid&&null!==o.wkid&&i.updateIntArray([o.wkid]),void(o.wkt&&i.updateWithString(o.wkt));if(O(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(L(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(k(o))throw new n(u.context,a.UnsupportedHashType,u.node);if(o===d)throw new n(u.context,a.UnsupportedHashType,u.node);throw new n(u.context,a.UnsupportedHashType,u.node)}if(i.updateUint8Array([223]),u.map.has(o)){const t=u.map.get(o);i.updateIntArray([61237541^t])}else{u.map.set(o,u.currentLength++);for(const t of o.keys()){i.updateIntArray([t.length]),i.updateWithString(t),i.updateUint8Array([251]);Y(o.field(t),i,u),i.updateUint8Array([239])}u.map.delete(o),u.currentLength--}i.updateUint8Array([73])}}else i.updateUint8Array([0,139])}function $(e,N){e.portal=function(e,r){return N(e,r,((n,a,u)=>(o(u,1,1,e,r),new t(i(u[0])))))},e.typeof=function(t,e){return N(t,e,((r,i,s)=>{o(s,1,1,t,e);const l=u(s[0]);if("Unrecognized Type"===l)throw new n(t,a.UnrecognizedType,e);return l}))},e.trim=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).trim())))},e.tohex=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=s(a[0]);return isNaN(i)?i:i.toString(16)}))},e.upper=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toUpperCase())))},e.proper=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,2,t,e);let u=1;2===a.length&&"firstword"===i(a[1]).toLowerCase()&&(u=2);const s=/\s/,l=i(a[0]);let d="",p=!0;for(let t=0;t<l.length;t++){let e=l[t];if(s.test(e))1===u&&(p=!0);else{e.toUpperCase()!==e.toLowerCase()&&(p?(e=e.toUpperCase(),p=!1):e=e.toLowerCase())}d+=e}return d}))},e.lower=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,1,t,e),i(a[0]).toLowerCase())))},e.guid=function(t,e){return N(t,e,((r,n,a)=>{if(o(a,0,1,t,e),a.length>0)switch(i(a[0]).toLowerCase()){case"digits":return l().replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return l();case"digits-hyphen-braces":return"{"+l()+"}";case"digits-hyphen-parentheses":return"("+l()+")"}return"{"+l()+"}"}))},e.standardizeguid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=i(a[0]);if(""===u||null===u)return"";const s=/^(\{|\()?(?<partA>[0-9a-z]{8})(\-?)(?<partB>[0-9a-z]{4})(\-?)(?<partC>[0-9a-z]{4})(\-?)(?<partD>[0-9a-z]{4})(\-?)(?<partE>[0-9a-z]{12})(\}|\))?$/gim.exec(u);if(!s)return"";const l=s.groups;switch(u=l.partA+"-"+l.partB+"-"+l.partC+"-"+l.partD+"-"+l.partE,i(a[1]).toLowerCase()){case"digits":return u.replace("-","").replace("-","").replace("-","").replace("-","");case"digits-hyphen":return u;case"digits-hyphen-braces":return"{"+u+"}";case"digits-hyphen-parentheses":return"("+u+")"}return"{"+u+"}"}))},e.console=function(t,e){return N(t,e,((e,r,n)=>(0===n.length||(1===n.length?t.console(i(n[0])):t.console(i(n))),d)))},e.mid=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=s(a[1]);if(isNaN(u))return"";if(u<0&&(u=0),2===a.length)return i(a[0]).substr(u);let l=s(a[2]);return isNaN(l)?"":(l<0&&(l=0),i(a[0]).substr(u,l))}))},e.find=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,3,t,e);let u=0;if(a.length>2){if(u=s(p(a[2],0)),isNaN(u))return-1;u<0&&(u=0)}return i(a[1]).indexOf(i(a[0]),u)}))},e.left=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(0,u))}))},e.right=function(t,e){return N(t,e,((r,n,a)=>{o(a,2,2,t,e);let u=s(a[1]);return isNaN(u)?"":(u<0&&(u=0),i(a[0]).substr(-1*u,u))}))},e.split=function(t,e){return N(t,e,((r,n,a)=>{let u;o(a,2,4,t,e);let l=s(p(a[2],-1));const d=c(p(a[3],!1));if(-1===l||null===l||!0===d?u=i(a[0]).split(i(a[1])):(isNaN(l)&&(l=-1),l<-1&&(l=-1),u=i(a[0]).split(i(a[1]),l)),!1===d)return u;const f=[];for(let t=0;t<u.length&&!(-1!==l&&f.length>=l);t++)""!==u[t]&&void 0!==u[t]&&f.push(u[t]);return f}))},e.text=function(t,e){return N(t,e,((r,n,a)=>(o(a,1,2,t,e),f(a[0],a[1]))))},e.concatenate=function(t,e){return N(t,e,((t,e,r)=>{const n=[];if(r.length<1)return"";if(h(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length;e++)n[e]=f(r[0][e],t);return r.length>1?n.join(r[1]):n.join("")}if(y(r[0])){const t=p(r[2],"");for(let e=0;e<r[0].length();e++)n[e]=f(r[0].get(e),t);return r.length>1?n.join(r[1]):n.join("")}for(let a=0;a<r.length;a++)n[a]=f(r[a]);return n.join("")}))},e.reverse=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),h(u[0])){const t=u[0].slice(0);return t.reverse(),t}if(y(u[0])){const t=u[0].toArray().slice(0);return t.reverse(),t}throw new n(t,a.InvalidParameter,e)}))},e.replace=function(t,e){return N(t,e,((r,n,a)=>{o(a,3,4,t,e);const u=i(a[0]),s=i(a[1]),l=i(a[2]);return 4!==a.length||c(a[3])?m(u,s,l):u.replace(s,l)}))},e.schema=function(t,e){return N(t,e,((o,i,u)=>{if(g(u[0])){const e=A(u[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypes=function(t,e){return N(t,e,((i,u,s)=>{if(o(s,1,1,t,e),g(s[0])){const e=I(s[0]);return e?r.convertObjectToArcadeDictionary(e,w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.subtypecode=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return null;if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.code;return null}return null}throw new n(t,a.InvalidParameter,e)}))},e.subtypename=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0])){const t=I(u[0]);if(!t)return"";if(t.subtypeField&&u[0].hasField(t.subtypeField)){const e=u[0].field(t.subtypeField);for(const r of t.subtypes)if(r.code===e)return r.name;return""}return""}throw new n(t,a.InvalidParameter,e)}))},e.gdbversion=function(t,e){return N(t,e,((r,i,u)=>{if(o(u,1,1,t,e),g(u[0]))return u[0].gdbVersion();throw new n(t,a.InvalidParameter,e)}))},e.domain=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,2,3,t,e),g(l[0])){const e=v(l[0],i(l[1]),void 0===l[2]?void 0:l[2]);return e&&e.domain?"coded-value"===e.domain.type||"codedValue"===e.domain.type?r.convertObjectToArcadeDictionary({type:"codedValue",name:e.domain.name,dataType:S[e.field.type],codedValues:e.domain.codedValues.map((t=>({name:t.name,code:t.code})))},w(t)):r.convertObjectToArcadeDictionary({type:"range",name:e.domain.name,dataType:S[e.field.type],min:e.domain.min,max:e.domain.max},w(t)):null}throw new n(t,a.InvalidParameter,e)}))},e.domainname=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return U(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.domaincode=function(t,e){return N(t,e,((r,u,s)=>{if(o(s,2,4,t,e),g(s[0]))return b(s[0],i(s[1]),s[2],void 0===s[3]?void 0:s[3]);throw new n(t,a.InvalidParameter,e)}))},e.urlencode=function(t,e){return N(t,e,((n,a,u)=>{if(o(u,1,1,t,e),null===u[0])return"";if(u[0]instanceof r){let t="";for(const e of u[0].keys()){const r=u[0].field(e);""!==t&&(t+="&"),t+=null===r?encodeURIComponent(e)+"=":encodeURIComponent(e)+"="+encodeURIComponent(r)}return t}return encodeURIComponent(i(u[0]))}))},e.hash=function(t,e){return N(t,e,((r,n,a)=>{o(a,1,1,t,e);const i=new D(0);return Y(a[0],i,{context:t,node:e,map:new Map,currentLength:0}),i.digest()}))},e.convertdirection=function(t,e){return N(t,e,((r,n,a)=>(o(a,3,3,t,e),z(a[0],a[1],a[2]))))},e.fromjson=function(t,e){return N(t,e,((u,s,l)=>{if(o(l,1,1,t,e),!1===j(l[0]))throw new n(t,a.InvalidParameter,e);return r.convertJsonToArcade(JSON.parse(i(l[0])),w(t))}))},e.expects=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);return d}))},e.tocharcode=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.charCodeAt(d)}))},e.tocodepoint=function(t,e){return N(t,e,((r,u,l)=>{o(l,1,2,t,e);const d=s(p(l[1],0)),c=i(l[0]);if(0===c.length&&1===l.length)return null;if(c.length<=d||d<0)throw new n(t,a.OutOfBounds,e);return c.codePointAt(d)}))},e.fromcharcode=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);const u=i.map((t=>Math.trunc(s(t)))).filter((t=>t>=0&&t<=65535));return 0===u.length?null:String.fromCharCode.apply(null,u)}))},e.fromcodepoint=function(t,e){return N(t,e,((r,o,i)=>{if(i.length<1)throw new n(t,a.WrongNumberOfParameters,e);let u;try{u=i.map((t=>Math.trunc(s(t)))).filter((t=>t<=1114111&&t>>>0===t))}catch(l){return null}return 0===u.length?null:String.fromCodePoint.apply(null,u)}))},e.getuser=function(e,u){return N(e,u,((s,l,d)=>{o(d,0,2,e,u);let c=p(d[1],"");if(c=!0===c||!1===c?"":i(c),null!==c&&""!==c)return null;if(0===d.length||d[0]instanceof t){let t=null;if(t=e.services&&e.services.portal?e.services.portal:Z.getDefault(),d.length>0){if(!q(d[0].field("url"),t))return null}if(!t)return null;if(""===c){const n=B(t);if(n){const t=JSON.parse(JSON.stringify(n));for(const e of["lastLogin","created","modified"])void 0!==t[e]&&null!==t[e]&&(t[e]=new Date(t[e]));return r.convertObjectToArcadeDictionary(t,w(e))}}return null}throw new n(e,a.InvalidParameter,u)}))},e.getenvironment=function(t,e){return N(t,e,((n,a,i)=>(o(i,0,0,t,e),r.convertObjectToArcadeDictionary(x(w(t),t.spatialReference),w(t),!0))))}}export{$ as registerFunctions};
package/arcade.js CHANGED
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.28/esri/copyright.txt for details.
4
4
  */
5
- import e from"./Graphic.js";import{ArcadeDate as t}from"./arcade/ArcadeDate.js";import r from"./arcade/ImmutableArray.js";import a from"./core/Error.js";import{clone as n}from"./core/lang.js";import o from"./layers/FeatureLayer.js";import c from"./portal/Portal.js";import s from"./rest/support/FeatureSet.js";import{loadArcade as i}from"./support/arcadeOnDemand.js";let u=null;function l(e,t,a,n={}){const o=t.elementType,c="value",s="array"===o.type?[{name:c,type:o.type,elementType:o.elementType}]:"dictionary"===o.type?[{name:c,type:o.type,properties:o.properties}]:[{name:c,type:o.type}];return new r(e.map((e=>{const t={};return y(t,s,{[c]:e},a,n),t[c]})))}function p(e,t,r={}){const a=e instanceof s?new o({source:e.features,geometryType:e.geometryType,fields:e.fields,spatialReference:e.spatialReference}):e;return t.constructFeatureSet(a,r.spatialReference,null,!0,r.lruCache,r.interceptor)}function f(e,t,r={}){const{spatialReference:a,interceptor:n,lruCache:o}=r;return"string"==typeof e?t.createFeatureSetCollectionFromService(e,a,o,n):t.createFeatureSetCollectionFromMap(e,a,o,n)}function m(e,t,r,a={}){const n={};return y(n,t.properties,e,r,a),new u.Dictionary(n)}function y(e,r,a,n,o={}){const c={};for(const t of Object.keys(a))c[t.toLowerCase()]=a[t];for(const s of r){const r=s.name.toLowerCase();if(o.variablesPreProcessed)e[r]=c[r];else switch(s.type){case"array":{const t=c[r];e[r]=null==t?null:l(t,s,n,o);break}case"feature":{const t=c[r];e[r]=null==t?null:u.Feature.createFromGraphic(t,o?.timeReference);break}case"featureSet":{const t=c[r];e[r]=null==t?null:n?p(t,n,o):null;break}case"featureSetCollection":{const t=c[r];e[r]=null==t?null:n?f(t,n,o):null;break}case"dictionary":{const t=c[r];e[r]=null==t?null:m(t,s,n,o);break}case"date":{const a=c[r];e[r]=a?a instanceof t?a:o?.timeReference?.timeZone?t.dateJSAndZoneToArcadeDate(a,o?.timeReference?.timeZone):t.dateJSToArcadeDate(a):null;break}case"geometry":case"boolean":case"text":case"number":e[r]=c[r]}}}function d(e,t){for(const r of e)t.push(r),"dictionary"===r.type&&d(r.properties,t);return t}function b(e,t,r,a,n){const{spatialReference:o,interceptor:s,lruCache:i,console:u,abortSignal:l,timeReference:p,services:f={portal:c.getDefault()}}=r,m={vars:{},spatialReference:o,interceptor:s,timeReference:p,lrucache:i,useAsync:n,services:f,console:u,abortSignal:l};return t?(y(m.vars,e.variables,t,a,r),m):m}function v(t,r){switch(r.getArcadeType(t)){case"number":case"text":case"boolean":case"point":case"polygon":case"polyline":case"multipoint":case"extent":return t;case"date":return t.toJSDate();case"feature":{const r=(t.type,t),a="geometry"in r?r.geometry():null,n="readAttributes"in r?r.readAttributes():r.attributes;return new e({geometry:a,attributes:n})}case"dictionary":{const e=t,a=e.attributes,n={};for(const t of Object.keys(a))n[t]=v(e.field(t),r);return n}case"array":return("toArray"in t?t.toArray():t).map((e=>v(e,r)))}return t}const S={variables:[{name:"$feature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"}]},w={variables:[{name:"$feature",type:"feature"},{name:"$aggregatedFeatures",type:"featureSet"}]},$=new Map([["form-constraint",{variables:[{name:"$feature",type:"feature"}]}],["feature-z",{variables:[{name:"$feature",type:"feature"}]}],["field-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$datastore",type:"featureSetCollection"}]}],["form-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$originalFeature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$featureSet",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"},{name:"$editContext",type:"dictionary",properties:[{name:"editType",type:"text"}]}]}],["labeling",{variables:[{name:"$feature",type:"feature"}]}],["popup",S],["popup-element",S],["feature-reduction-popup",w],["feature-reduction-popup-element",w],["visualization",{variables:[{name:"$feature",type:"feature"},{name:"$view",type:"dictionary",properties:[{name:"scale",type:"number"}]}]}]]);function g(e){const t=$.get(e);if(!t){const t=Array.from($.keys()).map((e=>`'${e}'`)).join(", ");throw new a("createArcadeProfile:invalid-profile-name",`Invalid profile name '${e}'. You must specify one of the following values: ${t}`)}return n(t)}async function C(e,t,r={}){u||(u=await i());const{arcade:n,arcadeUtils:o}=u,{loadScriptDependencies:c,referencesMember:s,scriptIsAsync:l}=n,p=d(t.variables,[]),f=p.filter((e=>"featureSet"===e.type||"featureSetCollection"===e.type)).map((e=>e.name.toLowerCase())),m=n.parseScript(e,f);if(!m)throw new a("arcade:invalid-script","Unable to create SyntaxTree");const y=o.extractFieldNames(m),S=n.scriptTouchesGeometry(m),w=p.map((e=>e.name.toLowerCase())).filter((e=>s(m,e))),$=l(m,f);await c(m,$,f);const g={vars:{},spatialReference:null,useAsync:$};for(const a of w)g.vars[a]="any";const{lruCache:C}=r,h=n.compileScript(m,g),A=n.featureSetUtils(),{services:x}=r;return{execute:(e,r={})=>{if($)throw new a("arcade:invalid-execution-mode","Cannot execute the script in synchronous mode");const n=h(b(t,e,{lruCache:C,...r},A,$));return r.rawOutput?n:v(n,o)},executeAsync:async(e,r={})=>{const a=await h(b(t,e,{lruCache:C,services:x,...r},A,$));return r.rawOutput?a:v(a,o)},isAsync:$,variablesUsed:w,fieldsUsed:y,geometryUsed:S,syntaxTree:m}}export{C as createArcadeExecutor,g as createArcadeProfile};
5
+ import e from"./Graphic.js";import{ArcadeDate as t}from"./arcade/ArcadeDate.js";import r from"./arcade/ImmutableArray.js";import a from"./core/Error.js";import{clone as n}from"./core/lang.js";import{DateOnly as o}from"./core/sql/DateOnly.js";import{TimeOnly as c}from"./core/sql/TimeOnly.js";import s from"./layers/FeatureLayer.js";import i from"./portal/Portal.js";import l from"./rest/support/FeatureSet.js";import{loadArcade as u}from"./support/arcadeOnDemand.js";let p=null;function f(e,t,a,n={}){const o=t.elementType,c="value",s="array"===o.type?[{name:c,type:o.type,elementType:o.elementType}]:"dictionary"===o.type?[{name:c,type:o.type,properties:o.properties}]:[{name:c,type:o.type}];return new r(e.map((e=>{const t={};return b(t,s,{[c]:e},a,n),t[c]})))}function m(e,t,r={}){const a=e instanceof l?new s({source:e.features,geometryType:e.geometryType,fields:e.fields,spatialReference:e.spatialReference}):e;return t.constructFeatureSet(a,r.spatialReference,null,!0,r.lruCache,r.interceptor)}function y(e,t,r={}){const{spatialReference:a,interceptor:n,lruCache:o}=r;return"string"==typeof e?t.createFeatureSetCollectionFromService(e,a,o,n):t.createFeatureSetCollectionFromMap(e,a,o,n)}function d(e,t,r,a={}){const n={};return b(n,t.properties,e,r,a),new p.Dictionary(n)}function b(e,r,a,n,s={}){const i={};for(const t of Object.keys(a))i[t.toLowerCase()]=a[t];for(const l of r){const r=l.name.toLowerCase();if(s.variablesPreProcessed)e[r]=i[r];else switch(l.type){case"array":{const t=i[r];e[r]=null==t?null:f(t,l,n,s);break}case"feature":{const t=i[r];e[r]=null==t?null:p.Feature.createFromGraphic(t,s?.timeReference);break}case"featureSet":{const t=i[r];e[r]=null==t?null:n?m(t,n,s):null;break}case"featureSetCollection":{const t=i[r];e[r]=null==t?null:n?y(t,n,s):null;break}case"dictionary":{const t=i[r];e[r]=null==t?null:d(t,l,n,s);break}case"date":{const a=i[r];e[r]=a?a instanceof t?a:s?.timeReference?.timeZone?t.dateJSAndZoneToArcadeDate(a,s?.timeReference?.timeZone):t.dateJSToArcadeDate(a):null;break}case"dateOnly":{const t=i[r];e[r]=t?t instanceof o?t:o.fromReader(t):null;break}case"time":{const t=i[r];e[r]=t?t instanceof c?t:c.fromReader(t):null;break}case"geometry":case"boolean":case"text":case"number":e[r]=i[r]}}}function v(e,t){for(const r of e)t.push(r),"dictionary"===r.type&&v(r.properties,t);return t}function S(e,t,r,a,n){const{spatialReference:o,interceptor:c,lruCache:s,console:l,abortSignal:u,timeReference:p,services:f={portal:i.getDefault()}}=r,m={vars:{},spatialReference:o,interceptor:c,timeReference:p,lrucache:s,useAsync:n,services:f,console:l,abortSignal:u};return t?(b(m.vars,e.variables,t,a,r),m):m}function w(t,r){switch(r.getArcadeType(t)){case"number":case"text":case"boolean":case"point":case"polygon":case"polyline":case"multipoint":case"extent":return t;case"date":return t.toJSDate();case"feature":{const r=(t.type,t),a="geometry"in r?r.geometry():null,n="readAttributes"in r?r.readAttributes():r.attributes;return new e({geometry:a,attributes:n})}case"dictionary":{const e=t,a=e.attributes,n={};for(const t of Object.keys(a))n[t]=w(e.field(t),r);return n}case"array":return("toArray"in t?t.toArray():t).map((e=>w(e,r)))}return t}const $={variables:[{name:"$feature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"}]},g={variables:[{name:"$feature",type:"feature"},{name:"$aggregatedFeatures",type:"featureSet"}]},C=new Map([["form-constraint",{variables:[{name:"$feature",type:"feature"}]}],["feature-z",{variables:[{name:"$feature",type:"feature"}]}],["field-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$datastore",type:"featureSetCollection"}]}],["form-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$originalFeature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$featureSet",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"},{name:"$editContext",type:"dictionary",properties:[{name:"editType",type:"text"}]}]}],["labeling",{variables:[{name:"$feature",type:"feature"}]}],["popup",$],["popup-element",$],["feature-reduction-popup",g],["feature-reduction-popup-element",g],["visualization",{variables:[{name:"$feature",type:"feature"},{name:"$view",type:"dictionary",properties:[{name:"scale",type:"number"}]}]}]]);function h(e){const t=C.get(e);if(!t){const t=Array.from(C.keys()).map((e=>`'${e}'`)).join(", ");throw new a("createArcadeProfile:invalid-profile-name",`Invalid profile name '${e}'. You must specify one of the following values: ${t}`)}return n(t)}async function A(e,t,r={}){p||(p=await u());const{arcade:n,arcadeUtils:o}=p,{loadScriptDependencies:c,referencesMember:s,scriptIsAsync:i}=n,l=v(t.variables,[]),f=l.filter((e=>"featureSet"===e.type||"featureSetCollection"===e.type)).map((e=>e.name.toLowerCase())),m=n.parseScript(e,f);if(!m)throw new a("arcade:invalid-script","Unable to create SyntaxTree");const y=o.extractFieldNames(m),d=n.scriptTouchesGeometry(m),b=l.map((e=>e.name.toLowerCase())).filter((e=>s(m,e))),$=i(m,f);await c(m,$,f);const g={vars:{},spatialReference:null,useAsync:$};for(const a of b)g.vars[a]="any";const{lruCache:C}=r,h=n.compileScript(m,g),A=n.featureSetUtils(),{services:j}=r;return{execute:(e,r={})=>{if($)throw new a("arcade:invalid-execution-mode","Cannot execute the script in synchronous mode");const n=h(S(t,e,{lruCache:C,...r},A,$));return r.rawOutput?n:w(n,o)},executeAsync:async(e,r={})=>{const a=await h(S(t,e,{lruCache:C,services:j,...r},A,$));return r.rawOutput?a:w(a,o)},isAsync:$,variablesUsed:b,fieldsUsed:y,geometryUsed:d,syntaxTree:m}}export{A as createArcadeExecutor,h as createArcadeProfile};