@arcgis/core 4.29.0-next.20231221 → 4.29.0-next.20231223
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.
- package/arcade/Feature.js +1 -1
- package/arcade/arcadeAsyncRuntime.js +1 -1
- package/arcade/arcadeCompiler.js +1 -1
- package/arcade/arcadeRuntime.js +1 -1
- package/arcade/executionError.js +1 -1
- package/arcade/featureSetUtils.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/geomasync.js +1 -1
- package/arcade/functions/geometry.js +1 -1
- package/arcade/functions/geomsync.js +1 -1
- package/arcade/functions/maths.js +1 -1
- package/arcade/languageUtils.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/01dbff2fdff9d5c95892.js +1 -0
- package/assets/esri/core/workers/chunks/046b3920f4aca1061d06.js +1 -0
- package/assets/esri/core/workers/chunks/3a4598c384c4c31ab35b.js +1 -0
- package/assets/esri/core/workers/chunks/{b7c2244c27790ccaca92.js → 3ef3be54550c3cb9176c.js} +1 -1
- package/assets/esri/core/workers/chunks/4473259dd364f663d991.js +1 -0
- package/assets/esri/core/workers/chunks/45d7174973db1524d1b7.js +1 -0
- package/assets/esri/core/workers/chunks/5b7b357cb5fd26a7a2a7.js +1 -0
- package/assets/esri/core/workers/chunks/5c269c59f61a185ed5c7.js +1 -0
- package/assets/esri/core/workers/chunks/{2f8a4c55f69f48aec4d0.js → 73f161a199d19396d504.js} +1 -1
- package/assets/esri/core/workers/chunks/7435463436cda9eb4246.js +1 -0
- package/assets/esri/core/workers/chunks/b75b77c0e9170cc7dfb9.js +1 -0
- package/assets/esri/core/workers/chunks/c1c4f3909b724c13033d.js +1 -0
- package/assets/esri/core/workers/chunks/ccfdd3d278756f01f630.js +1 -0
- package/assets/esri/core/workers/chunks/{b6bd31674076e543d8b2.js → d3d075b4d18296fb08ad.js} +1 -1
- package/assets/esri/core/workers/chunks/d4cf3af5f5c30925539c.js +1 -0
- package/assets/esri/core/workers/chunks/ee0b43679cc0cc531d7c.js +1 -0
- package/assets/esri/core/workers/chunks/f9f3d6b4347e63f440e0.js +1 -0
- package/assets/esri/core/workers/chunks/fb0d5da0374449464e2d.js +1 -0
- package/assets/esri/core/workers/chunks/fbfdb4779198f4c35c65.js +1 -0
- package/assets/esri/core/workers/chunks/ffad926201d92c4d6b4e.js +1 -0
- package/assets/esri/themes/base/widgets/_BasemapToggle.scss +9 -17
- package/assets/esri/themes/base/widgets/_BuildingLevelPicker.scss +1 -1
- package/assets/esri/themes/base/widgets/_Expand.scss +1 -0
- package/assets/esri/themes/base/widgets/_Widget.scss +2 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ar.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_bg.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_bs.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ca.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_cs.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_da.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_de.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_el.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_en.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_es.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_et.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_fi.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_fr.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_he.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_hr.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_hu.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_id.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_it.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ja.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ko.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_lt.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_lv.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_nb.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_nl.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_pl.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_pt-BR.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_pt-PT.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ro.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_ru.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_sk.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_sl.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_sr.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_sv.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_th.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_tr.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_uk.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_vi.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_zh-CN.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_zh-HK.json +1 -1
- package/assets/esri/widgets/Locate/t9n/Locate_zh-TW.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ar.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_bg.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_bs.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ca.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_cs.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_da.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_de.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_el.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_en.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_es.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_et.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_fi.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_fr.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_he.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_hr.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_hu.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_id.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_it.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ja.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ko.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_lt.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_lv.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_nb.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_nl.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_pl.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_pt-BR.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_pt-PT.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ro.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_ru.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_sk.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_sl.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_sr.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_sv.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_th.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_tr.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_uk.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_vi.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_zh-CN.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_zh-HK.json +1 -1
- package/assets/esri/widgets/Track/t9n/Track_zh-TW.json +1 -1
- package/chunks/HUDMaterial.glsl.js +1 -1
- package/chunks/languageUtils.js +1 -1
- package/core/MemCache.js +1 -1
- package/core/MemCachePool.js +1 -1
- package/core/deprecate.js +1 -1
- package/interfaces.d.ts +48 -34
- package/layers/mixins/operationalLayerModuleMap.js +1 -1
- package/layers/mixins/operationalLayers.js +1 -1
- package/layers/support/editableLayers.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/layers/support/rasterFunctions/localUtils.js +1 -1
- package/package.json +1 -1
- package/support/revision.js +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityPolygonShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/StreamLayerView2D.js +1 -1
- package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
- package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
- package/views/2d/layers/features/FeatureSourceEventLog.js +5 -0
- package/views/2d/layers/features/PipelineConnectionHandlers.js +1 -1
- package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
- package/views/2d/layers/features/layerAdapters/featureServiceUtils.js +5 -0
- package/views/2d/layers/features/layerAdapters/geometryUtils.js +5 -0
- package/views/2d/layers/features/layerAdapters/labelingUtils.js +5 -0
- package/views/2d/layers/features/schema/SourceSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/SubtypeProcessorSchema.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
- package/views/2d/layers/features/sources/FeatureSource.js +1 -1
- package/views/2d/layers/features/sources/FeatureSourceQueryInfo.js +1 -1
- package/views/2d/layers/features/sources/strategies/AFetchLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/ATileLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/DrillDownTileLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/PagedTileLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/SnapshotLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/StreamLoadStrategy.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/DrillDownTileSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/FeatureSnapshotSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/PagedTileSourceChunk.js +1 -1
- package/views/2d/layers/features/sources/strategies/chunks/SourceChunkStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
- package/views/3d/effects/RenderNode.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/terrain/TerrainAttributesCache.js +1 -1
- package/views/3d/webgl-engine/effects/RenderNodes.js +5 -0
- package/views/3d/webgl-engine/effects/blit/Blit.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/highlight/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/OffscreenRendering.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/webdoc/support/webdocSaveUtils.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Compass.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Locate/LocateViewModel.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/Track/TrackViewModel.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/Zoom.js +1 -1
- package/assets/esri/core/workers/chunks/0e315452f11b112523f0.js +0 -1
- package/assets/esri/core/workers/chunks/251ceefdea4b345698a4.js +0 -1
- package/assets/esri/core/workers/chunks/2e6f1c788813b4162adf.js +0 -1
- package/assets/esri/core/workers/chunks/49ca15b23dd363bc3546.js +0 -1
- package/assets/esri/core/workers/chunks/521a38edbeff0073bfdd.js +0 -1
- package/assets/esri/core/workers/chunks/573ad8aa1c2cfad61eb8.js +0 -1
- package/assets/esri/core/workers/chunks/831283ac6653d7af90b6.js +0 -1
- package/assets/esri/core/workers/chunks/90444e25dd487d0bc438.js +0 -1
- package/assets/esri/core/workers/chunks/90b34ce04d5a83ea4344.js +0 -1
- package/assets/esri/core/workers/chunks/9249371cb2437e68a304.js +0 -1
- package/assets/esri/core/workers/chunks/9c80cfae983c8ccfe616.js +0 -1
- package/assets/esri/core/workers/chunks/a1cf80c67ee8dbe9c897.js +0 -1
- package/assets/esri/core/workers/chunks/a36bd38f7f10600ac335.js +0 -1
- package/assets/esri/core/workers/chunks/c76094c26e80656a2f8d.js +0 -1
- package/assets/esri/core/workers/chunks/d22fe2435f44a12013d1.js +0 -1
- package/assets/esri/core/workers/chunks/df394ec25adfc9798f74.js +0 -1
- package/assets/esri/core/workers/chunks/e4ab40d895fccc81fe44.js +0 -1
- package/views/2d/layers/features/schema/FeatureSchema.js +0 -5
- package/views/2d/layers/features/schema/processor/ProcessorSchema.js +0 -5
- package/views/3d/webgl-engine/effects/RenderNodeCollection.js +0 -5
- package/views/3d/webgl-engine/effects/RenderPluginInput.js +0 -5
- package/widgets/Zoom/IconButton.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.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../request.js";import t from"./featureSetCollection.js";import{$ as a,a0 as r}from"../chunks/languageUtils.js";import n from"./featureset/actions/AttributeFilter.js";import i from"./featureset/actions/GroupBy.js";import s from"./featureset/actions/OrderBy.js";import l from"./featureset/actions/SpatialFilter.js";import o from"./featureset/actions/Top.js";import u from"./featureset/sources/FeatureLayerDynamic.js";import c from"./featureset/sources/FeatureLayerMemory.js";import d from"./featureset/sources/FeatureLayerRelated.js";import f from"./featureset/support/cache.js";import{FeatureSetError as p,FeatureSetErrorCodes as m}from"./featureset/support/errorsupport.js";import y from"./featureset/support/FeatureSet.js";import{extractServiceUrl as h}from"./featureset/support/shared.js";import{WhereClause as _}from"../core/sql/WhereClause.js";import w from"../layers/FeatureLayer.js";import S from"../portal/PortalItem.js";function L(){null===f.applicationCache&&(f.applicationCache=new f)}async function I(e,t){if(f.applicationCache){const r=f.applicationCache.getLayerInfo(e);if(r){const a=await r;return new w({url:e,outFields:t,sourceJSON:a})}const n=new w({url:e,outFields:t}),i=(async()=>(await n.load(),n.sourceJSON))();if(f.applicationCache){f.applicationCache.setLayerInfo(e,i);try{return await i,n}catch(a){throw f.applicationCache.clearLayerInfo(e),a}}return await i,n}return new w({url:e,outFields:t})}async function F(e,t,a,r,n,i=null){return g(await I(e,["*"]),t,a,r,n,i)}function g(e,t=null,r=null,n=!0,i=null,s=null){if(e instanceof w||a(e)){const a={layer:e,spatialReference:t,outFields:r,includeGeometry:n,lrucache:i,interceptor:s};return!0==!(e.url||!e.source)?new c(a):new u(a)}const l=g(e.parent,t,r,n,i,s);return l.filter(_.create(e.parent.subtypeField+"="+e.subtypeCode.toString(),e.parent.fieldsIndex,l.dateFieldsTimeZoneDefaultUTC))}async function A(t){if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(t);if(null!==e)return e}const a=(async()=>{const a=await e(t,{responseType:"json",query:{f:"json"}});return a.data?a.data:null})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(t,a);try{return await a}catch(r){throw f.applicationCache.clearLayerInfo(t),r}}return a}async function N(t,a){const r="QUERYDATAELEMTS:"+a.toString()+":"+t;if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(r);if(null!==e)return e}const n=(async()=>{const r=await e(t+"/queryDataElements",{method:"post",responseType:"json",query:{layers:JSON.stringify([a.toString()]),f:"json"}});if(r.data){const e=r.data;if(e.layerDataElements?.[0])return e.layerDataElements[0]}throw new p(m.DataElementsNotFound)})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(r,n);try{return await n}catch(i){throw f.applicationCache.clearLayerInfo(r),i}}return n}async function C(t){if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(t);if(null!==e)return e}const a=(async()=>{const a=await e(t,{responseType:"json",query:{f:"json"}});if(a.data){const e=a.data;return e.layers||(e.layers=[]),e.tables||(e.tables=[]),e}return{layers:[],tables:[]}})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(t,a);try{return await a}catch(r){throw f.applicationCache.clearLayerInfo(t),r}}return a}async function T(e,t){const a={metadata:null,networkId:-1,unVersion:3,terminals:[],queryelem:null,layerNameLkp:{},lkp:null},r=await C(e);if(a.metadata=r,void 0!==r.controllerDatasetLayers?.utilityNetworkLayerId&&null!==r.controllerDatasetLayers.utilityNetworkLayerId){if(r.layers)for(const e of r.layers)a.layerNameLkp[e.id]=e.name;if(r.tables)for(const e of r.tables)a.layerNameLkp[e.id]=e.name;const n=r.controllerDatasetLayers.utilityNetworkLayerId;a.networkId=n;const i=await N(e,n);if(i){a.queryelem=i,a.queryelem?.dataElement&&void 0!==a.queryelem.dataElement.schemaGeneration&&(a.unVersion=a.queryelem.dataElement.schemaGeneration),a.lkp={},a.queryelem.dataElement.domainNetworks||(a.queryelem.dataElement.domainNetworks=[]);for(const e of a.queryelem.dataElement.domainNetworks){for(const t of e.edgeSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:a.layerNameLkp[t.layerId]??null};e.className&&(a.lkp[e.className]=e)}for(const t of e.junctionSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:a.layerNameLkp[t.layerId]??null};e.className&&(a.lkp[e.className]=e)}}if(a.queryelem.dataElement.terminalConfigurations)for(const e of a.queryelem.dataElement.terminalConfigurations)for(const t of e.terminals)a.terminals.push({terminalId:t.terminalId,terminalName:t.terminalName});const r=await A(e+"/"+n);if(void 0!==r.systemLayers?.associationsTableId&&null!==r.systemLayers.associationsTableId){const n=[];a.unVersion>=4&&(n.push("STATUS"),n.push("PERCENTALONG"));let i=await F(e+"/"+r.systemLayers.associationsTableId.toString(),t,["OBJECTID","FROMNETWORKSOURCEID","TONETWORKSOURCEID","FROMGLOBALID","TOGLOBALID","TOTERMINALID","FROMTERMINALID","ASSOCIATIONTYPE","ISCONTENTVISIBLE","GLOBALID",...n],!1,null,null);return await i.load(),a.unVersion>=4&&(i=i.filter(_.create("STATUS NOT IN (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63)",i.getFieldsIndex(),i.dateFieldsTimeZoneDefaultUTC)),await i.load()),{lkp:a.lkp,associations:i,unVersion:a.unVersion,terminals:a.terminals}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}async function k(e,t,a,r=null,n=null,i=!0,s=null,l=null){let o=e.serviceUrl();if(!o)return null;o="/"===o.charAt(o.length-1)?o+t.relatedTableId.toString():o+"/"+t.relatedTableId.toString();const u=await F(o,r,n,i,s,l);return new d({layer:e,relatedLayer:u,relationship:t,objectId:a,spatialReference:r,outFields:n,includeGeometry:i,lrucache:s,interceptor:l})}n.registerAction(),i.registerAction(),s.registerAction(),l.registerAction(),o.registerAction();class b extends t{constructor(e,t=null,a=null,r=null){super(),this._map=e,this._overridespref=t,this._lrucache=a,this._interceptor=r,this._instantLayers=[]}_makeAndAddFeatureSet(e,t=!0,a=null){const r=g(e,this._overridespref,null===a?["*"]:a,t,this._lrucache,this._interceptor);return this._instantLayers.push({featureset:r,opitem:e,includeGeometry:t,outFields:JSON.stringify(a)}),r}async featureSetByName(e,t=!0,r=null){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetByName(e,t,r);null===r&&(r=["*"]),r=(r=r.slice(0)).sort();const n=JSON.stringify(r);for(let a=0;a<this._instantLayers.length;a++){const r=this._instantLayers[a];if(r.opitem.title===e&&r.includeGeometry===t&&r.outFields===n)return this._instantLayers[a].featureset}const i=[],s=this._map.allLayers.find((t=>{if(t instanceof w){if(t.title===e)return!0}else if(a(t)){if(t.title===e)return!0;i.push(t)}return!1}));if(s)return this._makeAndAddFeatureSet(s,t,r);if(this._map.tables){const a=this._map.tables.find((t=>!!(t.title&&t.title===e||t.title&&t.title===e)));if(a){if(a instanceof w)return this._makeAndAddFeatureSet(a,t,r);if(a._materializedTable);else{const e=a.outFields?a:{...a,outFields:["*"]};a._materializedTable=new w(e)}return await a._materializedTable.load(),this._makeAndAddFeatureSet(a._materializedTable,t,r)}}for(const a of i){if("not-loaded"===a.loadStatus||"loading"===a.loadStatus)try{await a.load()}catch(l){}const n=a.sublayers.find((t=>t.title===e));if(n)return this._makeAndAddFeatureSet(n,t,r)}return null}async featureSetById(e,t=!0,r=["*"]){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetById(e,t,r);null===r&&(r=["*"]),r=(r=r.slice(0)).sort();const n=JSON.stringify(r);for(let a=0;a<this._instantLayers.length;a++){const r=this._instantLayers[a];if(r.opitem.id===e&&r.includeGeometry===t&&r.outFields===n)return this._instantLayers[a].featureset}const i=[],s=this._map.allLayers.find((t=>{if(t instanceof w){if(t.id===e)return!0}else if(a(t)){if(t.id===e)return!0;i.push(t)}return!1}));if(s)return this._makeAndAddFeatureSet(s,t,r);if(this._map.tables){const a=this._map.tables.find((t=>t.id===e));if(a){if(a instanceof w)return this._makeAndAddFeatureSet(a,t,r);if(a._materializedTable);else{const e={...a,outFields:["*"]};a._materializedTable=new w(e)}return await a._materializedTable.load(),this._makeAndAddFeatureSet(a._materializedTable,t,r)}}for(const a of i){if("not-loaded"===a.loadStatus||"loading"===a.loadStatus)try{await a.load()}catch(l){}const n=a.sublayers.find((t=>t.id===e));if(n)return this._makeAndAddFeatureSet(n,t,r)}return null}}class O extends t{constructor(e,t=null,a=null,r=null){super(),this._url=e,this._overridespref=t,this._lrucache=a,this._interceptor=r,this.metadata=null,this._instantLayers=[]}get url(){return this._url}_makeAndAddFeatureSet(e,t=!0,a=null){const r=g(e,this._overridespref,null===a?["*"]:a,t,this._lrucache);return this._instantLayers.push({featureset:r,opitem:e,includeGeometry:t,outFields:JSON.stringify(a)}),r}async _loadMetaData(){const e=await C(this._url);return this.metadata=e,e}load(){return this._loadMetaData()}clone(){return new O(this._url,this._overridespref,this._lrucache,this._interceptor)}async featureSetByName(e,t=!0,a=null){null===a&&(a=["*"]),a=(a=a.slice(0)).sort();const r=JSON.stringify(a);for(let s=0;s<this._instantLayers.length;s++){const a=this._instantLayers[s];if(a.opitem.title===e&&a.includeGeometry===t&&a.outFields===r)return this._instantLayers[s].featureset}const n=await this._loadMetaData();let i=null;for(const s of n.layers??[])s.name===e&&(i=s);if(!i)for(const s of n.tables??[])s.name===e&&(i=s);if(i){const e=await I(this._url+"/"+i.id,["*"]);return this._makeAndAddFeatureSet(e,t,a)}return null}async featureSetById(e,t=!0,a=["*"]){null===a&&(a=["*"]),a=(a=a.slice(0)).sort();const r=JSON.stringify(a);e=null!=e?e.toString():"";for(let s=0;s<this._instantLayers.length;s++){const a=this._instantLayers[s];if(a.opitem.id===e&&a.includeGeometry===t&&a.outFields===r)return this._instantLayers[s].featureset}const n=await this._loadMetaData();let i=null;for(const s of n.layers??[])null!==s.id&&void 0!==s.id&&s.id.toString()===e&&(i=s);if(!i)for(const s of n.tables??[])null!==s.id&&void 0!==s.id&&s.id.toString()===e&&(i=s);if(i){const e=await I(this._url+"/"+i.id,["*"]);return this._makeAndAddFeatureSet(e,t,a)}return null}}function D(e,t,a=null,r=null){return new b(e,t,a,r)}function E(e,t,a=null,r=null){return new O(e,t,a,r)}function j(e,t,n,i,s){if(null===e)return null;if(e instanceof w){switch(t){case"datasource":return g(e,s,e.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.outFields,!0,n,i)}return null}if(a(e)){switch(t){case"datasource":return g(e,s,e.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.outFields,!0,n,i)}return null}if(r(e)){switch(t){case"datasource":return g(e.parent,s,e.parent.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.parent.outFields,!0,n,i)}return null}if(e instanceof y)switch(t){case"datasource":return e.getDataSourceFeatureSet();case"parent":return e;case"root":return e.getRootFeatureSet()}return null}async function q(e,t,a,r,n,i,s,l=null){if(f.applicationCache){const o=f.applicationCache.getLayerInfo(e+":"+i.url);if(o){const e=await o;return g(new w({url:h(e.url)+"/"+t,outFields:["*"]}),a,r,n,s,l)}}const o=new S({id:e,portal:i}).load();f.applicationCache&&f.applicationCache.setLayerInfo(e+":"+i.url,o);try{const e=await o;return g(new w({url:h(e.url??"")+"/"+t,outFields:["*"]}),a,r,n,s,l)}catch(u){throw f.applicationCache&&f.applicationCache.clearLayerInfo(e+":"+i.url),u}}export{T as constructAssociationMetaDataFeatureSetFromUrl,g as constructFeatureSet,q as constructFeatureSetFromPortalItem,k as constructFeatureSetFromRelationship,F as constructFeatureSetFromUrl,j as convertToFeatureSet,D as createFeatureSetCollectionFromMap,E as createFeatureSetCollectionFromService,L as initialiseMetaDataCache};
|
|
5
|
+
import e from"../request.js";import t from"./featureSetCollection.js";import{$ as a,a0 as r}from"../chunks/languageUtils.js";import n from"./featureset/actions/AttributeFilter.js";import i from"./featureset/actions/GroupBy.js";import s from"./featureset/actions/OrderBy.js";import l from"./featureset/actions/SpatialFilter.js";import o from"./featureset/actions/Top.js";import u from"./featureset/sources/FeatureLayerDynamic.js";import c from"./featureset/sources/FeatureLayerMemory.js";import d from"./featureset/sources/FeatureLayerRelated.js";import f from"./featureset/support/cache.js";import{FeatureSetError as p,FeatureSetErrorCodes as m}from"./featureset/support/errorsupport.js";import y from"./featureset/support/FeatureSet.js";import{extractServiceUrl as h}from"./featureset/support/shared.js";import{WhereClause as _}from"../core/sql/WhereClause.js";import w from"../layers/FeatureLayer.js";import L from"../portal/PortalItem.js";function I(){null===f.applicationCache&&(f.applicationCache=new f)}async function S(e,t){if(f.applicationCache){const r=f.applicationCache.getLayerInfo(e);if(r){const a=await r;return new w({url:e,outFields:t,sourceJSON:a})}const n=new w({url:e,outFields:t}),i=(async()=>(await n.load(),n.sourceJSON))();if(f.applicationCache){f.applicationCache.setLayerInfo(e,i);try{return await i,n}catch(a){throw f.applicationCache.clearLayerInfo(e),a}}return await i,n}return new w({url:e,outFields:t})}async function F(e,t,a,r,n,i=null){return g(await S(e,["*"]),t,a,r,n,i)}function g(e,t=null,r=null,n=!0,i=null,s=null){if(e instanceof w||a(e)){const a={layer:e,spatialReference:t,outFields:r,includeGeometry:n,lrucache:i,interceptor:s};return!0==!(e.url||!e.source)?new c(a):new u(a)}const l=g(e.parent,t,r,n,i,s);return l.filter(_.create(e.parent.subtypeField+"="+e.subtypeCode.toString(),e.parent.fieldsIndex,l.dateFieldsTimeZoneDefaultUTC))}async function N(t){if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(t);if(null!==e)return e}const a=(async()=>{const a=await e(t,{responseType:"json",query:{f:"json"}});return a.data?a.data:null})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(t,a);try{return await a}catch(r){throw f.applicationCache.clearLayerInfo(t),r}}return a}async function C(t,a){const r="QUERYDATAELEMTS:"+a.toString()+":"+t;if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(r);if(null!==e)return e}const n=(async()=>{const r=await e(t+"/queryDataElements",{method:"post",responseType:"json",query:{layers:JSON.stringify([a.toString()]),f:"json"}});if(r.data){const e=r.data;if(e.layerDataElements?.[0])return e.layerDataElements[0]}throw new p(m.DataElementsNotFound)})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(r,n);try{return await n}catch(i){throw f.applicationCache.clearLayerInfo(r),i}}return n}async function T(t){if(null!==f.applicationCache){const e=f.applicationCache.getLayerInfo(t);if(null!==e)return e}const a=(async()=>{const a=await e(t,{responseType:"json",query:{f:"json"}});if(a.data){const e=a.data;return e.layers||(e.layers=[]),e.tables||(e.tables=[]),e}return{layers:[],tables:[]}})();if(null!==f.applicationCache){f.applicationCache.setLayerInfo(t,a);try{return await a}catch(r){throw f.applicationCache.clearLayerInfo(t),r}}return a}async function A(e,t){const a={metadata:null,networkId:-1,unVersion:3,terminals:[],queryelem:null,layerNameLkp:{},lkp:null},r=await T(e);if(a.metadata=r,void 0!==r.controllerDatasetLayers?.utilityNetworkLayerId&&null!==r.controllerDatasetLayers.utilityNetworkLayerId){if(r.layers)for(const e of r.layers)a.layerNameLkp[e.id]=e.name;if(r.tables)for(const e of r.tables)a.layerNameLkp[e.id]=e.name;const n=r.controllerDatasetLayers.utilityNetworkLayerId;a.networkId=n;const i=await C(e,n);if(i){a.queryelem=i,a.queryelem?.dataElement&&void 0!==a.queryelem.dataElement.schemaGeneration&&(a.unVersion=a.queryelem.dataElement.schemaGeneration),a.lkp={},a.queryelem.dataElement.domainNetworks||(a.queryelem.dataElement.domainNetworks=[]);for(const e of a.queryelem.dataElement.domainNetworks){for(const t of e.edgeSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:a.layerNameLkp[t.layerId]??null};e.className&&(a.lkp[e.className]=e)}for(const t of e.junctionSources??[]){const e={layerId:t.layerId,sourceId:t.sourceId,className:a.layerNameLkp[t.layerId]??null};e.className&&(a.lkp[e.className]=e)}}if(a.queryelem.dataElement.terminalConfigurations)for(const e of a.queryelem.dataElement.terminalConfigurations)for(const t of e.terminals)a.terminals.push({terminalId:t.terminalId,terminalName:t.terminalName});const r=await N(e+"/"+n);if(void 0!==r.systemLayers?.associationsTableId&&null!==r.systemLayers.associationsTableId){const n=[];a.unVersion>=4&&(n.push("STATUS"),n.push("PERCENTALONG"));let i=await F(e+"/"+r.systemLayers.associationsTableId.toString(),t,["OBJECTID","FROMNETWORKSOURCEID","TONETWORKSOURCEID","FROMGLOBALID","TOGLOBALID","TOTERMINALID","FROMTERMINALID","ASSOCIATIONTYPE","ISCONTENTVISIBLE","GLOBALID",...n],!1,null,null);return await i.load(),a.unVersion>=4&&(i=i.filter(_.create("STATUS NOT IN (1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 25, 26, 27, 28, 29, 30, 31, 33, 34, 35, 36, 37, 38, 39, 41, 42, 43, 44, 45, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 58, 59, 60, 61, 62, 63)",i.getFieldsIndex(),i.dateFieldsTimeZoneDefaultUTC)),await i.load()),{lkp:a.lkp,associations:i,unVersion:a.unVersion,terminals:a.terminals}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}return{associations:null,unVersion:a.unVersion,lkp:null,terminals:[]}}async function k(e,t,a,r=null,n=null,i=!0,s=null,l=null){let o=e.serviceUrl();if(!o)return null;o="/"===o.charAt(o.length-1)?o+t.relatedTableId.toString():o+"/"+t.relatedTableId.toString();const u=await F(o,r,n,i,s,l);return new d({layer:e,relatedLayer:u,relationship:t,objectId:a,spatialReference:r,outFields:n,includeGeometry:i,lrucache:s,interceptor:l})}n.registerAction(),i.registerAction(),s.registerAction(),l.registerAction(),o.registerAction();class O extends t{constructor(e,t=null,a=null,r=null){super(),this._map=e,this._overridespref=t,this._lrucache=a,this._interceptor=r,this._instantLayers=[]}_makeAndAddFeatureSet(e,t=!0,a=null){const r=g(e,this._overridespref,null===a?["*"]:a,t,this._lrucache,this._interceptor);return this._instantLayers.push({featureset:r,opitem:e,includeGeometry:t,outFields:JSON.stringify(a)}),r}async featureSetByName(e,t=!0,r=null){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetByName(e,t,r);null===r&&(r=["*"]),r=(r=r.slice(0)).sort();const n=JSON.stringify(r);for(let a=0;a<this._instantLayers.length;a++){const r=this._instantLayers[a];if(r.opitem.title===e&&r.includeGeometry===t&&r.outFields===n)return this._instantLayers[a].featureset}const i=this._map.allLayers.find((t=>{if(t instanceof w){if(t.title===e)return!0}else if(a(t)&&t.title===e)return!0;return!1}));if(i)return this._makeAndAddFeatureSet(i,t,r);if(this._map.tables){const a=this._map.tables.find((t=>!!(t.title&&t.title===e||t.title&&t.title===e)));if(a){if(a instanceof w)return this._makeAndAddFeatureSet(a,t,r);if(a._materializedTable);else{const e=a.outFields?a:{...a,outFields:["*"]};a._materializedTable=new w(e)}return await a._materializedTable.load(),this._makeAndAddFeatureSet(a._materializedTable,t,r)}}return null}async featureSetById(e,t=!0,r=["*"]){if(void 0!==this._map.loaded&&void 0!==this._map.load&&!1===this._map.loaded)return await this._map.load(),this.featureSetById(e,t,r);null===r&&(r=["*"]),r=(r=r.slice(0)).sort();const n=JSON.stringify(r);for(let a=0;a<this._instantLayers.length;a++){const r=this._instantLayers[a];if(r.opitem.id===e&&r.includeGeometry===t&&r.outFields===n)return this._instantLayers[a].featureset}const i=this._map.allLayers.find((t=>{if(t instanceof w){if(t.id===e)return!0}else if(a(t)&&t.id===e)return!0;return!1}));if(i)return this._makeAndAddFeatureSet(i,t,r);if(this._map.tables){const a=this._map.tables.find((t=>t.id===e));if(a){if(a instanceof w)return this._makeAndAddFeatureSet(a,t,r);if(a._materializedTable);else{const e={...a,outFields:["*"]};a._materializedTable=new w(e)}return await a._materializedTable.load(),this._makeAndAddFeatureSet(a._materializedTable,t,r)}}return null}}class b extends t{constructor(e,t=null,a=null,r=null){super(),this._url=e,this._overridespref=t,this._lrucache=a,this._interceptor=r,this.metadata=null,this._instantLayers=[]}get url(){return this._url}_makeAndAddFeatureSet(e,t=!0,a=null){const r=g(e,this._overridespref,null===a?["*"]:a,t,this._lrucache);return this._instantLayers.push({featureset:r,opitem:e,includeGeometry:t,outFields:JSON.stringify(a)}),r}async _loadMetaData(){const e=await T(this._url);return this.metadata=e,e}load(){return this._loadMetaData()}clone(){return new b(this._url,this._overridespref,this._lrucache,this._interceptor)}async featureSetByName(e,t=!0,a=null){null===a&&(a=["*"]),a=(a=a.slice(0)).sort();const r=JSON.stringify(a);for(let s=0;s<this._instantLayers.length;s++){const a=this._instantLayers[s];if(a.opitem.title===e&&a.includeGeometry===t&&a.outFields===r)return this._instantLayers[s].featureset}const n=await this._loadMetaData();let i=null;for(const s of n.layers??[])s.name===e&&(i=s);if(!i)for(const s of n.tables??[])s.name===e&&(i=s);if(i){const e=await S(this._url+"/"+i.id,["*"]);return this._makeAndAddFeatureSet(e,t,a)}return null}async featureSetById(e,t=!0,a=["*"]){null===a&&(a=["*"]),a=(a=a.slice(0)).sort();const r=JSON.stringify(a);e=null!=e?e.toString():"";for(let s=0;s<this._instantLayers.length;s++){const a=this._instantLayers[s];if(a.opitem.id===e&&a.includeGeometry===t&&a.outFields===r)return this._instantLayers[s].featureset}const n=await this._loadMetaData();let i=null;for(const s of n.layers??[])null!==s.id&&void 0!==s.id&&s.id.toString()===e&&(i=s);if(!i)for(const s of n.tables??[])null!==s.id&&void 0!==s.id&&s.id.toString()===e&&(i=s);if(i){const e=await S(this._url+"/"+i.id,["*"]);return this._makeAndAddFeatureSet(e,t,a)}return null}}function D(e,t,a=null,r=null){return new O(e,t,a,r)}function E(e,t,a=null,r=null){return new b(e,t,a,r)}function j(e,t,n,i,s){if(null===e)return null;if(e instanceof w){switch(t){case"datasource":return g(e,s,e.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.outFields,!0,n,i)}return null}if(a(e)){switch(t){case"datasource":return g(e,s,e.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.outFields,!0,n,i)}return null}if(r(e)){switch(t){case"datasource":return g(e.parent,s,e.parent.outFields,!0,n,i).getDataSourceFeatureSet();case"parent":case"root":return g(e,s,e.parent.outFields,!0,n,i)}return null}if(e instanceof y)switch(t){case"datasource":return e.getDataSourceFeatureSet();case"parent":return e;case"root":return e.getRootFeatureSet()}return null}async function q(e,t,a,r,n,i,s,l=null){if(f.applicationCache){const o=f.applicationCache.getLayerInfo(e+":"+i.url);if(o){const e=await o;return g(new w({url:h(e.url)+"/"+t,outFields:["*"]}),a,r,n,s,l)}}const o=new L({id:e,portal:i}).load();f.applicationCache&&f.applicationCache.setLayerInfo(e+":"+i.url,o);try{const e=await o;return g(new w({url:h(e.url??"")+"/"+t,outFields:["*"]}),a,r,n,s,l)}catch(u){throw f.applicationCache&&f.applicationCache.clearLayerInfo(e+":"+i.url),u}}export{A as constructAssociationMetaDataFeatureSetFromUrl,g as constructFeatureSet,q as constructFeatureSetFromPortalItem,k as constructFeatureSetFromRelationship,F as constructFeatureSetFromUrl,j as convertToFeatureSet,D as createFeatureSetCollectionFromMap,E as createFeatureSetCollectionFromService,I as initialiseMetaDataCache};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as a,ExecutionErrorCodes as i}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as o,constructFeatureSetFromPortalItem as l,constructFeatureSet as f,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as c,constructAssociationMetaDataFeatureSetFromUrl as d}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as p,n as y,m as w,u as h,c as g,j as F,l as I,L as D,k as T,H as E,h as b,o as A,r as N,q as x,i as L,g as S,a2 as C,S as $}from"../../chunks/languageUtils.js";import{getPortal as v}from"../portalUtils.js";import{SqlExpressionAdapted as P,StringToCodeAdapted as j,FieldRename as U,AdaptedFeatureSet as R,OriginalField as Z}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import k from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import H from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import{WhereClause as K}from"../../core/sql/WhereClause.js";import V from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Y(e,t,n,a){if(1===a.length){if(A(a[0]))return q(e,a[0],-1);if(x(a[0]))return q(e,a[0].toArray(),-1)}return q(e,a,-1)}async function X(e,t,n){const a=e.getVariables();if(a.length>0){const i=[];for(let e=0;e<a.length;e++){const r={name:a[e]};i.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<a.length;e++)r[a[e]]=i[e];return e.parameters=r,e}return e}function ee(e,t,n=null){for(const a in e)if(a.toLowerCase()===t.toLowerCase())return e[a];return n}function te(e){if(null===e)return null;const t={type:ee(e,"type",""),name:ee(e,"name","")};if("range"===t.type)t.range=ee(e,"range",[]);else{t.codedValues=[];for(const n of ee(e,"codedValues",[]))t.codedValues.push({name:ee(n,"name",""),code:ee(n,"code",null)})}return t}function ne(e){if(null===e)return null;const t={},n=ee(e,"wkt",null);null!==n&&(t.wkt=n);const a=ee(e,"wkid",null);return null!==a&&(t.wkid=a),t}function ae(e){if(null===e)return null;const t={hasZ:ee(e,"hasz",!1),hasM:ee(e,"hasm",!1)},n=ee(e,"spatialreference",null);n&&(t.spatialReference=ne(n));const a=ee(e,"x",null);if(null!==a)return t.x=a,t.y=ee(e,"y",null),t;const i=ee(e,"rings",null);if(null!==i)return t.rings=i,t;const r=ee(e,"paths",null);if(null!==r)return t.paths=r,t;const s=ee(e,"points",null);if(null!==s)return t.points=s,t;for(const o of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=ee(e,o,null);null!==n&&(t[o]=n)}return t}function ie(e,t){for(const n of t)if(n===e)return!0;return!1}function re(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ie(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==A(e.layerDefinition.fields)&&!1!==A(e.featureSet.features))))}function se(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}function oe(q){"async"===q.mode&&(q.functions.timezone=function(t,r){return q.standardFunctionAsync(t,r,(async(s,o,l)=>{if(p(l,1,2,t,r),y(l[0]))return"Unknown";if(w(l[0]))return"Unknown";if(h(l[0])){if(await l[0].load(),1===l.length||null===l[1])return l[0].datesInUnknownTimezone?se("unknown"):se(l[0].dateFieldsTimeZone);if(!(l[1]instanceof n)||!1===l[1].hasField("type"))throw new a(t,i.InvalidParameter,r);const e=l[1].field("type");if(!1===g(e))throw new a(t,i.InvalidParameter,r);switch(F(e).toLowerCase()){case"preferredtimezone":return se(l[0].preferredTimeZone);case"editfieldsinfo":return se(l[0].editFieldsInfo?.timeZone??null);case"timeinfo":return se(l[0].timeInfo?.timeZone??null);case"field":if(l[1].hasField("fieldname")&&g(l[1].field("fieldname")))return se(l[0].fieldTimeZone(F(l[1].field("fieldname"))))}throw new a(t,i.InvalidParameter,r)}const f=I(l[0],D(t));if(null===f)return null;const u=f.timeZone;return"system"===u?e.systemTimeZoneCanonicalName:"utc"===u.toLowerCase()?"UTC":"unknown"===u.toLowerCase()?"Unknown":u}))},q.functions.sqltimestamp=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,1,3,e,t);const o=s[0];if(T(o)){if(1===s.length)return o.toSQLWithKeyword();if(2===s.length)return o.changeTimeZone(F(s[1])).toSQLWithKeyword();throw new a(e,i.InvalidParameter,t)}if(w(o))return o.toSQLWithKeyword();if(h(o)){if(3!==s.length)throw new a(e,i.InvalidParameter,t);await o.load();const n=F(s[1]);if(w(s[2]))return s[2].toSQLWithKeyword();if(!1===T(s[2]))throw new a(e,i.InvalidParameter,t);const r=o.fieldTimeZone(n);return null===r?s[2].toSQLWithKeyword():s[2].changeTimeZone(r).toSQLWithKeyword()}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"sqltimestamp",min:2,max:4}),q.functions.featuresetbyid=function(e,t){return q.standardFunctionAsync(e,t,((n,r,o)=>{if(p(o,2,4,e,t),o[0]instanceof s){const n=F(o[1]);let r=E(o[2],null);const s=b(E(o[3],!0));if(null===r&&(r=["*"]),!1===A(r))throw new a(e,i.InvalidParameter,t);return o[0].featureSetById(n,s,r)}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyid",min:2,max:4}),q.functions.getfeatureset=function(e,t){return q.standardFunctionAsync(e,t,((n,r,s)=>{if(p(s,1,2,e,t),N(s[0])){let t=E(s[1],"datasource");return null===t&&(t="datasource"),t=F(t).toLowerCase(),o(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"getfeatureset",min:1,max:2}),q.functions.featuresetbyportalitem=function(e,n){return q.standardFunctionAsync(e,n,((r,s,o)=>{if(p(o,2,5,e,n),null===o[0])throw new a(e,i.PortalRequired,n);if(o[0]instanceof t){const t=F(o[1]),r=F(o[2]);let s=E(o[3],null);const f=b(E(o[4],!0));if(null===s&&(s=["*"]),!1===A(s))throw new a(e,i.InvalidParameter,n);let u=null;return u=e.services?.portal?e.services.portal:J.getDefault(),u=v(o[0],u),l(t,r,e.spatialReference,s,f,u,e.lrucache,e.interceptor)}if(!1===g(o[0]))throw new a(e,i.PortalRequired,n);const f=F(o[0]),u=F(o[1]);let c=E(o[2],null);const d=b(E(o[3],!0));if(null===c&&(c=["*"]),!1===A(c))throw new a(e,i.InvalidParameter,n);return l(f,u,e.spatialReference,c,d,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},q.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),q.functions.featuresetbyname=function(e,t){return q.standardFunctionAsync(e,t,((n,r,o)=>{if(p(o,2,4,e,t),o[0]instanceof s){const n=F(o[1]);let r=E(o[2],null);const s=b(E(o[3],!0));if(null===r&&(r=["*"]),!1===A(r))throw new a(e,i.InvalidParameter,t);return o[0].featureSetByName(n,s,r)}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyname",min:2,max:4}),q.functions.featureset=function(e,t){return q.standardFunction(e,t,((r,s,o)=>{p(o,1,1,e,t);let l=o[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(g(l))l=JSON.parse(l),void 0!==l.layerDefinition?(f.layerDefinition=l.layerDefinition,f.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(f.featureSet.features=l.features,f.featureSet.geometryType=l.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=l.objectIdFieldName??"",f.layerDefinition.typeIdField=l.typeIdFieldName,f.layerDefinition.globalIdField=l.globalIdFieldName,f.layerDefinition.fields=l.fields,l.spatialReference&&(f.layerDefinition.spatialReference=l.spatialReference));else{if(!(o[0]instanceof n))throw new a(e,i.InvalidParameter,t);{l=JSON.parse(o[0].castToText(!0));const e=ee(l,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=ee(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=ee(e,"globalidfield",""),f.layerDefinition.objectIdField=ee(e,"objectidfield",""),f.layerDefinition.typeIdField=ee(e,"typeidfield",""),f.layerDefinition.hasZ=!0===ee(e,"hasz",!1),f.layerDefinition.hasM=!0===ee(e,"hasm",!1);const t=ee(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ne(t));for(const a of ee(e,"fields",[])){const e={name:ee(a,"name",""),alias:ee(a,"alias",""),type:ee(a,"type",""),nullable:ee(a,"nullable",!0),editable:ee(a,"editable",!0),length:ee(a,"length",null),domain:te(ee(a,"domain"))};f.layerDefinition.fields.push(e)}const n=ee(l,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of ee(n,"features",[])){const n={},a=ee(t,"attributes",{});for(const t in a)n[e[t.toLowerCase()]]=a[t];f.featureSet.features.push({attributes:n,geometry:ae(ee(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===ee(l,"hasz",!1),f.layerDefinition.hasM=!0===ee(l,"hasm",!1),f.layerDefinition.geometryType=ee(l,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=ee(l,"objectidfieldname",""),f.layerDefinition.typeIdField=ee(l,"typeidfieldname","");const e=ee(l,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ne(e));let t=ee(l,"fields",null);if(A(t))for(const i of t){const e={name:ee(i,"name",""),alias:ee(i,"alias",""),type:ee(i,"type",""),nullable:ee(i,"nullable",!0),editable:ee(i,"editable",!0),length:ee(i,"length",null),domain:te(ee(i,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const i of f.layerDefinition.fields)n[i.name.toLowerCase()]=i.name;let a=ee(l,"features",null);if(A(a))for(const i of a){const e={},t=ee(i,"attributes",{});for(const a in t)e[n[a.toLowerCase()]]=t[a];f.featureSet.features.push({attributes:e,geometry:ae(ee(i,"geometry",null))})}else a=null,f.featureSet.features=a}}}if(!1===re(f))throw new a(e,i.InvalidParameter,t);return f.layerDefinition.geometryType||(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},q.signatures.push({name:"featureset",min:1,max:1}),q.functions.filter=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),A(s[0])||x(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let o=null;if(!L(s[1]))throw new a(e,i.InvalidParameter,t);o=s[1].createFunction(e);for(const e of r){const t=o(e);B(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(h(s[0])){const t=await s[0].load(),n=K.create(s[1],t.getFieldsIndex(),t.dateFieldsTimeZoneDefaultUTC),a=n.getVariables();if(a.length>0){const t=[];for(let n=0;n<a.length;n++){const i={name:a[n]};t.push(await q.evaluateIdentifier(e,i))}const i={};for(let e=0;e<a.length;e++)i[a[e]]=t[e];return n.parameters=i,new M({parentfeatureset:s[0],whereclause:n})}return new M({parentfeatureset:s[0],whereclause:n})}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"filter",min:2,max:2}),q.functions.orderby=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),h(s[0])){const e=new H(s[1]);return new k({parentfeatureset:s[0],orderbyclause:e})}throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"orderby",min:2,max:2}),q.functions.top=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),h(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(A(s[0]))return S(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,S(s[1]));if(x(s[0]))return S(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,S(s[1]));throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"top",min:2,max:2}),q.functions.first=function(e,t){return q.standardFunctionAsync(e,t,(async(n,a,i)=>{if(p(i,1,1,e,t),h(i[0])){const t=await i[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,i[0],e.timeZone);return n._underlyingGraphic=t,n}return t}return A(i[0])?0===i[0].length?null:i[0][0]:x(i[0])?0===i[0].length()?null:i[0].get(0):null}))},q.signatures.push({name:"first",min:1,max:1}),q.functions.attachments=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,o)=>{p(o,1,2,e,t);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(o.length>1)if(o[1]instanceof n){if(o[1].hasField("minsize")&&(l.minsize=S(o[1].field("minsize"))),o[1].hasField("metadata")&&(l.returnMetadata=b(o[1].field("metadata"))),o[1].hasField("maxsize")&&(l.maxsize=S(o[1].field("maxsize"))),o[1].hasField("types")){const e=C(o[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==o[1])throw new a(e,i.InvalidParameter,t);if(N(o[0])){let t=o[0]._layer;return t instanceof V&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===h(t)?[]:(await t.load(),t.queryAttachments(o[0].field(t.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===o[0])return[];throw new a(e,i.InvalidParameter,t)}))},q.signatures.push({name:"attachments",min:1,max:2}),q.functions.featuresetbyrelationshipname=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,4,e,t);const o=s[0],l=F(s[1]);let d=E(s[2],null);const m=b(E(s[3],!0));if(null===d&&(d=["*"]),!1===A(d))throw new a(e,i.InvalidParameter,t);if(null===s[0])return null;if(!N(s[0]))throw new a(e,i.InvalidParameter,t);let y=o._layer;if(y instanceof V&&(y=f(y,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===y)return null;if(!1===h(y))return null;y=await y.load();const w=y.relationshipMetaData().filter((e=>e.name===l));if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(y,w[0],o.field(y.objectIdField),y.spatialReference,d,m,e.lrucache,e.interceptor);let g=y.serviceUrl();if(!g)return null;g="/"===g.charAt(g.length-1)?g+w[0].relatedTableId.toString():g+"/"+w[0].relatedTableId.toString();const I=await c(g,y.spatialReference,d,m,e.lrucache,e.interceptor);await I.load();let D=I.relationshipMetaData();if(D=D.filter((e=>e.id===w[0].id)),!1===o.hasField(w[0].keyField)||null===o.field(w[0].keyField)){const e=await y.getFeatureByObjectId(o.field(y.objectIdField),[w[0].keyField]);if(e){const t=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateFieldsTimeZoneDefaultUTC);return t.parameters={id:e.attributes[w[0].keyField]},I.filter(t)}return new z({parentfeatureset:I})}const T=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateFieldsTimeZoneDefaultUTC);return T.parameters={id:o.field(w[0].keyField)},I.filter(T)}))},q.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),q.functions.featuresetbyassociation=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,3,e,t);const o=s[0],l=F(E(s[1],"")).toLowerCase(),u=g(s[2])?F(s[2]):null;if(null===s[0])return null;if(!N(s[0]))throw new a(e,i.InvalidParameter,t);let c=o._layer;if(c instanceof V&&(c=f(c,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===c)return null;if(!1===h(c))return null;await c.load();const m=c.serviceUrl(),y=await d(m,e.spatialReference);let w=null,I=null,D=!1;if(null!==u&&""!==u&&void 0!==u){for(const e of y.terminals)e.terminalName===u&&(I=e.terminalId);null===I&&(D=!0)}const T=y.associations.getFieldsIndex(),b=T.get("TOGLOBALID").name,A=T.get("FROMGLOBALID").name,x=T.get("TOTERMINALID").name,L=T.get("FROMTERMINALID").name,S=T.get("FROMNETWORKSOURCEID").name,C=T.get("TONETWORKSOURCEID").name,v=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,k=T.get("OBJECTID").name;for(const e of c.fields)if("global-id"===e.type){w=o.field(e.name);break}let O=null,z=new P(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),W=new P(new Q({name:"side",alias:"side",type:"string"}),K.create("''",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));const H="globalid",_="globalId",q={};for(const e in y.lkp)q[e]=y.lkp[e].sourceId;const B=new j(new Q({name:"classname",alias:"classname",type:"string"}),null,q);let J="";switch(l){case"midspan":{J=`((${b}='${w}') OR ( ${A}='${w}')) AND (${v} IN (5))`,B.codefield=K.create(`CASE WHEN (${b}='${w}') THEN ${S} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=G(R.findField(y.associations.fields,A));e.name=H,e.alias=H,O=new P(e,K.create(`CASE WHEN (${A}='${w}') THEN ${b} ELSE ${A} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),z=y.unVersion>=4?new Z(R.findField(y.associations.fields,T.get("PERCENTALONG").name)):new P(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"junctionedge":{J=`((${b}='${w}') OR ( ${A}='${w}')) AND (${v} IN (4,6))`,B.codefield=K.create(`CASE WHEN (${b}='${w}') THEN ${S} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=G(R.findField(y.associations.fields,A));e.name=H,e.alias=H,O=new P(e,K.create(`CASE WHEN (${A}='${w}') THEN ${b} ELSE ${A} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),W=new P(new Q({name:"side",alias:"side",type:"string"}),K.create(`CASE WHEN (${v}=4) THEN 'from' ELSE 'to' END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"connected":{let e=`${b}='@T'`,t=`${A}='@T'`;null!==I&&(e+=` AND ${x}=@A`,t+=` AND ${L}=@A`),J="(("+e+") OR ("+t+"))",J=$(J,"@T",w??""),e=$(e,"@T",w??""),null!==I&&(e=$(e,"@A",I.toString()),J=$(J,"@A",I.toString())),B.codefield=K.create("CASE WHEN "+e+` THEN ${S} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const n=G(R.findField(y.associations.fields,A));n.name=H,n.alias=H,O=new P(n,K.create("CASE WHEN "+e+` THEN ${A} ELSE ${b} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"container":J=`${b}='${w}' AND ${v} = 2`,null!==I&&(J+=` AND ${x} = `+I.toString()),B.codefield=S,J="( "+J+" )",O=new U(R.findField(y.associations.fields,A),H,H);break;case"content":J=`(${A}='${w}' AND ${v} = 2)`,null!==I&&(J+=` AND ${L} = `+I.toString()),B.codefield=C,J="( "+J+" )",O=new U(R.findField(y.associations.fields,b),H,H);break;case"structure":J=`(${b}='${w}' AND ${v} = 3)`,null!==I&&(J+=` AND ${x} = `+I.toString()),B.codefield=S,J="( "+J+" )",O=new U(R.findField(y.associations.fields,A),H,_);break;case"attached":J=`(${A}='${w}' AND ${v} = 3)`,null!==I&&(J+=` AND ${L} = `+I.toString()),B.codefield=C,J="( "+J+" )",O=new U(R.findField(y.associations.fields,b),H,_);break;default:throw new a(e,i.InvalidParameter,t)}D&&(J="1 <> 1");return new R({parentfeatureset:y.associations,adaptedFields:[new Z(R.findField(y.associations.fields,k)),new Z(R.findField(y.associations.fields,M)),O,W,B,z],extraFilter:J?K.create(J,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC):null})}))},q.signatures.push({name:"featuresetbyassociation",min:2,max:6}),q.functions.groupby=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,o)=>{if(p(o,3,3,e,t),!h(o[0]))throw new a(e,i.InvalidParameter,t);const l=await o[0].load(),f=[],u=[];let c=!1,d=[];if(g(o[1]))d.push(o[1]);else if(o[1]instanceof n)d.push(o[1]);else if(A(o[1]))d=o[1];else{if(!x(o[1]))throw new a(e,i.InvalidParameter,t);d=o[1].toArray()}for(const m of d)if(g(m)){const e=K.create(F(m),l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC),t=!0===_(e)?F(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(c=!0)}else{if(!(m instanceof n))throw new a(e,i.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(c=!0),!n)throw new a(e,i.InvalidParameter,t);f.push({name:n,expression:K.create(r||n,l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC)})}}if(d=[],g(o[2]))d.push(o[2]);else if(A(o[2]))d=o[2];else if(x(o[2]))d=o[2].toArray();else{if(!(o[2]instanceof n))throw new a(e,i.InvalidParameter,t);d.push(o[2])}for(const m of d){if(!(m instanceof n))throw new a(e,i.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new a(e,i.InvalidParameter,t);u.push({name:n,statistic:r.toLowerCase(),expression:K.create(s,l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC)})}}if(c){const e={};for(const n of l.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await X(t.expression,q,e);for(const t of u)await X(t.expression,q,e);return o[0].groupby(f,u)}))},q.signatures.push({name:"groupby",min:3,max:3}),q.functions.distinct=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,o)=>{if(h(o[0])){p(o,2,2,e,t);const r=await o[0].load(),s=[];let l=[];if(g(o[1]))l.push(o[1]);else if(o[1]instanceof n)l.push(o[1]);else if(A(o[1]))l=o[1];else{if(!x(o[1]))throw new a(e,i.InvalidParameter,t);l=o[1].toArray()}let f=!1;for(const o of l)if(g(o)){const e=K.create(F(o),r.getFieldsIndex(),r.dateFieldsTimeZoneDefaultUTC),t=!0===_(e)?F(o):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(o instanceof n))throw new a(e,i.InvalidParameter,t);{const n=o.hasField("name")?o.field("name"):"%%%%FIELDNAME",l=o.hasField("expression")?o.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new a(e,i.InvalidParameter,t);s.push({name:n,expression:K.create(l||n,r.getFieldsIndex(),r.dateFieldsTimeZoneDefaultUTC)})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await X(t.expression,q,e);return o[0].groupby(s,[])}return Y("distinct",r,s,o)}))}),q.functions.getfeaturesetinfo=function(e,t){return q.standardFunctionAsync(e,t,(async(a,i,r)=>{if(p(r,1,1,e,t),!h(r[0]))return null;const s=await r[0].getFeatureSetInfo();return s?n.convertObjectToArcadeDictionary({layerId:s.layerId,layerName:s.layerName,itemId:s.itemId,serviceLayerUrl:s.serviceLayerUrl,webMapLayerId:s.webMapLayerId??null,webMapLayerTitle:s.webMapLayerTitle??null,className:null,objectClassId:null},D(e),!1,!1):null}))},q.signatures.push({name:"getfeaturesetinfo",min:1,max:1})}export{oe as registerFunctions};
|
|
5
|
+
import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as a,ExecutionErrorCodes as i}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as o,constructFeatureSetFromPortalItem as l,constructFeatureSet as f,constructFeatureSetFromRelationship as u,constructFeatureSetFromUrl as d,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as p,n as y,m as w,u as h,c as g,j as F,l as I,L as D,k as T,H as E,h as b,o as A,r as N,q as x,i as S,g as L,a2 as C,S as v,M as $}from"../../chunks/languageUtils.js";import{getPortal as P}from"../portalUtils.js";import{SqlExpressionAdapted as j,StringToCodeAdapted as U,FieldRename as Z,AdaptedFeatureSet as M,OriginalField as R}from"../featureset/actions/Adapted.js";import k from"../featureset/actions/AttributeFilter.js";import O from"../featureset/actions/OrderBy.js";import z from"../featureset/actions/Top.js";import H from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import G from"../featureset/support/OrderbyClause.js";import{cloneField as _}from"../featureset/support/shared.js";import{isSingleField as q}from"../featureset/support/sqlUtils.js";import{calculateStat as B}from"./fieldStats.js";import{isPromiseLike as K}from"../../core/promiseUtils.js";import{WhereClause as V}from"../../core/sql/WhereClause.js";import Q from"../../layers/FeatureLayer.js";import J from"../../layers/support/Field.js";import Y from"../../portal/Portal.js";function X(e,t,n,a){if(1===a.length){if(A(a[0]))return B(e,a[0],-1);if(x(a[0]))return B(e,a[0].toArray(),-1)}return B(e,a,-1)}async function ee(e,t,n){const a=e.getVariables();if(a.length>0){const i=[];for(let e=0;e<a.length;e++){const r={name:a[e]};i.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<a.length;e++)r[a[e]]=i[e];return e.parameters=r,e}return e}function te(e,t,n=null){for(const a in e)if(a.toLowerCase()===t.toLowerCase())return e[a];return n}function ne(e){if(null===e)return null;const t={type:te(e,"type",""),name:te(e,"name","")};if("range"===t.type)t.range=te(e,"range",[]);else{t.codedValues=[];for(const n of te(e,"codedValues",[]))t.codedValues.push({name:te(n,"name",""),code:te(n,"code",null)})}return t}function ae(e){if(null===e)return null;const t={},n=te(e,"wkt",null);null!==n&&(t.wkt=n);const a=te(e,"wkid",null);return null!==a&&(t.wkid=a),t}function ie(e){if(null===e)return null;const t={hasZ:te(e,"hasz",!1),hasM:te(e,"hasm",!1)},n=te(e,"spatialreference",null);n&&(t.spatialReference=ae(n));const a=te(e,"x",null);if(null!==a)return t.x=a,t.y=te(e,"y",null),t;const i=te(e,"rings",null);if(null!==i)return t.rings=i,t;const r=te(e,"paths",null);if(null!==r)return t.paths=r,t;const s=te(e,"points",null);if(null!==s)return t.points=s,t;for(const o of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=te(e,o,null);null!==n&&(t[o]=n)}return t}function re(e,t){for(const n of t)if(n===e)return!0;return!1}function se(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==re(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==A(e.layerDefinition.fields)&&!1!==A(e.featureSet.features))))}function oe(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}function le(B){"async"===B.mode&&(B.functions.timezone=function(t,r){return B.standardFunctionAsync(t,r,(async(s,o,l)=>{if(p(l,1,2,t,r),y(l[0]))return"Unknown";if(w(l[0]))return"Unknown";if(h(l[0])){if(await l[0].load(),1===l.length||null===l[1])return l[0].datesInUnknownTimezone?oe("unknown"):oe(l[0].dateFieldsTimeZone);if(!(l[1]instanceof n)||!1===l[1].hasField("type"))throw new a(t,i.InvalidParameter,r);const e=l[1].field("type");if(!1===g(e))throw new a(t,i.InvalidParameter,r);switch(F(e).toLowerCase()){case"preferredtimezone":return oe(l[0].preferredTimeZone);case"editfieldsinfo":return oe(l[0].editFieldsInfo?.timeZone??null);case"timeinfo":return oe(l[0].timeInfo?.timeZone??null);case"field":if(l[1].hasField("fieldname")&&g(l[1].field("fieldname")))return oe(l[0].fieldTimeZone(F(l[1].field("fieldname"))))}throw new a(t,i.InvalidParameter,r)}const f=I(l[0],D(t));if(null===f)return null;const u=f.timeZone;return"system"===u?e.systemTimeZoneCanonicalName:"utc"===u.toLowerCase()?"UTC":"unknown"===u.toLowerCase()?"Unknown":u}))},B.functions.sqltimestamp=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,1,3,e,t);const o=s[0];if(T(o)){if(1===s.length)return o.toSQLWithKeyword();if(2===s.length)return o.changeTimeZone(F(s[1])).toSQLWithKeyword();throw new a(e,i.InvalidParameter,t)}if(w(o))return o.toSQLWithKeyword();if(h(o)){if(3!==s.length)throw new a(e,i.InvalidParameter,t);await o.load();const n=F(s[1]);if(w(s[2]))return s[2].toSQLWithKeyword();if(!1===T(s[2]))throw new a(e,i.InvalidParameter,t);const r=o.fieldTimeZone(n);return null===r?s[2].toSQLWithKeyword():s[2].changeTimeZone(r).toSQLWithKeyword()}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"sqltimestamp",min:2,max:4}),B.functions.featuresetbyid=function(e,t){return B.standardFunctionAsync(e,t,((n,r,o)=>{if(p(o,2,4,e,t),o[0]instanceof s){const n=F(o[1]);let r=E(o[2],null);const s=b(E(o[3],!0));if(null===r&&(r=["*"]),!1===A(r))throw new a(e,i.InvalidParameter,t);return o[0].featureSetById(n,s,r)}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"featuresetbyid",min:2,max:4}),B.functions.getfeatureset=function(e,t){return B.standardFunctionAsync(e,t,((n,r,s)=>{if(p(s,1,2,e,t),N(s[0])){let t=E(s[1],"datasource");return null===t&&(t="datasource"),t=F(t).toLowerCase(),o(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"getfeatureset",min:1,max:2}),B.functions.featuresetbyportalitem=function(e,n){return B.standardFunctionAsync(e,n,((r,s,o)=>{if(p(o,2,5,e,n),null===o[0])throw new a(e,i.PortalRequired,n);if(o[0]instanceof t){const t=F(o[1]),r=F(o[2]);let s=E(o[3],null);const f=b(E(o[4],!0));if(null===s&&(s=["*"]),!1===A(s))throw new a(e,i.InvalidParameter,n);let u=null;return u=e.services?.portal?e.services.portal:Y.getDefault(),u=P(o[0],u),l(t,r,e.spatialReference,s,f,u,e.lrucache,e.interceptor)}if(!1===g(o[0]))throw new a(e,i.PortalRequired,n);const f=F(o[0]),u=F(o[1]);let d=E(o[2],null);const c=b(E(o[3],!0));if(null===d&&(d=["*"]),!1===A(d))throw new a(e,i.InvalidParameter,n);return l(f,u,e.spatialReference,d,c,e.services?.portal??Y.getDefault(),e.lrucache,e.interceptor)}))},B.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),B.functions.featuresetbyname=function(e,t){return B.standardFunctionAsync(e,t,((n,r,o)=>{if(p(o,2,4,e,t),o[0]instanceof s){const n=F(o[1]);let r=E(o[2],null);const s=b(E(o[3],!0));if(null===r&&(r=["*"]),!1===A(r))throw new a(e,i.InvalidParameter,t);return o[0].featureSetByName(n,s,r)}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"featuresetbyname",min:2,max:4}),B.functions.featureset=function(e,t){return B.standardFunction(e,t,((r,s,o)=>{p(o,1,1,e,t);let l=o[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(g(l))l=JSON.parse(l),void 0!==l.layerDefinition?(f.layerDefinition=l.layerDefinition,f.featureSet=l.featureSet,l.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=l.layerDefinition.spatialReference)):(f.featureSet.features=l.features,f.featureSet.geometryType=l.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=l.objectIdFieldName??"",f.layerDefinition.typeIdField=l.typeIdFieldName,f.layerDefinition.globalIdField=l.globalIdFieldName,f.layerDefinition.fields=l.fields,l.spatialReference&&(f.layerDefinition.spatialReference=l.spatialReference));else{if(!(o[0]instanceof n))throw new a(e,i.InvalidParameter,t);{l=JSON.parse(o[0].castToText(!0));const e=te(l,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=te(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=te(e,"globalidfield",""),f.layerDefinition.objectIdField=te(e,"objectidfield",""),f.layerDefinition.typeIdField=te(e,"typeidfield",""),f.layerDefinition.hasZ=!0===te(e,"hasz",!1),f.layerDefinition.hasM=!0===te(e,"hasm",!1);const t=te(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ae(t));for(const a of te(e,"fields",[])){const e={name:te(a,"name",""),alias:te(a,"alias",""),type:te(a,"type",""),nullable:te(a,"nullable",!0),editable:te(a,"editable",!0),length:te(a,"length",null),domain:ne(te(a,"domain"))};f.layerDefinition.fields.push(e)}const n=te(l,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of te(n,"features",[])){const n={},a=te(t,"attributes",{});for(const t in a)n[e[t.toLowerCase()]]=a[t];f.featureSet.features.push({attributes:n,geometry:ie(te(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===te(l,"hasz",!1),f.layerDefinition.hasM=!0===te(l,"hasm",!1),f.layerDefinition.geometryType=te(l,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=te(l,"objectidfieldname",""),f.layerDefinition.typeIdField=te(l,"typeidfieldname","");const e=te(l,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ae(e));let t=te(l,"fields",null);if(A(t))for(const i of t){const e={name:te(i,"name",""),alias:te(i,"alias",""),type:te(i,"type",""),nullable:te(i,"nullable",!0),editable:te(i,"editable",!0),length:te(i,"length",null),domain:ne(te(i,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const i of f.layerDefinition.fields)n[i.name.toLowerCase()]=i.name;let a=te(l,"features",null);if(A(a))for(const i of a){const e={},t=te(i,"attributes",{});for(const a in t)e[n[a.toLowerCase()]]=t[a];f.featureSet.features.push({attributes:e,geometry:ie(te(i,"geometry",null))})}else a=null,f.featureSet.features=a}}}if(!1===se(f))throw new a(e,i.InvalidParameter,t);return f.layerDefinition.geometryType||(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},B.signatures.push({name:"featureset",min:1,max:1}),B.functions.filter=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),A(s[0])||x(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let o=null;if(!S(s[1]))throw new a(e,i.InvalidParameter,t);o=s[1].createFunction(e);for(const e of r){const t=o(e);K(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(h(s[0])){const t=await s[0].load(),n=V.create(s[1],t.getFieldsIndex(),t.dateFieldsTimeZoneDefaultUTC),a=n.getVariables();if(a.length>0){const t=[];for(let n=0;n<a.length;n++){const i={name:a[n]};t.push(await B.evaluateIdentifier(e,i))}const i={};for(let e=0;e<a.length;e++)i[a[e]]=t[e];return n.parameters=i,new k({parentfeatureset:s[0],whereclause:n})}return new k({parentfeatureset:s[0],whereclause:n})}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"filter",min:2,max:2}),B.functions.orderby=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),h(s[0])){const e=new G(s[1]);return new O({parentfeatureset:s[0],orderbyclause:e})}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"orderby",min:2,max:2}),B.functions.top=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),h(s[0]))return new z({parentfeatureset:s[0],topnum:s[1]});if(A(s[0]))return L(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,L(s[1]));if(x(s[0]))return L(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,L(s[1]));throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"top",min:2,max:2}),B.functions.first=function(e,t){return B.standardFunctionAsync(e,t,(async(n,a,i)=>{if(p(i,1,1,e,t),h(i[0])){const t=await i[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,i[0],e.timeZone);return n._underlyingGraphic=t,n}return t}return A(i[0])?0===i[0].length?null:i[0][0]:x(i[0])?0===i[0].length()?null:i[0].get(0):null}))},B.signatures.push({name:"first",min:1,max:1}),B.functions.attachments=function(e,t){return B.standardFunctionAsync(e,t,(async(r,s,o)=>{p(o,1,2,e,t);const l={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(o.length>1)if(o[1]instanceof n){if(o[1].hasField("minsize")&&(l.minsize=L(o[1].field("minsize"))),o[1].hasField("metadata")&&(l.returnMetadata=b(o[1].field("metadata"))),o[1].hasField("maxsize")&&(l.maxsize=L(o[1].field("maxsize"))),o[1].hasField("types")){const e=C(o[1].field("types"),!1);e.length>0&&(l.types=e)}}else if(null!==o[1])throw new a(e,i.InvalidParameter,t);if(N(o[0])){let t=o[0]._layer;return t instanceof Q&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===h(t)?[]:(await t.load(),t.queryAttachments(o[0].field(t.objectIdField),l.minsize,l.maxsize,l.types,l.returnMetadata))}if(null===o[0])return[];throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"attachments",min:1,max:2}),B.functions.featuresetbyrelationshipname=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,4,e,t);const o=s[0],l=F(s[1]);let c=E(s[2],null);const m=b(E(s[3],!0));if(null===c&&(c=["*"]),!1===A(c))throw new a(e,i.InvalidParameter,t);if(null===s[0])return null;if(!N(s[0]))throw new a(e,i.InvalidParameter,t);let y=o._layer;if(y instanceof Q&&(y=f(y,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===y)return null;if(!1===h(y))return null;y=await y.load();const w=y.relationshipMetaData().filter((e=>e.name===l));if(0===w.length)return null;if(void 0!==w[0].relationshipTableId&&null!==w[0].relationshipTableId&&w[0].relationshipTableId>-1)return u(y,w[0],o.field(y.objectIdField),y.spatialReference,c,m,e.lrucache,e.interceptor);let g=y.serviceUrl();if(!g)return null;g="/"===g.charAt(g.length-1)?g+w[0].relatedTableId.toString():g+"/"+w[0].relatedTableId.toString();const I=await d(g,y.spatialReference,c,m,e.lrucache,e.interceptor);await I.load();let D=I.relationshipMetaData();if(D=D.filter((e=>e.id===w[0].id)),!1===o.hasField(w[0].keyField)||null===o.field(w[0].keyField)){const e=await y.getFeatureByObjectId(o.field(y.objectIdField),[w[0].keyField]);if(e){const t=V.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateFieldsTimeZoneDefaultUTC);return t.parameters={id:e.attributes[w[0].keyField]},I.filter(t)}return new H({parentfeatureset:I})}const T=V.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateFieldsTimeZoneDefaultUTC);return T.parameters={id:o.field(w[0].keyField)},I.filter(T)}))},B.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),B.functions.featuresetbyassociation=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{p(s,2,3,e,t);const o=s[0],l=F(E(s[1],"")).toLowerCase(),u=g(s[2])?F(s[2]):null;if(null===s[0])return null;if(!N(s[0]))throw new a(e,i.InvalidParameter,t);let d=o._layer;if(d instanceof Q&&(d=f(d,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===d)return null;if(!1===h(d))return null;await d.load();const m=d.serviceUrl(),y=await c(m,e.spatialReference);let w=null,I=null,D=!1;if(null!==u&&""!==u&&void 0!==u){for(const e of y.terminals)e.terminalName===u&&(I=e.terminalId);null===I&&(D=!0)}const T=y.associations.getFieldsIndex(),b=T.get("TOGLOBALID").name,A=T.get("FROMGLOBALID").name,x=T.get("TOTERMINALID").name,S=T.get("FROMTERMINALID").name,L=T.get("FROMNETWORKSOURCEID").name,C=T.get("TONETWORKSOURCEID").name,$=T.get("ASSOCIATIONTYPE").name,P=T.get("ISCONTENTVISIBLE").name,k=T.get("OBJECTID").name;for(const e of d.fields)if("global-id"===e.type){w=o.field(e.name);break}let O=null,z=new j(new J({name:"percentalong",alias:"percentalong",type:"double"}),V.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),H=new j(new J({name:"side",alias:"side",type:"string"}),V.create("''",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));const W="globalid",G="globalId",q={};for(const e in y.lkp)q[e]=y.lkp[e].sourceId;const B=new U(new J({name:"classname",alias:"classname",type:"string"}),null,q);let K="";switch(l){case"midspan":{K=`((${b}='${w}') OR ( ${A}='${w}')) AND (${$} IN (5))`,B.codefield=V.create(`CASE WHEN (${b}='${w}') THEN ${L} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=_(M.findField(y.associations.fields,A));e.name=W,e.alias=W,O=new j(e,V.create(`CASE WHEN (${A}='${w}') THEN ${b} ELSE ${A} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),z=y.unVersion>=4?new R(M.findField(y.associations.fields,T.get("PERCENTALONG").name)):new j(new J({name:"percentalong",alias:"percentalong",type:"double"}),V.create("0",y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"junctionedge":{K=`((${b}='${w}') OR ( ${A}='${w}')) AND (${$} IN (4,6))`,B.codefield=V.create(`CASE WHEN (${b}='${w}') THEN ${L} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const e=_(M.findField(y.associations.fields,A));e.name=W,e.alias=W,O=new j(e,V.create(`CASE WHEN (${A}='${w}') THEN ${b} ELSE ${A} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC)),H=new j(new J({name:"side",alias:"side",type:"string"}),V.create(`CASE WHEN (${$}=4) THEN 'from' ELSE 'to' END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"connected":{let e=`${b}='@T'`,t=`${A}='@T'`;null!==I&&(e+=` AND ${x}=@A`,t+=` AND ${S}=@A`),K="(("+e+") OR ("+t+"))",K=v(K,"@T",w??""),e=v(e,"@T",w??""),null!==I&&(e=v(e,"@A",I.toString()),K=v(K,"@A",I.toString())),B.codefield=V.create("CASE WHEN "+e+` THEN ${L} ELSE ${C} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC);const n=_(M.findField(y.associations.fields,A));n.name=W,n.alias=W,O=new j(n,V.create("CASE WHEN "+e+` THEN ${A} ELSE ${b} END`,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC));break}case"container":K=`${b}='${w}' AND ${$} = 2`,null!==I&&(K+=` AND ${x} = `+I.toString()),B.codefield=L,K="( "+K+" )",O=new Z(M.findField(y.associations.fields,A),W,W);break;case"content":K=`(${A}='${w}' AND ${$} = 2)`,null!==I&&(K+=` AND ${S} = `+I.toString()),B.codefield=C,K="( "+K+" )",O=new Z(M.findField(y.associations.fields,b),W,W);break;case"structure":K=`(${b}='${w}' AND ${$} = 3)`,null!==I&&(K+=` AND ${x} = `+I.toString()),B.codefield=L,K="( "+K+" )",O=new Z(M.findField(y.associations.fields,A),W,G);break;case"attached":K=`(${A}='${w}' AND ${$} = 3)`,null!==I&&(K+=` AND ${S} = `+I.toString()),B.codefield=C,K="( "+K+" )",O=new Z(M.findField(y.associations.fields,b),W,G);break;default:throw new a(e,i.InvalidParameter,t)}D&&(K="1 <> 1");return new M({parentfeatureset:y.associations,adaptedFields:[new R(M.findField(y.associations.fields,k)),new R(M.findField(y.associations.fields,P)),O,H,B,z],extraFilter:K?V.create(K,y.associations.getFieldsIndex(),y.associations.dateFieldsTimeZoneDefaultUTC):null})}))},B.signatures.push({name:"featuresetbyassociation",min:2,max:6}),B.functions.groupby=function(e,t){return B.standardFunctionAsync(e,t,(async(r,s,o)=>{if(p(o,3,3,e,t),!h(o[0]))throw new a(e,i.InvalidParameter,t);const l=await o[0].load(),f=[],u=[];let d=!1,c=[];if(g(o[1]))c.push(o[1]);else if(o[1]instanceof n)c.push(o[1]);else if(A(o[1]))c=o[1];else{if(!x(o[1]))throw new a(e,i.InvalidParameter,t);c=o[1].toArray()}for(const m of c)if(g(m)){const e=V.create(F(m),l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC),t=!0===q(e)?F(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(d=!0)}else{if(!(m instanceof n))throw new a(e,i.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(d=!0),!n)throw new a(e,i.InvalidParameter,t);f.push({name:n,expression:V.create(r||n,l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC)})}}if(c=[],g(o[2]))c.push(o[2]);else if(A(o[2]))c=o[2];else if(x(o[2]))c=o[2].toArray();else{if(!(o[2]instanceof n))throw new a(e,i.InvalidParameter,t);c.push(o[2])}for(const m of c){if(!(m instanceof n))throw new a(e,i.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new a(e,i.InvalidParameter,t);u.push({name:n,statistic:r.toLowerCase(),expression:V.create(s,l.getFieldsIndex(),l.dateFieldsTimeZoneDefaultUTC)})}}if(d){const e={};for(const n of l.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of u)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await ee(t.expression,B,e);for(const t of u)await ee(t.expression,B,e);return o[0].groupby(f,u)}))},B.signatures.push({name:"groupby",min:3,max:3}),B.functions.distinct=function(e,t){return B.standardFunctionAsync(e,t,(async(r,s,o)=>{if(h(o[0])){p(o,2,2,e,t);const r=await o[0].load(),s=[];let l=[];if(g(o[1]))l.push(o[1]);else if(o[1]instanceof n)l.push(o[1]);else if(A(o[1]))l=o[1];else{if(!x(o[1]))throw new a(e,i.InvalidParameter,t);l=o[1].toArray()}let f=!1;for(const o of l)if(g(o)){const e=V.create(F(o),r.getFieldsIndex(),r.dateFieldsTimeZoneDefaultUTC),t=!0===q(e)?F(o):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(o instanceof n))throw new a(e,i.InvalidParameter,t);{const n=o.hasField("name")?o.field("name"):"%%%%FIELDNAME",l=o.hasField("expression")?o.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new a(e,i.InvalidParameter,t);s.push({name:n,expression:V.create(l||n,r.getFieldsIndex(),r.dateFieldsTimeZoneDefaultUTC)})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await ee(t.expression,B,e);return o[0].groupby(s,[])}return X("distinct",r,s,o)}))}),B.functions.getfeaturesetinfo=function(e,t){return B.standardFunctionAsync(e,t,(async(a,i,r)=>{if(p(r,1,1,e,t),!h(r[0]))return null;const s=await r[0].getFeatureSetInfo();return s?n.convertObjectToArcadeDictionary({layerId:s.layerId,layerName:s.layerName,itemId:s.itemId,serviceLayerUrl:s.serviceLayerUrl,webMapLayerId:s.webMapLayerId??null,webMapLayerTitle:s.webMapLayerTitle??null,className:null,objectClassId:null},D(e),!1,!1):null}))},B.signatures.push({name:"getfeaturesetinfo",min:1,max:1}),B.functions.filterbysubtypecode=function(e,t){return B.standardFunctionAsync(e,t,(async(n,r,s)=>{if(p(s,2,2,e,t),h(s[0])){const n=await s[0].load(),r=s[1];if(!$(r))throw new a(e,i.InvalidParameter,t);if(null===n.typeIdField||""===n.typeIdField)throw new a(e,i.FeatureSetDoesNotHaveSubtypes,t);const o=V.create(`${n.typeIdField}= ${s[1]}`,n.getFieldsIndex(),n.dateFieldsTimeZoneDefaultUTC);return new k({parentfeatureset:s[0],whereclause:o})}throw new a(e,i.InvalidParameter,t)}))},B.signatures.push({name:"filterbysubtypecode",min:2,max:2})}export{le as registerFunctions};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{version as n}from"../../kernel.js";import t from"../ArcadePortal.js";import e from"../Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as i}from"../executionError.js";import{cloneGeometry as a,convertSquareUnitsToCode as o,convertLinearUnitsToCode as l}from"../kernel.js";import{F as s,E as u,k as c,n as f,m as d,j as m,o as w,q as h,w as y,u as p,H as g,G as v,J as P,K as I,g as A,h as F,L as R}from"../../chunks/languageUtils.js";import{getPortal as j}from"../portalUtils.js";import{centroidPolyline as x,centroidMultiPoint as N,getMetersPerVerticalUnitForSR as b,segmentLength3d as S}from"./centroid.js";import{getMetersPerUnitForSR as O}from"../../core/unitUtils.js";import D from"../../geometry/Extent.js";import k from"../../geometry/Geometry.js";import{disjoint as J,intersects as M,touches as Z,crosses as C,within as E,contains as L,overlaps as U,equals as z,relate as T,intersect as q,union as W,difference as G,symmetricDifference as H,clip as K,cut as V,planarArea as B,geodesicArea as Q,planarLength as X,geodesicLength as Y,distance as $,densify as _,geodesicDensify as nn,generalize as tn,buffer as en,geodesicBuffer as rn,offset as an,rotate as on,simplify as ln,isSimple as sn,convexHull as un,nearestCoordinate as cn,nearestVertex as fn}from"../../geometry/geometryEngineAsync.js";import dn from"../../geometry/Multipoint.js";import mn from"../../geometry/Point.js";import wn from"../../geometry/Polygon.js";import hn from"../../geometry/Polyline.js";import{fromJSON as yn}from"../../geometry/support/jsonUtils.js";import pn from"../../portal/Portal.js";import{lookupUser as gn}from"../../portal/support/utils.js";function vn(t){return 0===n.indexOf("4.")?wn.fromExtent(t):new wn({spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]})}function Pn(n,t,e){if(u(n,2,2,t,e),n[0]instanceof k&&n[1]instanceof k);else if(n[0]instanceof k&&null===n[1]);else if(n[1]instanceof k&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new r(t,i.InvalidParameter,e)}async function In(n,t){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let e=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){e=b(n.spatialReference)/O(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=S(a[n],a[n-1],e);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=S(a[n],a[n-1],e);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=S(a[0],a[a.length-1],e))}else"extent"===n.type&&(r+=2*S([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],e),r+=2*S([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],e),r*=2,r+=4*Math.abs(g(n.zmax,0)*e-g(n.zmin,0)*e));const i=new hn({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return X(i,t)}function An(n){"async"===n.mode&&(n.functions.disjoint=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null===i[0]||null===i[1]||J(i[0],i[1]))))},n.functions.intersects=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&M(i[0],i[1]))))},n.functions.touches=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&Z(i[0],i[1]))))},n.functions.crosses=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&C(i[0],i[1]))))},n.functions.within=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&E(i[0],i[1]))))},n.functions.contains=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&L(i[0],i[1]))))},n.functions.overlaps=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null!==i[1]&&U(i[0],i[1]))))},n.functions.equals=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(u(i,2,2,t,e),i[0]===i[1]||(i[0]instanceof k&&i[1]instanceof k?z(i[0],i[1]):(c(i[0])&&c(i[1])||!!(f(i[0])&&f(i[1])||d(i[0])&&d(i[1])))&&i[0].equals(i[1])))))},n.functions.relate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,3,3,t,e),o[0]instanceof k&&o[1]instanceof k)return T(o[0],o[1],m(o[2]));if(o[0]instanceof k&&null===o[1])return!1;if(o[1]instanceof k&&null===o[0])return!1;if(null===o[0]&&null===o[1])return!1;throw new r(t,i.InvalidParameter,e)}))},n.functions.intersection=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null===i[0]||null===i[1]?null:q(i[0],i[1]))))},n.functions.union=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{const u=[];if(0===(l=s(l)).length)throw new r(t,i.WrongNumberOfParameters,e);if(1===l.length)if(w(l[0])){const n=s(l[0]);for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}else{if(!h(l[0])){if(l[0]instanceof k)return y(a(l[0]),t.spatialReference);if(null===l[0])return null;throw new r(t,i.InvalidParameter,e)}{const n=s(l[0].toArray());for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}}else for(let a=0;a<l.length;a++)if(null!==l[a]){if(!(l[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(l[a])}return 0===u.length?null:W(u)}))},n.functions.difference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null!==i[0]&&null===i[1]?a(i[0]):null===i[0]?null:G(i[0],i[1]))))},n.functions.symmetricdifference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=s(i),t,e),null===i[0]&&null===i[1]?null:null===i[0]?a(i[1]):null===i[1]?a(i[0]):H(i[0],i[1]))))},n.functions.clip=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,2,t,e),!(o[1]instanceof D)&&null!==o[1])throw new r(t,i.InvalidParameter,e);if(null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return null===o[1]?null:K(o[0],o[1])}))},n.functions.cut=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{if(l=s(l),u(l,2,2,t,e),!(l[1]instanceof hn)&&null!==l[1])throw new r(t,i.InvalidParameter,e);if(null===l[0])return[];if(!(l[0]instanceof k))throw new r(t,i.InvalidParameter,e);return null===l[1]?[a(l[0])]:V(l[0],l[1])}))},n.functions.area=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,l)=>{if(u(l,1,2,t,e),null===(l=s(l))[0])return 0;if(p(l[0])){const n=await l[0].sumArea(o(g(l[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(l[0])||h(l[0])){const n=v(l[0],t.spatialReference);return null===n?0:B(n,o(g(l[1],-1)))}if(!(l[0]instanceof k))throw new r(t,i.InvalidParameter,e);return B(l[0],o(g(l[1],-1)))}))},n.functions.areageodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,l)=>{if(u(l,1,2,t,e),null===(l=s(l))[0])return 0;if(p(l[0])){const n=await l[0].sumArea(o(g(l[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(l[0])||h(l[0])){const n=v(l[0],t.spatialReference);return null===n?0:Q(n,o(g(l[1],-1)))}if(!(l[0]instanceof k))throw new r(t,i.InvalidParameter,e);return Q(l[0],o(g(l[1],-1)))}))},n.functions.length=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(p(o[0])){const n=await o[0].sumLength(l(g(o[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:X(n,l(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return X(o[0],l(g(o[1],-1)))}))},n.functions.length3d=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:!0===n.hasZ?In(n,l(g(o[1],-1))):X(n,l(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return!0===o[0].hasZ?In(o[0],l(g(o[1],-1))):X(o[0],l(g(o[1],-1)))}))},n.functions.lengthgeodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=s(o))[0])return 0;if(p(o[0])){const n=await o[0].sumLength(l(g(o[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:Y(n,l(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return Y(o[0],l(g(o[1],-1)))}))},n.functions.distance=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);let c=o[0];(w(o[0])||h(o[0]))&&(c=I(o[0],t.spatialReference));let f=o[1];if((w(o[1])||h(o[1]))&&(f=I(o[1],t.spatialReference)),!(c instanceof k))throw new r(t,i.InvalidParameter,e);if(!(f instanceof k))throw new r(t,i.InvalidParameter,e);return $(c,f,l(g(o[2],-1)))}))},n.functions.distancegeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);const c=o[0],f=o[1];if(!(c instanceof mn))throw new r(t,i.InvalidParameter,e);if(!(f instanceof mn))throw new r(t,i.InvalidParameter,e);const d=new hn({paths:[],spatialReference:c.spatialReference});return d.addPath([c,f]),Y(d,l(g(o[2],-1)))}))},n.functions.densify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof wn||o[0]instanceof hn?_(o[0],c,l(g(o[2],-1))):o[0]instanceof D?_(vn(o[0]),c,l(g(o[2],-1))):o[0]}))},n.functions.densifygeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof wn||o[0]instanceof hn?nn(o[0],c,l(g(o[2],-1))):o[0]instanceof D?nn(vn(o[0]),c,l(g(o[2],-1))):o[0]}))},n.functions.generalize=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,4,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);return tn(o[0],c,F(g(o[2],!0)),l(g(o[3],-1)))}))},n.functions.buffer=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=s(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof k))throw new r(t,i.InvalidParameter,e);const f=A(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):en(c[0],f,l(g(c[2],-1)))}))},n.functions.buffergeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=s(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof k))throw new r(t,i.InvalidParameter,e);const f=A(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):rn(c[0],f,l(g(c[2],-1)))}))},n.functions.offset=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,2,6,t,e),null===o[0])return null;if(!(o[0]instanceof wn||o[0]instanceof hn))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=A(g(o[4],10));if(isNaN(f))throw new r(t,i.InvalidParameter,e);const d=A(g(o[5],0));if(isNaN(d))throw new r(t,i.InvalidParameter,e);return an(o[0],c,l(g(o[2],-1)),m(g(o[3],"round")).toLowerCase(),f,d)}))},n.functions.rotate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=s(o),u(o,2,3,t,e);let l=o[0];if(null===l)return null;if(!(l instanceof k))throw new r(t,i.InvalidParameter,e);l instanceof D&&(l=wn.fromExtent(l));const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=g(o[2],null);if(null===f)return on(l,c);if(f instanceof mn)return on(l,c,f);throw new r(t,i.InvalidParameter,e)}))},n.functions.centroid=function(t,e){return n.standardFunctionAsync(t,e,((n,o,l)=>{if(l=s(l),u(l,1,1,t,e),null===l[0])return null;let c=l[0];if((w(l[0])||h(l[0]))&&(c=I(l[0],t.spatialReference)),null===c)return null;if(!(c instanceof k))throw new r(t,i.InvalidParameter,e);return c instanceof mn?y(a(l[0]),t.spatialReference):c instanceof wn?c.centroid:c instanceof hn?x(c):c instanceof dn?N(c):c instanceof D?c.center:null}))},n.functions.multiparttosinglepart=function(t,e){return n.standardFunctionAsync(t,e,(async(n,o,l)=>{l=s(l),u(l,1,1,t,e);const c=[];if(null===l[0])return null;if(!(l[0]instanceof k))throw new r(t,i.InvalidParameter,e);if(l[0]instanceof mn)return[y(a(l[0]),t.spatialReference)];if(l[0]instanceof D)return[y(a(l[0]),t.spatialReference)];const f=await ln(l[0]);if(f instanceof wn){const n=[],t=[];for(let e=0;e<f.rings.length;e++)if(f.isClockwise(f.rings[e])){const t=yn({rings:[f.rings[e]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(t)}else t.push({ring:f.rings[e],pt:f.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(f instanceof hn){const n=[];for(let t=0;t<f.paths.length;t++){const e=yn({paths:[f.paths[t]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(e)}return n}if(l[0]instanceof dn){const n=y(a(l[0]),t.spatialReference);for(let t=0;t<n.points.length;t++)c.push(n.getPoint(t));return c}return null}))},n.functions.issimple=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return!0;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return sn(o[0])}))},n.functions.simplify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return ln(o[0])}))},n.functions.convexhull=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=s(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return un(o[0])}))},n.functions.getuser=function(a,o){return n.standardFunctionAsync(a,o,(async(n,l,s)=>{u(s,0,2,a,o);let c=g(s[1],""),f=!0===c;if(c=!0===c||!1===c?"":m(c),0===s.length||s[0]instanceof t){let n=null;n=a.services?.portal?a.services.portal:pn.getDefault(),s.length>0&&(n=j(s[0],n));const t=await gn(n,c,f);if(t){const n=JSON.parse(JSON.stringify(t));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,R(a))}return null}let d=null;if(p(s[0])&&(d=s[0]),d){if(f=!1,c)return null;await d.load();const n=await d.getOwningSystemUrl();if(!n){if(!c){const n=await d.getIdentityUser();return n?e.convertObjectToArcadeDictionary({username:n},R(a)):null}return null}let r=null;r=a.services?.portal?a.services.portal:pn.getDefault(),r=j(new t(n),r);const i=await gn(r,c,f);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,R(a))}return null}throw new r(a,i.InvalidParameter,o)}))}),n.functions.nearestcoordinate=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,l)=>{if(l=s(l),u(l,2,2,t,a),!(l[0]instanceof k||null===l[0]))throw new r(t,i.InvalidParameter,a);if(!(l[1]instanceof mn||null===l[1]))throw new r(t,i.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const c=await cn(l[0],l[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},R(t),!1,!0)}))},n.functions.nearestvertex=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,l)=>{if(l=s(l),u(l,2,2,t,a),!(l[0]instanceof k||null===l[0]))throw new r(t,i.InvalidParameter,a);if(!(l[1]instanceof mn||null===l[1]))throw new r(t,i.InvalidParameter,a);if(null===l[0]||null===l[1])return null;const c=await fn(l[0],l[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance},R(t),!1,!0)}))}}export{An as registerFunctions};
|
|
5
|
+
import{version as n}from"../../kernel.js";import t from"../ArcadePortal.js";import e from"../Dictionary.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as i}from"../executionError.js";import{cloneGeometry as a,convertSquareUnitsToCode as o,convertLinearUnitsToCode as s}from"../kernel.js";import{F as l,E as u,k as c,n as f,m as d,j as m,o as w,q as h,w as y,u as p,H as g,G as v,J as P,K as I,g as A,h as F,L as R}from"../../chunks/languageUtils.js";import{getPortal as j}from"../portalUtils.js";import{centroidPolyline as x,centroidMultiPoint as N,getMetersPerVerticalUnitForSR as b,segmentLength3d as S}from"./centroid.js";import{getMetersPerUnitForSR as O}from"../../core/unitUtils.js";import D from"../../geometry/Extent.js";import k from"../../geometry/Geometry.js";import{disjoint as L,intersects as J,touches as M,crosses as Z,within as C,contains as E,overlaps as U,equals as z,relate as T,intersect as q,union as W,difference as G,symmetricDifference as H,clip as K,cut as V,planarArea as B,geodesicArea as Q,planarLength as X,geodesicLength as Y,distance as $,densify as _,geodesicDensify as nn,generalize as tn,buffer as en,geodesicBuffer as rn,offset as an,rotate as on,simplify as sn,isSimple as ln,convexHull as un,nearestCoordinate as cn,nearestVertex as fn}from"../../geometry/geometryEngineAsync.js";import dn from"../../geometry/Multipoint.js";import mn from"../../geometry/Point.js";import wn from"../../geometry/Polygon.js";import hn from"../../geometry/Polyline.js";import{fromJSON as yn}from"../../geometry/support/jsonUtils.js";import pn from"../../portal/Portal.js";import{lookupUser as gn}from"../../portal/support/utils.js";function vn(t){return 0===n.indexOf("4.")?wn.fromExtent(t):new wn({spatialReference:t.spatialReference,rings:[[[t.xmin,t.ymin],[t.xmin,t.ymax],[t.xmax,t.ymax],[t.xmax,t.ymin],[t.xmin,t.ymin]]]})}function Pn(n,t,e){if(u(n,2,2,t,e),n[0]instanceof k&&n[1]instanceof k);else if(n[0]instanceof k&&null===n[1]);else if(n[1]instanceof k&&null===n[0]);else if(null!==n[0]||null!==n[1])throw new r(t,i.InvalidParameter,e)}async function In(n,t){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let e=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){e=b(n.spatialReference)/O(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=S(a[n],a[n-1],e);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=S(a[n],a[n-1],e);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=S(a[0],a[a.length-1],e))}else"extent"===n.type&&(r+=2*S([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],e),r+=2*S([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],e),r*=2,r+=4*Math.abs(g(n.zmax,0)*e-g(n.zmin,0)*e));const i=new hn({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return X(i,t)}function An(n){"async"===n.mode&&(n.functions.disjoint=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null===i[0]||null===i[1]||L(i[0],i[1]))))},n.functions.intersects=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&J(i[0],i[1]))))},n.functions.touches=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&M(i[0],i[1]))))},n.functions.crosses=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&Z(i[0],i[1]))))},n.functions.within=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&C(i[0],i[1]))))},n.functions.contains=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&E(i[0],i[1]))))},n.functions.overlaps=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null!==i[1]&&U(i[0],i[1]))))},n.functions.equals=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(u(i,2,2,t,e),i[0]===i[1]||(i[0]instanceof k&&i[1]instanceof k?z(i[0],i[1]):(c(i[0])&&c(i[1])||!!(f(i[0])&&f(i[1])||d(i[0])&&d(i[1])))&&i[0].equals(i[1])))))},n.functions.relate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,3,3,t,e),o[0]instanceof k&&o[1]instanceof k)return T(o[0],o[1],m(o[2]));if(o[0]instanceof k&&null===o[1])return!1;if(o[1]instanceof k&&null===o[0])return!1;if(null===o[0]&&null===o[1])return!1;throw new r(t,i.InvalidParameter,e)}))},n.functions.intersection=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null===i[0]||null===i[1]?null:q(i[0],i[1]))))},n.functions.union=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{const u=[];if(0===(s=l(s)).length)throw new r(t,i.WrongNumberOfParameters,e);if(1===s.length)if(w(s[0])){const n=l(s[0]);for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}else{if(!h(s[0])){if(s[0]instanceof k)return y(a(s[0]),t.spatialReference);if(null===s[0])return null;throw new r(t,i.InvalidParameter,e)}{const n=l(s[0].toArray());for(let a=0;a<n.length;a++)if(null!==n[a]){if(!(n[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(n[a])}}}else for(let a=0;a<s.length;a++)if(null!==s[a]){if(!(s[a]instanceof k))throw new r(t,i.InvalidParameter,e);u.push(s[a])}return 0===u.length?null:W(u)}))},n.functions.difference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null!==i[0]&&null===i[1]?a(i[0]):null===i[0]?null:G(i[0],i[1]))))},n.functions.symmetricdifference=function(t,e){return n.standardFunctionAsync(t,e,((n,r,i)=>(Pn(i=l(i),t,e),null===i[0]&&null===i[1]?null:null===i[0]?a(i[1]):null===i[1]?a(i[0]):H(i[0],i[1]))))},n.functions.clip=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,2,t,e),!(o[1]instanceof D)&&null!==o[1])throw new r(t,i.InvalidParameter,e);if(null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return null===o[1]?null:K(o[0],o[1])}))},n.functions.cut=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{if(s=l(s),u(s,2,2,t,e),!(s[1]instanceof hn)&&null!==s[1])throw new r(t,i.InvalidParameter,e);if(null===s[0])return[];if(!(s[0]instanceof k))throw new r(t,i.InvalidParameter,e);return null===s[1]?[a(s[0])]:V(s[0],s[1])}))},n.functions.area=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,s)=>{if(u(s,1,2,t,e),null===(s=l(s))[0])return 0;if(p(s[0])){const n=await s[0].sumArea(o(g(s[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(s[0])||h(s[0])){const n=v(s[0],t.spatialReference);return null===n?0:B(n,o(g(s[1],-1)))}if(!(s[0]instanceof k))throw new r(t,i.InvalidParameter,e);return B(s[0],o(g(s[1],-1)))}))},n.functions.areageodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,s)=>{if(u(s,1,2,t,e),null===(s=l(s))[0])return 0;if(p(s[0])){const n=await s[0].sumArea(o(g(s[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(s[0])||h(s[0])){const n=v(s[0],t.spatialReference);return null===n?0:Q(n,o(g(s[1],-1)))}if(!(s[0]instanceof k))throw new r(t,i.InvalidParameter,e);return Q(s[0],o(g(s[1],-1)))}))},n.functions.length=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(p(o[0])){const n=await o[0].sumLength(s(g(o[1],-1)),!1,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:X(n,s(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return X(o[0],s(g(o[1],-1)))}))},n.functions.length3d=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:!0===n.hasZ?In(n,s(g(o[1],-1))):X(n,s(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return!0===o[0].hasZ?In(o[0],s(g(o[1],-1))):X(o[0],s(g(o[1],-1)))}))},n.functions.lengthgeodetic=function(t,e){return n.standardFunctionAsync(t,e,(async(n,a,o)=>{if(u(o,1,2,t,e),null===(o=l(o))[0])return 0;if(p(o[0])){const n=await o[0].sumLength(s(g(o[1],-1)),!0,t.abortSignal);if(t.abortSignal.aborted)throw new r(t,i.Cancelled,e);return n}if(w(o[0])||h(o[0])){const n=P(o[0],t.spatialReference);return null===n?0:Y(n,s(g(o[1],-1)))}if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return Y(o[0],s(g(o[1],-1)))}))},n.functions.distance=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);let c=o[0];(w(o[0])||h(o[0]))&&(c=I(o[0],t.spatialReference));let f=o[1];if((w(o[1])||h(o[1]))&&(f=I(o[1],t.spatialReference)),!(c instanceof k))throw new r(t,i.InvalidParameter,e);if(!(f instanceof k))throw new r(t,i.InvalidParameter,e);return $(c,f,s(g(o[2],-1)))}))},n.functions.distancegeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);const c=o[0],f=o[1];if(!(c instanceof mn))throw new r(t,i.InvalidParameter,e);if(!(f instanceof mn))throw new r(t,i.InvalidParameter,e);const d=new hn({paths:[],spatialReference:c.spatialReference});return d.addPath([c,f]),Y(d,s(g(o[2],-1)))}))},n.functions.densify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof wn||o[0]instanceof hn?_(o[0],c,s(g(o[2],-1))):o[0]instanceof D?_(vn(o[0]),c,s(g(o[2],-1))):o[0]}))},n.functions.densifygeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,3,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);if(c<=0)throw new r(t,i.InvalidParameter,e);return o[0]instanceof wn||o[0]instanceof hn?nn(o[0],c,s(g(o[2],-1))):o[0]instanceof D?nn(vn(o[0]),c,s(g(o[2],-1))):o[0]}))},n.functions.generalize=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,4,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);return tn(o[0],c,F(g(o[2],!0)),s(g(o[3],-1)))}))},n.functions.buffer=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=l(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof k))throw new r(t,i.InvalidParameter,e);const f=A(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):en(c[0],f,s(g(c[2],-1)))}))},n.functions.buffergeodetic=function(t,e){return n.standardFunctionAsync(t,e,((n,o,c)=>{if(c=l(c),u(c,2,3,t,e),null===c[0])return null;if(!(c[0]instanceof k))throw new r(t,i.InvalidParameter,e);const f=A(c[1]);if(isNaN(f))throw new r(t,i.InvalidParameter,e);return 0===f?a(c[0]):rn(c[0],f,s(g(c[2],-1)))}))},n.functions.offset=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,2,6,t,e),null===o[0])return null;if(!(o[0]instanceof wn||o[0]instanceof hn))throw new r(t,i.InvalidParameter,e);const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=A(g(o[4],10));if(isNaN(f))throw new r(t,i.InvalidParameter,e);const d=A(g(o[5],0));if(isNaN(d))throw new r(t,i.InvalidParameter,e);return an(o[0],c,s(g(o[2],-1)),m(g(o[3],"round")).toLowerCase(),f,d)}))},n.functions.rotate=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{o=l(o),u(o,2,3,t,e);let s=o[0];if(null===s)return null;if(!(s instanceof k))throw new r(t,i.InvalidParameter,e);s instanceof D&&(s=wn.fromExtent(s));const c=A(o[1]);if(isNaN(c))throw new r(t,i.InvalidParameter,e);const f=g(o[2],null);if(null===f)return on(s,c);if(f instanceof mn)return on(s,c,f);throw new r(t,i.InvalidParameter,e)}))},n.functions.centroid=function(t,e){return n.standardFunctionAsync(t,e,((n,o,s)=>{if(s=l(s),u(s,1,1,t,e),null===s[0])return null;let c=s[0];if((w(s[0])||h(s[0]))&&(c=I(s[0],t.spatialReference)),null===c)return null;if(!(c instanceof k))throw new r(t,i.InvalidParameter,e);return c instanceof mn?y(a(s[0]),t.spatialReference):c instanceof wn?c.centroid:c instanceof hn?x(c):c instanceof dn?N(c):c instanceof D?c.center:null}))},n.functions.multiparttosinglepart=function(t,e){return n.standardFunctionAsync(t,e,(async(n,o,s)=>{s=l(s),u(s,1,1,t,e);const c=[];if(null===s[0])return null;if(!(s[0]instanceof k))throw new r(t,i.InvalidParameter,e);if(s[0]instanceof mn)return[y(a(s[0]),t.spatialReference)];if(s[0]instanceof D)return[y(a(s[0]),t.spatialReference)];const f=await sn(s[0]);if(f instanceof wn){const n=[],t=[];for(let e=0;e<f.rings.length;e++)if(f.isClockwise(f.rings[e])){const t=yn({rings:[f.rings[e]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(t)}else t.push({ring:f.rings[e],pt:f.getPoint(e,0)});for(let e=0;e<t.length;e++)for(let r=0;r<n.length;r++)if(n[r].contains(t[e].pt)){n[r].addRing(t[e].ring);break}return n}if(f instanceof hn){const n=[];for(let t=0;t<f.paths.length;t++){const e=yn({paths:[f.paths[t]],hasZ:!0===f.hasZ,hazM:!0===f.hasM,spatialReference:f.spatialReference.toJSON()});n.push(e)}return n}if(s[0]instanceof dn){const n=y(a(s[0]),t.spatialReference);for(let t=0;t<n.points.length;t++)c.push(n.getPoint(t));return c}return null}))},n.functions.issimple=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return!0;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return ln(o[0])}))},n.functions.simplify=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return sn(o[0])}))},n.functions.convexhull=function(t,e){return n.standardFunctionAsync(t,e,((n,a,o)=>{if(o=l(o),u(o,1,1,t,e),null===o[0])return null;if(!(o[0]instanceof k))throw new r(t,i.InvalidParameter,e);return un(o[0])}))},n.functions.getuser=function(a,o){return n.standardFunctionAsync(a,o,(async(n,s,l)=>{u(l,0,2,a,o);let c=g(l[1],""),f=!0===c;if(c=!0===c||!1===c?"":m(c),0===l.length||l[0]instanceof t){let n=null;n=a.services?.portal?a.services.portal:pn.getDefault(),l.length>0&&(n=j(l[0],n));const t=await gn(n,c,f);if(t){const n=JSON.parse(JSON.stringify(t));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,R(a))}return null}let d=null;if(p(l[0])&&(d=l[0]),d){if(f=!1,c)return null;await d.load();const n=await d.getOwningSystemUrl();if(!n){if(!c){const n=await d.getIdentityUser();return n?e.convertObjectToArcadeDictionary({username:n},R(a)):null}return null}let r=null;r=a.services?.portal?a.services.portal:pn.getDefault(),r=j(new t(n),r);const i=await gn(r,c,f);if(i){const n=JSON.parse(JSON.stringify(i));for(const t of["lastLogin","created","modified"])void 0!==n[t]&&null!==n[t]&&(n[t]=new Date(n[t]));return e.convertObjectToArcadeDictionary(n,R(a))}return null}throw new r(a,i.InvalidParameter,o)}))}),n.functions.nearestcoordinate=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,s)=>{if(s=l(s),u(s,2,2,t,a),!(s[0]instanceof k||null===s[0]))throw new r(t,i.InvalidParameter,a);if(!(s[1]instanceof mn||null===s[1]))throw new r(t,i.InvalidParameter,a);if(null===s[0]||null===s[1])return null;const c=await cn(s[0],s[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance,sideOfLine:0===c.distance?"straddle":c.isRightSide?"right":"left"},R(t),!1,!0)}))},n.functions.nearestvertex=function(t,a){return n.standardFunctionAsync(t,a,(async(n,o,s)=>{if(s=l(s),u(s,2,2,t,a),!(s[0]instanceof k||null===s[0]))throw new r(t,i.InvalidParameter,a);if(!(s[1]instanceof mn||null===s[1]))throw new r(t,i.InvalidParameter,a);if(null===s[0]||null===s[1])return null;const c=await fn(s[0],s[1]);return null===c?null:e.convertObjectToArcadeDictionary({coordinate:c.coordinate,distance:c.distance,sideOfLine:0===c.distance?"straddle":c.isRightSide?"right":"left"},R(t),!1,!0)}))}}export{An 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.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as n}from"../executionError.js";import r from"../Feature.js";import a from"../ImmutablePathArray.js";import i from"../ImmutablePointArray.js";import{E as o,o as s,q as l,w as c,Q as f,F as u,y as m,c as h,j as p,k as w,b as d,n as y,m as g,a as I,i as R,f as v,L as P,r as b,C as F,J as x}from"../../chunks/languageUtils.js";import{angle2D as O,angleBetween2D as j,bearing2D as S,bearingBetween2D as k,pathsSelfIntersecting as N}from"./centroid.js";import J from"../../geometry/Extent.js";import D from"../../geometry/Geometry.js";import z from"../../geometry/Multipoint.js";import G from"../../geometry/Point.js";import Z from"../../geometry/Polygon.js";import C from"../../geometry/Polyline.js";import{isClockwise as _}from"../../geometry/support/coordsUtils.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";function A(e){return e&&"esri.arcade.Feature"===e.arcadeDeclaredClass}function W(a,W){a.ringisclockwise=function(e,r){return W(e,r,((a,c,f)=>{o(f,1,1,e,r);let u=[];if(null===f[0])return!1;if(s(f[0]))for(const i of f[0]){if(!(i instanceof G))throw new t(e,n.InvalidParameter,r);u.push(i.hasZ?i.hasM?[i.x,i.y,i.z,i.m]:[i.x,i.y,i.z]:[i.x,i.y])}else if(f[0]instanceof i)u=f[0]._elements;else{if(!l(f[0]))throw new t(e,n.InvalidParameter,r);for(const a of f[0].toArray()){if(!(a instanceof G))throw new t(e,n.InvalidParameter,r);u.push(a.hasZ?a.hasM?[a.x,a.y,a.z,a.m]:[a.x,a.y,a.z]:[a.x,a.y])}}return!(u.length<3)&&_(u)}))},a.polygon=function(a,i){return W(a,i,((s,l,u)=>{o(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=c(r.parseGeometryFromDictionary(u[0]),a.spatialReference),m instanceof Z==!1)throw new t(a,n.InvalidParameter,i)}else m=u[0]instanceof Z?M(u[0].toJSON()):c(new Z(JSON.parse(u[0])),a.spatialReference);if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(m)}))},a.polyline=function(a,i){return W(a,i,((s,l,u)=>{o(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=c(r.parseGeometryFromDictionary(u[0]),a.spatialReference),m instanceof C==!1)throw new t(a,n.InvalidParameter,i)}else m=u[0]instanceof C?M(u[0].toJSON()):c(new C(JSON.parse(u[0])),a.spatialReference);if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(m)}))},a.point=function(a,i){return W(a,i,((s,l,u)=>{o(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=c(r.parseGeometryFromDictionary(u[0]),a.spatialReference),m instanceof G==!1)throw new t(a,n.InvalidParameter,i)}else m=u[0]instanceof G?M(u[0].toJSON()):c(new G(JSON.parse(u[0])),a.spatialReference);if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(m)}))},a.multipoint=function(a,i){return W(a,i,((s,l,u)=>{o(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=c(r.parseGeometryFromDictionary(u[0]),a.spatialReference),m instanceof z==!1)throw new t(a,n.InvalidParameter,i)}else m=u[0]instanceof z?M(u[0].toJSON()):c(new z(JSON.parse(u[0])),a.spatialReference);if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(m)}))},a.extent=function(a,i){return W(a,i,((s,l,m)=>{m=u(m),o(m,1,1,a,i);let h=null;if(m[0]instanceof e)h=c(r.parseGeometryFromDictionary(m[0]),a.spatialReference);else if(m[0]instanceof G){const e={xmin:m[0].x,ymin:m[0].y,xmax:m[0].x,ymax:m[0].y,spatialReference:m[0].spatialReference.toJSON()},t=m[0];t.hasZ?(e.zmin=t.z,e.zmax=t.z):t.hasM&&(e.mmin=t.m,e.mmax=t.m),h=M(e)}else h=m[0]instanceof Z||m[0]instanceof C||m[0]instanceof z?M(m[0].extent?.toJSON()):m[0]instanceof J?M(m[0].toJSON()):c(new J(JSON.parse(m[0])),a.spatialReference);if(null!==h&&!1===h.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(h)}))},a.geometry=function(a,i){return W(a,i,((s,l,u)=>{o(u,1,1,a,i);let m=null;if(null===u[0])return null;if(m=A(u[0])?c(u[0].geometry(),a.spatialReference):u[0]instanceof e?c(r.parseGeometryFromDictionary(u[0]),a.spatialReference):c(M(JSON.parse(u[0])),a.spatialReference),null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return f(m)}))},a.setgeometry=function(e,r){return W(e,r,((a,i,s)=>{if(o(s,2,2,e,r),!A(s[0]))throw new t(e,n.InvalidParameter,r);if(!0===s[0].immutable)throw new t(e,n.Immutable,r);if(!(s[1]instanceof D||null===s[1]))throw new t(e,n.InvalidParameter,r);return s[0]._geometry=s[1],m}))},a.feature=function(a,i){return W(a,i,((o,s,l)=>{if(0===l.length)throw new t(a,n.WrongNumberOfParameters,i);let f=null;if(1===l.length)if(h(l[0]))f=r.fromJson(JSON.parse(l[0]),a.timeZone);else if(A(l[0]))f=r.createFromArcadeFeature(l[0]);else if(l[0]instanceof D)f=r.createFromGraphicLikeObject(l[0],null,null,a.timeZone);else{if(!(l[0]instanceof e))throw new t(a,n.InvalidParameter,i);{let t=l[0].hasField("geometry")?l[0].field("geometry"):null,n=l[0].hasField("attributes")?l[0].field("attributes"):null;null!==t&&t instanceof e&&(t=r.parseGeometryFromDictionary(t)),null!==n&&(n=r.parseAttributesFromDictionary(n)),f=r.createFromGraphicLikeObject(t,n,null,a.timeZone)}}else if(2===l.length){let o=null,s=null;if(null!==l[0])if(l[0]instanceof D)o=l[0];else{if(!(o instanceof e))throw new t(a,n.InvalidParameter,i);o=r.parseGeometryFromDictionary(l[0])}if(null!==l[1]){if(!(l[1]instanceof e))throw new t(a,n.InvalidParameter,i);s=r.parseAttributesFromDictionary(l[1])}f=r.createFromGraphicLikeObject(o,s,null,a.timeZone)}else{let o=null;const s={};if(null!==l[0])if(l[0]instanceof D)o=l[0];else{if(!(o instanceof e))throw new t(a,n.InvalidParameter,i);o=r.parseGeometryFromDictionary(l[0])}for(let e=1;e<l.length;e+=2){const r=p(l[e]),o=l[e+1];if(!(null==o||h(o)||isNaN(o)||w(o)||d(o)||y(o)||g(o)||I(o)))throw new t(a,n.InvalidParameter,i);if(R(o)||!1===v(o))throw new t(a,n.InvalidParameter,i);s[r]=o===m?null:o}f=r.createFromGraphicLikeObject(o,s,null,a.timeZone)}return f._geometry=c(f.geometry(),a.spatialReference),f.immutable=!1,f}))},a.dictionary=function(r,a){return W(r,a,((i,o,c)=>{if(0===c.length||1===c.length&&null===c[0]){const t=new e;return t.immutable=!1,t}if(1===c.length&&h(c[0]))try{const t=JSON.parse(c[0]),n=e.convertObjectToArcadeDictionary(t,P(r),!1);return n.immutable=!1,n}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===c.length&&c[0]instanceof D)try{const t=c[0].toJSON();t.hasZ=!0===c[0].hasZ,t.hasM=!0===c[0].hasM;const n=e.convertObjectToArcadeDictionary(t,P(r),!1);return n.immutable=!1,n}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===c.length&&b(c[0]))try{const t=new e;t.immutable=!1,t.setField("geometry",c[0].geometry());const n=new e;n.immutable=!1,t.setField("attributes",n);for(const e of c[0].keys())n.setField(e,c[0].field(e));return t}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===c.length&&c[0]instanceof e)try{const t=new e;t.immutable=!1;for(const e of c[0].keys())t.setField(e,c[0].field(e));return t}catch(v){throw new t(r,n.InvalidParameter,a)}if(2===c.length&&c[0]instanceof e&&I(c[1]))try{if(!(!0===c[1])){const t=new e;t.immutable=!1;for(const e of c[0].keys())t.setField(e,c[0].field(e));return t}return c[0].deepClone()}catch(v){throw new t(r,n.InvalidParameter,a)}if(c.length%2!=0)throw new t(r,n.WrongNumberOfParameters,a);const f={};for(let e=0;e<c.length;e+=2){const i=p(c[e]),o=c[e+1];if(!(null==o||h(o)||isNaN(o)||w(o)||d(o)||I(o)||g(o)||y(o)||s(o)||l(o)))throw new t(r,n.InvalidParameter,a);if(R(o))throw new t(r,n.InvalidParameter,a);f[i]=o===m?null:o}const u=new e(f);return u.immutable=!1,u}))},a.haskey=function(r,a){return W(r,a,((i,s,l)=>{o(l,2,2,r,a);const c=p(l[1]);if(A(l[0]))return l[0].hasField(c);if(l[0]instanceof e)return l[0].hasField(c);if(l[0]instanceof D){const e=L(l[0],c,null,null,2);return!e||"notfound"!==e.keystate}throw new t(r,n.InvalidParameter,a)}))},a.hasvalue=function(t,n){return W(t,n,((r,a,i)=>{if(o(i,2,2,t,n),null===i[0]||null===i[1])return!1;const s=p(i[1]);if(b(i[0]))return!!i[0].hasField(s)&&null!==i[0].field(s);if(i[0]instanceof e)return!!i[0].hasField(s)&&null!==i[0].field(s);if(i[0]instanceof D){return null!==L(i[0],s,null,null,0)}return!1}))},a.indexof=function(e,r){return W(e,r,((a,i,c)=>{o(c,2,2,e,r);const f=c[1];if(s(c[0])){for(let e=0;e<c[0].length;e++)if(F(f,c[0][e]))return e;return-1}if(l(c[0])){const e=c[0].length();for(let t=0;t<e;t++)if(F(f,c[0].get(t)))return t;return-1}throw new t(e,n.InvalidParameter,r)}))},a.angle=function(e,r){return W(e,r,((a,i,s)=>{if(s=u(s),o(s,2,3,e,r),!(s[0]instanceof G))throw new t(e,n.InvalidParameter,r);if(!(s[1]instanceof G))throw new t(e,n.InvalidParameter,r);if(s.length>2&&!(s[2]instanceof G))throw new t(e,n.InvalidParameter,r);return 2===s.length?O(s[0],s[1]):j(s[0],s[1],s[2])}))},a.bearing=function(e,r){return W(e,r,((a,i,s)=>{if(s=u(s),o(s,2,3,e,r),!(s[0]instanceof G))throw new t(e,n.InvalidParameter,r);if(!(s[1]instanceof G))throw new t(e,n.InvalidParameter,r);if(s.length>2&&!(s[2]instanceof G))throw new t(e,n.InvalidParameter,r);return 2===s.length?S(s[0],s[1]):k(s[0],s[1],s[2])}))},a.isselfintersecting=function(e,t){return W(e,t,((n,r,a)=>{a=u(a),o(a,1,1,e,t);let i=a[0];if(i instanceof Z)return i.isSelfIntersecting;if(i instanceof C)return i=i.paths,N(i);if(i instanceof z){const e=i.points;for(let t=0;t<e.length;t++)for(let n=0;n<e.length;n++)if(n!==t){let r=!0;for(let a=0;a<e[t].length;a++)if(e[t][a]!==e[n][a]){r=!1;break}if(!0===r)return!0}}return!(!s(i)&&!l(i))&&(i=x(i,e.spatialReference),null!==i&&(i=i.paths),N(i))}))}}let q=0;function L(r,o,s,l,c=1){let f;switch(o=o.toLowerCase()){case"hasz":{const e=r.hasZ;return void 0!==e&&e}case"hasm":{const e=r.hasM;return void 0!==e&&e}case"spatialreference":{let t=r.spatialReference._arcadeCacheId;if(void 0===t){let e=!0;Object.freeze&&Object.isFrozen(r.spatialReference)&&(e=!1),e&&(q++,r.spatialReference._arcadeCacheId=q,t=q)}const n=new e({wkt:r.spatialReference.wkt,wkid:r.spatialReference.wkid});return void 0!==t&&(n._arcadeCacheId="SPREF"+t.toString()),n}}switch(r.type){case"extent":switch(o){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=r[o];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(o){case"rings":f=r.cache._arcadeCacheId,void 0===f&&(q++,f=q,r.cache._arcadeCacheId=f);return new a(r.rings,r.spatialReference,!0===r.hasZ,!0===r.hasM,f);case"type":return"Polygon"}break;case"point":switch(o){case"x":case"y":case"z":case"m":return void 0!==r[o]?r[o]:null;case"type":return"Point"}break;case"polyline":switch(o){case"paths":f=r.cache._arcadeCacheId,void 0===f&&(q++,f=q,r.cache._arcadeCacheId=f);return new a(r.paths,r.spatialReference,!0===r.hasZ,!0===r.hasM,f);case"type":return"Polyline"}break;case"multipoint":switch(o){case"points":f=r.cache._arcadeCacheId,void 0===f&&(q++,f=q,r.cache._arcadeCacheId=f);return new i(r.points,r.spatialReference,!0===r.hasZ,!0===r.hasM,f,1);case"type":return"Multipoint"}}if(1===c)throw new t(s,n.InvalidIdentifier,l);return 2===c?{keystate:"notfound"}:null}export{L as geometryMember,W as registerFunctions};
|
|
5
|
+
import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as n}from"../executionError.js";import r from"../Feature.js";import a from"../ImmutablePathArray.js";import i from"../ImmutablePointArray.js";import{E as l,o as s,q as o,w as f,Q as c,F as u,y as m,c as p,j as h,k as w,b as d,n as y,m as R,a as g,i as I,f as v,L as P,r as b,C as F,J as x}from"../../chunks/languageUtils.js";import{angle2D as O,angleBetween2D as S,bearing2D as j,bearingBetween2D as N,pathsSelfIntersecting as k}from"./centroid.js";import J from"../../geometry/Extent.js";import D from"../../geometry/Geometry.js";import z from"../../geometry/Multipoint.js";import G from"../../geometry/Point.js";import Z from"../../geometry/Polygon.js";import C from"../../geometry/Polyline.js";import{isClockwise as _}from"../../geometry/support/coordsUtils.js";import{fromJSON as M}from"../../geometry/support/jsonUtils.js";function A(e){return e&&"esri.arcade.Feature"===e.arcadeDeclaredClass}function W(a,W){a.ringisclockwise=function(e,r){return W(e,r,((a,f,c)=>{l(c,1,1,e,r);let u=[];if(null===c[0])return!1;if(s(c[0]))for(const i of c[0]){if(!(i instanceof G))throw new t(e,n.InvalidParameter,r);u.push(i.hasZ?i.hasM?[i.x,i.y,i.z,i.m]:[i.x,i.y,i.z]:[i.x,i.y])}else if(c[0]instanceof i)u=c[0]._elements;else{if(!o(c[0]))throw new t(e,n.InvalidParameter,r);for(const a of c[0].toArray()){if(!(a instanceof G))throw new t(e,n.InvalidParameter,r);u.push(a.hasZ?a.hasM?[a.x,a.y,a.z,a.m]:[a.x,a.y,a.z]:[a.x,a.y])}}return!(u.length<3)&&_(u)}))},a.polygon=function(a,i){return W(a,i,((s,o,u)=>{l(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=f(r.parseGeometryFromDictionary(u[0],a.spatialReference),a.spatialReference),m instanceof Z==!1)throw new t(a,n.InvalidParameter,i)}else if(u[0]instanceof Z)m=M(u[0].toJSON());else{const e=JSON.parse(u[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),m=f(new Z(e),a.spatialReference)}if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(m)}))},a.polyline=function(a,i){return W(a,i,((s,o,u)=>{l(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=f(r.parseGeometryFromDictionary(u[0],a.spatialReference),a.spatialReference),m instanceof C==!1)throw new t(a,n.InvalidParameter,i)}else if(u[0]instanceof C)m=M(u[0].toJSON());else{const e=JSON.parse(u[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),m=f(new C(e),a.spatialReference)}if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(m)}))},a.point=function(a,i){return W(a,i,((s,o,u)=>{l(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=f(r.parseGeometryFromDictionary(u[0],a.spatialReference),a.spatialReference),m instanceof G==!1)throw new t(a,n.InvalidParameter,i)}else if(u[0]instanceof G)m=M(u[0].toJSON());else{const e=JSON.parse(u[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),m=f(new G(e),a.spatialReference)}if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(m)}))},a.multipoint=function(a,i){return W(a,i,((s,o,u)=>{l(u,1,1,a,i);let m=null;if(u[0]instanceof e){if(m=f(r.parseGeometryFromDictionary(u[0],a.spatialReference),a.spatialReference),m instanceof z==!1)throw new t(a,n.InvalidParameter,i)}else if(u[0]instanceof z)m=M(u[0].toJSON());else{const e=JSON.parse(u[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),m=f(new z(e),a.spatialReference)}if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(m)}))},a.extent=function(a,i){return W(a,i,((s,o,m)=>{m=u(m),l(m,1,1,a,i);let p=null;if(m[0]instanceof e)p=f(r.parseGeometryFromDictionary(m[0],a.spatialReference),a.spatialReference);else if(m[0]instanceof G){const e={xmin:m[0].x,ymin:m[0].y,xmax:m[0].x,ymax:m[0].y,spatialReference:m[0].spatialReference.toJSON()},t=m[0];t.hasZ?(e.zmin=t.z,e.zmax=t.z):t.hasM&&(e.mmin=t.m,e.mmax=t.m),p=M(e)}else if(m[0]instanceof Z)p=M(m[0].extent?.toJSON());else if(m[0]instanceof C)p=M(m[0].extent?.toJSON());else if(m[0]instanceof z)p=M(m[0].extent?.toJSON());else if(m[0]instanceof J)p=M(m[0].toJSON());else{const e=JSON.parse(m[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),p=f(new J(e),a.spatialReference)}if(null!==p&&!1===p.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(p)}))},a.geometry=function(a,i){return W(a,i,((s,o,u)=>{l(u,1,1,a,i);let m=null;if(null===u[0])return null;if(A(u[0]))m=f(u[0].geometry(),a.spatialReference);else if(u[0]instanceof e)m=f(r.parseGeometryFromDictionary(u[0],a.spatialReference),a.spatialReference);else{const e=JSON.parse(u[0]);e&&!e.spatialReference&&(e.spatialReference=a.spatialReference),m=f(M(e),a.spatialReference)}if(null!==m&&!1===m.spatialReference.equals(a.spatialReference))throw new t(a,n.WrongSpatialReference,i);return c(m)}))},a.setgeometry=function(e,r){return W(e,r,((a,i,s)=>{if(l(s,2,2,e,r),!A(s[0]))throw new t(e,n.InvalidParameter,r);if(!0===s[0].immutable)throw new t(e,n.Immutable,r);if(!(s[1]instanceof D||null===s[1]))throw new t(e,n.InvalidParameter,r);return s[0]._geometry=s[1],m}))},a.feature=function(a,i){return W(a,i,((l,s,o)=>{if(0===o.length)throw new t(a,n.WrongNumberOfParameters,i);let c=null;if(1===o.length)if(p(o[0]))c=r.fromJson(JSON.parse(o[0]),a.timeZone);else if(A(o[0]))c=r.createFromArcadeFeature(o[0]);else if(o[0]instanceof D)c=r.createFromGraphicLikeObject(o[0],null,null,a.timeZone);else{if(!(o[0]instanceof e))throw new t(a,n.InvalidParameter,i);{let t=o[0].hasField("geometry")?o[0].field("geometry"):null,n=o[0].hasField("attributes")?o[0].field("attributes"):null;null!==t&&t instanceof e&&(t=r.parseGeometryFromDictionary(t,a.spatialReference)),null!==n&&(n=r.parseAttributesFromDictionary(n)),c=r.createFromGraphicLikeObject(t,n,null,a.timeZone)}}else if(2===o.length){let l=null,s=null;if(null!==o[0])if(o[0]instanceof D)l=o[0];else{if(!(l instanceof e))throw new t(a,n.InvalidParameter,i);l=r.parseGeometryFromDictionary(o[0],a.spatialReference)}if(null!==o[1]){if(!(o[1]instanceof e))throw new t(a,n.InvalidParameter,i);s=r.parseAttributesFromDictionary(o[1])}c=r.createFromGraphicLikeObject(l,s,null,a.timeZone)}else{let l=null;const s={};if(null!==o[0])if(o[0]instanceof D)l=o[0];else{if(!(l instanceof e))throw new t(a,n.InvalidParameter,i);l=r.parseGeometryFromDictionary(o[0],a.spatialReference)}for(let e=1;e<o.length;e+=2){const r=h(o[e]),l=o[e+1];if(!(null==l||p(l)||isNaN(l)||w(l)||d(l)||y(l)||R(l)||g(l)))throw new t(a,n.InvalidParameter,i);if(I(l)||!1===v(l))throw new t(a,n.InvalidParameter,i);s[r]=l===m?null:l}c=r.createFromGraphicLikeObject(l,s,null,a.timeZone)}return c._geometry=f(c.geometry(),a.spatialReference),c.immutable=!1,c}))},a.dictionary=function(r,a){return W(r,a,((i,l,f)=>{if(0===f.length||1===f.length&&null===f[0]){const t=new e;return t.immutable=!1,t}if(1===f.length&&p(f[0]))try{const t=JSON.parse(f[0]),n=e.convertObjectToArcadeDictionary(t,P(r),!1);return n.immutable=!1,n}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===f.length&&f[0]instanceof D)try{const t=f[0].toJSON();t.hasZ=!0===f[0].hasZ,t.hasM=!0===f[0].hasM;const n=e.convertObjectToArcadeDictionary(t,P(r),!1);return n.immutable=!1,n}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===f.length&&b(f[0]))try{const t=new e;t.immutable=!1,t.setField("geometry",f[0].geometry());const n=new e;n.immutable=!1,t.setField("attributes",n);for(const e of f[0].keys())n.setField(e,f[0].field(e));return t}catch(v){throw new t(r,n.InvalidParameter,a)}if(1===f.length&&f[0]instanceof e)try{const t=new e;t.immutable=!1;for(const e of f[0].keys())t.setField(e,f[0].field(e));return t}catch(v){throw new t(r,n.InvalidParameter,a)}if(2===f.length&&f[0]instanceof e&&g(f[1]))try{if(!(!0===f[1])){const t=new e;t.immutable=!1;for(const e of f[0].keys())t.setField(e,f[0].field(e));return t}return f[0].deepClone()}catch(v){throw new t(r,n.InvalidParameter,a)}if(f.length%2!=0)throw new t(r,n.WrongNumberOfParameters,a);const c={};for(let e=0;e<f.length;e+=2){const i=h(f[e]),l=f[e+1];if(!(null==l||p(l)||isNaN(l)||w(l)||d(l)||g(l)||R(l)||y(l)||s(l)||o(l)))throw new t(r,n.InvalidParameter,a);if(I(l))throw new t(r,n.InvalidParameter,a);c[i]=l===m?null:l}const u=new e(c);return u.immutable=!1,u}))},a.haskey=function(r,a){return W(r,a,((i,s,o)=>{l(o,2,2,r,a);const f=h(o[1]);if(A(o[0]))return o[0].hasField(f);if(o[0]instanceof e)return o[0].hasField(f);if(o[0]instanceof D){const e=L(o[0],f,null,null,2);return!e||"notfound"!==e.keystate}throw new t(r,n.InvalidParameter,a)}))},a.hasvalue=function(r,a){return W(r,a,((i,f,c)=>{if(l(c,2,2,r,a),s(c[1])||o(c[1])){const i=c[1];let l=[];if(o(i))l=i.toArray();else{if(!s(i))throw new t(r,n.InvalidParameter,a);l=i}let f=c[0];if(null===f)return!1;for(const t of l)if(b(f)){if(!1===p(t))return!1;if(!f.hasField(t))return!1;if(f=f.field(t),null===f)return!1}else if(f instanceof e){if(!1===p(t))return!1;if(!f.hasField(t))return!1;if(f=f.field(t),null===f)return!1}else if(f instanceof D){if(!1===p(t))return!1;if(f=L(f,t,null,null,0),null===f)return!1}else if(s(f)){if(!1===d(t))return!1;if(f=f[t],null==f)return!1}else{if(!o(f))return!1;if(!1===d(t))return!1;if(f=f.get(t),null==f)return!1}return!0}if(null===c[0]||null===c[1])return!1;const u=h(c[1]);if(b(c[0]))return!!c[0].hasField(u)&&null!==c[0].field(u);if(c[0]instanceof e)return!!c[0].hasField(u)&&null!==c[0].field(u);if(c[0]instanceof D){return null!==L(c[0],u,null,null,0)}return!1}))},a.indexof=function(e,r){return W(e,r,((a,i,f)=>{l(f,2,2,e,r);const c=f[1];if(s(f[0])){for(let e=0;e<f[0].length;e++)if(F(c,f[0][e]))return e;return-1}if(o(f[0])){const e=f[0].length();for(let t=0;t<e;t++)if(F(c,f[0].get(t)))return t;return-1}throw new t(e,n.InvalidParameter,r)}))},a.angle=function(e,r){return W(e,r,((a,i,s)=>{if(s=u(s),l(s,2,3,e,r),!(s[0]instanceof G))throw new t(e,n.InvalidParameter,r);if(!(s[1]instanceof G))throw new t(e,n.InvalidParameter,r);if(s.length>2&&!(s[2]instanceof G))throw new t(e,n.InvalidParameter,r);return 2===s.length?O(s[0],s[1]):S(s[0],s[1],s[2])}))},a.bearing=function(e,r){return W(e,r,((a,i,s)=>{if(s=u(s),l(s,2,3,e,r),!(s[0]instanceof G))throw new t(e,n.InvalidParameter,r);if(!(s[1]instanceof G))throw new t(e,n.InvalidParameter,r);if(s.length>2&&!(s[2]instanceof G))throw new t(e,n.InvalidParameter,r);return 2===s.length?j(s[0],s[1]):N(s[0],s[1],s[2])}))},a.isselfintersecting=function(e,t){return W(e,t,((n,r,a)=>{a=u(a),l(a,1,1,e,t);let i=a[0];if(i instanceof Z)return i.isSelfIntersecting;if(i instanceof C)return i=i.paths,k(i);if(i instanceof z){const e=i.points;for(let t=0;t<e.length;t++)for(let n=0;n<e.length;n++)if(n!==t){let r=!0;for(let a=0;a<e[t].length;a++)if(e[t][a]!==e[n][a]){r=!1;break}if(!0===r)return!0}}return!(!s(i)&&!o(i))&&(i=x(i,e.spatialReference),null!==i&&(i=i.paths),k(i))}))}}let q=0;function L(r,l,s,o,f=1){let c;switch(l=l.toLowerCase()){case"hasz":{const e=r.hasZ;return void 0!==e&&e}case"hasm":{const e=r.hasM;return void 0!==e&&e}case"spatialreference":{let t=r.spatialReference._arcadeCacheId;if(void 0===t){let e=!0;Object.freeze&&Object.isFrozen(r.spatialReference)&&(e=!1),e&&(q++,r.spatialReference._arcadeCacheId=q,t=q)}const n=new e({wkt:r.spatialReference.wkt,wkid:r.spatialReference.wkid});return void 0!==t&&(n._arcadeCacheId="SPREF"+t.toString()),n}}switch(r.type){case"extent":switch(l){case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":case"mmin":case"mmax":{const e=r[l];return void 0!==e?e:null}case"type":return"Extent"}break;case"polygon":switch(l){case"rings":c=r.cache._arcadeCacheId,void 0===c&&(q++,c=q,r.cache._arcadeCacheId=c);return new a(r.rings,r.spatialReference,!0===r.hasZ,!0===r.hasM,c);case"type":return"Polygon"}break;case"point":switch(l){case"x":case"y":case"z":case"m":return void 0!==r[l]?r[l]:null;case"type":return"Point"}break;case"polyline":switch(l){case"paths":c=r.cache._arcadeCacheId,void 0===c&&(q++,c=q,r.cache._arcadeCacheId=c);return new a(r.paths,r.spatialReference,!0===r.hasZ,!0===r.hasM,c);case"type":return"Polyline"}break;case"multipoint":switch(l){case"points":c=r.cache._arcadeCacheId,void 0===c&&(q++,c=q,r.cache._arcadeCacheId=c);return new i(r.points,r.spatialReference,!0===r.hasZ,!0===r.hasM,c,1);case"type":return"Multipoint"}}if(1===f)throw new t(s,n.InvalidIdentifier,o);return 2===f?{keystate:"notfound"}:null}export{L as geometryMember,W 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.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{version as n}from"../../kernel.js";import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as i,convertSquareUnitsToCode as a,convertLinearUnitsToCode as l}from"../kernel.js";import{F as o,E as f,k as s,n as u,m as c,j as m,o as h,q as w,w as d,G as p,H as g,J as v,K as P,g as I,h as y,L as x}from"../../chunks/languageUtils.js";import{centroidPolyline as R,centroidMultiPoint as N,getMetersPerVerticalUnitForSR as j,segmentLength3d as L}from"./centroid.js";import{getMetersPerUnitForSR as b}from"../../core/unitUtils.js";import k from"../../geometry/Extent.js";import A from"../../geometry/Geometry.js";import E from"../../geometry/Multipoint.js";import M from"../../geometry/Point.js";import Z from"../../geometry/Polygon.js";import D from"../../geometry/Polyline.js";import{fromJSON as O}from"../../geometry/support/jsonUtils.js";let q=null;function z(e){return 0===n.indexOf("4.")?Z.fromExtent(e):new Z({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function C(n){q=n}function J(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let t=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){t=j(n.spatialReference)/b(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=L(a[n],a[n-1],t);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=L(a[n],a[n-1],t);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=L(a[0],a[a.length-1],t))}else"extent"===n.type&&(r+=2*L([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],t),r+=2*L([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],t),r*=2,r+=4*Math.abs(g(n.zmax,0)*t-g(n.zmin,0)*t));const i=new D({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return q.planarLength(i,e)}function S(n,j){function L(n,e,i){if(f(i,2,2,n,e),i[0]instanceof A&&i[1]instanceof A);else if(i[0]instanceof A&&null===i[1]);else if(i[1]instanceof A&&null===i[0]);else if(null!==i[0]||null!==i[1])throw new t(n,r.InvalidParameter,e)}n.disjoint=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null===i[0]||null===i[1]||q.disjoint(i[0],i[1]))))},n.intersects=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.intersects(i[0],i[1]))))},n.touches=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.touches(i[0],i[1]))))},n.crosses=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.crosses(i[0],i[1]))))},n.within=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.within(i[0],i[1]))))},n.contains=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.contains(i[0],i[1]))))},n.overlaps=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&q.overlaps(i[0],i[1]))))},n.equals=function(n,e){return j(n,e,((t,r,i)=>(f(i,2,2,n,e),i[0]===i[1]||(i[0]instanceof A&&i[1]instanceof A?q.equals(i[0],i[1]):(s(i[0])&&s(i[1])||u(i[0])&&u(i[1])||!(!c(i[0])||!c(i[1])))&&i[0].equals(i[1])))))},n.relate=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,3,3,n,e),l[0]instanceof A&&l[1]instanceof A)return q.relate(l[0],l[1],m(l[2]));if(l[0]instanceof A&&null===l[1])return!1;if(l[1]instanceof A&&null===l[0])return!1;if(null===l[0]&&null===l[1])return!1;throw new t(n,r.InvalidParameter,e)}))},n.intersection=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null===i[0]||null===i[1]?null:q.intersect(i[0],i[1]))))},n.union=function(n,e){return j(n,e,((a,l,f)=>{const s=[];if(0===(f=o(f)).length)throw new t(n,r.WrongNumberOfParameters,e);if(1===f.length)if(h(f[0])){const i=o(f[0]);for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof A))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}else{if(!w(f[0])){if(f[0]instanceof A)return d(i(f[0]),n.spatialReference);if(null===f[0])return null;throw new t(n,r.InvalidParameter,e)}{const i=o(f[0].toArray());for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof A))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}}else for(let i=0;i<f.length;i++)if(null!==f[i]){if(!(f[i]instanceof A))throw new t(n,r.InvalidParameter,e);s.push(f[i])}return 0===s.length?null:q.union(s)}))},n.difference=function(n,e){return j(n,e,((t,r,a)=>(a=o(a),L(n,e,a),null!==a[0]&&null===a[1]?i(a[0]):null===a[0]?null:q.difference(a[0],a[1]))))},n.symmetricdifference=function(n,e){return j(n,e,((t,r,a)=>(a=o(a),L(n,e,a),null===a[0]&&null===a[1]?null:null===a[0]?i(a[1]):null===a[1]?i(a[0]):q.symmetricDifference(a[0],a[1]))))},n.clip=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,2,2,n,e),!(l[1]instanceof k)&&null!==l[1])throw new t(n,r.InvalidParameter,e);if(null===l[0])return null;if(!(l[0]instanceof A))throw new t(n,r.InvalidParameter,e);return null===l[1]?null:q.clip(l[0],l[1])}))},n.cut=function(n,e){return j(n,e,((a,l,s)=>{if(s=o(s),f(s,2,2,n,e),!(s[1]instanceof D)&&null!==s[1])throw new t(n,r.InvalidParameter,e);if(null===s[0])return[];if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return null===s[1]?[i(s[0])]:q.cut(s[0],s[1])}))},n.area=function(n,e){return j(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||w(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:q.planarArea(e,a(g(s[1],-1)))}if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.planarArea(s[0],a(g(s[1],-1)))}))},n.areageodetic=function(n,e){return j(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||w(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:q.geodesicArea(e,a(g(s[1],-1)))}if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.geodesicArea(s[0],a(g(s[1],-1)))}))},n.length=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||w(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:q.planarLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.planarLength(s[0],l(g(s[1],-1)))}))},n.length3d=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||w(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:!0===e.hasZ?J(e,l(g(s[1],-1))):q.planarLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return!0===s[0].hasZ?J(s[0],l(g(s[1],-1))):q.planarLength(s[0],l(g(s[1],-1)))}))},n.lengthgeodetic=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||w(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:q.geodesicLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.geodesicLength(s[0],l(g(s[1],-1)))}))},n.distance=function(n,e){return j(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);let u=s[0];(h(s[0])||w(s[0]))&&(u=P(s[0],n.spatialReference));let c=s[1];if((h(s[1])||w(s[1]))&&(c=P(s[1],n.spatialReference)),!(u instanceof A))throw new t(n,r.InvalidParameter,e);if(!(c instanceof A))throw new t(n,r.InvalidParameter,e);return q.distance(u,c,l(g(s[2],-1)))}))},n.distancegeodetic=function(n,e){return j(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);const u=s[0],c=s[1];if(!(u instanceof M))throw new t(n,r.InvalidParameter,e);if(!(c instanceof M))throw new t(n,r.InvalidParameter,e);const m=new D({paths:[],spatialReference:u.spatialReference});return m.addPath([u,c]),q.geodesicLength(m,l(g(s[2],-1)))}))},n.densify=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof Z||s[0]instanceof D?q.densify(s[0],u,l(g(s[2],-1))):s[0]instanceof k?q.densify(z(s[0]),u,l(g(s[2],-1))):s[0]}))},n.densifygeodetic=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof Z||s[0]instanceof D?q.geodesicDensify(s[0],u,l(g(s[2],-1))):s[0]instanceof k?q.geodesicDensify(z(s[0]),u,l(g(s[2],-1))):s[0]}))},n.generalize=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,4,n,e),null===s[0])return null;if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);return q.generalize(s[0],u,y(g(s[2],!0)),l(g(s[3],-1)))}))},n.buffer=function(n,e){return j(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof A))throw new t(n,r.InvalidParameter,e);const c=I(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):q.buffer(u[0],c,l(g(u[2],-1)))}))},n.buffergeodetic=function(n,e){return j(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof A))throw new t(n,r.InvalidParameter,e);const c=I(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):q.geodesicBuffer(u[0],c,l(g(u[2],-1)))}))},n.offset=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,6,n,e),null===s[0])return null;if(!(s[0]instanceof Z||s[0]instanceof D))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);const c=I(g(s[4],10));if(isNaN(c))throw new t(n,r.InvalidParameter,e);const h=I(g(s[5],0));if(isNaN(h))throw new t(n,r.InvalidParameter,e);return q.offset(s[0],u,l(g(s[2],-1)),m(g(s[3],"round")).toLowerCase(),c,h)}))},n.rotate=function(n,e){return j(n,e,((i,a,l)=>{l=o(l),f(l,2,3,n,e);let s=l[0];if(null===s)return null;if(!(s instanceof A))throw new t(n,r.InvalidParameter,e);s instanceof k&&(s=Z.fromExtent(s));const u=I(l[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);const c=g(l[2],null);if(null===c)return q.rotate(s,u);if(c instanceof M)return q.rotate(s,u,c);throw new t(n,r.InvalidParameter,e)}))},n.centroid=function(n,e){return j(n,e,((a,l,s)=>{if(s=o(s),f(s,1,1,n,e),null===s[0])return null;let u=s[0];if((h(s[0])||w(s[0]))&&(u=P(s[0],n.spatialReference)),null===u)return null;if(!(u instanceof A))throw new t(n,r.InvalidParameter,e);return u instanceof M?d(i(s[0]),n.spatialReference):u instanceof Z?u.centroid:u instanceof D?R(u):u instanceof E?N(u):u instanceof k?u.center:null}))},n.multiparttosinglepart=function(n,e){return j(n,e,((a,l,s)=>{s=o(s),f(s,1,1,n,e);const u=[];if(null===s[0])return null;if(!(s[0]instanceof A))throw new t(n,r.InvalidParameter,e);if(s[0]instanceof M)return[d(i(s[0]),n.spatialReference)];if(s[0]instanceof k)return[d(i(s[0]),n.spatialReference)];const c=q.simplify(s[0]);if(c instanceof Z){const n=[],e=[];for(let t=0;t<c.rings.length;t++)if(c.isClockwise(c.rings[t])){const e=O({rings:[c.rings[t]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(e)}else e.push({ring:c.rings[t],pt:c.getPoint(t,0)});for(let t=0;t<e.length;t++)for(let r=0;r<n.length;r++)if(n[r].contains(e[t].pt)){n[r].addRing(e[t].ring);break}return n}if(c instanceof D){const n=[];for(let e=0;e<c.paths.length;e++){const t=O({paths:[c.paths[e]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(t)}return n}if(s[0]instanceof E){const e=d(i(s[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)u.push(e.getPoint(n));return u}return null}))},n.issimple=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return!0;if(!(l[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.isSimple(l[0])}))},n.simplify=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.simplify(l[0])}))},n.convexhull=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof A))throw new t(n,r.InvalidParameter,e);return q.convexHull(l[0])}))},n.nearestcoordinate=function(n,i){return j(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof A||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof M||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=q.nearestCoordinate(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance},x(n),!1,!0)}))},n.nearestvertex=function(n,i){return j(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof A||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof M||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=q.nearestVertex(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance},x(n),!1,!0)}))}}export{S as registerFunctions,C as setGeometryEngine};
|
|
5
|
+
import{version as n}from"../../kernel.js";import e from"../Dictionary.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as r}from"../executionError.js";import{cloneGeometry as i,convertSquareUnitsToCode as a,convertLinearUnitsToCode as l}from"../kernel.js";import{F as o,E as f,k as s,n as u,m as c,j as m,o as h,q as d,w,G as p,H as g,J as v,K as P,g as I,h as y,L as R}from"../../chunks/languageUtils.js";import{centroidPolyline as x,centroidMultiPoint as N,getMetersPerVerticalUnitForSR as j,segmentLength3d as L}from"./centroid.js";import{getMetersPerUnitForSR as b}from"../../core/unitUtils.js";import k from"../../geometry/Extent.js";import O from"../../geometry/Geometry.js";import A from"../../geometry/Multipoint.js";import E from"../../geometry/Point.js";import M from"../../geometry/Polygon.js";import Z from"../../geometry/Polyline.js";import{fromJSON as D}from"../../geometry/support/jsonUtils.js";let S=null;function q(e){return 0===n.indexOf("4.")?M.fromExtent(e):new M({spatialReference:e.spatialReference,rings:[[[e.xmin,e.ymin],[e.xmin,e.ymax],[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin]]]})}function z(n){S=n}function C(n,e){if("polygon"!==n.type&&"polyline"!==n.type&&"extent"!==n.type)return 0;let t=1;if(n.spatialReference.vcsWkid||n.spatialReference.latestVcsWkid){t=j(n.spatialReference)/b(n.spatialReference)}let r=0;if("polyline"===n.type)for(const a of n.paths)for(let n=1;n<a.length;n++)r+=L(a[n],a[n-1],t);else if("polygon"===n.type)for(const a of n.rings){for(let n=1;n<a.length;n++)r+=L(a[n],a[n-1],t);(a[0][0]!==a[a.length-1][0]||a[0][1]!==a[a.length-1][1]||void 0!==a[0][2]&&a[0][2]!==a[a.length-1][2])&&(r+=L(a[0],a[a.length-1],t))}else"extent"===n.type&&(r+=2*L([n.xmin,n.ymin,0],[n.xmax,n.ymin,0],t),r+=2*L([n.xmin,n.ymin,0],[n.xmin,n.ymax,0],t),r*=2,r+=4*Math.abs(g(n.zmax,0)*t-g(n.zmin,0)*t));const i=new Z({hasZ:!1,hasM:!1,spatialReference:n.spatialReference,paths:[[0,0],[0,r]]});return S.planarLength(i,e)}function J(n,j){function L(n,e,i){if(f(i,2,2,n,e),i[0]instanceof O&&i[1]instanceof O);else if(i[0]instanceof O&&null===i[1]);else if(i[1]instanceof O&&null===i[0]);else if(null!==i[0]||null!==i[1])throw new t(n,r.InvalidParameter,e)}n.disjoint=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null===i[0]||null===i[1]||S.disjoint(i[0],i[1]))))},n.intersects=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.intersects(i[0],i[1]))))},n.touches=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.touches(i[0],i[1]))))},n.crosses=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.crosses(i[0],i[1]))))},n.within=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.within(i[0],i[1]))))},n.contains=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.contains(i[0],i[1]))))},n.overlaps=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null!==i[0]&&null!==i[1]&&S.overlaps(i[0],i[1]))))},n.equals=function(n,e){return j(n,e,((t,r,i)=>(f(i,2,2,n,e),i[0]===i[1]||(i[0]instanceof O&&i[1]instanceof O?S.equals(i[0],i[1]):(s(i[0])&&s(i[1])||u(i[0])&&u(i[1])||!(!c(i[0])||!c(i[1])))&&i[0].equals(i[1])))))},n.relate=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,3,3,n,e),l[0]instanceof O&&l[1]instanceof O)return S.relate(l[0],l[1],m(l[2]));if(l[0]instanceof O&&null===l[1])return!1;if(l[1]instanceof O&&null===l[0])return!1;if(null===l[0]&&null===l[1])return!1;throw new t(n,r.InvalidParameter,e)}))},n.intersection=function(n,e){return j(n,e,((t,r,i)=>(i=o(i),L(n,e,i),null===i[0]||null===i[1]?null:S.intersect(i[0],i[1]))))},n.union=function(n,e){return j(n,e,((a,l,f)=>{const s=[];if(0===(f=o(f)).length)throw new t(n,r.WrongNumberOfParameters,e);if(1===f.length)if(h(f[0])){const i=o(f[0]);for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof O))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}else{if(!d(f[0])){if(f[0]instanceof O)return w(i(f[0]),n.spatialReference);if(null===f[0])return null;throw new t(n,r.InvalidParameter,e)}{const i=o(f[0].toArray());for(let a=0;a<i.length;a++)if(null!==i[a]){if(!(i[a]instanceof O))throw new t(n,r.InvalidParameter,e);s.push(i[a])}}}else for(let i=0;i<f.length;i++)if(null!==f[i]){if(!(f[i]instanceof O))throw new t(n,r.InvalidParameter,e);s.push(f[i])}return 0===s.length?null:S.union(s)}))},n.difference=function(n,e){return j(n,e,((t,r,a)=>(a=o(a),L(n,e,a),null!==a[0]&&null===a[1]?i(a[0]):null===a[0]?null:S.difference(a[0],a[1]))))},n.symmetricdifference=function(n,e){return j(n,e,((t,r,a)=>(a=o(a),L(n,e,a),null===a[0]&&null===a[1]?null:null===a[0]?i(a[1]):null===a[1]?i(a[0]):S.symmetricDifference(a[0],a[1]))))},n.clip=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,2,2,n,e),!(l[1]instanceof k)&&null!==l[1])throw new t(n,r.InvalidParameter,e);if(null===l[0])return null;if(!(l[0]instanceof O))throw new t(n,r.InvalidParameter,e);return null===l[1]?null:S.clip(l[0],l[1])}))},n.cut=function(n,e){return j(n,e,((a,l,s)=>{if(s=o(s),f(s,2,2,n,e),!(s[1]instanceof Z)&&null!==s[1])throw new t(n,r.InvalidParameter,e);if(null===s[0])return[];if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return null===s[1]?[i(s[0])]:S.cut(s[0],s[1])}))},n.area=function(n,e){return j(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||d(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:S.planarArea(e,a(g(s[1],-1)))}if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.planarArea(s[0],a(g(s[1],-1)))}))},n.areageodetic=function(n,e){return j(n,e,((i,l,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||d(s[0])){const e=p(s[0],n.spatialReference);return null===e?0:S.geodesicArea(e,a(g(s[1],-1)))}if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.geodesicArea(s[0],a(g(s[1],-1)))}))},n.length=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||d(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:S.planarLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.planarLength(s[0],l(g(s[1],-1)))}))},n.length3d=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||d(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:!0===e.hasZ?C(e,l(g(s[1],-1))):S.planarLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return!0===s[0].hasZ?C(s[0],l(g(s[1],-1))):S.planarLength(s[0],l(g(s[1],-1)))}))},n.lengthgeodetic=function(n,e){return j(n,e,((i,a,s)=>{if(f(s,1,2,n,e),null===(s=o(s))[0])return 0;if(h(s[0])||d(s[0])){const e=v(s[0],n.spatialReference);return null===e?0:S.geodesicLength(e,l(g(s[1],-1)))}if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.geodesicLength(s[0],l(g(s[1],-1)))}))},n.distance=function(n,e){return j(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);let u=s[0];(h(s[0])||d(s[0]))&&(u=P(s[0],n.spatialReference));let c=s[1];if((h(s[1])||d(s[1]))&&(c=P(s[1],n.spatialReference)),!(u instanceof O))throw new t(n,r.InvalidParameter,e);if(!(c instanceof O))throw new t(n,r.InvalidParameter,e);return S.distance(u,c,l(g(s[2],-1)))}))},n.distancegeodetic=function(n,e){return j(n,e,((i,a,s)=>{s=o(s),f(s,2,3,n,e);const u=s[0],c=s[1];if(!(u instanceof E))throw new t(n,r.InvalidParameter,e);if(!(c instanceof E))throw new t(n,r.InvalidParameter,e);const m=new Z({paths:[],spatialReference:u.spatialReference});return m.addPath([u,c]),S.geodesicLength(m,l(g(s[2],-1)))}))},n.densify=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof M||s[0]instanceof Z?S.densify(s[0],u,l(g(s[2],-1))):s[0]instanceof k?S.densify(q(s[0]),u,l(g(s[2],-1))):s[0]}))},n.densifygeodetic=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,3,n,e),null===s[0])return null;if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);if(u<=0)throw new t(n,r.InvalidParameter,e);return s[0]instanceof M||s[0]instanceof Z?S.geodesicDensify(s[0],u,l(g(s[2],-1))):s[0]instanceof k?S.geodesicDensify(q(s[0]),u,l(g(s[2],-1))):s[0]}))},n.generalize=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,4,n,e),null===s[0])return null;if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);return S.generalize(s[0],u,y(g(s[2],!0)),l(g(s[3],-1)))}))},n.buffer=function(n,e){return j(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof O))throw new t(n,r.InvalidParameter,e);const c=I(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):S.buffer(u[0],c,l(g(u[2],-1)))}))},n.buffergeodetic=function(n,e){return j(n,e,((a,s,u)=>{if(u=o(u),f(u,2,3,n,e),null===u[0])return null;if(!(u[0]instanceof O))throw new t(n,r.InvalidParameter,e);const c=I(u[1]);if(isNaN(c))throw new t(n,r.InvalidParameter,e);return 0===c?i(u[0]):S.geodesicBuffer(u[0],c,l(g(u[2],-1)))}))},n.offset=function(n,e){return j(n,e,((i,a,s)=>{if(s=o(s),f(s,2,6,n,e),null===s[0])return null;if(!(s[0]instanceof M||s[0]instanceof Z))throw new t(n,r.InvalidParameter,e);const u=I(s[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);const c=I(g(s[4],10));if(isNaN(c))throw new t(n,r.InvalidParameter,e);const h=I(g(s[5],0));if(isNaN(h))throw new t(n,r.InvalidParameter,e);return S.offset(s[0],u,l(g(s[2],-1)),m(g(s[3],"round")).toLowerCase(),c,h)}))},n.rotate=function(n,e){return j(n,e,((i,a,l)=>{l=o(l),f(l,2,3,n,e);let s=l[0];if(null===s)return null;if(!(s instanceof O))throw new t(n,r.InvalidParameter,e);s instanceof k&&(s=M.fromExtent(s));const u=I(l[1]);if(isNaN(u))throw new t(n,r.InvalidParameter,e);const c=g(l[2],null);if(null===c)return S.rotate(s,u);if(c instanceof E)return S.rotate(s,u,c);throw new t(n,r.InvalidParameter,e)}))},n.centroid=function(n,e){return j(n,e,((a,l,s)=>{if(s=o(s),f(s,1,1,n,e),null===s[0])return null;let u=s[0];if((h(s[0])||d(s[0]))&&(u=P(s[0],n.spatialReference)),null===u)return null;if(!(u instanceof O))throw new t(n,r.InvalidParameter,e);return u instanceof E?w(i(s[0]),n.spatialReference):u instanceof M?u.centroid:u instanceof Z?x(u):u instanceof A?N(u):u instanceof k?u.center:null}))},n.multiparttosinglepart=function(n,e){return j(n,e,((a,l,s)=>{s=o(s),f(s,1,1,n,e);const u=[];if(null===s[0])return null;if(!(s[0]instanceof O))throw new t(n,r.InvalidParameter,e);if(s[0]instanceof E)return[w(i(s[0]),n.spatialReference)];if(s[0]instanceof k)return[w(i(s[0]),n.spatialReference)];const c=S.simplify(s[0]);if(c instanceof M){const n=[],e=[];for(let t=0;t<c.rings.length;t++)if(c.isClockwise(c.rings[t])){const e=D({rings:[c.rings[t]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(e)}else e.push({ring:c.rings[t],pt:c.getPoint(t,0)});for(let t=0;t<e.length;t++)for(let r=0;r<n.length;r++)if(n[r].contains(e[t].pt)){n[r].addRing(e[t].ring);break}return n}if(c instanceof Z){const n=[];for(let e=0;e<c.paths.length;e++){const t=D({paths:[c.paths[e]],hasZ:!0===c.hasZ,hasM:!0===c.hasM,spatialReference:c.spatialReference.toJSON()});n.push(t)}return n}if(s[0]instanceof A){const e=w(i(s[0]),n.spatialReference);for(let n=0;n<e.points.length;n++)u.push(e.getPoint(n));return u}return null}))},n.issimple=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return!0;if(!(l[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.isSimple(l[0])}))},n.simplify=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.simplify(l[0])}))},n.convexhull=function(n,e){return j(n,e,((i,a,l)=>{if(l=o(l),f(l,1,1,n,e),null===l[0])return null;if(!(l[0]instanceof O))throw new t(n,r.InvalidParameter,e);return S.convexHull(l[0])}))},n.nearestcoordinate=function(n,i){return j(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof O||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof E||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=S.nearestCoordinate(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},R(n),!1,!0)}))},n.nearestvertex=function(n,i){return j(n,i,((a,l,s)=>{if(s=o(s),f(s,2,2,n,i),!(s[0]instanceof O||null===s[0]))throw new t(n,r.InvalidParameter,i);if(!(s[1]instanceof E||null===s[1]))throw new t(n,r.InvalidParameter,i);if(null===s[0]||null===s[1])return null;const u=S.nearestVertex(s[0],s[1]);return null===u||u.isEmpty?null:e.convertObjectToArcadeDictionary({coordinate:u.coordinate,distance:u.distance,sideOfLine:0===u.distance?"straddle":u.isRightSide?"right":"left"},R(n),!1,!0)}))}}export{J as registerFunctions,z as setGeometryEngine};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{E as n,b as t,k as r,n as u,m as e,a as o,o as i,c as a,S as
|
|
5
|
+
import{E as n,b as t,k as r,n as u,m as e,a as o,o as i,c as a,S as s,g as f,y as c,h as N,q as l}from"../../chunks/languageUtils.js";import{parse as h}from"../../core/number.js";function m(n,t,r){return void 0===r||0==+r?Math[n](t):(t=+t,r=+r,isNaN(t)||"number"!=typeof r||r%1!=0?NaN:(t=t.toString().split("e"),+((t=(t=Math[n](+(t[0]+"e"+(t[1]?+t[1]-r:-r)))).toString().split("e"))[0]+"e"+(t[1]?+t[1]+r:r))))}function M(M,b){function p(n,t,r){const u=f(n);return isNaN(u)?u:isNaN(t)||isNaN(r)||t>r?NaN:u<t?t:u>r?r:u}M.number=function(f,c){return b(f,c,((N,l,m)=>{n(m,1,2,f,c);const M=m[0];if(t(M))return M;if(null===M)return 0;if(r(M)||u(M)||e(M))return M.toNumber();if(o(M))return Number(M);if(i(M))return NaN;if(""===M)return Number(M);if(void 0===M)return Number(M);if(a(M)){if(void 0!==m[1]){let n=s(m[1],"‰","");return n=s(n,"¤",""),h(M,{pattern:n})}return Number(M.trim())}return Number(M)}))},M.abs=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.abs(f(o[0])))))},M.acos=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.acos(f(o[0])))))},M.asin=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.asin(f(o[0])))))},M.atan=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.atan(f(o[0])))))},M.atan2=function(t,r){return b(t,r,((u,e,o)=>(n(o,2,2,t,r),Math.atan2(f(o[0]),f(o[1])))))},M.ceil=function(t,r){return b(t,r,((u,e,o)=>{if(n(o,1,2,t,r),2===o.length){let n=f(o[1]);return isNaN(n)&&(n=0),m("ceil",f(o[0]),-1*n)}return Math.ceil(f(o[0]))}))},M.round=function(t,r){return b(t,r,((u,e,o)=>{if(n(o,1,2,t,r),2===o.length){let n=f(o[1]);return isNaN(n)&&(n=0),m("round",f(o[0]),-1*n)}return Math.round(f(o[0]))}))},M.floor=function(t,r){return b(t,r,((u,e,o)=>{if(n(o,1,2,t,r),2===o.length){let n=f(o[1]);return isNaN(n)&&(n=0),m("floor",f(o[0]),-1*n)}return Math.floor(f(o[0]))}))},M.cos=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.cos(f(o[0])))))},M.isnan=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),"number"==typeof o[0]&&isNaN(o[0]))))},M.exp=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.exp(f(o[0])))))},M.log=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.log(f(o[0])))))},M.pow=function(t,r){return b(t,r,((u,e,o)=>(n(o,2,2,t,r),f(o[0])**f(o[1]))))},M.random=function(t,r){return b(t,r,((u,e,o)=>(n(o,0,0,t,r),Math.random())))},M.sin=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.sin(f(o[0])))))},M.sqrt=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.sqrt(f(o[0])))))},M.tan=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),Math.tan(f(o[0])))))},M.isempty=function(t,r){return b(t,r,((u,e,o)=>(n(o,1,1,t,r),null===o[0]||(""===o[0]||(void 0===o[0]||o[0]===c)))))},M.boolean=function(t,r){return b(t,r,((u,e,o)=>{n(o,1,1,t,r);const i=o[0];return N(i)}))},M.constrain=function(t,r){return b(t,r,((u,e,o)=>{n(o,3,3,t,r);const a=f(o[1]),s=f(o[2]);if(i(o[0])){const n=[];for(const t of o[0])n.push(p(t,a,s));return n}if(l(o[0])){const n=[];for(let t=0;t<o[0].length();t++)n.push(p(o[0].get(t),a,s));return n}return p(o[0],a,s)}))}}export{M as registerFunctions};
|
package/arcade/languageUtils.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import"../config.js";import"../kernel.js";import"./ArcadeDate.js";import"./ArcadeModule.js";import"./executionError.js";import"./FunctionWrapper.js";import"./ImmutableArray.js";import"./ImmutablePathArray.js";import"./ImmutablePointArray.js";import"./featureset/support/shared.js";import"../core/number.js";import"../core/sql/DateOnly.js";import"../core/sql/TimeOnly.js";import"../geometry/Extent.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Point.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"../geometry/SpatialReference.js";import"../geometry/support/coordsUtils.js";import"../intl/locale.js";import"luxon";export{I as ImplicitResult,a7 as ImplicitResultE,R as ReturnResult,a6 as ReturnResultE,P as absRound,
|
|
5
|
+
import"../config.js";import"../kernel.js";import"./ArcadeDate.js";import"./ArcadeModule.js";import"./executionError.js";import"./FunctionWrapper.js";import"./ImmutableArray.js";import"./ImmutablePathArray.js";import"./ImmutablePointArray.js";import"./featureset/support/shared.js";import"../core/number.js";import"../core/sql/DateOnly.js";import"../core/sql/TimeOnly.js";import"../geometry/Extent.js";import"../geometry/Geometry.js";import"../geometry/Multipoint.js";import"../geometry/Point.js";import"../geometry/Polygon.js";import"../geometry/Polyline.js";import"../geometry/SpatialReference.js";import"../geometry/support/coordsUtils.js";import"../geometry/support/jsonUtils.js";import"../intl/locale.js";import"luxon";export{I as ImplicitResult,a7 as ImplicitResultE,R as ReturnResult,a6 as ReturnResultE,P as absRound,af as arcadeVersion,K as autoCastArrayOfPointsToMultiPoint,G as autoCastArrayOfPointsToPolygon,J as autoCastArrayOfPointsToPolyline,F as autoCastFeatureToGeometry,D as binaryOperator,z as breakResult,d as castAsJson,e as castAsJsonAsync,A as continueResult,Z as defaultExecutingContext,L as defaultTimeZone,H as defaultUndefined,C as equalityTest,Y as featureDomainCodeLookup,X as featureDomainValueLookup,W as featureFullDomain,U as featureSchema,V as featureSubtypes,Q as fixNullGeometry,w as fixSpatialReference,ac as formatDate,ab as formatNumber,T as generateUUID,a3 as getDomain,a5 as getDomainCode,a4 as getDomainValue,N as getType,B as greaterThanLessThan,o as isArray,a as isBoolean,k as isDate,m as isDateOnly,v as isDictionary,r as isFeature,u as isFeatureSet,s as isFeatureSetCollection,i as isFunctionParameter,p as isGeometry,q as isImmutableArray,M as isInteger,aa as isJsDate,a8 as isModule,b as isNumber,a9 as isObject,f as isSimpleType,c as isString,$ as isSubtypeGrouplayer,a0 as isSubtypeSublayer,n as isTime,S as multiReplace,ad as parseGeometryFromJson,E as pcCheck,ae as stableStringify,O as standardiseDateFormat,a1 as tick,h as toBoolean,l as toDate,g as toNumber,_ as toNumberArray,j as toString,a2 as toStringArray,t as toStringExplicit,y as voidOperation}from"../chunks/languageUtils.js";
|
package/arcade/treeAnalysis.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.29/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
const e={all:{min:2,max:2},time:{min:0,max:4},dateonly:{min:0,max:3},getenvironment:{min:0,max:0},none:{min:2,max:2},any:{min:2,max:2},reduce:{min:2,max:3},map:{min:2,max:2},filter:{min:2,max:2},fromcodepoint:{min:1,max:-1},fromcharcode:{min:1,max:-1},tocodepoint:{min:1,max:2},tocharcode:{min:1,max:2},concatenate:{min:0,max:-1},expects:{min:1,max:-1},getfeatureset:{min:1,max:2},week:{min:1,max:2},fromjson:{min:1,max:1},length3d:{min:1,max:2},tohex:{min:1,max:1},hash:{min:1,max:1},timezone:{min:1,max:1},timezoneoffset:{min:1,max:1},changetimezone:{min:2,max:2},isoweek:{min:1,max:1},isoweekday:{min:1,max:1},hasvalue:{min:2,max:2},isomonth:{min:1,max:1},isoyear:{min:1,max:1},resize:{min:2,max:3},slice:{min:0,max:-1},splice:{min:0,max:-1},push:{min:2,max:2},pop:{min:1,max:1},includes:{min:2,max:2},array:{min:0,max:2},front:{min:1,max:1},back:{min:1,max:1},insert:{min:3,max:3},erase:{min:2,max:2},split:{min:2,max:4},guid:{min:0,max:1},standardizeguid:{min:2,max:2},today:{min:0,max:0},angle:{min:2,max:3},bearing:{min:2,max:3},urlencode:{min:1,max:1},now:{min:0,max:0},timestamp:{min:0,max:0},day:{min:1,max:1},month:{min:1,max:1},year:{min:1,max:1},hour:{min:1,max:1},second:{min:1,max:1},millisecond:{min:1,max:1},minute:{min:1,max:1},weekday:{min:1,max:1},toutc:{min:1,max:1},tolocal:{min:1,max:1},date:{min:0,max:8},datediff:{min:2,max:4},dateadd:{min:2,max:3},trim:{min:1,max:1},text:{min:1,max:2},left:{min:2,max:2},right:{min:2,max:2},mid:{min:2,max:3},upper:{min:1,max:1},proper:{min:1,max:2},lower:{min:1,max:1},find:{min:2,max:3},iif:{min:3,max:3},decode:{min:2,max:-1},when:{min:2,max:-1},defaultvalue:{min:2,max:2},isempty:{min:1,max:1},domaincode:{min:2,max:4},domainname:{min:2,max:4},polygon:{min:1,max:1},point:{min:1,max:1},polyline:{min:1,max:1},extent:{min:1,max:1},multipoint:{min:1,max:1},ringisclockwise:{min:1,max:1},geometry:{min:1,max:1},count:{min:0,max:-1},number:{min:1,max:2},acos:{min:1,max:1},asin:{min:1,max:1},atan:{min:1,max:1},atan2:{min:2,max:2},ceil:{min:1,max:2},floor:{min:1,max:2},round:{min:1,max:2},cos:{min:1,max:1},exp:{min:1,max:1},log:{min:1,max:1},min:{min:0,max:-1},constrain:{min:3,max:3},console:{min:0,max:-1},max:{min:0,max:-1},pow:{min:2,max:2},random:{min:0,max:0},sqrt:{min:1,max:1},sin:{min:1,max:1},tan:{min:1,max:1},abs:{min:1,max:1},isnan:{min:1,max:1},stdev:{min:0,max:-1},average:{min:0,max:-1},mean:{min:0,max:-1},sum:{min:0,max:-1},variance:{min:0,max:-1},distinct:{min:0,max:-1},first:{min:1,max:1},top:{min:2,max:2},boolean:{min:1,max:1},dictionary:{min:0,max:-1},typeof:{min:1,max:1},reverse:{min:1,max:1},replace:{min:3,max:4},sort:{min:1,max:2},feature:{min:1,max:-1},haskey:{min:2,max:2},indexof:{min:2,max:2},disjoint:{min:2,max:2},intersects:{min:2,max:2},touches:{min:2,max:2},crosses:{min:2,max:2},within:{min:2,max:2},contains:{min:2,max:2},overlaps:{min:2,max:2},equals:{min:2,max:2},relate:{min:3,max:3},intersection:{min:2,max:2},union:{min:1,max:2},difference:{min:2,max:2},symmetricdifference:{min:2,max:2},clip:{min:2,max:2},cut:{min:2,max:2},area:{min:1,max:2},areageodetic:{min:1,max:2},length:{min:1,max:2},lengthgeodetic:{min:1,max:2},distancegeodetic:{min:2,max:3},distance:{min:2,max:3},densify:{min:2,max:3},densifygeodetic:{min:2,max:3},generalize:{min:2,max:4},buffer:{min:2,max:3},buffergeodetic:{min:2,max:3},offset:{min:2,max:6},rotate:{min:2,max:3},issimple:{min:1,max:1},simplify:{min:1,max:1},convexhull:{min:1,max:1},centroid:{min:1,max:1},nearestcoordinate:{min:2,max:2},nearestvertex:{min:2,max:2},isselfintersecting:{min:1,max:1},multiparttosinglepart:{min:1,max:1},setgeometry:{min:2,max:2},portal:{min:1,max:1},getuser:{min:0,max:2},subtypes:{min:1,max:1},subtypecode:{min:1,max:1},subtypename:{min:1,max:1},domain:{min:2,max:3},convertdirection:{min:3,max:3},sqltimestamp:{min:1,max:3},schema:{min:1,max:1}},n={functionDefinitions:new Map,constantDefinitions:new Map},a={functionDefinitions:new Map,constantDefinitions:new Map};for(const b of["pi","infinity"])a.constantDefinitions.set(b,{type:"constant"}),n.constantDefinitions.set(b,{type:"constant"});a.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"newline",type:"constant"}]}),n.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"newline",type:"constant"}]});for(const b in e){const t=e[b];a.functionDefinitions.set(b,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]}),n.functionDefinitions.set(b,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]})}const t=new Set(["featureset","featuresetbyid","featuresetbyname","featuresetbyassociation","featuresetbyrelationshipname","featuresetbyurl","getfeatureset","getuser","attachments","featuresetbyportalitem","getfeaturesetinfo"]),m=new Set(["disjoint","intersects","touches","crosses","within","contains","overlaps","equals","relate","intersection","nearestvertex","nearestcoordinate","union","difference","symmetricdifference","clip","cut","area","areageodetic","length","length3d","lengthgeodetic","distance","distancegeodetic","densify","densifygeodetic","generalize","buffer","buffergeodetic","offset","rotate","issimple","convexhull","simplify","multiparttosinglepart"]);function i(e){return"string"==typeof e||e instanceof String}function o(e,t){const m="sync"===t?n:a;m.functionDefinitions.has(e.name.toLowerCase())?m.functionDefinitions.get(e.name.toLowerCase())?.overloads.push({type:"function",parametersInfo:{min:e.min,max:e.max}}):m.functionDefinitions.set(e.name.toLowerCase(),{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}function s(e,n){if(e)for(const a of e)r(a,n)}function r(e,n){if(e&&!1!==n(e))switch(e.type){case"ImportDeclaration":s(e.specifiers,n),r(e.source,n);break;case"ExportNamedDeclaration":r(e.declaration,n);break;case"ArrayExpression":s(e.elements,n);break;case"AssignmentExpression":case"BinaryExpression":case"LogicalExpression":r(e.left,n),r(e.right,n);break;case"BlockStatement":case"Program":s(e.body,n);break;case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"Identifier":case"Literal":break;case"CallExpression":r(e.callee,n),s(e.arguments,n);break;case"ExpressionStatement":r(e.expression,n);break;case"ForInStatement":r(e.left,n),r(e.right,n),r(e.body,n);break;case"ForStatement":r(e.init,n),r(e.test,n),r(e.update,n),r(e.body,n);break;case"WhileStatement":r(e.test,n),r(e.body,n);break;case"FunctionDeclaration":r(e.id,n),s(e.params,n),r(e.body,n);break;case"IfStatement":r(e.test,n),r(e.consequent,n),r(e.alternate,n);break;case"MemberExpression":r(e.object,n),r(e.property,n);break;case"ObjectExpression":s(e.properties,n);break;case"Property":r(e.key,n),r(e.value,n);break;case"ReturnStatement":case"UnaryExpression":case"UpdateExpression":r(e.argument,n);break;case"VariableDeclaration":s(e.declarations,n);break;case"VariableDeclarator":r(e.id,n),r(e.init,n);break;case"TemplateLiteral":s(e.expressions,n),s(e.quasis,n)}}function c(e,n){let a=!1;const t=n.toLowerCase();return r(e,(e=>!a&&("Identifier"===e.type&&e.name&&e.name.toLowerCase()===t&&(a=!0),!0))),a}function x(e){const n=[];return r(e,(e=>("ImportDeclaration"===e.type&&e.source&&e.source.value&&n.push({libname:e.specifiers[0].local.name.toLowerCase(),source:e.source.value}),!0))),n}function p(e,n){let a=!1;const t=n.toLowerCase();return r(e,(e=>!a&&("CallExpression"!==e.type||"Identifier"!==e.callee.type||!e.callee.name||e.callee.name.toLowerCase()!==t||(a=!0,!1)))),a}function l(e){const n=[];return r(e,(e=>"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?n.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&n.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1))),n}function u(e){const n=[];return r(e,(e=>{if("CallExpression"===e.type){if("Identifier"===e.callee.type&&"expects"===e.callee.name.toLowerCase()){let a="";for(let t=0;t<(e.arguments||[]).length;t++)0===t?"Identifier"===e.arguments[t].type&&(a=e.arguments[t].name.toLowerCase()):a&&"Literal"===e.arguments[t].type&&i(e.arguments[t].value)&&n.push(a+"."+e.arguments[t].value.toLowerCase());return!1}if("Identifier"===e.callee.type&&["domainname","domaincode","domain","haskey"].includes(e.callee.name.toLowerCase())&&e.arguments.length>=2){let a="";return"Identifier"===e.arguments[0].type&&(a=e.arguments[0].name.toLowerCase()),a&&"Literal"===e.arguments[1].type&&i(e.arguments[1].value)&&n.push(a+"."+e.arguments[1].value.toLowerCase()),!1}}return"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?n.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&n.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1)})),n}function f(e,n){const a=[];if(void 0!==n.params&&null!==n.params)for(let t=0;t<n.params.length;t++)a.push("any");return{name:e,return:"any",params:a}}function y(e){const n=[];return r(e,(e=>("CallExpression"===e.type&&"Identifier"===e.callee.type&&n.push(e.callee.name.toLowerCase()),!0))),n}function d(e,n=[]){let a=null;if(void 0===e.usesFeatureSet){null===a&&(a=y(e)),e.usesFeatureSet=!1;for(let n=0;n<a.length;n++)t.has(a[n])&&(e.usesFeatureSet=!0,e.isAsync=!0);if(!1===e.usesFeatureSet&&n&&n.length>0)for(const a of n)if(c(e,a)){e.usesFeatureSet=!0,e.isAsync=!0;break}}if(void 0===e.usesModules){e.usesModules=!1;x(e).length>0&&(e.usesModules=!0)}if(void 0===e.usesGeometry){e.usesGeometry=!1,null===a&&(a=y(e));for(let n=0;n<a.length;n++)m.has(a[n])&&(e.usesGeometry=!0)}}function g(e){const n=y(e);for(let a=0;a<n.length;a++)if(t.has(n[a]))return!0;return!1}export{o as addFunctionDeclaration,f as extractFunctionDeclaration,u as findExpectedFieldLiterals,l as findFieldLiterals,y as findFunctionCalls,x as findModuleImports,d as findScriptDependencies,a as fullArcadeApiAsync,n as fullArcadeApiSync,p as referencesFunction,c as referencesMember,g as scriptUsesFeatureSet,r as walk};
|
|
5
|
+
const e={all:{min:2,max:2},time:{min:0,max:4},dateonly:{min:0,max:3},getenvironment:{min:0,max:0},none:{min:2,max:2},any:{min:2,max:2},reduce:{min:2,max:3},map:{min:2,max:2},filter:{min:2,max:2},fromcodepoint:{min:1,max:-1},fromcharcode:{min:1,max:-1},tocodepoint:{min:1,max:2},tocharcode:{min:1,max:2},concatenate:{min:0,max:-1},expects:{min:1,max:-1},getfeatureset:{min:1,max:2},week:{min:1,max:2},fromjson:{min:1,max:1},length3d:{min:1,max:2},tohex:{min:1,max:1},hash:{min:1,max:1},timezone:{min:1,max:1},timezoneoffset:{min:1,max:1},changetimezone:{min:2,max:2},isoweek:{min:1,max:1},isoweekday:{min:1,max:1},hasvalue:{min:2,max:2},isomonth:{min:1,max:1},isoyear:{min:1,max:1},resize:{min:2,max:3},slice:{min:0,max:-1},splice:{min:0,max:-1},push:{min:2,max:2},pop:{min:1,max:1},includes:{min:2,max:2},array:{min:0,max:2},front:{min:1,max:1},back:{min:1,max:1},insert:{min:3,max:3},erase:{min:2,max:2},split:{min:2,max:4},guid:{min:0,max:1},standardizeguid:{min:2,max:2},today:{min:0,max:0},angle:{min:2,max:3},bearing:{min:2,max:3},urlencode:{min:1,max:1},now:{min:0,max:0},timestamp:{min:0,max:0},day:{min:1,max:1},month:{min:1,max:1},year:{min:1,max:1},hour:{min:1,max:1},second:{min:1,max:1},millisecond:{min:1,max:1},minute:{min:1,max:1},weekday:{min:1,max:1},toutc:{min:1,max:1},tolocal:{min:1,max:1},date:{min:0,max:8},datediff:{min:2,max:4},dateadd:{min:2,max:3},trim:{min:1,max:1},text:{min:1,max:2},left:{min:2,max:2},right:{min:2,max:2},mid:{min:2,max:3},upper:{min:1,max:1},proper:{min:1,max:2},lower:{min:1,max:1},find:{min:2,max:3},iif:{min:3,max:3},decode:{min:2,max:-1},when:{min:2,max:-1},defaultvalue:{min:2,max:3},isempty:{min:1,max:1},domaincode:{min:2,max:4},domainname:{min:2,max:4},polygon:{min:1,max:1},point:{min:1,max:1},polyline:{min:1,max:1},extent:{min:1,max:1},multipoint:{min:1,max:1},ringisclockwise:{min:1,max:1},geometry:{min:1,max:1},count:{min:0,max:-1},number:{min:1,max:2},acos:{min:1,max:1},asin:{min:1,max:1},atan:{min:1,max:1},atan2:{min:2,max:2},ceil:{min:1,max:2},floor:{min:1,max:2},round:{min:1,max:2},cos:{min:1,max:1},exp:{min:1,max:1},log:{min:1,max:1},min:{min:0,max:-1},constrain:{min:3,max:3},console:{min:0,max:-1},max:{min:0,max:-1},pow:{min:2,max:2},random:{min:0,max:0},sqrt:{min:1,max:1},sin:{min:1,max:1},tan:{min:1,max:1},abs:{min:1,max:1},isnan:{min:1,max:1},stdev:{min:0,max:-1},average:{min:0,max:-1},mean:{min:0,max:-1},sum:{min:0,max:-1},variance:{min:0,max:-1},distinct:{min:0,max:-1},first:{min:1,max:1},top:{min:2,max:2},boolean:{min:1,max:1},dictionary:{min:0,max:-1},typeof:{min:1,max:1},reverse:{min:1,max:1},replace:{min:3,max:4},sort:{min:1,max:2},feature:{min:1,max:-1},haskey:{min:2,max:2},indexof:{min:2,max:2},disjoint:{min:2,max:2},intersects:{min:2,max:2},touches:{min:2,max:2},crosses:{min:2,max:2},within:{min:2,max:2},contains:{min:2,max:2},overlaps:{min:2,max:2},equals:{min:2,max:2},relate:{min:3,max:3},intersection:{min:2,max:2},union:{min:1,max:2},difference:{min:2,max:2},symmetricdifference:{min:2,max:2},clip:{min:2,max:2},cut:{min:2,max:2},area:{min:1,max:2},areageodetic:{min:1,max:2},length:{min:1,max:2},lengthgeodetic:{min:1,max:2},distancegeodetic:{min:2,max:3},distance:{min:2,max:3},densify:{min:2,max:3},densifygeodetic:{min:2,max:3},generalize:{min:2,max:4},buffer:{min:2,max:3},buffergeodetic:{min:2,max:3},offset:{min:2,max:6},rotate:{min:2,max:3},issimple:{min:1,max:1},simplify:{min:1,max:1},convexhull:{min:1,max:1},centroid:{min:1,max:1},nearestcoordinate:{min:2,max:2},nearestvertex:{min:2,max:2},isselfintersecting:{min:1,max:1},multiparttosinglepart:{min:1,max:1},setgeometry:{min:2,max:2},portal:{min:1,max:1},getuser:{min:0,max:2},subtypes:{min:1,max:1},subtypecode:{min:1,max:1},subtypename:{min:1,max:1},domain:{min:2,max:3},convertdirection:{min:3,max:3},sqltimestamp:{min:1,max:3},schema:{min:1,max:1}},n={functionDefinitions:new Map,constantDefinitions:new Map},a={functionDefinitions:new Map,constantDefinitions:new Map};for(const b of["pi","infinity"])a.constantDefinitions.set(b,{type:"constant"}),n.constantDefinitions.set(b,{type:"constant"});a.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"newline",type:"constant"}]}),n.constantDefinitions.set("textformatting",{type:"namespace",key:"textformatting",members:[{key:"backwardslash",type:"constant"},{key:"tab",type:"constant"},{key:"singlequote",type:"constant"},{key:"doublequote",type:"constant"},{key:"forwardslash",type:"constant"},{key:"newline",type:"constant"}]});for(const b in e){const t=e[b];a.functionDefinitions.set(b,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]}),n.functionDefinitions.set(b,{overloads:[{type:"function",parametersInfo:{min:t.min,max:t.max}}]})}const t=new Set(["featureset","featuresetbyid","featuresetbyname","featuresetbyassociation","featuresetbyrelationshipname","featuresetbyurl","getfeatureset","getuser","attachments","featuresetbyportalitem","getfeaturesetinfo","filterbysubtypecode"]),m=new Set(["disjoint","intersects","touches","crosses","within","contains","overlaps","equals","relate","intersection","nearestvertex","nearestcoordinate","union","difference","symmetricdifference","clip","cut","area","areageodetic","length","length3d","lengthgeodetic","distance","distancegeodetic","densify","densifygeodetic","generalize","buffer","buffergeodetic","offset","rotate","issimple","convexhull","simplify","multiparttosinglepart"]);function i(e){return"string"==typeof e||e instanceof String}function o(e,t){const m="sync"===t?n:a;m.functionDefinitions.has(e.name.toLowerCase())?m.functionDefinitions.get(e.name.toLowerCase())?.overloads.push({type:"function",parametersInfo:{min:e.min,max:e.max}}):m.functionDefinitions.set(e.name.toLowerCase(),{overloads:[{type:"function",parametersInfo:{min:e.min,max:e.max}}]})}function s(e,n){if(e)for(const a of e)r(a,n)}function r(e,n){if(e&&!1!==n(e))switch(e.type){case"ImportDeclaration":s(e.specifiers,n),r(e.source,n);break;case"ExportNamedDeclaration":r(e.declaration,n);break;case"ArrayExpression":s(e.elements,n);break;case"AssignmentExpression":case"BinaryExpression":case"LogicalExpression":r(e.left,n),r(e.right,n);break;case"BlockStatement":case"Program":s(e.body,n);break;case"BreakStatement":case"ContinueStatement":case"EmptyStatement":case"Identifier":case"Literal":break;case"CallExpression":r(e.callee,n),s(e.arguments,n);break;case"ExpressionStatement":r(e.expression,n);break;case"ForInStatement":r(e.left,n),r(e.right,n),r(e.body,n);break;case"ForStatement":r(e.init,n),r(e.test,n),r(e.update,n),r(e.body,n);break;case"WhileStatement":r(e.test,n),r(e.body,n);break;case"FunctionDeclaration":r(e.id,n),s(e.params,n),r(e.body,n);break;case"IfStatement":r(e.test,n),r(e.consequent,n),r(e.alternate,n);break;case"MemberExpression":r(e.object,n),r(e.property,n);break;case"ObjectExpression":s(e.properties,n);break;case"Property":r(e.key,n),r(e.value,n);break;case"ReturnStatement":case"UnaryExpression":case"UpdateExpression":r(e.argument,n);break;case"VariableDeclaration":s(e.declarations,n);break;case"VariableDeclarator":r(e.id,n),r(e.init,n);break;case"TemplateLiteral":s(e.expressions,n),s(e.quasis,n)}}function c(e,n){let a=!1;const t=n.toLowerCase();return r(e,(e=>!a&&("Identifier"===e.type&&e.name&&e.name.toLowerCase()===t&&(a=!0),!0))),a}function x(e){const n=[];return r(e,(e=>("ImportDeclaration"===e.type&&e.source&&e.source.value&&n.push({libname:e.specifiers[0].local.name.toLowerCase(),source:e.source.value}),!0))),n}function p(e,n){let a=!1;const t=n.toLowerCase();return r(e,(e=>!a&&("CallExpression"!==e.type||"Identifier"!==e.callee.type||!e.callee.name||e.callee.name.toLowerCase()!==t||(a=!0,!1)))),a}function l(e){const n=[];return r(e,(e=>"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?n.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&n.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1))),n}function u(e){const n=[];return r(e,(e=>{if("CallExpression"===e.type){if("Identifier"===e.callee.type&&"expects"===e.callee.name.toLowerCase()){let a="";for(let t=0;t<(e.arguments||[]).length;t++)0===t?"Identifier"===e.arguments[t].type&&(a=e.arguments[t].name.toLowerCase()):a&&"Literal"===e.arguments[t].type&&i(e.arguments[t].value)&&n.push(a+"."+e.arguments[t].value.toLowerCase());return!1}if("Identifier"===e.callee.type&&["domainname","domaincode","domain","haskey"].includes(e.callee.name.toLowerCase())&&e.arguments.length>=2){let a="";return"Identifier"===e.arguments[0].type&&(a=e.arguments[0].name.toLowerCase()),a&&"Literal"===e.arguments[1].type&&i(e.arguments[1].value)&&n.push(a+"."+e.arguments[1].value.toLowerCase()),!1}}return"MemberExpression"!==e.type||"Identifier"!==e.object.type||(!1===e.computed&&e.object&&e.object.name&&e.property&&"Identifier"===e.property.type&&e.property.name?n.push(e.object.name.toLowerCase()+"."+e.property.name.toLowerCase()):e.object&&e.object.name&&e.property&&"Literal"===e.property.type&&"string"==typeof e.property.value&&n.push(e.object.name.toLowerCase()+"."+e.property.value?.toString().toLowerCase()),!1)})),n}function f(e,n){const a=[];if(void 0!==n.params&&null!==n.params)for(let t=0;t<n.params.length;t++)a.push("any");return{name:e,return:"any",params:a}}function y(e){const n=[];return r(e,(e=>("CallExpression"===e.type&&"Identifier"===e.callee.type&&n.push(e.callee.name.toLowerCase()),!0))),n}function d(e,n=[]){let a=null;if(void 0===e.usesFeatureSet){null===a&&(a=y(e)),e.usesFeatureSet=!1;for(let n=0;n<a.length;n++)t.has(a[n])&&(e.usesFeatureSet=!0,e.isAsync=!0);if(!1===e.usesFeatureSet&&n&&n.length>0)for(const a of n)if(c(e,a)){e.usesFeatureSet=!0,e.isAsync=!0;break}}if(void 0===e.usesModules){e.usesModules=!1;x(e).length>0&&(e.usesModules=!0)}if(void 0===e.usesGeometry){e.usesGeometry=!1,null===a&&(a=y(e));for(let n=0;n<a.length;n++)m.has(a[n])&&(e.usesGeometry=!0)}}function g(e){const n=y(e);for(let a=0;a<n.length;a++)if(t.has(n[a]))return!0;return!1}export{o as addFunctionDeclaration,f as extractFunctionDeclaration,u as findExpectedFieldLiterals,l as findFieldLiterals,y as findFunctionCalls,x as findModuleImports,d as findScriptDependencies,a as fullArcadeApiAsync,n as fullArcadeApiSync,p as referencesFunction,c as referencesMember,g as scriptUsesFeatureSet,r as walk};
|