@arcgis/core 4.33.0-next.20250414 → 4.33.0-next.20250415

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 (155) hide show
  1. package/arcade/featureset/support/FeatureSet.js +1 -1
  2. package/arcade/functions/geomasync.js +1 -1
  3. package/arcade/functions/geomsync.js +1 -1
  4. package/arcade/geometry/functions.js +1 -1
  5. package/arcade/geometry/operatorsWorker.js +1 -1
  6. package/assets/esri/core/workers/RemoteClient.js +1 -1
  7. package/assets/esri/core/workers/chunks/0252d853419adc203f04.js +1 -0
  8. package/assets/esri/core/workers/chunks/{fe1ad9ed0d32f557e5a3.js → 029705c229ccf2e6b78d.js} +28 -28
  9. package/assets/esri/core/workers/chunks/030f5b9a9757eead436b.js +1 -0
  10. package/assets/esri/core/workers/chunks/{4403b3f08907e88d0d91.js → 0b34c8356b8492ce7b16.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{fb65796296b0422cf266.js → 272a309760dacb13dee3.js} +1 -1
  12. package/assets/esri/core/workers/chunks/2bdbf678d4f013543dbb.js +1 -0
  13. package/assets/esri/core/workers/chunks/321f6f6d268755482c27.js +1 -0
  14. package/assets/esri/core/workers/chunks/{b7a1185ac49480fc1410.js → 35a59f0df087e3c588a9.js} +1 -1
  15. package/assets/esri/core/workers/chunks/{083548c5eea5aca6404c.js → 45d64b72b7e93e9c64d7.js} +1 -1
  16. package/assets/esri/core/workers/chunks/{626e33ece2c49d40f6cd.js → 4e711f4fa1cbedf4dae5.js} +1 -1
  17. package/assets/esri/core/workers/chunks/56fdbe61ac84b036a1a2.js +1 -0
  18. package/assets/esri/core/workers/chunks/57fd5a52be41ddd6a11b.js +1 -0
  19. package/assets/esri/core/workers/chunks/5fb9bb3ac2f60dbd59c4.js +1 -0
  20. package/assets/esri/core/workers/chunks/{0a675f9f69b8b13b7443.js → 601fc99426f0213b0769.js} +1 -1
  21. package/assets/esri/core/workers/chunks/68d7babbe7e0d934e056.js +1 -0
  22. package/assets/esri/core/workers/chunks/6fc39a58f3011291c602.js +1 -0
  23. package/assets/esri/core/workers/chunks/8221f2e540abe1e0f048.js +1 -0
  24. package/assets/esri/core/workers/chunks/83e13baab4b90a88d967.js +1 -0
  25. package/assets/esri/core/workers/chunks/851baab753d9c8e967bd.js +1 -0
  26. package/assets/esri/core/workers/chunks/8ba7d44eff348004f084.js +1 -0
  27. package/assets/esri/core/workers/chunks/{9050dad7e4f093568026.js → 97267911d03c2426d319.js} +1 -1
  28. package/assets/esri/core/workers/chunks/984c5047ab1fa632ca09.js +1 -0
  29. package/assets/esri/core/workers/chunks/{5aae4e127e888f69435a.js → 9a1c058d3ecd1db0e996.js} +1 -1
  30. package/assets/esri/core/workers/chunks/9b21dc4659922cc577cb.js +1 -0
  31. package/assets/esri/core/workers/chunks/{ff62b813fff4a015a8a6.js → a4239e301728d594afa5.js} +1 -1
  32. package/assets/esri/core/workers/chunks/aca3ccb9599bcc444617.js +1 -0
  33. package/assets/esri/core/workers/chunks/{a3421383e48379012c9c.js → b6dd25bccb9f6e19c18e.js} +1 -1
  34. package/assets/esri/core/workers/chunks/bf4947fe446dcb477031.js +1 -0
  35. package/assets/esri/core/workers/chunks/d053c23fce77fb77cc00.js +1 -0
  36. package/assets/esri/core/workers/chunks/e31bb256921807464715.js +1 -0
  37. package/assets/esri/core/workers/chunks/{8aae03e347ab18ae6ee2.js → e3d25d027885eb1a415f.js} +1 -1
  38. package/assets/esri/core/workers/chunks/ed517687b3728fd2eb64.js +1 -0
  39. package/assets/esri/themes/base/widgets/_Expand.scss +6 -1
  40. package/assets/esri/themes/base/widgets/_TimeSlider.scss +97 -107
  41. package/assets/esri/themes/dark/main.css +1 -1
  42. package/assets/esri/themes/light/main.css +1 -1
  43. package/assets/esri/themes/light/view.css +1 -1
  44. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider.json +1 -1
  45. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ar.json +1 -1
  46. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_bg.json +1 -1
  47. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_bs.json +1 -1
  48. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ca.json +1 -1
  49. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_cs.json +1 -1
  50. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_da.json +1 -1
  51. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_de.json +1 -1
  52. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_el.json +1 -1
  53. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_en.json +1 -1
  54. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_es.json +1 -1
  55. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_et.json +1 -1
  56. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_fi.json +1 -1
  57. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_fr.json +1 -1
  58. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_he.json +1 -1
  59. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_hr.json +1 -1
  60. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_hu.json +1 -1
  61. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_id.json +1 -1
  62. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_it.json +1 -1
  63. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ja.json +1 -1
  64. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ko.json +1 -1
  65. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_lt.json +1 -1
  66. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_lv.json +1 -1
  67. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_nl.json +1 -1
  68. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_no.json +1 -1
  69. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_pl.json +1 -1
  70. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_pt-BR.json +1 -1
  71. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_pt-PT.json +1 -1
  72. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ro.json +1 -1
  73. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_ru.json +1 -1
  74. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_sk.json +1 -1
  75. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_sl.json +1 -1
  76. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_sr.json +1 -1
  77. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_sv.json +1 -1
  78. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_th.json +1 -1
  79. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_tr.json +1 -1
  80. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_uk.json +1 -1
  81. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_vi.json +1 -1
  82. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_zh-CN.json +1 -1
  83. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_zh-HK.json +1 -1
  84. package/assets/esri/widgets/TimeSlider/t9n/TimeSlider_zh-TW.json +1 -1
  85. package/chunks/BloomComposition.glsl.js +4 -13
  86. package/chunks/Theme.js +1 -1
  87. package/chunks/Tick.js +1 -1
  88. package/geometry/support/HalfFloatArray.js +1 -1
  89. package/geometry/support/buffer/BufferView.js +1 -1
  90. package/geometry/support/float16.js +1 -1
  91. package/interfaces.d.ts +222 -139
  92. package/layers/FeatureLayer.js +1 -1
  93. package/layers/WCSLayer.js +1 -1
  94. package/layers/graphics/data/QueryEngineCapabilities.js +1 -1
  95. package/layers/graphics/sources/OGCFeatureSource.js +1 -1
  96. package/layers/mixins/ArcGISImageService.js +1 -1
  97. package/layers/mixins/FeatureLayerBase.js +1 -1
  98. package/layers/support/capabilities.js +1 -1
  99. package/layers/support/serviceCapabilitiesUtils.js +1 -1
  100. package/package.json +2 -2
  101. package/support/revision.js +1 -1
  102. package/views/3d/layers/DrapedSubView3D.js +1 -1
  103. package/views/3d/layers/DynamicLayerView3D.js +1 -1
  104. package/views/3d/layers/FlowSubView3D.js +5 -0
  105. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  106. package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
  107. package/views/3d/layers/PointCloudLayerView3D.js +1 -1
  108. package/views/3d/layers/WMSLayerView3D.js +1 -1
  109. package/views/3d/support/buffer/InterleavedLayout.js +1 -1
  110. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  111. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  112. package/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js +1 -1
  113. package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
  114. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  115. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  116. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  117. package/views/3d/webgl-engine/materials/renderers/MergedRenderer.js +1 -1
  118. package/views/layers/ImageryTileLayerView.js +1 -1
  119. package/widgets/Search/types.d.ts +10 -0
  120. package/widgets/Search/types.js +5 -0
  121. package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
  122. package/widgets/TimeSlider/css.js +1 -1
  123. package/widgets/TimeSlider.js +1 -1
  124. package/widgets/support/SelectionList/FeatureItem.js +5 -0
  125. package/widgets/support/SelectionList/GroupLayerItem.js +5 -0
  126. package/widgets/support/SelectionList/{SelectionListItemBase.js → ItemBase.js} +1 -1
  127. package/widgets/support/SelectionList/LayerItem.js +5 -0
  128. package/widgets/support/SelectionList/SelectionListViewModel.js +1 -1
  129. package/widgets/support/SelectionList/selectionListUtils.js +1 -1
  130. package/widgets/support/SelectionList.js +1 -1
  131. package/assets/esri/core/workers/chunks/0db4c0071282dd94f3b2.js +0 -1
  132. package/assets/esri/core/workers/chunks/10631680abe7607616ca.js +0 -1
  133. package/assets/esri/core/workers/chunks/277b61af8982092a4c81.js +0 -1
  134. package/assets/esri/core/workers/chunks/290aed587aa647226b46.js +0 -1
  135. package/assets/esri/core/workers/chunks/345f428dfcaa594ee617.js +0 -1
  136. package/assets/esri/core/workers/chunks/358a3a9326615d5e6d3b.js +0 -1
  137. package/assets/esri/core/workers/chunks/39fbac918ebd1b0e3a18.js +0 -1
  138. package/assets/esri/core/workers/chunks/544771f64a86b541d5bb.js +0 -1
  139. package/assets/esri/core/workers/chunks/6275114e8ed9dd31465d.js +0 -1
  140. package/assets/esri/core/workers/chunks/72b5e43741ce3a0da8f7.js +0 -1
  141. package/assets/esri/core/workers/chunks/7e63e3d759c874077b52.js +0 -1
  142. package/assets/esri/core/workers/chunks/7f8c7e3e41e51ab4d612.js +0 -1
  143. package/assets/esri/core/workers/chunks/80a5fd4fb79e90086538.js +0 -1
  144. package/assets/esri/core/workers/chunks/80aaf31c8eec3cff2add.js +0 -1
  145. package/assets/esri/core/workers/chunks/b6361cec92003997bfe5.js +0 -1
  146. package/assets/esri/core/workers/chunks/bbbb1aa2569ebf01ad8b.js +0 -1
  147. package/assets/esri/core/workers/chunks/d59aeb46bf2fb0931a9b.js +0 -1
  148. package/assets/esri/core/workers/chunks/ee277dd58aa69281163f.js +0 -1
  149. package/assets/esri/core/workers/chunks/f718d41f665d5df25f79.js +0 -1
  150. package/assets/esri/core/workers/chunks/fa9ef9e8eae505371965.js +0 -1
  151. package/assets/esri/core/workers/chunks/fb5b852d0f72df014377.js +0 -1
  152. package/assets/esri/core/workers/chunks/fb603edd374e24f366ff.js +0 -1
  153. package/widgets/support/SelectionList/SelectionListFeatureItem.js +0 -5
  154. package/widgets/support/SelectionList/SelectionListGroupLayerItem.js +0 -5
  155. package/widgets/support/SelectionList/SelectionListLayerItem.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"./cache.js";import{FeatureSetError as t,FeatureSetErrorCodes as n}from"./errorsupport.js";import s from"./FeatureSetIterator.js";import i from"./IdSet.js";import{FeatureServiceDatabaseType as a,layerGeometryEsriConstants as r,IdState as l,esriFieldToJson as u,layerGeometryEsriRestConstants as h}from"./shared.js";import{max as o,min as c,sum as d,variance as f,stdev as _,mean as p,distinct as m,count as g}from"./stats.js";import{invokeRemoteGeometryOp as y}from"../../geometry/operatorsWorkerConnection.js";import{isPromiseLike as F}from"../../../core/promiseUtils.js";import I from"../../../core/sql/WhereClause.js";import T from"../../../geometry/SpatialReference.js";import{fromJSON as b}from"../../../geometry/support/jsonUtils.js";import w from"../../../layers/support/FieldsIndex.js";class S{constructor(e){this.recentlyUsedQueries=null,this.featureSetQueryInterceptor=null,this._idstates=[],this._parent=null,this._wset=null,this._mainSetInUse=null,this._maxProcessing=200,this._maxQuery=500,this._totalCount=-1,this._databaseType=a.NotEvaluated,this._databaseTypeProbed=null,this.declaredRootClass="esri.arcade.featureset.support.FeatureSet",this._featureCache=Object.create(null),this.typeIdField=null,this.types=null,this.subtypeField=null,this.subtypes=null,this.fields=null,this.geometryType="",this.objectIdField="",this.globalIdField="",this.spatialReference=null,this.hasM=!1,this.hasZ=!1,this._transparent=!1,this.loaded=!1,this._loadPromise=null,this._fieldsIndex=null,this.fsetInfo=null,e?.lrucache&&(this.recentlyUsedQueries=e.lrucache),e?.interceptor&&(this.featureSetQueryInterceptor=e.interceptor)}optimisePagingFeatureQueries(e){this._parent&&this._parent.optimisePagingFeatureQueries(e)}_hasMemorySource(){return!0}static{this._featuresetFunctions={}}prop(e,t){return void 0===t?this[e]:(void 0!==this[e]&&(this[e]=t),this)}end(){return null!==this._parent&&!0===this._parent._transparent?this._parent.end():this._parent}_ensureLoaded(){return this.load()}load(){return null===this._loadPromise&&(this._loadPromise=this.loadImpl()),this._loadPromise}async loadImpl(){return!0===this._parent?.loaded?(this._initialiseFeatureSet(),this):(await(this._parent?.load()),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){null!==this._parent?(this.fields=this._parent.fields.slice(),this.geometryType=this._parent.geometryType,this.objectIdField=this._parent.objectIdField,this.globalIdField=this._parent.globalIdField,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField=this._parent.typeIdField,this.types=this._parent.types,this.subtypeField=this._parent.subtypeField,this.subtypes=this._parent.subtypes):(this.fields=[],this.typeIdField="",this.subtypeField="",this.objectIdField="",this.globalIdField="",this.spatialReference=new T({wkid:4326}),this.geometryType=r.point)}getField(e,t){let n;return(t=t||this.fields)&&(e=e.toLowerCase(),t.some((t=>(t&&t.name.toLowerCase()===e&&(n=t),!!n)))),n}getFieldsIndex(){return null===this._fieldsIndex&&(this._fieldsIndex=w.fromLayer({timeInfo:this.timeInfo,editFieldsInfo:this.editFieldsInfo,dateFieldsTimeZone:this.dateFieldsTimeZone,datesInUnknownTimezone:this.datesInUnknownTimezone,fields:this.fields})),this._fieldsIndex}_maxProcessingRate(){return null!==this._parent?Math.min(this._maxProcessing,this._parent._maxProcessingRate()):Math.min(this._maxProcessing,this._maxQueryRate())}_maxQueryRate(){return null!==this._parent?Math.max(this._maxQuery,this._parent._maxQueryRate()):this._maxQuery}_checkCancelled(e){if(null!=e&&e.aborted)throw new t(n.Cancelled)}nativeCapabilities(){return this._parent.nativeCapabilities()}async _canDoAggregates(e,t,n,s,i){return null!==this._parent&&this._parent._canDoAggregates(e,t,n,s,i)}async _getAggregatePagesDataSourceDefinition(e,s,i,a,r,l,u){if(null===this._parent)throw new t(n.NeverReach);return this._parent._getAggregatePagesDataSourceDefinition(e,s,i,a,r,l,u)}async _getAgregagtePhysicalPage(e,s,i){if(null===this._parent)throw new t(n.NeverReach);return this._parent._getAgregagtePhysicalPage(e,s,i)}async databaseType(){if(this._databaseType===a.NotEvaluated){if(null!==e.applicationCache){const t=e.applicationCache.getDatabaseType(this._cacheableFeatureSetSourceKey());if(null!==t)return t}if(null!==this._databaseTypeProbed)return this._databaseTypeProbed;try{this._databaseTypeProbed=this._getDatabaseTypeImpl(),null!==e.applicationCache&&e.applicationCache.setDatabaseType(this._cacheableFeatureSetSourceKey(),this._databaseTypeProbed)}catch(t){throw null!==e.applicationCache&&e.applicationCache.clearDatabaseType(this._cacheableFeatureSetSourceKey()),t}return this._databaseTypeProbed}return this._databaseType}async _getDatabaseTypeImpl(){const e=[{thetype:a.SqlServer,testwhere:"(CAST( '2015-01-01' as DATETIME) = CAST( '2015-01-01' as DATETIME)) AND OBJECTID<0"},{thetype:a.Oracle,testwhere:"(TO_DATE('2003-11-18','YYYY-MM-DD') = TO_DATE('2003-11-18','YYYY-MM-DD')) AND OBJECTID<0"},{thetype:a.StandardisedNoInterval,testwhere:"(date '2015-01-01 10:10:10' = date '2015-01-01 10:10:10') AND OBJECTID<0"}];for(const t of e){if(!0===await this._runDatabaseProbe(t.testwhere))return t.thetype}return a.StandardisedNoInterval}_cacheableFeatureSetSourceKey(){return"MUSTBESET"}async _runDatabaseProbe(e){if(null!==this._parent)return this._parent._runDatabaseProbe(e);throw new t(n.NotImplemented)}isTable(){return this._parent?.isTable()??!1}_featureFromCache(e){if(void 0!==this._featureCache[e])return this._featureCache[e]}_isInFeatureSet(e){return l.Unknown}_getSet(e){throw new t(n.NotImplemented)}async _getFeature(e,s,i){if(this._checkCancelled(i),void 0!==this._featureFromCache(s))return this._featureFromCache(s);if(await this._getFeatures(e,s,this._maxProcessingRate(),i),this._checkCancelled(i),void 0!==this._featureFromCache(s))return this._featureFromCache(s);throw new t(n.MissingFeatures)}async _getFeatureBatch(e,t){this._checkCancelled(t);const n=new i([],e,!1,null),s=[];await this._getFeatures(n,-1,e.length,t),this._checkCancelled(t);for(const i of e)void 0!==this._featureFromCache(i)&&s.push(this._featureFromCache(i));return s}async _getFeatures(e,t,n,s){return"success"}_getFilteredSet(e,s,i,a,r){throw new t(n.NotImplemented)}async _refineSetBlock(e,t,n){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQueryRate()))return await this._expandPagedSet(e,this._maxQueryRate(),0,0,n),this._refineSetBlock(e,t,n);this._checkCancelled(n);const s=e._candidates.length;this._refineKnowns(e,t);let i=s-e._candidates.length;if(0===e._candidates.length)return e;if(i>=t)return e;if(await this._refineIfParentKnown(e,t-i,n),this._checkCancelled(n),this._refineKnowns(e,t-i),i=s-e._candidates.length,i<t&&e._candidates.length>0){const s=t-i,a=this._prepareFetchAndRefineSet(e._candidates);return await this._fetchAndRefineFeatures(a,a.length>s?s:e._candidates.length,n),this._checkCancelled(n),this._refineKnowns(e,t-i),e}return e}_fetchAndRefineFeatures(e,t,n){return null}_prepareFetchAndRefineSet(e){const t=[];for(let n=0;n<e.length;n++)this._isPhysicalFeature(e[n])&&t.push(e[n]);return t}_isPhysicalFeature(e){return null===this._parent||this._parent._isPhysicalFeature(e)}_refineKnowns(e,t){let n=0,s=null;const i=[];t=this._maxQueryRate();for(let a=0;a<e._candidates.length&&"GETPAGES"!==e._candidates[a];a++){let r=!1;const u=this._candidateIdTransform(e._candidates[a]);u!==e._candidates[a]&&(r=!0);const h=this._isInFeatureSet(u);if(h===l.InFeatureSet)!0===r?e._known.includes(u)||(e._known.push(u),n+=1):(e._known.push(e._candidates[a]),n+=1),null===s?s={start:a,end:a}:s.end===a-1?s.end=a:(i.push(s),s={start:a,end:a});else if(h===l.NotInFeatureSet)null===s?s={start:a,end:a}:s.end===a-1?s.end=a:(i.push(s),s={start:a,end:a}),n+=1;else if(h===l.Unknown&&(n+=1,!0===e._ordered))break;if(n>=t)break}null!==s&&i.push(s);for(let a=i.length-1;a>=0;a--)e._candidates.splice(i[a].start,i[a].end-i[a].start+1)}_refineIfParentKnown(e,t,n){const s=new i([],[],e._ordered,null);return s._candidates=e._candidates.slice(),this._parent._refineSetBlock(s,t,n)}_candidateIdTransform(e){return this._parent._candidateIdTransform(e)}_checkIfNeedToExpandKnownPage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let s=e._lastFetchedIndex;s<e._known.length;s++){if("GETPAGES"===e._known[s])return!0;if(void 0===this._featureCache[e._known[s]]&&(n+=1,n>=t))break}return!1}_checkIfNeedToExpandCandidatePage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let s=0;s<e._candidates.length;s++){if("GETPAGES"===e._candidates[s])return!0;if(n+=1,n>=t)break}return!1}async _expandPagedSet(e,s,i,a,r){if(null===this._parent)throw new t(n.NotImplemented);return this._parent._expandPagedSet(e,s,i,a,r)}async _expandPagedSetFeatureSet(e,t,n,s,i){if(e._known.length>0&&"GETPAGES"===e._known[e._known.length-1]&&(s=1),0===s&&e._candidates.length>0&&"GETPAGES"===e._candidates[e._candidates.length-1]&&(s=2),0===s)return"finished";const a=await this._getPage(e,s,i);return n+a<t?this._expandPagedSet(e,t,n+a,0,i):"success"}async _getPage(e,t,n){const s=1===t?e._known:e._candidates;if(e.pagesDefinition.internal.set.length>e.pagesDefinition.resultOffset||!0===e.pagesDefinition.internal.fullyResolved){s.length=s.length-1;let t=0;for(let i=0;i<e.pagesDefinition.resultRecordCount&&!(e.pagesDefinition.resultOffset+i>=e.pagesDefinition.internal.set.length);i++)s[s.length]=e.pagesDefinition.internal.set[e.pagesDefinition.resultOffset+i],t++;e.pagesDefinition.resultOffset+=t;let n=!1;return!0===e.pagesDefinition.internal.fullyResolved&&e.pagesDefinition.internal.set.length<=e.pagesDefinition.resultOffset&&(n=!0),!1===n&&s.push("GETPAGES"),t}return await this._getPhysicalPage(e,t,n),this._getPage(e,t,n)}_getPhysicalPage(e,t,n){return null}_clonePageDefinition(e){return null===this._parent?null:this._parent._clonePageDefinition(e)}_first(e){return this.iterator(e).next()}first(e){return this._first(e)}async calculateStatistic(e,t,n,s){await this._ensureLoaded();let i=await this._stat(e,t,"",null,null,n,s);return!1===i.calculated&&(i=await this._manualStat(e,t,n,s)),i.result}async _manualStat(e,t,n,s){let i=null;switch(e.toLowerCase()){case"count":return i=await g(this,s),{calculated:!0,result:i};case"distinct":return i=await m(this,t,n,s),{calculated:!0,result:i};case"avg":case"mean":return i=await p(this,t,s),{calculated:!0,result:i};case"stdev":return i=await _(this,t,s),{calculated:!0,result:i};case"variance":return i=await f(this,t,s),{calculated:!0,result:i};case"sum":return i=await d(this,t,s),{calculated:!0,result:i};case"min":return i=await c(this,t,s),{calculated:!0,result:i};case"max":return i=await o(this,t,s),{calculated:!0,result:i};default:return{calculated:!0,result:0}}}async _stat(e,t,n,s,i,a,r){const l=await this._parent._stat(e,t,n,s,i,a,r);return!1===l.calculated?null===i&&""===n&&null===s?this._manualStat(e,t,a,r):{calculated:!1}:l}_unionAllGeomSelf(e){const t=this.iterator(this._defaultTracker(e)),n=[];return new Promise(((e,s)=>{this._unionShapeInBatches(n,t,e,s)}))}_unionAllGeom(e){return new Promise(((t,n)=>{const s=this.iterator(this._defaultTracker(e)),i=[];this._unionShapeInBatches(i,s,t,n)}))}_unionShapeInBatches(e,t,n,s){t.next().then((i=>{try{null!==i&&null!==i.geometry&&e.push(i.geometry),e.length>30||null===i&&e.length>1?y("union",[e.map((e=>e.toJSON()))]).then((a=>{try{null===i?n(a):(e=[b(a)],this._unionShapeInBatches(e,t,n,s))}catch(r){s(r)}}),s):null===i?1===e.length?n(e[0]):n(null):this._unionShapeInBatches(e,t,n,s)}catch(a){s(a)}}),s)}iterator(e){return new s(this,e)}intersection(e,t=!1){return S._featuresetFunctions.intersection.bind(this)(e,t)}difference(e,t=!1,n=!0){return S._featuresetFunctions.difference.bind(this)(e,t,n)}symmetricDifference(e,t=!1,n=!0){return S._featuresetFunctions.symmetricDifference.bind(this)(e,t,n)}morphShape(e,t,n="unknown",s=null){return S._featuresetFunctions.morphShape.bind(this)(e,t,n,s)}morphShapeAndAttributes(e,t,n="unknown"){return S._featuresetFunctions.morphShapeAndAttributes.bind(this)(e,t,n)}union(e,t=!1){return S._featuresetFunctions.union.bind(this)(e,t)}intersects(e){return S._featuresetFunctions.intersects.bind(this)(e)}envelopeIntersects(e){return S._featuresetFunctions.envelopeIntersects.bind(this)(e)}contains(e){return S._featuresetFunctions.contains.bind(this)(e)}overlaps(e){return S._featuresetFunctions.overlaps.bind(this)(e)}relate(e,t){return S._featuresetFunctions.relate.bind(this)(e,t)}within(e){return S._featuresetFunctions.within.bind(this)(e)}touches(e){return S._featuresetFunctions.touches.bind(this)(e)}top(e){return S._featuresetFunctions.top.bind(this)(e)}crosses(e){return S._featuresetFunctions.crosses.bind(this)(e)}buffer(e,t,n,s=!0){return S._featuresetFunctions.buffer.bind(this)(e,t,n,s)}filter(e,t=null){return S._featuresetFunctions.filter.bind(this)(e,t)}orderBy(e){return S._featuresetFunctions.orderBy.bind(this)(e)}dissolve(e,t){return S._featuresetFunctions.dissolve.bind(this)(e,t)}groupby(e,t){return S._featuresetFunctions.groupby.bind(this)(e,t)}reduce(e,t=null,n){return new Promise(((s,i)=>{this._reduceImpl(this.iterator(this._defaultTracker(n)),e,t,0,s,i,0)}))}_reduceImpl(e,t,n,s,i,a,r){try{if(++r>1e3)return void setTimeout((()=>{r=0,this._reduceImpl(e,t,n,s,i,a,r)}));e.next().then((l=>{try{if(null===l)i(n);else{const u=t(n,l,s,this);F(u)?u.then((n=>{this._reduceImpl(e,t,n,s+1,i,a,r)}),a):this._reduceImpl(e,t,u,s+1,i,a,r)}}catch(u){a(u)}}),a)}catch(l){a(l)}}removeField(e){return S._featuresetFunctions.removeField.bind(this)(e)}addField(e,t,n=null){return S._featuresetFunctions.addField.bind(this)(e,t,n)}async sumArea(e,t=!1,n){const s=this.iterator(n);let i,a=0;for(;null!=(i=await s.next());)null!=i.geometry&&(a+=t?await y("geodeticArea",[i.geometry.toJSON(),e]):await y("area",[i.geometry.toJSON(),e]));return a}async sumLength(e,t=!1,n){const s=this.iterator(n);let i,a=0;for(;null!=(i=await s.next());)null!=i.geometry&&(a+=t?await y("geodeticLength",[i.geometry.toJSON(),e]):await y("length",[i.geometry.toJSON(),e]));return a}async distinct(e,t=1e3,n=null,s){await this.load();const i=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(i,n),this.calculateStatistic("distinct",i,t,this._defaultTracker(s))}async min(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("min",s,-1,this._defaultTracker(n))}async max(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("max",s,-1,this._defaultTracker(n))}async avg(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("avg",s,-1,this._defaultTracker(n))}async sum(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("sum",s,-1,this._defaultTracker(n))}async stdev(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("stdev",s,-1,this._defaultTracker(n))}async variance(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("variance",s,-1,this._defaultTracker(n))}async count(e){return await this.load(),this.calculateStatistic("count",I.create("1",{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC}),-1,this._defaultTracker(e))}_defaultTracker(e){return e??{aborted:!1}}forEach(e,t){return new Promise(((n,s)=>{this._forEachImpl(this.iterator(this._defaultTracker(t)),e,this,n,s,0)}))}_forEachImpl(e,t,n,s,i,a){try{if(++a>1e3)return void setTimeout((()=>{a=0,this._forEachImpl(e,t,n,s,i,a)}),0);e.next().then((r=>{try{if(null===r)s(n);else{const l=t(r);null==l?this._forEachImpl(e,t,n,s,i,a):F(l)?l.then((()=>{try{this._forEachImpl(e,t,n,s,i,a)}catch(r){i(r)}}),i):this._forEachImpl(e,t,n,s,i,a)}}catch(l){i(l)}}),i)}catch(r){i(r)}}convertToJSON(e){const t={layerDefinition:{geometryType:this.geometryType,fields:[]},featureSet:{features:[],geometryType:this.geometryType}};for(let n=0;n<this.fields.length;n++)t.layerDefinition.fields.push(u(this.fields[n]));return this.reduce(((e,n)=>{const s={geometry:n.geometry?.toJSON(),attributes:{}};for(const t in n.attributes)s.attributes[t]=n.attributes[t];return t.featureSet.features.push(s),1}),0,e).then((()=>t))}castToText(e=!1){return"object, FeatureSet"}queryAttachments(e,t,n,s,i){return this._parent.queryAttachments(e,t,n,s,i)}serviceUrl(){return this._parent.serviceUrl()}subtypeMetaData(){return this.subtypeField&&this.subtypes?{subtypeField:this.subtypeField,subtypes:this.subtypes?this.subtypes.map((e=>({name:e.name,code:e.code}))):[]}:this.typeIdField?{subtypeField:this.typeIdField,subtypes:this.types?this.types.map((e=>({name:e.name,code:e.id}))):[]}:null}relationshipMetaData(){return this._parent.relationshipMetaData()}get gdbVersion(){return this._parent?this._parent.gdbVersion:""}schema(){const e=[];for(const t of this.fields)e.push(u(t));return{objectIdField:this.objectIdField,globalIdField:this.globalIdField,geometryType:void 0===h[this.geometryType]?"esriGeometryNull":h[this.geometryType],fields:e}}async convertToText(e,t){if("schema"===e)return await this._ensureLoaded(),JSON.stringify(this.schema());if("featureset"===e){await this._ensureLoaded();const e=[];await this.reduce(((t,n)=>{const s={geometry:n.geometry?n.geometry.toJSON():null,attributes:n.attributes};return null!==s.geometry&&s.geometry.spatialReference&&delete s.geometry.spatialReference,e.push(s),1}),0,t);const n=this.schema();return n.features=e,n.spatialReference=this.spatialReference.toJSON(),JSON.stringify(n)}return this.castToText()}getFeatureByObjectId(e,t){return this._parent.getFeatureByObjectId(e,t)}getOwningSystemUrl(){return this._parent.getOwningSystemUrl()}getIdentityUser(){return this._parent.getIdentityUser()}getRootFeatureSet(){return null!==this._parent?this._parent.getRootFeatureSet():this}getDataSourceFeatureSet(){return null!==this._parent?this._parent.getDataSourceFeatureSet():this}castAsJson(e=null){return"keeptype"===e?.featureset?this:"none"===e?.featureset?null:{type:"FeatureSet"}}async castAsJsonAsync(e=null,t=null){if("keeptype"===t?.featureset)return this;if("schema"===t?.featureset)return await this._ensureLoaded(),JSON.parse(JSON.stringify(this.schema()));if("none"===t?.featureset)return null;await this._ensureLoaded();const n=[];await this.reduce(((e,s)=>{const i={geometry:s.geometry?!0===t?.keepGeometryType?s.geometry:s.geometry.toJSON():null,attributes:s.attributes};return null!==i.geometry&&i.geometry.spatialReference&&!0!==t?.keepGeometryType&&delete i.geometry.spatialReference,n.push(i),1}),0,e);const s=this.schema();return s.features=n,s.spatialReference=!0===t?.keepGeometryType?this.spatialReference:this.spatialReference?.toJSON(),s}fieldTimeZone(e){return this.getFieldsIndex().getTimeZone(e)}get preferredTimeZone(){return this._parent?.preferredTimeZone??null}get dateFieldsTimeZone(){return this._parent?.dateFieldsTimeZone??null}get dateFieldsTimeZoneDefaultUTC(){if(this.datesInUnknownTimezone)return"unknown";const e=this.dateFieldsTimeZone??"UTC";return""===e?"UTC":e}get datesInUnknownTimezone(){return this._parent.datesInUnknownTimezone}get editFieldsInfo(){return this._parent?.editFieldsInfo??null}get timeInfo(){return this._parent?.timeInfo??null}set featureSetInfo(e){this.fsetInfo=e}async getFeatureSetInfo(){return this.fsetInfo??await(this._parent?.getFeatureSetInfo())??null}}function D(e,t){if(null!==t){const n={};for(const e in t)n[e.toLowerCase()]=t[e];e.parameters=n}}export{S as default};
5
+ import e from"./cache.js";import{FeatureSetError as t,FeatureSetErrorCodes as n}from"./errorsupport.js";import s from"./FeatureSetIterator.js";import i from"./IdSet.js";import{FeatureServiceDatabaseType as a,layerGeometryEsriConstants as r,IdState as l,esriFieldToJson as u,layerGeometryEsriRestConstants as h}from"./shared.js";import{max as o,min as c,sum as d,variance as f,stdev as _,mean as p,distinct as m,count as g}from"./stats.js";import{invokeRemoteGeometryOp as y}from"../../geometry/operatorsWorkerConnection.js";import{isPromiseLike as F}from"../../../core/promiseUtils.js";import I from"../../../core/sql/WhereClause.js";import T from"../../../geometry/SpatialReference.js";import{fromJSON as b}from"../../../geometry/support/jsonUtils.js";import w from"../../../layers/support/FieldsIndex.js";class S{constructor(e){this.recentlyUsedQueries=null,this.featureSetQueryInterceptor=null,this._idstates=[],this._parent=null,this._wset=null,this._mainSetInUse=null,this._maxProcessing=200,this._maxQuery=500,this._totalCount=-1,this._databaseType=a.NotEvaluated,this._databaseTypeProbed=null,this.declaredRootClass="esri.arcade.featureset.support.FeatureSet",this._featureCache=Object.create(null),this.typeIdField=null,this.types=null,this.subtypeField=null,this.subtypes=null,this.fields=null,this.geometryType="",this.objectIdField="",this.globalIdField="",this.spatialReference=null,this.hasM=!1,this.hasZ=!1,this._transparent=!1,this.loaded=!1,this._loadPromise=null,this._fieldsIndex=null,this.fsetInfo=null,e?.lrucache&&(this.recentlyUsedQueries=e.lrucache),e?.interceptor&&(this.featureSetQueryInterceptor=e.interceptor)}optimisePagingFeatureQueries(e){this._parent&&this._parent.optimisePagingFeatureQueries(e)}_hasMemorySource(){return!0}static{this._featuresetFunctions={}}prop(e,t){return void 0===t?this[e]:(void 0!==this[e]&&(this[e]=t),this)}end(){return null!==this._parent&&!0===this._parent._transparent?this._parent.end():this._parent}_ensureLoaded(){return this.load()}load(){return null===this._loadPromise&&(this._loadPromise=this.loadImpl()),this._loadPromise}async loadImpl(){return!0===this._parent?.loaded?(this._initialiseFeatureSet(),this):(await(this._parent?.load()),this._initialiseFeatureSet(),this)}_initialiseFeatureSet(){null!==this._parent?(this.fields=this._parent.fields.slice(),this.geometryType=this._parent.geometryType,this.objectIdField=this._parent.objectIdField,this.globalIdField=this._parent.globalIdField,this.spatialReference=this._parent.spatialReference,this.hasM=this._parent.hasM,this.hasZ=this._parent.hasZ,this.typeIdField=this._parent.typeIdField,this.types=this._parent.types,this.subtypeField=this._parent.subtypeField,this.subtypes=this._parent.subtypes):(this.fields=[],this.typeIdField="",this.subtypeField="",this.objectIdField="",this.globalIdField="",this.spatialReference=new T({wkid:4326}),this.geometryType=r.point)}getField(e,t){let n;return(t=t||this.fields)&&(e=e.toLowerCase(),t.some((t=>(t&&t.name.toLowerCase()===e&&(n=t),!!n)))),n}getFieldsIndex(){return null===this._fieldsIndex&&(this._fieldsIndex=w.fromLayer({timeInfo:this.timeInfo,editFieldsInfo:this.editFieldsInfo,dateFieldsTimeZone:this.dateFieldsTimeZone,datesInUnknownTimezone:this.datesInUnknownTimezone,fields:this.fields})),this._fieldsIndex}_maxProcessingRate(){return null!==this._parent?Math.min(this._maxProcessing,this._parent._maxProcessingRate()):Math.min(this._maxProcessing,this._maxQueryRate())}_maxQueryRate(){return null!==this._parent?Math.max(this._maxQuery,this._parent._maxQueryRate()):this._maxQuery}_checkCancelled(e){if(null!=e&&e.aborted)throw new t(n.Cancelled)}nativeCapabilities(){return this._parent.nativeCapabilities()}async _canDoAggregates(e,t,n,s,i){return null!==this._parent&&this._parent._canDoAggregates(e,t,n,s,i)}async _getAggregatePagesDataSourceDefinition(e,s,i,a,r,l,u){if(null===this._parent)throw new t(n.NeverReach);return this._parent._getAggregatePagesDataSourceDefinition(e,s,i,a,r,l,u)}async _getAgregagtePhysicalPage(e,s,i){if(null===this._parent)throw new t(n.NeverReach);return this._parent._getAgregagtePhysicalPage(e,s,i)}async databaseType(){if(this._databaseType===a.NotEvaluated){if(null!==e.applicationCache){const t=e.applicationCache.getDatabaseType(this._cacheableFeatureSetSourceKey());if(null!==t)return t}if(null!==this._databaseTypeProbed)return this._databaseTypeProbed;try{this._databaseTypeProbed=this._getDatabaseTypeImpl(),null!==e.applicationCache&&e.applicationCache.setDatabaseType(this._cacheableFeatureSetSourceKey(),this._databaseTypeProbed)}catch(t){throw null!==e.applicationCache&&e.applicationCache.clearDatabaseType(this._cacheableFeatureSetSourceKey()),t}return this._databaseTypeProbed}return this._databaseType}async _getDatabaseTypeImpl(){const e=[{thetype:a.SqlServer,testwhere:"(CAST( '2015-01-01' as DATETIME) = CAST( '2015-01-01' as DATETIME)) AND OBJECTID<0"},{thetype:a.Oracle,testwhere:"(TO_DATE('2003-11-18','YYYY-MM-DD') = TO_DATE('2003-11-18','YYYY-MM-DD')) AND OBJECTID<0"},{thetype:a.StandardisedNoInterval,testwhere:"(date '2015-01-01 10:10:10' = date '2015-01-01 10:10:10') AND OBJECTID<0"}];for(const t of e){if(!0===await this._runDatabaseProbe(t.testwhere))return t.thetype}return a.StandardisedNoInterval}_cacheableFeatureSetSourceKey(){return"MUSTBESET"}async _runDatabaseProbe(e){if(null!==this._parent)return this._parent._runDatabaseProbe(e);throw new t(n.NotImplemented)}isTable(){return this._parent?.isTable()??!1}_featureFromCache(e){if(void 0!==this._featureCache[e])return this._featureCache[e]}_isInFeatureSet(e){return l.Unknown}_getSet(e){throw new t(n.NotImplemented)}async _getFeature(e,s,i){if(this._checkCancelled(i),void 0!==this._featureFromCache(s))return this._featureFromCache(s);if(await this._getFeatures(e,s,this._maxProcessingRate(),i),this._checkCancelled(i),void 0!==this._featureFromCache(s))return this._featureFromCache(s);throw new t(n.MissingFeatures)}async _getFeatureBatch(e,t){this._checkCancelled(t);const n=new i([],e,!1,null),s=[];await this._getFeatures(n,-1,e.length,t),this._checkCancelled(t);for(const i of e)void 0!==this._featureFromCache(i)&&s.push(this._featureFromCache(i));return s}async _getFeatures(e,t,n,s){return"success"}_getFilteredSet(e,s,i,a,r){throw new t(n.NotImplemented)}async _refineSetBlock(e,t,n){if(!0===this._checkIfNeedToExpandCandidatePage(e,this._maxQueryRate()))return await this._expandPagedSet(e,this._maxQueryRate(),0,0,n),this._refineSetBlock(e,t,n);this._checkCancelled(n);const s=e._candidates.length;this._refineKnowns(e,t);let i=s-e._candidates.length;if(0===e._candidates.length)return e;if(i>=t)return e;if(await this._refineIfParentKnown(e,t-i,n),this._checkCancelled(n),this._refineKnowns(e,t-i),i=s-e._candidates.length,i<t&&e._candidates.length>0){const s=t-i,a=this._prepareFetchAndRefineSet(e._candidates);return await this._fetchAndRefineFeatures(a,a.length>s?s:e._candidates.length,n),this._checkCancelled(n),this._refineKnowns(e,t-i),e}return e}_fetchAndRefineFeatures(e,t,n){return null}_prepareFetchAndRefineSet(e){const t=[];for(let n=0;n<e.length;n++)this._isPhysicalFeature(e[n])&&t.push(e[n]);return t}_isPhysicalFeature(e){return null===this._parent||this._parent._isPhysicalFeature(e)}_refineKnowns(e,t){let n=0,s=null;const i=[];t=this._maxQueryRate();for(let a=0;a<e._candidates.length&&"GETPAGES"!==e._candidates[a];a++){let r=!1;const u=this._candidateIdTransform(e._candidates[a]);u!==e._candidates[a]&&(r=!0);const h=this._isInFeatureSet(u);if(h===l.InFeatureSet)!0===r?e._known.includes(u)||(e._known.push(u),n+=1):(e._known.push(e._candidates[a]),n+=1),null===s?s={start:a,end:a}:s.end===a-1?s.end=a:(i.push(s),s={start:a,end:a});else if(h===l.NotInFeatureSet)null===s?s={start:a,end:a}:s.end===a-1?s.end=a:(i.push(s),s={start:a,end:a}),n+=1;else if(h===l.Unknown&&(n+=1,!0===e._ordered))break;if(n>=t)break}null!==s&&i.push(s);for(let a=i.length-1;a>=0;a--)e._candidates.splice(i[a].start,i[a].end-i[a].start+1)}_refineIfParentKnown(e,t,n){const s=new i([],[],e._ordered,null);return s._candidates=e._candidates.slice(),this._parent._refineSetBlock(s,t,n)}_candidateIdTransform(e){return this._parent._candidateIdTransform(e)}_checkIfNeedToExpandKnownPage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let s=e._lastFetchedIndex;s<e._known.length;s++){if("GETPAGES"===e._known[s])return!0;if(void 0===this._featureCache[e._known[s]]&&(n+=1,n>=t))break}return!1}_checkIfNeedToExpandCandidatePage(e,t){if(null===e.pagesDefinition)return!1;let n=0;for(let s=0;s<e._candidates.length;s++){if("GETPAGES"===e._candidates[s])return!0;if(n+=1,n>=t)break}return!1}async _expandPagedSet(e,s,i,a,r){if(null===this._parent)throw new t(n.NotImplemented);return this._parent._expandPagedSet(e,s,i,a,r)}async _expandPagedSetFeatureSet(e,t,n,s,i){if(e._known.length>0&&"GETPAGES"===e._known[e._known.length-1]&&(s=1),0===s&&e._candidates.length>0&&"GETPAGES"===e._candidates[e._candidates.length-1]&&(s=2),0===s)return"finished";const a=await this._getPage(e,s,i);return n+a<t?this._expandPagedSet(e,t,n+a,0,i):"success"}async _getPage(e,t,n){const s=1===t?e._known:e._candidates;if(e.pagesDefinition.internal.set.length>e.pagesDefinition.resultOffset||!0===e.pagesDefinition.internal.fullyResolved){s.length=s.length-1;let t=0;for(let i=0;i<e.pagesDefinition.resultRecordCount&&!(e.pagesDefinition.resultOffset+i>=e.pagesDefinition.internal.set.length);i++)s[s.length]=e.pagesDefinition.internal.set[e.pagesDefinition.resultOffset+i],t++;e.pagesDefinition.resultOffset+=t;let n=!1;return!0===e.pagesDefinition.internal.fullyResolved&&e.pagesDefinition.internal.set.length<=e.pagesDefinition.resultOffset&&(n=!0),!1===n&&s.push("GETPAGES"),t}return await this._getPhysicalPage(e,t,n),this._getPage(e,t,n)}_getPhysicalPage(e,t,n){return null}_clonePageDefinition(e){return null===this._parent?null:this._parent._clonePageDefinition(e)}_first(e){return this.iterator(e).next()}first(e){return this._first(e)}async calculateStatistic(e,t,n,s){await this._ensureLoaded();let i=await this._stat(e,t,"",null,null,n,s);return!1===i.calculated&&(i=await this._manualStat(e,t,n,s)),i.result}async _manualStat(e,t,n,s){let i=null;switch(e.toLowerCase()){case"count":return i=await g(this,s),{calculated:!0,result:i};case"distinct":return i=await m(this,t,n,s),{calculated:!0,result:i};case"avg":case"mean":return i=await p(this,t,s),{calculated:!0,result:i};case"stdev":return i=await _(this,t,s),{calculated:!0,result:i};case"variance":return i=await f(this,t,s),{calculated:!0,result:i};case"sum":return i=await d(this,t,s),{calculated:!0,result:i};case"min":return i=await c(this,t,s),{calculated:!0,result:i};case"max":return i=await o(this,t,s),{calculated:!0,result:i};default:return{calculated:!0,result:0}}}async _stat(e,t,n,s,i,a,r){const l=await this._parent._stat(e,t,n,s,i,a,r);return!1===l.calculated?null===i&&""===n&&null===s?this._manualStat(e,t,a,r):{calculated:!1}:l}_unionAllGeomSelf(e){const t=this.iterator(this._defaultTracker(e)),n=[];return new Promise(((e,s)=>{this._unionShapeInBatches(n,t,e,s)}))}_unionAllGeom(e){return new Promise(((t,n)=>{const s=this.iterator(this._defaultTracker(e)),i=[];this._unionShapeInBatches(i,s,t,n)}))}_unionShapeInBatches(e,t,n,s){t.next().then((i=>{try{null!==i&&null!==i.geometry&&e.push(i.geometry),e.length>30||null===i&&e.length>1?y("union",[e.map((e=>e.toJSON()))]).then((a=>{try{null===i?n(a):(e=[b(a)],this._unionShapeInBatches(e,t,n,s))}catch(r){s(r)}}),s):null===i?1===e.length?n(e[0]):n(null):this._unionShapeInBatches(e,t,n,s)}catch(a){s(a)}}),s)}iterator(e){return new s(this,e)}intersection(e,t=!1){return S._featuresetFunctions.intersection.bind(this)(e,t)}difference(e,t=!1,n=!0){return S._featuresetFunctions.difference.bind(this)(e,t,n)}symmetricDifference(e,t=!1,n=!0){return S._featuresetFunctions.symmetricDifference.bind(this)(e,t,n)}morphShape(e,t,n="unknown",s=null){return S._featuresetFunctions.morphShape.bind(this)(e,t,n,s)}morphShapeAndAttributes(e,t,n="unknown"){return S._featuresetFunctions.morphShapeAndAttributes.bind(this)(e,t,n)}union(e,t=!1){return S._featuresetFunctions.union.bind(this)(e,t)}intersects(e){return S._featuresetFunctions.intersects.bind(this)(e)}envelopeIntersects(e){return S._featuresetFunctions.envelopeIntersects.bind(this)(e)}contains(e){return S._featuresetFunctions.contains.bind(this)(e)}overlaps(e){return S._featuresetFunctions.overlaps.bind(this)(e)}relate(e,t){return S._featuresetFunctions.relate.bind(this)(e,t)}within(e){return S._featuresetFunctions.within.bind(this)(e)}touches(e){return S._featuresetFunctions.touches.bind(this)(e)}top(e){return S._featuresetFunctions.top.bind(this)(e)}crosses(e){return S._featuresetFunctions.crosses.bind(this)(e)}buffer(e,t,n,s=!0){return S._featuresetFunctions.buffer.bind(this)(e,t,n,s)}filter(e,t=null){return S._featuresetFunctions.filter.bind(this)(e,t)}orderBy(e){return S._featuresetFunctions.orderBy.bind(this)(e)}dissolve(e,t){return S._featuresetFunctions.dissolve.bind(this)(e,t)}groupby(e,t){return S._featuresetFunctions.groupby.bind(this)(e,t)}reduce(e,t=null,n){return new Promise(((s,i)=>{this._reduceImpl(this.iterator(this._defaultTracker(n)),e,t,0,s,i,0)}))}_reduceImpl(e,t,n,s,i,a,r){try{if(++r>1e3)return void setTimeout((()=>{r=0,this._reduceImpl(e,t,n,s,i,a,r)}));e.next().then((l=>{try{if(null===l)i(n);else{const u=t(n,l,s,this);F(u)?u.then((n=>{this._reduceImpl(e,t,n,s+1,i,a,r)}),a):this._reduceImpl(e,t,u,s+1,i,a,r)}}catch(u){a(u)}}),a)}catch(l){a(l)}}removeField(e){return S._featuresetFunctions.removeField.bind(this)(e)}addField(e,t,n=null){return S._featuresetFunctions.addField.bind(this)(e,t,n)}async sumArea(e,t,n){const s=this.iterator(n);let i,a=0;for(;null!=(i=await s.next());)null!=i.geometry&&(a+=null!=t?await y("geodeticArea",[i.geometry.toJSON(),e,t]):await y("area",[i.geometry.toJSON(),e]));return a}async sumLength(e,t,n){const s=this.iterator(n);let i,a=0;for(;null!=(i=await s.next());)null!=i.geometry&&(a+=null!=t?await y("geodeticLength",[i.geometry.toJSON(),e,t]):await y("length",[i.geometry.toJSON(),e]));return a}async distinct(e,t=1e3,n=null,s){await this.load();const i=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(i,n),this.calculateStatistic("distinct",i,t,this._defaultTracker(s))}async min(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("min",s,-1,this._defaultTracker(n))}async max(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("max",s,-1,this._defaultTracker(n))}async avg(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("avg",s,-1,this._defaultTracker(n))}async sum(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("sum",s,-1,this._defaultTracker(n))}async stdev(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("stdev",s,-1,this._defaultTracker(n))}async variance(e,t=null,n){await this.load();const s=I.create(e,{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC});return D(s,t),this.calculateStatistic("variance",s,-1,this._defaultTracker(n))}async count(e){return await this.load(),this.calculateStatistic("count",I.create("1",{fieldsIndex:this.getFieldsIndex(),timeZone:this.dateFieldsTimeZoneDefaultUTC}),-1,this._defaultTracker(e))}_defaultTracker(e){return e??{aborted:!1}}forEach(e,t){return new Promise(((n,s)=>{this._forEachImpl(this.iterator(this._defaultTracker(t)),e,this,n,s,0)}))}_forEachImpl(e,t,n,s,i,a){try{if(++a>1e3)return void setTimeout((()=>{a=0,this._forEachImpl(e,t,n,s,i,a)}),0);e.next().then((r=>{try{if(null===r)s(n);else{const l=t(r);null==l?this._forEachImpl(e,t,n,s,i,a):F(l)?l.then((()=>{try{this._forEachImpl(e,t,n,s,i,a)}catch(r){i(r)}}),i):this._forEachImpl(e,t,n,s,i,a)}}catch(l){i(l)}}),i)}catch(r){i(r)}}convertToJSON(e){const t={layerDefinition:{geometryType:this.geometryType,fields:[]},featureSet:{features:[],geometryType:this.geometryType}};for(let n=0;n<this.fields.length;n++)t.layerDefinition.fields.push(u(this.fields[n]));return this.reduce(((e,n)=>{const s={geometry:n.geometry?.toJSON(),attributes:{}};for(const t in n.attributes)s.attributes[t]=n.attributes[t];return t.featureSet.features.push(s),1}),0,e).then((()=>t))}castToText(e=!1){return"object, FeatureSet"}queryAttachments(e,t,n,s,i){return this._parent.queryAttachments(e,t,n,s,i)}serviceUrl(){return this._parent.serviceUrl()}subtypeMetaData(){return this.subtypeField&&this.subtypes?{subtypeField:this.subtypeField,subtypes:this.subtypes?this.subtypes.map((e=>({name:e.name,code:e.code}))):[]}:this.typeIdField?{subtypeField:this.typeIdField,subtypes:this.types?this.types.map((e=>({name:e.name,code:e.id}))):[]}:null}relationshipMetaData(){return this._parent.relationshipMetaData()}get gdbVersion(){return this._parent?this._parent.gdbVersion:""}schema(){const e=[];for(const t of this.fields)e.push(u(t));return{objectIdField:this.objectIdField,globalIdField:this.globalIdField,geometryType:void 0===h[this.geometryType]?"esriGeometryNull":h[this.geometryType],fields:e}}async convertToText(e,t){if("schema"===e)return await this._ensureLoaded(),JSON.stringify(this.schema());if("featureset"===e){await this._ensureLoaded();const e=[];await this.reduce(((t,n)=>{const s={geometry:n.geometry?n.geometry.toJSON():null,attributes:n.attributes};return null!==s.geometry&&s.geometry.spatialReference&&delete s.geometry.spatialReference,e.push(s),1}),0,t);const n=this.schema();return n.features=e,n.spatialReference=this.spatialReference.toJSON(),JSON.stringify(n)}return this.castToText()}getFeatureByObjectId(e,t){return this._parent.getFeatureByObjectId(e,t)}getOwningSystemUrl(){return this._parent.getOwningSystemUrl()}getIdentityUser(){return this._parent.getIdentityUser()}getRootFeatureSet(){return null!==this._parent?this._parent.getRootFeatureSet():this}getDataSourceFeatureSet(){return null!==this._parent?this._parent.getDataSourceFeatureSet():this}castAsJson(e=null){return"keeptype"===e?.featureset?this:"none"===e?.featureset?null:{type:"FeatureSet"}}async castAsJsonAsync(e=null,t=null){if("keeptype"===t?.featureset)return this;if("schema"===t?.featureset)return await this._ensureLoaded(),JSON.parse(JSON.stringify(this.schema()));if("none"===t?.featureset)return null;await this._ensureLoaded();const n=[];await this.reduce(((e,s)=>{const i={geometry:s.geometry?!0===t?.keepGeometryType?s.geometry:s.geometry.toJSON():null,attributes:s.attributes};return null!==i.geometry&&i.geometry.spatialReference&&!0!==t?.keepGeometryType&&delete i.geometry.spatialReference,n.push(i),1}),0,e);const s=this.schema();return s.features=n,s.spatialReference=!0===t?.keepGeometryType?this.spatialReference:this.spatialReference?.toJSON(),s}fieldTimeZone(e){return this.getFieldsIndex().getTimeZone(e)}get preferredTimeZone(){return this._parent?.preferredTimeZone??null}get dateFieldsTimeZone(){return this._parent?.dateFieldsTimeZone??null}get dateFieldsTimeZoneDefaultUTC(){if(this.datesInUnknownTimezone)return"unknown";const e=this.dateFieldsTimeZone??"UTC";return""===e?"UTC":e}get datesInUnknownTimezone(){return this._parent.datesInUnknownTimezone}get editFieldsInfo(){return this._parent?.editFieldsInfo??null}get timeInfo(){return this._parent?.timeInfo??null}set featureSetInfo(e){this.fsetInfo=e}async getFeatureSetInfo(){return this.fsetInfo??await(this._parent?.getFeatureSetInfo())??null}}function D(e,t){if(null!==t){const n={};for(const e in t)n[e.toLowerCase()]=t[e];e.parameters=n}}export{S as default};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as a}from"../kernel.js";import{E as i,D as o,g as s,k as c,j as l,f as u,m as f,F as d,p as w,G as m,H as y,J as h,t as p,e as g,K as N,L as S}from"../../chunks/languageUtils.js";import{getPortal as O}from"../portalUtils.js";import{commonRelationsCheck as v,planarLength3D as J,measureToCoordinateFunc as P,pointToCoordinateFunc as A,distanceToCoordinateFunc as I}from"../geometry/functions.js";import{invokeRemoteGeometryOp as F}from"../geometry/operatorsWorkerConnection.js";import j from"../../geometry/Extent.js";import b from"../../geometry/Geometry.js";import R from"../../geometry/Multipoint.js";import x from"../../geometry/Point.js";import D from"../../geometry/Polygon.js";import L from"../../geometry/Polyline.js";import{fromJSON as C}from"../../geometry/support/jsonUtils.js";import k from"../../portal/Portal.js";import{lookupUser as E}from"../../portal/support/utils.js";import{isArray as U}from"../../support/guards.js";function M(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,r.InvalidParameter,null)}}function T(T){"async"===T.mode&&(T.functions.disjoint=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null===a[0]||null===a[1]||F("disjoint",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.intersects=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("intersects",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.touches=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("touches",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.crosses=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("crosses",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.within=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("within",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.contains=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("contains",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.overlaps=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),v(a,n,t),null!==a[0]&&null!==a[1]&&F("overlaps",[a[0].toJSON(),a[1].toJSON()]))))},T.functions.equals=function(n,t){return T.standardFunctionAsync(n,t,((e,r,a)=>(o(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof b&&a[1]instanceof b?F("equals",[a[0].toJSON(),a[1].toJSON()]):(s(a[0])&&s(a[1])||!!(c(a[0])&&c(a[1])||l(a[0])&&l(a[1])))&&a[0].equals(a[1])))))},T.functions.relate=function(n,t){return T.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,3,3,n,t),c[0]instanceof b&&c[1]instanceof b)return F("relate",[c[0].toJSON(),c[1].toJSON(),u(c[2])]);if(c[0]instanceof b&&null===c[1])return!1;if(c[1]instanceof b&&null===c[0])return!1;if(null===c[0]&&null===c[1])return!1;throw new e(n,r.InvalidParameter,t)}))},T.functions.intersection=function(n,t){return T.standardFunctionAsync(n,t,(async(e,r,a)=>(a=i(a),v(a,n,t),null===a[0]||null===a[1]?null:C(await F("intersection",[a[0].toJSON(),a[1].toJSON()])))))},T.functions.union=function(n,t){return T.standardFunctionAsync(n,t,(async(o,s,c)=>{if(0===(c=i(c)).length)throw new e(n,r.WrongNumberOfParameters,t);const l=[];if(1===c.length)if(U(c[0])){for(const a of i(c[0]))if(null!==a){if(!(a instanceof b))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else{if(!f(c[0])){if(c[0]instanceof b)return d(a(c[0]),n.spatialReference);if(null===c[0])return null;throw new e(n,r.InvalidParameter,t)}for(const a of i(c[0].toArray()))if(null!==a){if(!(a instanceof b))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else for(const a of c)if(null!==a){if(!(a instanceof b))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}return 0===l.length?null:C(await F("union",[l]))}))},T.functions.difference=function(n,t){return T.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),v(o,n,t),null===o[0]?null:null===o[1]?a(o[0]):C(await F("difference",[o[0].toJSON(),o[1].toJSON()])))))},T.functions.symmetricdifference=function(n,t){return T.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),v(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?a(o[1]):null===o[1]?a(o[0]):C(await F("symmetricDifference",[o[0].toJSON(),o[1].toJSON()])))))},T.functions.clip=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,2,n,t),!(c[1]instanceof j)&&null!==c[1])throw new e(n,r.InvalidParameter,t);if(null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);return null===c[1]?null:C(await F("clip",[c[0].toJSON(),c[1].toJSON()]))}))},T.functions.cut=function(n,t){return T.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,t),!(l[1]instanceof L)&&null!==l[1])throw new e(n,r.InvalidParameter,t);if(null===l[0])return[];if(!(l[0]instanceof b))throw new e(n,r.InvalidParameter,t);return null===l[1]?[a(l[0])]:(await F("cut",[l[0].toJSON(),l[1].toJSON()])).map((n=>C(n)))}))},T.functions.area=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumArea(M(c[1]),!1,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((U(l)||f(l))&&(l=m(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof b))throw new e(n,r.InvalidParameter,t);return F("area",[l.toJSON(),M(c[1])])}))},T.functions.areageodetic=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumArea(M(c[1]),!0,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((U(c[0])||f(c[0]))&&(l=m(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof b))throw new e(n,r.InvalidParameter,t);return F("geodeticArea",[l.toJSON(),M(c[1])])}))},T.functions.length=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumLength(M(c[1]),!1,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((U(c[0])||f(c[0]))&&(l=y(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof b))throw new e(n,r.InvalidParameter,t);return F("length",[l.toJSON(),M(c[1])])}))},T.functions.length3d=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),null===(c=i(c))[0])return 0;let l=c[0];if((U(c[0])||f(c[0]))&&(l=y(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof b))throw new e(n,r.InvalidParameter,t);if(!0===l.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=J(l);return n(l.spatialReference,t(c[1]),e)}return F("length",[l.toJSON(),M(c[1])])}))},T.functions.lengthgeodetic=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumLength(M(c[1]),!0,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((U(c[0])||f(c[0]))&&(l=y(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof b))throw new e(n,r.InvalidParameter,t);return F("geodeticLength",[l.toJSON(),M(c[1])])}))},T.functions.distance=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,3,n,t);let l=c[0];if((U(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),!(l instanceof b))throw new e(n,r.InvalidParameter,t);let u=c[1];if((U(c[1])||f(c[1]))&&(u=h(c[1],n.spatialReference)),!(u instanceof b))throw new e(n,r.InvalidParameter,t);return F("distance",[l.toJSON(),u.toJSON(),M(c[2])])}))},T.functions.distancegeodetic=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,3,n,t);const l=c[0];if(!(l instanceof x))throw new e(n,r.InvalidParameter,t);const u=c[1];if(!(u instanceof x))throw new e(n,r.InvalidParameter,t);const f=new L({paths:[],spatialReference:l.spatialReference});return f.addPath([l,u]),F("geodeticLength",[f.toJSON(),M(c[2])])}))},T.functions.densify=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);if(l<=0)throw new e(n,r.InvalidParameter,t);switch(c[0].type){case"polygon":case"polyline":case"extent":return C(await F("densify",[c[0].toJSON(),l,M(c[2])]));default:return c[0]}}))},T.functions.densifygeodetic=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);if(l<=0)throw new e(n,r.InvalidParameter,t);switch(c[0].type){case"polygon":case"polyline":case"extent":return C(await F("geodeticDensify",[c[0].toJSON(),l,M(c[2])]));default:return c[0]}}))},T.functions.generalize=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,4,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const u=g(N(c[2],!0));return C(await F("generalize",[c[0].toJSON(),l,M(c[3]),{removeDegenerateParts:u}]))}))},T.functions.buffer=function(n,t){return T.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,3,n,t),null===l[0])return null;if(!(l[0]instanceof b))throw new e(n,r.InvalidParameter,t);const u=p(l[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);return 0===u?a(l[0]):C(await F("buffer",[l[0].toJSON(),u,M(l[2])]))}))},T.functions.buffergeodetic=function(n,t){return T.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,3,n,t),null===l[0])return null;if(!(l[0]instanceof b))throw new e(n,r.InvalidParameter,t);const u=p(l[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);return 0===u?a(l[0]):C(await F("geodesicBuffer",[l[0].toJSON(),u,M(l[2])]))}))},T.functions.offset=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,6,n,t),null===c[0])return null;if(!(c[0]instanceof D||c[0]instanceof L))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const f=u(c[3]??"round").toLowerCase();let d;switch(f){case"round":case"bevel":case"miter":case"square":d=f;break;default:d="round"}const w=p(N(c[4],10));if(isNaN(w))throw new e(n,r.InvalidParameter,t);const m=p(N(c[5],0));if(isNaN(m))throw new e(n,r.InvalidParameter,t);return C(await F("offset",[c[0].toJSON(),l,M(c[2]),{joins:d,miterLimit:w,flattenError:m}]))}))},T.functions.rotate=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);const l=c[0]instanceof j?D.fromExtent(c[0]):c[0],u=p(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);const f=N(c[2],null);if(null===f){const n="point"===l.type?l:l.extent?.center;return C(await F("rotate",[l.toJSON(),u,n?.x,n?.y]))}if(f instanceof x)return C(await F("rotate",[l.toJSON(),u,f.x,f.y]));throw new e(n,r.InvalidParameter,t)}))},T.functions.centroid=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,2,n,t),null===c[0])return null;const l=u(c[1]??"geometric").toLowerCase();if("geometric"!==l&&"labelpoint"!==l)throw new e(n,r.InvalidParameter,t);let d=c[0];if((U(c[0])||f(c[0]))&&(d="geometric"===l?h(c[0],n.spatialReference):m(c[0],n.spatialReference),null===d))return null;if(!(d instanceof b))throw new e(n,r.InvalidParameter,t);return C("geometric"===l?await F("centroid",[d.toJSON()]):await F("labelPoint",[d.toJSON()]))}))},T.functions.measuretocoordinate=function(n,t){return T.standardFunctionAsync(n,t,P)},T.functions.pointtocoordinate=function(n,t){return T.standardFunctionAsync(n,t,A)},T.functions.distancetocoordinate=function(n,t){return T.standardFunctionAsync(n,t,I)},T.functions.multiparttosinglepart=function(n,t){return T.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,1,1,n,t),null===l[0])return null;if(!(l[0]instanceof b))throw new e(n,r.InvalidParameter,t);if(l[0]instanceof x)return[d(a(l[0]),n.spatialReference)];if(l[0]instanceof j)return[d(a(l[0]),n.spatialReference)];const u=C(await F("simplify",[l[0].toJSON()]));if(u instanceof D){const n=[],t=[];for(let e=0;e<u.rings.length;e++)if(u.isClockwise(u.rings[e])){const t=C({rings:[u.rings[e]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(t)}else t.push({ring:u.rings[e],pt:u.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(u instanceof L){const n=[];for(let t=0;t<u.paths.length;t++){const e=C({paths:[u.paths[t]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof R){const t=[],e=d(a(l[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null}))},T.functions.issimple=function(n,t){return T.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return!0;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);return F("isSimple",[c[0].toJSON()])}))},T.functions.simplify=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);return C(await F("simplify",[c[0].toJSON()]))}))},T.functions.convexhull=function(n,t){return T.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof b))throw new e(n,r.InvalidParameter,t);return C(await F("convexHull",[c[0].toJSON()]))}))},T.functions.getuser=function(a,i){return T.standardFunctionAsync(a,i,(async(s,c,l)=>{o(l,0,2,a,i);let f=N(l[1],""),d=!0===f;if(f=!0===f||!1===f?"":u(f),0===l.length||l[0]instanceof n){let n;n=a.services?.portal?a.services.portal:k.getDefault(),l.length>0&&(n=O(l[0],n));const e=await E(n,f,d);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(a))}return null}let m=null;if(w(l[0])&&(m=l[0]),m){if(d=!1,f)return null;await m.load();const e=await m.getOwningSystemUrl();if(!e){if(!f){const n=await m.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},S(a)):null}return null}let r;r=a.services?.portal?a.services.portal:k.getDefault(),r=O(new n(e),r);const i=await E(r,f,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,S(a))}return null}throw new e(a,r.InvalidParameter,i)}))},T.functions.nearestcoordinate=function(n,a){return T.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof b||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof x||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof j?D.fromExtent(l[0]):l[0],f=await F("getNearestCoordinate",[u.toJSON(),l[1].toJSON(),{calculateLeftRightSide:!0}]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:C(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},S(n),!1,!0)}))},T.functions.nearestvertex=function(n,a){return T.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof b||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof x||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof j?D.fromExtent(l[0]):l[0],f=await F("getNearestVertex",[u.toJSON(),l[1].toJSON()]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:C(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},S(n),!1,!0)}))})}export{T as registerFunctions};
5
+ import n from"../ArcadePortal.js";import t from"../Dictionary.js";import{ArcadeExecutionError as e,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as a}from"../kernel.js";import{E as i,D as o,g as s,k as c,j as l,f as u,m as f,F as d,p as w,G as m,l as y,H as h,J as g,t as p,e as N,K as S,L as O}from"../../chunks/languageUtils.js";import{getPortal as v}from"../portalUtils.js";import{commonRelationsCheck as J,toCurveType as P,planarLength3D as A,measureToCoordinateFunc as I,pointToCoordinateFunc as F,distanceToCoordinateFunc as j}from"../geometry/functions.js";import{invokeRemoteGeometryOp as b}from"../geometry/operatorsWorkerConnection.js";import R from"../../geometry/Extent.js";import x from"../../geometry/Geometry.js";import D from"../../geometry/Multipoint.js";import L from"../../geometry/Point.js";import C from"../../geometry/Polygon.js";import k from"../../geometry/Polyline.js";import{fromJSON as E}from"../../geometry/support/jsonUtils.js";import U from"../../portal/Portal.js";import{lookupUser as M}from"../../portal/support/utils.js";import{isArray as T}from"../../support/guards.js";function Z(n){if(null==n)return n;switch(typeof n){case"string":case"number":return n;default:throw new e(null,r.InvalidParameter,null)}}function q(q){"async"===q.mode&&(q.functions.disjoint=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]||b("disjoint",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.intersects=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("intersects",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.touches=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("touches",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.crosses=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("crosses",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.within=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("within",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.contains=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("contains",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.overlaps=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(a=i(a),J(a,n,t),null!==a[0]&&null!==a[1]&&b("overlaps",[a[0].toJSON(),a[1].toJSON()]))))},q.functions.equals=function(n,t){return q.standardFunctionAsync(n,t,((e,r,a)=>(o(a,2,2,n,t),a[0]===a[1]||(a[0]instanceof x&&a[1]instanceof x?b("equals",[a[0].toJSON(),a[1].toJSON()]):(s(a[0])&&s(a[1])||!!(c(a[0])&&c(a[1])||l(a[0])&&l(a[1])))&&a[0].equals(a[1])))))},q.functions.relate=function(n,t){return q.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,3,3,n,t),c[0]instanceof x&&c[1]instanceof x)return b("relate",[c[0].toJSON(),c[1].toJSON(),u(c[2])]);if(c[0]instanceof x&&null===c[1])return!1;if(c[1]instanceof x&&null===c[0])return!1;if(null===c[0]&&null===c[1])return!1;throw new e(n,r.InvalidParameter,t)}))},q.functions.intersection=function(n,t){return q.standardFunctionAsync(n,t,(async(e,r,a)=>(a=i(a),J(a,n,t),null===a[0]||null===a[1]?null:E(await b("intersection",[a[0].toJSON(),a[1].toJSON()])))))},q.functions.union=function(n,t){return q.standardFunctionAsync(n,t,(async(o,s,c)=>{if(0===(c=i(c)).length)throw new e(n,r.WrongNumberOfParameters,t);const l=[];if(1===c.length)if(T(c[0])){for(const a of i(c[0]))if(null!==a){if(!(a instanceof x))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else{if(!f(c[0])){if(c[0]instanceof x)return d(a(c[0]),n.spatialReference);if(null===c[0])return null;throw new e(n,r.InvalidParameter,t)}for(const a of i(c[0].toArray()))if(null!==a){if(!(a instanceof x))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}}else for(const a of c)if(null!==a){if(!(a instanceof x))throw new e(n,r.InvalidParameter,t);l.push(a.toJSON())}return 0===l.length?null:E(await b("union",[l]))}))},q.functions.difference=function(n,t){return q.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]?null:null===o[1]?a(o[0]):E(await b("difference",[o[0].toJSON(),o[1].toJSON()])))))},q.functions.symmetricdifference=function(n,t){return q.standardFunctionAsync(n,t,(async(e,r,o)=>(o=i(o),J(o,n,t),null===o[0]&&null===o[1]?null:null===o[0]?a(o[1]):null===o[1]?a(o[0]):E(await b("symmetricDifference",[o[0].toJSON(),o[1].toJSON()])))))},q.functions.clip=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,2,n,t),!(c[1]instanceof R)&&null!==c[1])throw new e(n,r.InvalidParameter,t);if(null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);return null===c[1]?null:E(await b("clip",[c[0].toJSON(),c[1].toJSON()]))}))},q.functions.cut=function(n,t){return q.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,t),!(l[1]instanceof k)&&null!==l[1])throw new e(n,r.InvalidParameter,t);if(null===l[0])return[];if(!(l[0]instanceof x))throw new e(n,r.InvalidParameter,t);return null===l[1]?[a(l[0])]:(await b("cut",[l[0].toJSON(),l[1].toJSON()])).map((n=>E(n)))}))},q.functions.area=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumArea(Z(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((T(l)||f(l))&&(l=m(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof x))throw new e(n,r.InvalidParameter,t);return b("area",[l.toJSON(),Z(c[1])])}))},q.functions.areageodetic=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(T(l)||f(l))&&(l=m(l,n.spatialReference));const u=Z(c[1]),d=P(c[2])??"geodesic";if(w(l)){const a=await l.sumArea(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null==l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return b("geodeticArea",[l.toJSON(),u,d])}))},q.functions.length=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),c=i(c),w(c[0])){const a=await c[0].sumLength(Z(c[1]),null,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}let l=c[0];if((T(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof x))throw new e(n,r.InvalidParameter,t);return b("length",[l.toJSON(),Z(c[1])])}))},q.functions.length3d=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(o(c,1,2,n,t),null===(c=i(c))[0])return 0;let l=c[0];if((T(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference)),null===l)return 0;if(!(l instanceof x))throw new e(n,r.InvalidParameter,t);if(!0===l.hasZ){const{convertFromSpatialReferenceUnit:n,toLengthUnit:t}=await import("../geometry/unitConversion.js"),e=A(l);return n(l.spatialReference,t(c[1]),e)}return b("length",[l.toJSON(),Z(c[1])])}))},q.functions.lengthgeodetic=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{o(c,1,3,n,t);let l=(c=i(c))[0];(T(c[0])||f(c[0]))&&(l=h(c[0],n.spatialReference));const u=Z(c[1]),d=P(c[2])??"geodesic";if(w(l)){const a=await l.sumLength(u,d,n.abortSignal);if(n.abortSignal.aborted)throw new e(n,r.Cancelled,t);return a}if(null===l)return 0;if(!y(l))throw new e(n,r.InvalidParameter,t);return b("geodeticLength",[l.toJSON(),u,d])}))},q.functions.distance=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,3,n,t);let l=c[0];if((T(c[0])||f(c[0]))&&(l=g(c[0],n.spatialReference)),!(l instanceof x))throw new e(n,r.InvalidParameter,t);let u=c[1];if((T(c[1])||f(c[1]))&&(u=g(c[1],n.spatialReference)),!(u instanceof x))throw new e(n,r.InvalidParameter,t);return b("distance",[l.toJSON(),u.toJSON(),Z(c[2])])}))},q.functions.distancegeodetic=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(!(l instanceof L))throw new e(n,r.InvalidParameter,t);const u=c[1];if(!(u instanceof L))throw new e(n,r.InvalidParameter,t);const f=new k({paths:[],spatialReference:l.spatialReference});return f.addPath([l,u]),b("geodeticLength",[f.toJSON(),Z(c[2]),P(c[3])??"geodesic"])}))},q.functions.densify=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);if(l<=0)throw new e(n,r.InvalidParameter,t);switch(c[0].type){case"polygon":case"polyline":case"extent":return E(await b("densify",[c[0].toJSON(),l,Z(c[2])]));default:return c[0]}}))},q.functions.densifygeodetic=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{c=i(c),o(c,2,4,n,t);const l=c[0];if(null==l)return null;if(!y(l))throw new e(n,r.InvalidParameter,t);const u=p(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);if(u<=0)throw new e(n,r.InvalidParameter,t);const f=Z(c[2]),d=P(c[3])??"geodesic";switch(l.type){case"polygon":case"polyline":case"extent":return E(await b("geodeticDensify",[l.toJSON(),u,f,d]));default:return l}}))},q.functions.generalize=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,4,n,t),null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const u=N(S(c[2],!0));return E(await b("generalize",[c[0].toJSON(),l,Z(c[3]),{removeDegenerateParts:u}]))}))},q.functions.buffer=function(n,t){return q.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,2,3,n,t),null===l[0])return null;if(!(l[0]instanceof x))throw new e(n,r.InvalidParameter,t);const u=p(l[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);return 0===u?a(l[0]):E(await b("buffer",[l[0].toJSON(),u,Z(l[2])]))}))},q.functions.buffergeodetic=function(n,t){return q.standardFunctionAsync(n,t,(async(s,c,l)=>{l=i(l),o(l,2,4,n,t);const u=l[0];if(null==u)return null;if(!y(u))throw new e(n,r.InvalidParameter,t);const f=p(l[1]);if(isNaN(f))throw new e(n,r.InvalidParameter,t);if(0===f)return a(u);const d=Z(l[2]),w=P(l[3])??"geodesic";return E(await b("geodesicBuffer",[u.toJSON(),f,d,w]))}))},q.functions.offset=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,6,n,t),null===c[0])return null;if(!(c[0]instanceof C||c[0]instanceof k))throw new e(n,r.InvalidParameter,t);const l=p(c[1]);if(isNaN(l))throw new e(n,r.InvalidParameter,t);const f=u(c[3]??"round").toLowerCase();let d;switch(f){case"round":case"bevel":case"miter":case"square":d=f;break;default:d="round"}const w=p(S(c[4],10));if(isNaN(w))throw new e(n,r.InvalidParameter,t);const m=p(S(c[5],0));if(isNaN(m))throw new e(n,r.InvalidParameter,t);return E(await b("offset",[c[0].toJSON(),l,Z(c[2]),{joins:d,miterLimit:w,flattenError:m}]))}))},q.functions.rotate=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,2,3,n,t),null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);const l=c[0]instanceof R?C.fromExtent(c[0]):c[0],u=p(c[1]);if(isNaN(u))throw new e(n,r.InvalidParameter,t);const f=S(c[2],null);if(null===f){const n="point"===l.type?l:l.extent?.center;return E(await b("rotate",[l.toJSON(),u,n?.x,n?.y]))}if(f instanceof L)return E(await b("rotate",[l.toJSON(),u,f.x,f.y]));throw new e(n,r.InvalidParameter,t)}))},q.functions.centroid=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,2,n,t),null===c[0])return null;const l=u(c[1]??"geometric").toLowerCase();if("geometric"!==l&&"labelpoint"!==l)throw new e(n,r.InvalidParameter,t);let d=c[0];if((T(c[0])||f(c[0]))&&(d="geometric"===l?g(c[0],n.spatialReference):m(c[0],n.spatialReference),null===d))return null;if(!(d instanceof x))throw new e(n,r.InvalidParameter,t);return E("geometric"===l?await b("centroid",[d.toJSON()]):await b("labelPoint",[d.toJSON()]))}))},q.functions.measuretocoordinate=function(n,t){return q.standardFunctionAsync(n,t,I)},q.functions.pointtocoordinate=function(n,t){return q.standardFunctionAsync(n,t,F)},q.functions.distancetocoordinate=function(n,t){return q.standardFunctionAsync(n,t,j)},q.functions.multiparttosinglepart=function(n,t){return q.standardFunctionAsync(n,t,(async(s,c,l)=>{if(l=i(l),o(l,1,1,n,t),null===l[0])return null;if(!(l[0]instanceof x))throw new e(n,r.InvalidParameter,t);if(l[0]instanceof L)return[d(a(l[0]),n.spatialReference)];if(l[0]instanceof R)return[d(a(l[0]),n.spatialReference)];const u=E(await b("simplify",[l[0].toJSON()]));if(u instanceof C){const n=[],t=[];for(let e=0;e<u.rings.length;e++)if(u.isClockwise(u.rings[e])){const t=E({rings:[u.rings[e]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(t)}else t.push({ring:u.rings[e],pt:u.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(u instanceof k){const n=[];for(let t=0;t<u.paths.length;t++){const e=E({paths:[u.paths[t]],hasZ:!0===u.hasZ,hasM:!0===u.hasM,spatialReference:u.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof D){const t=[],e=d(a(l[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)t.push(e.getPoint(n));return t}return null}))},q.functions.issimple=function(n,t){return q.standardFunctionAsync(n,t,((a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return!0;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);return b("isSimple",[c[0].toJSON()])}))},q.functions.simplify=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);return E(await b("simplify",[c[0].toJSON()]))}))},q.functions.convexhull=function(n,t){return q.standardFunctionAsync(n,t,(async(a,s,c)=>{if(c=i(c),o(c,1,1,n,t),null===c[0])return null;if(!(c[0]instanceof x))throw new e(n,r.InvalidParameter,t);return E(await b("convexHull",[c[0].toJSON()]))}))},q.functions.getuser=function(a,i){return q.standardFunctionAsync(a,i,(async(s,c,l)=>{o(l,0,2,a,i);let f=S(l[1],""),d=!0===f;if(f=!0===f||!1===f?"":u(f),0===l.length||l[0]instanceof n){let n;n=a.services?.portal?a.services.portal:U.getDefault(),l.length>0&&(n=v(l[0],n));const e=await M(n,f,d);if(e){const n=JSON.parse(JSON.stringify(e));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}let m=null;if(w(l[0])&&(m=l[0]),m){if(d=!1,f)return null;await m.load();const e=await m.getOwningSystemUrl();if(!e){if(!f){const n=await m.getIdentityUser();return n?t.convertObjectToArcadeDictionary({username:n},O(a)):null}return null}let r;r=a.services?.portal?a.services.portal:U.getDefault(),r=v(new n(e),r);const i=await M(r,f,d);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return t.convertObjectToArcadeDictionary(n,O(a))}return null}throw new e(a,r.InvalidParameter,i)}))},q.functions.nearestcoordinate=function(n,a){return q.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof x||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof L||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof R?C.fromExtent(l[0]):l[0],f=await b("getNearestCoordinate",[u.toJSON(),l[1].toJSON(),{calculateLeftRightSide:!0}]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:E(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))},q.functions.nearestvertex=function(n,a){return q.standardFunctionAsync(n,a,(async(s,c,l)=>{if(l=i(l),o(l,2,2,n,a),!(l[0]instanceof x||null===l[0]))throw new e(n,r.InvalidParameter,a);if(!(l[1]instanceof L||null===l[1]))throw new e(n,r.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const u=l[0]instanceof R?C.fromExtent(l[0]):l[0],f=await b("getNearestVertex",[u.toJSON(),l[1].toJSON()]);return null===f?null:t.convertObjectToArcadeDictionary({coordinate:E(f.coordinate),distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},O(n),!1,!0)}))})}export{q 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.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{cloneGeometry as r}from"../kernel.js";import{E as i,D as a,g as l,k as o,j as u,f,m as s,F as c,G as m,H as d,J as w,t as h,e as p,K as g,L as v}from"../../chunks/languageUtils.js";import{commonRelationsCheck as P,planarLength3D as x,measureToCoordinateFunc as I,pointToCoordinateFunc as y,distanceToCoordinateFunc as R}from"../geometry/functions.js";import{convertFromSpatialReferenceUnit as j,toAreaUnit as N,convert as b,toLengthUnit as E,convertToSpatialReferenceUnit as L}from"../geometry/unitConversion.js";import D from"../../geometry/Extent.js";import O from"../../geometry/Geometry.js";import k from"../../geometry/Multipoint.js";import M from"../../geometry/Point.js";import S from"../../geometry/Polygon.js";import A from"../../geometry/Polyline.js";import{fromJSON as C}from"../../geometry/support/jsonUtils.js";import{squareMeters as Z,meters as q}from"../geometry/extendedUnitData.js";import{isArray as J}from"../../support/guards.js";let U;async function z(){null==U&&(U=await import("../geometry/operators.js"),await U.loadAll())}function G(z,G){z.disjoint=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null===a[0]||null===a[1]||U.disjoint.execute(a[0],a[1]))))},z.intersects=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.intersects.execute(a[0],a[1]))))},z.touches=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.touches.execute(a[0],a[1]))))},z.crosses=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.crosses.execute(a[0],a[1]))))},z.within=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.within.execute(a[0],a[1]))))},z.contains=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.contains.execute(a[0],a[1]))))},z.overlaps=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null!==a[0]&&null!==a[1]&&U.overlaps.execute(a[0],a[1]))))},z.equals=function(e,n){return G(e,n,((t,r,i)=>(a(i,2,2,e,n),i[0]===i[1]||(i[0]instanceof O&&i[1]instanceof O?U.equals.execute(i[0],i[1]):(l(i[0])&&l(i[1])||o(i[0])&&o(i[1])||!(!u(i[0])||!u(i[1])))&&i[0].equals(i[1])))))},z.relate=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,3,3,e,r),u[0]instanceof O&&u[1]instanceof O)return U.relate.execute(u[0],u[1],f(u[2]));if(u[0]instanceof O&&null===u[1])return!1;if(u[1]instanceof O&&null===u[0])return!1;if(null===u[0]&&null===u[1])return!1;throw new n(e,t.InvalidParameter,r)}))},z.intersection=function(e,n){return G(e,n,((t,r,a)=>(a=i(a),P(a,e,n),null===a[0]||null===a[1]?null:U.intersection.execute(a[0],a[1]))))},z.union=function(e,a){return G(e,a,((l,o,u)=>{if(0===(u=i(u)).length)throw new n(e,t.WrongNumberOfParameters,a);const f=[];if(1===u.length)if(J(u[0])){for(const r of i(u[0]))if(null!==r){if(!(r instanceof O))throw new n(e,t.InvalidParameter,a);f.push(r)}}else{if(!s(u[0])){if(u[0]instanceof O)return c(r(u[0]),e.spatialReference);if(null===u[0])return null;throw new n(e,t.InvalidParameter,a)}for(const r of i(u[0].toArray()))if(null!==r){if(!(r instanceof O))throw new n(e,t.InvalidParameter,a);f.push(r)}}else for(const r of u)if(null!==r){if(!(r instanceof O))throw new n(e,t.InvalidParameter,a);f.push(r)}return 0===f.length?null:U.union.executeMany(f)}))},z.difference=function(e,n){return G(e,n,((t,a,l)=>(l=i(l),P(l,e,n),null===l[0]?null:null===l[1]?r(l[0]):U.difference.execute(l[0],l[1]))))},z.symmetricdifference=function(e,n){return G(e,n,((t,a,l)=>(l=i(l),P(l,e,n),null===l[0]&&null===l[1]?null:null===l[0]?r(l[1]):null===l[1]?r(l[0]):U.symmetricDifference.execute(l[0],l[1]))))},z.clip=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,2,e,r),!(u[1]instanceof D)&&null!==u[1])throw new n(e,t.InvalidParameter,r);if(null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);return null===u[1]?null:U.clip.execute(u[0],u[1])}))},z.cut=function(e,l){return G(e,l,((o,u,f)=>{if(f=i(f),a(f,2,2,e,l),!(f[1]instanceof A)&&null!==f[1])throw new n(e,t.InvalidParameter,l);if(null===f[0])return[];if(!(f[0]instanceof O))throw new n(e,t.InvalidParameter,l);return null===f[1]?[r(f[0])]:U.cut.execute(f[0],f[1])}))},z.area=function(e,r){return G(e,r,((l,o,u)=>{a(u,1,2,e,r);let f=(u=i(u))[0];if((J(u[0])||s(u[0]))&&(f=m(u[0],e.spatialReference)),null===f)return 0;if(!(f instanceof O))throw new n(e,t.InvalidParameter,r);return j(f.spatialReference,N(u[1]),U.area.execute(f))}))},z.areageodetic=function(e,r){return G(e,r,((l,o,u)=>{a(u,1,2,e,r);let f=(u=i(u))[0];if((J(u[0])||s(u[0]))&&(f=m(u[0],e.spatialReference)),null===f)return 0;if(!(f instanceof O))throw new n(e,t.InvalidParameter,r);return b(Z,N(u[1]),U.geodeticArea.execute(f))}))},z.length=function(e,r){return G(e,r,((l,o,u)=>{a(u,1,2,e,r);let f=(u=i(u))[0];if((J(u[0])||s(u[0]))&&(f=d(u[0],e.spatialReference)),null===f)return 0;if(!(f instanceof O))throw new n(e,t.InvalidParameter,r);return j(f.spatialReference,E(u[1]),U.length.execute(f))}))},z.length3d=function(e,r){return G(e,r,((l,o,u)=>{a(u,1,2,e,r);let f=(u=i(u))[0];if((J(u[0])||s(u[0]))&&(f=d(u[0],e.spatialReference)),null===f)return 0;if(!(f instanceof O))throw new n(e,t.InvalidParameter,r);return!0===f.hasZ?j(f.spatialReference,E(u[1]),x(f)):j(f.spatialReference,E(u[1]),U.length.execute(f))}))},z.lengthgeodetic=function(e,r){return G(e,r,((l,o,u)=>{a(u,1,2,e,r);let f=(u=i(u))[0];if((J(u[0])||s(u[0]))&&(f=d(u[0],e.spatialReference)),null===f)return 0;if(!(f instanceof O))throw new n(e,t.InvalidParameter,r);return b(q,E(u[1]),U.geodeticLength.execute(f))}))},z.distance=function(e,r){return G(e,r,((l,o,u)=>{u=i(u),a(u,2,3,e,r);let f=u[0];if((J(u[0])||s(u[0]))&&(f=w(u[0],e.spatialReference)),!(f instanceof O))throw new n(e,t.InvalidParameter,r);let c=u[1];if((J(u[1])||s(u[1]))&&(c=w(u[1],e.spatialReference)),!(c instanceof O))throw new n(e,t.InvalidParameter,r);return j(f.spatialReference,E(u[2]),U.distance.execute(f,c))}))},z.distancegeodetic=function(e,r){return G(e,r,((l,o,u)=>{u=i(u),a(u,2,3,e,r);const f=u[0];if(!(f instanceof M))throw new n(e,t.InvalidParameter,r);const s=u[1];if(!(s instanceof M))throw new n(e,t.InvalidParameter,r);const c=new A({paths:[],spatialReference:f.spatialReference});return c.addPath([f,s]),b(q,E(u[2]),U.geodeticLength.execute(c))}))},z.densify=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,3,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);const f=h(u[1]);if(isNaN(f))throw new n(e,t.InvalidParameter,r);if(f<=0)throw new n(e,t.InvalidParameter,r);const s=L(E(u[2]),u[0].spatialReference,f);switch(u[0].type){case"polygon":case"polyline":case"extent":return U.densify.execute(u[0],s);default:return u[0]}}))},z.densifygeodetic=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,3,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);const f=h(u[1]);if(isNaN(f))throw new n(e,t.InvalidParameter,r);if(f<=0)throw new n(e,t.InvalidParameter,r);const s=b(E(u[2]),q,f);switch(u[0].type){case"polygon":case"polyline":case"extent":return U.geodeticDensify.execute(u[0],s);default:return u[0]}}))},z.generalize=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,4,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);const f=h(u[1]);if(isNaN(f))throw new n(e,t.InvalidParameter,r);const s=L(E(u[3]),u[0].spatialReference,f);return U.generalize.execute(u[0],s,{removeDegenerateParts:p(g(u[2],!0))})}))},z.buffer=function(e,l){return G(e,l,((o,u,f)=>{if(f=i(f),a(f,2,3,e,l),null===f[0])return null;if(!(f[0]instanceof O))throw new n(e,t.InvalidParameter,l);const s=h(f[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,l);return 0===s?r(f[0]):U.buffer.execute(f[0],L(E(f[2]),f[0].spatialReference,s))}))},z.buffergeodetic=function(e,l){return G(e,l,((o,u,f)=>{if(f=i(f),a(f,2,3,e,l),null===f[0])return null;if(!(f[0]instanceof O))throw new n(e,t.InvalidParameter,l);const s=h(f[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,l);return 0===s?r(f[0]):U.geodesicBuffer.execute(f[0],b(E(f[2]),q,s))}))},z.offset=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,6,e,r),null===u[0])return null;if(!(u[0]instanceof S||u[0]instanceof A))throw new n(e,t.InvalidParameter,r);const s=h(u[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,r);const c=L(E(u[2]),u[0].spatialReference,s),m=f(u[3]??"round").toLowerCase();let d;switch(m){case"round":case"bevel":case"miter":case"square":d=m;break;default:d="round"}const w=h(g(u[4],10));if(isNaN(w))throw new n(e,t.InvalidParameter,r);const p=h(g(u[5],0));if(isNaN(p))throw new n(e,t.InvalidParameter,r);return U.offset.execute(u[0],c,{joins:d,miterLimit:w,flattenError:p})}))},z.rotate=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,2,3,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);const f=u[0]instanceof D?S.fromExtent(u[0]):u[0],s=h(u[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,r);const c=g(u[2],null);if(null===c){const e="point"===f.type?f:f.extent?.center;return U.rotate(f,s,e?.x,e?.y)}if(c instanceof M)return U.rotate(f,s,c.x,c.y);throw new n(e,t.InvalidParameter,r)}))},z.centroid=function(e,r){return G(e,r,((e,r,l)=>{if(l=i(l),a(l,1,2,e,r),null===l[0])return null;const o=f(l[1]??"geometric").toLowerCase();if("geometric"!==o&&"labelpoint"!==o)throw new n(e,t.InvalidParameter,r);let u=l[0];if((J(l[0])||s(l[0]))&&(u="geometric"===o?w(l[0],e.spatialReference):m(l[0],e.spatialReference),null===u))return null;if(!(u instanceof O))throw new n(e,t.InvalidParameter,r);return"geometric"===o?U.centroid.execute(u):U.labelPoint.execute(u)}))},z.measuretocoordinate=function(e,n){return G(e,n,I)},z.pointtocoordinate=function(e,n){return G(e,n,y)},z.distancetocoordinate=function(e,n){return G(e,n,R)},z.multiparttosinglepart=function(e,l){return G(e,l,((o,u,f)=>{if(f=i(f),a(f,1,1,e,l),null===f[0])return null;if(!(f[0]instanceof O))throw new n(e,t.InvalidParameter,l);if(f[0]instanceof M)return[c(r(f[0]),e.spatialReference)];if(f[0]instanceof D)return[c(r(f[0]),e.spatialReference)];const s=U.simplify.execute(f[0]);if(s instanceof S){const e=[],n=[];for(let t=0;t<s.rings.length;t++)if(s.isClockwise(s.rings[t])){const n=C({rings:[s.rings[t]],hasZ:!0===s.hasZ,hasM:!0===s.hasM,spatialReference:s.spatialReference.toJSON()});e.push(n)}else n.push({ring:s.rings[t],pt:s.getPoint(t,0)});for(let t=0;t<n.length;t++)for(let r=0;r<e.length;r++)if(e[r].contains(n[t].pt)){e[r].addRing(n[t].ring);break}return e}if(s instanceof A){const e=[];for(let n=0;n<s.paths.length;n++){const t=C({paths:[s.paths[n]],hasZ:!0===s.hasZ,hasM:!0===s.hasM,spatialReference:s.spatialReference.toJSON()});e.push(t)}return e}if(f[0]instanceof k){const n=[],t=c(r(f[0]),e.spatialReference);for(let e=0;e<t.points.length;e++)n.push(t.getPoint(e));return n}return null}))},z.issimple=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return!0;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);return U.simplify.isSimple(u[0])}))},z.simplify=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);return U.simplify.execute(u[0])}))},z.convexhull=function(e,r){return G(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return null;if(!(u[0]instanceof O))throw new n(e,t.InvalidParameter,r);return U.convexHull.execute(u[0])}))},z.nearestcoordinate=function(r,l){return G(r,l,((o,u,f)=>{if(f=i(f),a(f,2,2,r,l),!(f[0]instanceof O||null===f[0]))throw new n(r,t.InvalidParameter,l);if(!(f[1]instanceof M||null===f[1]))throw new n(r,t.InvalidParameter,l);if(null===f[0]||null===f[1])return null;const s=f[0]instanceof D?S.fromExtent(f[0]):f[0],c=U.proximity.getNearestCoordinate(s,f[1],{calculateLeftRightSide:!0});return null===c||c.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance,sideOfLine:0===c.distance?"straddle":c.rightSide?"right":"left"},v(r),!1,!0)}))},z.nearestvertex=function(r,l){return G(r,l,((o,u,f)=>{if(f=i(f),a(f,2,2,r,l),!(f[0]instanceof O||null===f[0]))throw new n(r,t.InvalidParameter,l);if(!(f[1]instanceof M||null===f[1]))throw new n(r,t.InvalidParameter,l);if(null===f[0]||null===f[1])return null;const s=f[0]instanceof D?S.fromExtent(f[0]):f[0],c=U.proximity.getNearestVertex(s,f[1]);return null===c||c.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance,sideOfLine:0===c.distance?"straddle":c.rightSide?"right":"left"},v(r),!1,!0)}))}}export{z as loadOperators,G as registerFunctions};
5
+ import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{cloneGeometry as r}from"../kernel.js";import{E as i,D as a,g as l,k as o,j as u,f as c,m as s,F as f,G as m,l as d,H as w,J as h,t as p,e as g,K as v,L as P}from"../../chunks/languageUtils.js";import{commonRelationsCheck as x,toCurveType as y,planarLength3D as I,measureToCoordinateFunc as R,pointToCoordinateFunc as j,distanceToCoordinateFunc as N}from"../geometry/functions.js";import{convertFromSpatialReferenceUnit as b,toAreaUnit as E,convert as L,toLengthUnit as D,convertToSpatialReferenceUnit as O}from"../geometry/unitConversion.js";import T from"../../geometry/Extent.js";import k from"../../geometry/Geometry.js";import M from"../../geometry/Multipoint.js";import S from"../../geometry/Point.js";import A from"../../geometry/Polygon.js";import C from"../../geometry/Polyline.js";import{fromJSON as Z}from"../../geometry/support/jsonUtils.js";import{squareMeters as q,meters as J}from"../geometry/extendedUnitData.js";import{isArray as U}from"../../support/guards.js";let z;async function G(){null==z&&(z=await import("../geometry/operators.js"),await z.loadAll())}function H(G,H){G.disjoint=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null===a[0]||null===a[1]||z.disjoint.execute(a[0],a[1]))))},G.intersects=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.intersects.execute(a[0],a[1]))))},G.touches=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.touches.execute(a[0],a[1]))))},G.crosses=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.crosses.execute(a[0],a[1]))))},G.within=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.within.execute(a[0],a[1]))))},G.contains=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.contains.execute(a[0],a[1]))))},G.overlaps=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null!==a[0]&&null!==a[1]&&z.overlaps.execute(a[0],a[1]))))},G.equals=function(e,n){return H(e,n,((t,r,i)=>(a(i,2,2,e,n),i[0]===i[1]||(i[0]instanceof k&&i[1]instanceof k?z.equals.execute(i[0],i[1]):(l(i[0])&&l(i[1])||o(i[0])&&o(i[1])||!(!u(i[0])||!u(i[1])))&&i[0].equals(i[1])))))},G.relate=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,3,3,e,r),u[0]instanceof k&&u[1]instanceof k)return z.relate.execute(u[0],u[1],c(u[2]));if(u[0]instanceof k&&null===u[1])return!1;if(u[1]instanceof k&&null===u[0])return!1;if(null===u[0]&&null===u[1])return!1;throw new n(e,t.InvalidParameter,r)}))},G.intersection=function(e,n){return H(e,n,((t,r,a)=>(a=i(a),x(a,e,n),null===a[0]||null===a[1]?null:z.intersection.execute(a[0],a[1]))))},G.union=function(e,a){return H(e,a,((l,o,u)=>{if(0===(u=i(u)).length)throw new n(e,t.WrongNumberOfParameters,a);const c=[];if(1===u.length)if(U(u[0])){for(const r of i(u[0]))if(null!==r){if(!(r instanceof k))throw new n(e,t.InvalidParameter,a);c.push(r)}}else{if(!s(u[0])){if(u[0]instanceof k)return f(r(u[0]),e.spatialReference);if(null===u[0])return null;throw new n(e,t.InvalidParameter,a)}for(const r of i(u[0].toArray()))if(null!==r){if(!(r instanceof k))throw new n(e,t.InvalidParameter,a);c.push(r)}}else for(const r of u)if(null!==r){if(!(r instanceof k))throw new n(e,t.InvalidParameter,a);c.push(r)}return 0===c.length?null:z.union.executeMany(c)}))},G.difference=function(e,n){return H(e,n,((t,a,l)=>(l=i(l),x(l,e,n),null===l[0]?null:null===l[1]?r(l[0]):z.difference.execute(l[0],l[1]))))},G.symmetricdifference=function(e,n){return H(e,n,((t,a,l)=>(l=i(l),x(l,e,n),null===l[0]&&null===l[1]?null:null===l[0]?r(l[1]):null===l[1]?r(l[0]):z.symmetricDifference.execute(l[0],l[1]))))},G.clip=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,2,2,e,r),!(u[1]instanceof T)&&null!==u[1])throw new n(e,t.InvalidParameter,r);if(null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);return null===u[1]?null:z.clip.execute(u[0],u[1])}))},G.cut=function(e,l){return H(e,l,((o,u,c)=>{if(c=i(c),a(c,2,2,e,l),!(c[1]instanceof C)&&null!==c[1])throw new n(e,t.InvalidParameter,l);if(null===c[0])return[];if(!(c[0]instanceof k))throw new n(e,t.InvalidParameter,l);return null===c[1]?[r(c[0])]:z.cut.execute(c[0],c[1])}))},G.area=function(e,r){return H(e,r,((l,o,u)=>{a(u,1,2,e,r);let c=(u=i(u))[0];if((U(u[0])||s(u[0]))&&(c=m(u[0],e.spatialReference)),null===c)return 0;if(!(c instanceof k))throw new n(e,t.InvalidParameter,r);return b(c.spatialReference,E(u[1]),z.area.execute(c))}))},G.areageodetic=function(e,r){return H(e,r,((l,o,u)=>{a(u,1,3,e,r);let c=(u=i(u))[0];(U(c)||s(c))&&(c=m(c,e.spatialReference));const f=E(u[1]),w=y(u[2])??"geodesic";if(null==c)return 0;if(!d(c))throw new n(e,t.InvalidParameter,r);return L(q,f,z.geodeticArea.execute(c,{curveType:w}))}))},G.length=function(e,r){return H(e,r,((l,o,u)=>{a(u,1,2,e,r);let c=(u=i(u))[0];if((U(u[0])||s(u[0]))&&(c=w(u[0],e.spatialReference)),null===c)return 0;if(!(c instanceof k))throw new n(e,t.InvalidParameter,r);return b(c.spatialReference,D(u[1]),z.length.execute(c))}))},G.length3d=function(e,r){return H(e,r,((l,o,u)=>{a(u,1,2,e,r);let c=(u=i(u))[0];if((U(u[0])||s(u[0]))&&(c=w(u[0],e.spatialReference)),null===c)return 0;if(!(c instanceof k))throw new n(e,t.InvalidParameter,r);return!0===c.hasZ?b(c.spatialReference,D(u[1]),I(c)):b(c.spatialReference,D(u[1]),z.length.execute(c))}))},G.lengthgeodetic=function(e,r){return H(e,r,((l,o,u)=>{a(u,1,3,e,r);let c=(u=i(u))[0];(U(u[0])||s(u[0]))&&(c=w(u[0],e.spatialReference));const f=y(u[2])??"geodesic";if(null==c)return 0;if(null!=c&&!d(c))throw new n(e,t.InvalidParameter,r);const m=D(u[1]);return L(J,m,z.geodeticLength.execute(c,{curveType:f}))}))},G.distance=function(e,r){return H(e,r,((l,o,u)=>{u=i(u),a(u,2,3,e,r);let c=u[0];if((U(u[0])||s(u[0]))&&(c=h(u[0],e.spatialReference)),!(c instanceof k))throw new n(e,t.InvalidParameter,r);let f=u[1];if((U(u[1])||s(u[1]))&&(f=h(u[1],e.spatialReference)),!(f instanceof k))throw new n(e,t.InvalidParameter,r);return b(c.spatialReference,D(u[2]),z.distance.execute(c,f))}))},G.distancegeodetic=function(e,r){return H(e,r,((l,o,u)=>{u=i(u),a(u,2,4,e,r);const c=u[0];if(!(c instanceof S))throw new n(e,t.InvalidParameter,r);const s=u[1];if(!(s instanceof S))throw new n(e,t.InvalidParameter,r);const f=D(u[2]),m=y(u[3])??"geodesic",d=new C({paths:[],spatialReference:c.spatialReference});return d.addPath([c,s]),L(J,f,z.geodeticLength.execute(d,{curveType:m}))}))},G.densify=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,2,3,e,r),null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);const c=p(u[1]);if(isNaN(c))throw new n(e,t.InvalidParameter,r);if(c<=0)throw new n(e,t.InvalidParameter,r);const s=O(D(u[2]),u[0].spatialReference,c);switch(u[0].type){case"polygon":case"polyline":case"extent":return z.densify.execute(u[0],s);default:return u[0]}}))},G.densifygeodetic=function(e,r){return H(e,r,((l,o,u)=>{u=i(u),a(u,2,4,e,r);const c=u[0];if(null==c)return null;if(!d(c))throw new n(e,t.InvalidParameter,r);const s=p(u[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,r);if(s<=0)throw new n(e,t.InvalidParameter,r);const f=D(u[2]),m=y(u[3])??"geodesic",w=L(f,J,s);switch(c.type){case"polygon":case"polyline":case"extent":return z.geodeticDensify.execute(c,w,{curveType:m});default:return c}}))},G.generalize=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,2,4,e,r),null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);const c=p(u[1]);if(isNaN(c))throw new n(e,t.InvalidParameter,r);const s=O(D(u[3]),u[0].spatialReference,c);return z.generalize.execute(u[0],s,{removeDegenerateParts:g(v(u[2],!0))})}))},G.buffer=function(e,l){return H(e,l,((o,u,c)=>{if(c=i(c),a(c,2,3,e,l),null===c[0])return null;if(!(c[0]instanceof k))throw new n(e,t.InvalidParameter,l);const s=p(c[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,l);return 0===s?r(c[0]):z.buffer.execute(c[0],O(D(c[2]),c[0].spatialReference,s))}))},G.buffergeodetic=function(e,l){return H(e,l,((o,u,c)=>{c=i(c),a(c,2,4,e,l);const s=c[0];if(null==s)return null;if(!d(s))throw new n(e,t.InvalidParameter,l);const f=p(c[1]);if(isNaN(f))throw new n(e,t.InvalidParameter,l);if(0===f)return r(s);const m=D(c[2]),w=y(c[3])??"geodesic";return z.geodesicBuffer.execute(s,L(m,J,f),{curveType:w})}))},G.offset=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,2,6,e,r),null===u[0])return null;if(!(u[0]instanceof A||u[0]instanceof C))throw new n(e,t.InvalidParameter,r);const s=p(u[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,r);const f=O(D(u[2]),u[0].spatialReference,s),m=c(u[3]??"round").toLowerCase();let d;switch(m){case"round":case"bevel":case"miter":case"square":d=m;break;default:d="round"}const w=p(v(u[4],10));if(isNaN(w))throw new n(e,t.InvalidParameter,r);const h=p(v(u[5],0));if(isNaN(h))throw new n(e,t.InvalidParameter,r);return z.offset.execute(u[0],f,{joins:d,miterLimit:w,flattenError:h})}))},G.rotate=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,2,3,e,r),null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);const c=u[0]instanceof T?A.fromExtent(u[0]):u[0],s=p(u[1]);if(isNaN(s))throw new n(e,t.InvalidParameter,r);const f=v(u[2],null);if(null===f){const e="point"===c.type?c:c.extent?.center;return z.rotate(c,s,e?.x,e?.y)}if(f instanceof S)return z.rotate(c,s,f.x,f.y);throw new n(e,t.InvalidParameter,r)}))},G.centroid=function(e,r){return H(e,r,((e,r,l)=>{if(l=i(l),a(l,1,2,e,r),null===l[0])return null;const o=c(l[1]??"geometric").toLowerCase();if("geometric"!==o&&"labelpoint"!==o)throw new n(e,t.InvalidParameter,r);let u=l[0];if((U(l[0])||s(l[0]))&&(u="geometric"===o?h(l[0],e.spatialReference):m(l[0],e.spatialReference),null===u))return null;if(!(u instanceof k))throw new n(e,t.InvalidParameter,r);return"geometric"===o?z.centroid.execute(u):z.labelPoint.execute(u)}))},G.measuretocoordinate=function(e,n){return H(e,n,R)},G.pointtocoordinate=function(e,n){return H(e,n,j)},G.distancetocoordinate=function(e,n){return H(e,n,N)},G.multiparttosinglepart=function(e,l){return H(e,l,((o,u,c)=>{if(c=i(c),a(c,1,1,e,l),null===c[0])return null;if(!(c[0]instanceof k))throw new n(e,t.InvalidParameter,l);if(c[0]instanceof S)return[f(r(c[0]),e.spatialReference)];if(c[0]instanceof T)return[f(r(c[0]),e.spatialReference)];const s=z.simplify.execute(c[0]);if(s instanceof A){const e=[],n=[];for(let t=0;t<s.rings.length;t++)if(s.isClockwise(s.rings[t])){const n=Z({rings:[s.rings[t]],hasZ:!0===s.hasZ,hasM:!0===s.hasM,spatialReference:s.spatialReference.toJSON()});e.push(n)}else n.push({ring:s.rings[t],pt:s.getPoint(t,0)});for(let t=0;t<n.length;t++)for(let r=0;r<e.length;r++)if(e[r].contains(n[t].pt)){e[r].addRing(n[t].ring);break}return e}if(s instanceof C){const e=[];for(let n=0;n<s.paths.length;n++){const t=Z({paths:[s.paths[n]],hasZ:!0===s.hasZ,hasM:!0===s.hasM,spatialReference:s.spatialReference.toJSON()});e.push(t)}return e}if(c[0]instanceof M){const n=[],t=f(r(c[0]),e.spatialReference);for(let e=0;e<t.points.length;e++)n.push(t.getPoint(e));return n}return null}))},G.issimple=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return!0;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);return z.simplify.isSimple(u[0])}))},G.simplify=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);return z.simplify.execute(u[0])}))},G.convexhull=function(e,r){return H(e,r,((l,o,u)=>{if(u=i(u),a(u,1,1,e,r),null===u[0])return null;if(!(u[0]instanceof k))throw new n(e,t.InvalidParameter,r);return z.convexHull.execute(u[0])}))},G.nearestcoordinate=function(r,l){return H(r,l,((o,u,c)=>{if(c=i(c),a(c,2,2,r,l),!(c[0]instanceof k||null===c[0]))throw new n(r,t.InvalidParameter,l);if(!(c[1]instanceof S||null===c[1]))throw new n(r,t.InvalidParameter,l);if(null===c[0]||null===c[1])return null;const s=c[0]instanceof T?A.fromExtent(c[0]):c[0],f=z.proximity.getNearestCoordinate(s,c[1],{calculateLeftRightSide:!0});return null===f||f.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:f.coordinate,distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},P(r),!1,!0)}))},G.nearestvertex=function(r,l){return H(r,l,((o,u,c)=>{if(c=i(c),a(c,2,2,r,l),!(c[0]instanceof k||null===c[0]))throw new n(r,t.InvalidParameter,l);if(!(c[1]instanceof S||null===c[1]))throw new n(r,t.InvalidParameter,l);if(null===c[0]||null===c[1])return null;const s=c[0]instanceof T?A.fromExtent(c[0]):c[0],f=z.proximity.getNearestVertex(s,c[1]);return null===f||f.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:f.coordinate,distance:f.distance,sideOfLine:0===f.distance?"straddle":f.rightSide?"right":"left"},P(r),!1,!0)}))}}export{G as loadOperators,H 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.33/esri/copyright.txt for details.
4
4
  */
5
- import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{D as r,K as i,E as l,m as o,H as a,L as f}from"../../chunks/languageUtils.js";import{getMetersPerVerticalUnitForSR as s,segmentLength3d as c}from"../functions/centroid.js";import{measureToCoordinate as m,pointToCoordinate as u,distanceToCoordinate as p}from"../functions/measures.js";import{getMetersPerUnitForSR as y}from"../../core/unitUtils.js";import w from"../../geometry/Geometry.js";import h from"../../geometry/Point.js";import d from"../../geometry/Polyline.js";import{isArray as g,isNumber as v}from"../../support/guards.js";function j(e,i,l){if(r(e,2,2,i,l),e[0]instanceof w&&e[1]instanceof w);else if(e[0]instanceof w&&null===e[1]);else if(e[1]instanceof w&&null===e[0]);else if(null!==e[0]||null!==e[1])throw new n(i,t.InvalidParameter,l)}function P(e){if("polygon"!==e.type&&"polyline"!==e.type&&"extent"!==e.type)return 0;let n=1;if(e.spatialReference.vcsWkid||e.spatialReference.latestVcsWkid){n=s(e.spatialReference)/y(e.spatialReference)}let t=0;if("polyline"===e.type)for(const r of e.paths)for(let e=1;e<r.length;e++)t+=c(r[e],r[e-1],n);else if("polygon"===e.type)for(const r of e.rings){for(let e=1;e<r.length;e++)t+=c(r[e],r[e-1],n);(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||void 0!==r[0][2]&&r[0][2]!==r[r.length-1][2])&&(t+=c(r[0],r[r.length-1],n))}else"extent"===e.type&&(t+=2*c([e.xmin,e.ymin,0],[e.xmax,e.ymin,0],n),t+=2*c([e.xmin,e.ymin,0],[e.xmin,e.ymax,0],n),t*=2,t+=4*Math.abs(i(e.zmax,0)*n-i(e.zmin,0)*n));return t}const x=(i,s,c)=>{if(c=l(c),r(c,2,2,i,s),null===c[0])return null;let u=c[0];if((g(c[0])||o(c[0]))&&(u=a(c[0],i.spatialReference)),null===u)return null;if(!(u instanceof w))throw new n(i,t.InvalidParameter,s);if(!(u instanceof d))throw new n(i,t.InvalidParameter,s);if(!v(c[1]))throw new n(i,t.InvalidParameter,s);const p=m(u,c[1]);return p?e.convertObjectToArcadeDictionary(p,f(i),!1,!0):null},I=(i,s,c)=>{if(c=l(c),r(c,2,2,i,s),null===c[0])return null;let m=c[0];if((g(c[0])||o(c[0]))&&(m=a(c[0],i.spatialReference)),null===m)return null;if(!(m instanceof w))throw new n(i,t.InvalidParameter,s);if(!(m instanceof d))throw new n(i,t.InvalidParameter,s);const p=c[1];if(null===p)return null;if(!(p instanceof h))throw new n(i,t.InvalidParameter,s);const y=u(m,p);return y?e.convertObjectToArcadeDictionary(y,f(i),!1,!0):null},R=(i,s,c)=>{if(c=l(c),r(c,2,2,i,s),null===c[0])return null;let m=c[0];if((g(c[0])||o(c[0]))&&(m=a(c[0],i.spatialReference)),null===m)return null;if(!(m instanceof w))throw new n(i,t.InvalidParameter,s);if(!(m instanceof d))throw new n(i,t.InvalidParameter,s);if(!v(c[1]))throw new n(i,t.InvalidParameter,s);const u=p(m,c[1]);return u?e.convertObjectToArcadeDictionary(u,f(i),!1,!0):null};export{j as commonRelationsCheck,R as distanceToCoordinateFunc,x as measureToCoordinateFunc,P as planarLength3D,I as pointToCoordinateFunc};
5
+ import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{D as r,K as i,E as l,m as o,H as a,L as s,f}from"../../chunks/languageUtils.js";import{getMetersPerVerticalUnitForSR as c,segmentLength3d as u}from"../functions/centroid.js";import{measureToCoordinate as m,pointToCoordinate as p,distanceToCoordinate as d}from"../functions/measures.js";import{getMetersPerUnitForSR as w}from"../../core/unitUtils.js";import h from"../../geometry/Geometry.js";import y from"../../geometry/Point.js";import g from"../../geometry/Polyline.js";import{isArray as v,isNumber as j}from"../../support/guards.js";function x(e,i,l){if(r(e,2,2,i,l),e[0]instanceof h&&e[1]instanceof h);else if(e[0]instanceof h&&null===e[1]);else if(e[1]instanceof h&&null===e[0]);else if(null!==e[0]||null!==e[1])throw new n(i,t.InvalidParameter,l)}function P(e){if("polygon"!==e.type&&"polyline"!==e.type&&"extent"!==e.type)return 0;let n=1;if(e.spatialReference.vcsWkid||e.spatialReference.latestVcsWkid){n=c(e.spatialReference)/w(e.spatialReference)}let t=0;if("polyline"===e.type)for(const r of e.paths)for(let e=1;e<r.length;e++)t+=u(r[e],r[e-1],n);else if("polygon"===e.type)for(const r of e.rings){for(let e=1;e<r.length;e++)t+=u(r[e],r[e-1],n);(r[0][0]!==r[r.length-1][0]||r[0][1]!==r[r.length-1][1]||void 0!==r[0][2]&&r[0][2]!==r[r.length-1][2])&&(t+=u(r[0],r[r.length-1],n))}else"extent"===e.type&&(t+=2*u([e.xmin,e.ymin,0],[e.xmax,e.ymin,0],n),t+=2*u([e.xmin,e.ymin,0],[e.xmin,e.ymax,0],n),t*=2,t+=4*Math.abs(i(e.zmax,0)*n-i(e.zmin,0)*n));return t}const I=(i,f,c)=>{if(c=l(c),r(c,2,2,i,f),null===c[0])return null;let u=c[0];if((v(c[0])||o(c[0]))&&(u=a(c[0],i.spatialReference)),null===u)return null;if(!(u instanceof h))throw new n(i,t.InvalidParameter,f);if(!(u instanceof g))throw new n(i,t.InvalidParameter,f);if(!j(c[1]))throw new n(i,t.InvalidParameter,f);const p=m(u,c[1]);return p?e.convertObjectToArcadeDictionary(p,s(i),!1,!0):null},R=(i,f,c)=>{if(c=l(c),r(c,2,2,i,f),null===c[0])return null;let u=c[0];if((v(c[0])||o(c[0]))&&(u=a(c[0],i.spatialReference)),null===u)return null;if(!(u instanceof h))throw new n(i,t.InvalidParameter,f);if(!(u instanceof g))throw new n(i,t.InvalidParameter,f);const m=c[1];if(null===m)return null;if(!(m instanceof y))throw new n(i,t.InvalidParameter,f);const d=p(u,m);return d?e.convertObjectToArcadeDictionary(d,s(i),!1,!0):null},D=(i,f,c)=>{if(c=l(c),r(c,2,2,i,f),null===c[0])return null;let u=c[0];if((v(c[0])||o(c[0]))&&(u=a(c[0],i.spatialReference)),null===u)return null;if(!(u instanceof h))throw new n(i,t.InvalidParameter,f);if(!(u instanceof g))throw new n(i,t.InvalidParameter,f);if(!j(c[1]))throw new n(i,t.InvalidParameter,f);const m=d(u,c[1]);return m?e.convertObjectToArcadeDictionary(m,s(i),!1,!0):null};function b(e){if(null==e)return e;switch(f(e).toLowerCase().replaceAll(/[\s-]+/g,"")){case"geodesic":return"geodesic";case"greatelliptic":return"great-elliptic";case"loxodrome":return"loxodrome";case"normalsection":return"normal-section";case"shapepreserving":return"shape-preserving";default:throw new n(null,t.InvalidParameter,null)}}export{x as commonRelationsCheck,D as distanceToCoordinateFunc,I as measureToCoordinateFunc,P as planarLength3D,R as pointToCoordinateFunc,b as toCurveType};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{fromJSON as e}from"../../geometry/support/jsonUtils.js";function t(e,t){let r;return{loaded:!1,load:()=>r??=t().then((t=>{o[e]={loaded:!0,execute:t}}))}}function r(e){return null==e?null:e.toJSON()}const o={disjoint:t("disjoint",(()=>import("../../geometry/operators/json/disjointOperator.js").then((e=>e.execute)))),intersects:t("intersects",(()=>import("../../geometry/operators/json/intersectsOperator.js").then((e=>e.execute)))),touches:t("touches",(()=>import("../../geometry/operators/json/touchesOperator.js").then((e=>e.execute)))),crosses:t("crosses",(()=>import("../../geometry/operators/json/crossesOperator.js").then((e=>e.execute)))),within:t("within",(()=>import("../../geometry/operators/json/withinOperator.js").then((e=>e.execute)))),contains:t("contains",(()=>import("../../geometry/operators/json/containsOperator.js").then((e=>e.execute)))),overlaps:t("overlaps",(()=>import("../../geometry/operators/json/overlapsOperator.js").then((e=>e.execute)))),equals:t("equals",(async()=>{const t=await import("../../geometry/operators/equalsOperator.js");return(r,o)=>t.execute(e(r),e(o))})),relate:t("relate",(async()=>{const t=await import("../../geometry/operators/relateOperator.js");return(r,o,n)=>t.execute(e(r),e(o),n)})),intersection:t("intersection",(()=>import("../../geometry/operators/json/intersectionOperator.js").then((e=>e.execute)))),union:t("union",(()=>import("../../geometry/operators/json/unionOperator.js").then((e=>e.executeMany)))),difference:t("difference",(async()=>{const t=await import("../../geometry/operators/differenceOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),symmetricDifference:t("symmetricDifference",(async()=>{const t=await import("../../geometry/operators/symmetricDifferenceOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),clip:t("clip",(async()=>{const t=await import("../../geometry/operators/clipOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),cut:t("cut",(async()=>{const t=await import("../../geometry/operators/cutOperator.js");return(o,n)=>t.execute(e(o),e(n)).map((e=>r(e)))})),area:t("area",(async()=>{const t=await import("../../geometry/operators/areaOperator.js"),{convertFromSpatialReferenceUnit:r,toAreaUnit:o}=await import("./unitConversion.js");return(n,a)=>{const s=t.execute(e(n));return r(n.spatialReference,o(a),s)}})),geodeticArea:t("geodeticArea",(async()=>{const t=await import("../../geometry/operators/geodeticAreaOperator.js"),{convert:r,squareMeters:o,toAreaUnit:n}=await import("./unitConversion.js");return await t.load(),(a,s)=>{const i=t.execute(e(a));return r(o,n(s),i)}})),length:t("length",(async()=>{const e=await import("../../geometry/operators/json/lengthOperator.js"),{convertFromSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n)=>{const a=e.execute(o);return t(o.spatialReference,r(n),a)}})),geodeticLength:t("geodeticLength",(async()=>{const t=await import("../../geometry/operators/geodeticLengthOperator.js"),{convert:r,meters:o,toLengthUnit:n}=await import("./unitConversion.js");return await t.load(),(a,s)=>{const i=t.execute(e(a));return r(o,n(s),i)}})),distance:t("distance",(async()=>{const t=await import("../../geometry/operators/distanceOperator.js"),{convertFromSpatialReferenceUnit:r,toLengthUnit:o}=await import("./unitConversion.js");return(n,a,s)=>{const i=t.execute(e(n),e(a));return r(n.spatialReference,o(s),i)}})),densify:t("densify",(async()=>{const t=await import("../../geometry/operators/densifyOperator.js"),{convertToSpatialReferenceUnit:o,toLengthUnit:n}=await import("./unitConversion.js");return(a,s,i)=>(s=o(n(i),a.spatialReference,s),r(t.execute(e(a),s)))})),geodeticDensify:t("geodeticDensify",(async()=>{const t=await import("../../geometry/operators/geodeticDensifyOperator.js"),{convert:o,meters:n,toLengthUnit:a}=await import("./unitConversion.js");return await t.load(),(s,i,c)=>(i=o(a(c),n,i),r(t.execute(e(s),i)))})),generalize:t("generalize",(async()=>{const t=await import("../../geometry/operators/generalizeOperator.js"),{convertToSpatialReferenceUnit:o,toLengthUnit:n}=await import("./unitConversion.js");return(a,s,i,c)=>(s=o(n(i),a.spatialReference,s),r(t.execute(e(a),s,c)))})),buffer:t("buffer",(async()=>{const e=await import("../../geometry/operators/json/bufferOperator.js"),{convertToSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n,a)=>(n=t(r(a),o.spatialReference,n),e.execute(o,n))})),geodesicBuffer:t("geodesicBuffer",(async()=>{const e=await import("../../geometry/operators/json/geodesicBufferOperator.js"),{convert:t,meters:r,toLengthUnit:o}=await import("./unitConversion.js");return await e.load(),(n,a,s)=>(a=t(o(s),r,a),e.execute(n,a))})),offset:t("offset",(async()=>{const e=await import("../../geometry/operators/json/offsetOperator.js"),{convertToSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n,a,s)=>(n=t(r(a),o.spatialReference,n),e.execute(o,n,s))})),rotate:t("rotate",(async()=>{const t=await import("../../geometry/operators/affineTransformOperator.js"),{default:o}=await import("../../geometry/operators/support/Transformation.js");return(n,a,s,i)=>{const c=(new o).rotate(a,s,i);return r(t.execute(e(n),c))}})),centroid:t("centroid",(async()=>{const t=await import("../../geometry/operators/centroidOperator.js");return o=>r(t.execute(e(o)))})),labelPoint:t("labelPoint",(async()=>{const t=await import("../../geometry/operators/labelPointOperator.js");return o=>r(t.execute(e(o)))})),simplify:t("simplify",(()=>import("../../geometry/operators/json/simplifyOperator.js").then((e=>e.execute)))),isSimple:t("isSimple",(()=>import("../../geometry/operators/json/simplifyOperator.js").then((e=>e.isSimple)))),convexHull:t("convexHull",(()=>import("../../geometry/operators/json/convexHullOperator.js").then((e=>e.execute)))),getNearestCoordinate:t("getNearestCoordinate",(async()=>{const t=await import("../../geometry/operators/proximityOperator.js");return(o,n,a)=>{const s=t.getNearestCoordinate(e(o),e(n),a);return{...s,coordinate:r(s.coordinate)}}})),getNearestVertex:t("getNearestVertex",(async()=>{const t=await import("../../geometry/operators/proximityOperator.js");return(o,n)=>{const a=t.getNearestVertex(e(o),e(n));return{...a,coordinate:r(a.coordinate)}}}))};function n(e,t){const r=o[e];return r.loaded?r.execute.apply(void 0,t):r.load().then((()=>n(e,t)))}export{n as invokeGeometryOp};
5
+ import{fromJSON as e}from"../../geometry/support/jsonUtils.js";function t(e,t){let r;return{loaded:!1,load:()=>r??=t().then((t=>{o[e]={loaded:!0,execute:t}}))}}function r(e){return null==e?null:e.toJSON()}const o={disjoint:t("disjoint",(()=>import("../../geometry/operators/json/disjointOperator.js").then((e=>e.execute)))),intersects:t("intersects",(()=>import("../../geometry/operators/json/intersectsOperator.js").then((e=>e.execute)))),touches:t("touches",(()=>import("../../geometry/operators/json/touchesOperator.js").then((e=>e.execute)))),crosses:t("crosses",(()=>import("../../geometry/operators/json/crossesOperator.js").then((e=>e.execute)))),within:t("within",(()=>import("../../geometry/operators/json/withinOperator.js").then((e=>e.execute)))),contains:t("contains",(()=>import("../../geometry/operators/json/containsOperator.js").then((e=>e.execute)))),overlaps:t("overlaps",(()=>import("../../geometry/operators/json/overlapsOperator.js").then((e=>e.execute)))),equals:t("equals",(async()=>{const t=await import("../../geometry/operators/equalsOperator.js");return(r,o)=>t.execute(e(r),e(o))})),relate:t("relate",(async()=>{const t=await import("../../geometry/operators/relateOperator.js");return(r,o,n)=>t.execute(e(r),e(o),n)})),intersection:t("intersection",(()=>import("../../geometry/operators/json/intersectionOperator.js").then((e=>e.execute)))),union:t("union",(()=>import("../../geometry/operators/json/unionOperator.js").then((e=>e.executeMany)))),difference:t("difference",(async()=>{const t=await import("../../geometry/operators/differenceOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),symmetricDifference:t("symmetricDifference",(async()=>{const t=await import("../../geometry/operators/symmetricDifferenceOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),clip:t("clip",(async()=>{const t=await import("../../geometry/operators/clipOperator.js");return(o,n)=>r(t.execute(e(o),e(n)))})),cut:t("cut",(async()=>{const t=await import("../../geometry/operators/cutOperator.js");return(o,n)=>t.execute(e(o),e(n)).map((e=>r(e)))})),area:t("area",(async()=>{const t=await import("../../geometry/operators/areaOperator.js"),{convertFromSpatialReferenceUnit:r,toAreaUnit:o}=await import("./unitConversion.js");return(n,a)=>{const s=t.execute(e(n));return r(n.spatialReference,o(a),s)}})),geodeticArea:t("geodeticArea",(async()=>{const t=await import("../../geometry/operators/geodeticAreaOperator.js"),{convert:r,squareMeters:o,toAreaUnit:n}=await import("./unitConversion.js");return await t.load(),(a,s,i)=>{const c=t.execute(e(a),{curveType:i});return r(o,n(s),c)}})),length:t("length",(async()=>{const e=await import("../../geometry/operators/json/lengthOperator.js"),{convertFromSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n)=>{const a=e.execute(o);return t(o.spatialReference,r(n),a)}})),geodeticLength:t("geodeticLength",(async()=>{const t=await import("../../geometry/operators/geodeticLengthOperator.js"),{convert:r,meters:o,toLengthUnit:n}=await import("./unitConversion.js");return await t.load(),(a,s,i)=>{const c=t.execute(e(a),{curveType:i});return r(o,n(s),c)}})),distance:t("distance",(async()=>{const t=await import("../../geometry/operators/distanceOperator.js"),{convertFromSpatialReferenceUnit:r,toLengthUnit:o}=await import("./unitConversion.js");return(n,a,s)=>{const i=t.execute(e(n),e(a));return r(n.spatialReference,o(s),i)}})),densify:t("densify",(async()=>{const t=await import("../../geometry/operators/densifyOperator.js"),{convertToSpatialReferenceUnit:o,toLengthUnit:n}=await import("./unitConversion.js");return(a,s,i)=>(s=o(n(i),a.spatialReference,s),r(t.execute(e(a),s)))})),geodeticDensify:t("geodeticDensify",(async()=>{const t=await import("../../geometry/operators/geodeticDensifyOperator.js"),{convert:o,meters:n,toLengthUnit:a}=await import("./unitConversion.js");return await t.load(),(s,i,c,p)=>(i=o(a(c),n,i),r(t.execute(e(s),i,{curveType:p})))})),generalize:t("generalize",(async()=>{const t=await import("../../geometry/operators/generalizeOperator.js"),{convertToSpatialReferenceUnit:o,toLengthUnit:n}=await import("./unitConversion.js");return(a,s,i,c)=>(s=o(n(i),a.spatialReference,s),r(t.execute(e(a),s,c)))})),buffer:t("buffer",(async()=>{const e=await import("../../geometry/operators/json/bufferOperator.js"),{convertToSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n,a)=>(n=t(r(a),o.spatialReference,n),e.execute(o,n))})),geodesicBuffer:t("geodesicBuffer",(async()=>{const e=await import("../../geometry/operators/json/geodesicBufferOperator.js"),{convert:t,meters:r,toLengthUnit:o}=await import("./unitConversion.js");return await e.load(),(n,a,s,i)=>(a=t(o(s),r,a),e.execute(n,a,{curveType:i}))})),offset:t("offset",(async()=>{const e=await import("../../geometry/operators/json/offsetOperator.js"),{convertToSpatialReferenceUnit:t,toLengthUnit:r}=await import("./unitConversion.js");return(o,n,a,s)=>(n=t(r(a),o.spatialReference,n),e.execute(o,n,s))})),rotate:t("rotate",(async()=>{const t=await import("../../geometry/operators/affineTransformOperator.js"),{default:o}=await import("../../geometry/operators/support/Transformation.js");return(n,a,s,i)=>{const c=(new o).rotate(a,s,i);return r(t.execute(e(n),c))}})),centroid:t("centroid",(async()=>{const t=await import("../../geometry/operators/centroidOperator.js");return o=>r(t.execute(e(o)))})),labelPoint:t("labelPoint",(async()=>{const t=await import("../../geometry/operators/labelPointOperator.js");return o=>r(t.execute(e(o)))})),simplify:t("simplify",(()=>import("../../geometry/operators/json/simplifyOperator.js").then((e=>e.execute)))),isSimple:t("isSimple",(()=>import("../../geometry/operators/json/simplifyOperator.js").then((e=>e.isSimple)))),convexHull:t("convexHull",(()=>import("../../geometry/operators/json/convexHullOperator.js").then((e=>e.execute)))),getNearestCoordinate:t("getNearestCoordinate",(async()=>{const t=await import("../../geometry/operators/proximityOperator.js");return(o,n,a)=>{const s=t.getNearestCoordinate(e(o),e(n),a);return{...s,coordinate:r(s.coordinate)}}})),getNearestVertex:t("getNearestVertex",(async()=>{const t=await import("../../geometry/operators/proximityOperator.js");return(o,n)=>{const a=t.getNearestVertex(e(o),e(n));return{...a,coordinate:r(a.coordinate)}}}))};function n(e,t){const r=o[e];return r.loaded?r.execute.apply(void 0,t):r.load().then((()=>n(e,t)))}export{n as invokeGeometryOp};