@arcgis/core 4.28.0-next.20230921 → 4.28.0-next.20230923
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/Graphic.js +1 -1
- package/PopupTemplate.js +1 -1
- package/TimeExtent.js +1 -1
- package/arcade/ArcadeDate.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/featureSetUtils.js +1 -1
- package/arcade/featureset/actions/Adapted.js +1 -1
- package/arcade/featureset/actions/GroupBy.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/featureset/support/FeatureSetIterator.js +1 -1
- package/arcade/featureset/support/StatsField.js +1 -1
- package/arcade/featureset/support/sqlUtils.js +1 -1
- package/arcade/functions/convertdirection.js +1 -1
- package/arcade/functions/date.js +1 -1
- package/arcade/functions/featuresetbase.js +1 -1
- package/arcade/functions/featuresetstats.js +1 -1
- package/arcade/treeAnalysis.js +1 -1
- package/arcade.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/02156fd04279f4d0fd3f.js +1 -0
- package/assets/esri/core/workers/chunks/07f6175b52366b2c28bd.js +1 -0
- package/assets/esri/core/workers/chunks/098073c3b2849f56dad8.js +1 -0
- package/assets/esri/core/workers/chunks/1186ba1947bd0c32f148.js +1 -0
- package/assets/esri/core/workers/chunks/186445b9fbedd261f684.js +1 -0
- package/assets/esri/core/workers/chunks/{580039dd491854ca325c.js → 21fc02f0d5716c4a7acd.js} +1 -1
- package/assets/esri/core/workers/chunks/{dff1c3c38dda2bd1a9d6.js → 246a954347fe9318190e.js} +1 -1
- package/assets/esri/core/workers/chunks/{c9dfb145f0c1d93e0fbd.js → 250bb6ae6f1992b5b4f9.js} +1 -1
- package/assets/esri/core/workers/chunks/{314c307e30f308a40a28.js → 25b09e9c0511c8e1cf8a.js} +1 -1
- package/assets/esri/core/workers/chunks/2a0b3b52ecd787a613bc.js +1 -0
- package/assets/esri/core/workers/chunks/2bc9b55e655968229ef4.js +1 -0
- package/assets/esri/core/workers/chunks/2f0924e7aa89e689da4a.js +1 -0
- package/assets/esri/core/workers/chunks/3f218d65ec451b2a1027.js +1 -0
- package/assets/esri/core/workers/chunks/425b5733bb88e6efe242.js +1 -0
- package/assets/esri/core/workers/chunks/45d6b942cdccca2ce44a.js +1 -0
- package/assets/esri/core/workers/chunks/4bf1a7e82a68ccee0ee1.js +1 -0
- package/assets/esri/core/workers/chunks/4c110c7f4f940ec58010.js +1 -0
- package/assets/esri/core/workers/chunks/{bde89b2684b6185992ef.js → 4ed77097e69fa3096ce4.js} +1 -1
- package/assets/esri/core/workers/chunks/4fe5bac782a742d5b1c0.js +1 -0
- package/assets/esri/core/workers/chunks/{1cbaba30f55f00f7498b.js → 51324d042f469f3b8914.js} +1 -1
- package/assets/esri/core/workers/chunks/{3f4e9b1663ec521bfe00.js → 542ce10e1872399790b4.js} +1 -1
- package/assets/esri/core/workers/chunks/54d2b7e2ac4ba883bee8.js +1 -0
- package/assets/esri/core/workers/chunks/54ecb6cae310818d1aa2.js +1 -0
- package/assets/esri/core/workers/chunks/57c932e289d89d97da4b.js +1 -0
- package/assets/esri/core/workers/chunks/{6403de6fc067cf8f7436.js → 592c1fb531f2be928e8a.js} +1 -1
- package/assets/esri/core/workers/chunks/59a807220d6f0dd18776.js +1 -0
- package/assets/esri/core/workers/chunks/59dff10d7ad2b1bf469e.js +1 -0
- package/assets/esri/core/workers/chunks/609a475ab395f2ce63e2.js +1 -0
- package/assets/esri/core/workers/chunks/612c485c5aad1548d708.js +1 -0
- package/assets/esri/core/workers/chunks/{2bb69d76a13564e8e455.js → 645ba2d5c10184632d23.js} +1 -1
- package/assets/esri/core/workers/chunks/{332689bf60d246485993.js → 65186e168dd112ac6221.js} +1 -1
- package/assets/esri/core/workers/chunks/6b9248fb2d6aadbce7bb.js +1 -0
- package/assets/esri/core/workers/chunks/709465832d306e02df52.js +1 -0
- package/assets/esri/core/workers/chunks/72c5bd6f7b8541b8d69e.js +1 -0
- package/assets/esri/core/workers/chunks/{bbc0dcd316c5598bc9ad.js → 74368a5213def6c200a2.js} +1 -1
- package/assets/esri/core/workers/chunks/{94188fe381239d48a975.js → 76483c9a8848f3106126.js} +1 -1
- package/assets/esri/core/workers/chunks/7aa58c96798447ce5907.js +1 -0
- package/assets/esri/core/workers/chunks/7d078b8b9997b5300c0a.js +1 -0
- package/assets/esri/core/workers/chunks/7fe641cf1467496e670a.js +1 -0
- package/assets/esri/core/workers/chunks/{df8f62beb36fb9d2ac81.js → 810c8d6ff19976fd1366.js} +1 -1
- package/assets/esri/core/workers/chunks/8458ed96f3e72814cef2.js +1 -0
- package/assets/esri/core/workers/chunks/{243a4eed107d363dfad8.js → 887652bbdb3b71d0a089.js} +1 -1
- package/assets/esri/core/workers/chunks/896bfda379cf620b63ec.js +1 -0
- package/assets/esri/core/workers/chunks/91c9f0d59eaed7a735ce.js +1 -0
- package/assets/esri/core/workers/chunks/{1f7e041140088f8ac489.js → 97073a60f0ea2a397165.js} +1 -1
- package/assets/esri/core/workers/chunks/97658ac749664a07c92d.js +1 -0
- package/assets/esri/core/workers/chunks/{1da74a306aa5b4eacaae.js → 9866bbaeaf885c2dcca9.js} +1 -1
- package/assets/esri/core/workers/chunks/a39ae87298ac674f129d.js +1 -0
- package/assets/esri/core/workers/chunks/a7b3048c19348540e004.js +1 -0
- package/assets/esri/core/workers/chunks/a8ca4b116909e47722f9.js +1 -0
- package/assets/esri/core/workers/chunks/{101f776316a85b708927.js → a99070ec4c06c435b744.js} +1 -1
- package/assets/esri/core/workers/chunks/ab145d13932d87dd7bf9.js +1 -0
- package/assets/esri/core/workers/chunks/{77c15b1c2729c780f75a.js → aeeeb386134b341d7ad2.js} +1 -1
- package/assets/esri/core/workers/chunks/{3ca759f72d3bb29e9ea9.js → af54b233f6d6ad70b4a3.js} +2 -2
- package/assets/esri/core/workers/chunks/b9146daae8457224fd08.js +1 -0
- package/assets/esri/core/workers/chunks/bcdd2e8841abcb4df6da.js +1 -0
- package/assets/esri/core/workers/chunks/be05cc0cdabd5e051045.js +1 -0
- package/assets/esri/core/workers/chunks/c5f5f37bef11c6fbdc40.js +1 -0
- package/assets/esri/core/workers/chunks/d414dba3179bcf75bc6b.js +1 -0
- package/assets/esri/core/workers/chunks/{b449d6bd5851187d419f.js → d6e5408f9fa6b4bcd118.js} +1 -1
- package/assets/esri/core/workers/chunks/d9fb500cbd0f04d219a3.js +1 -0
- package/assets/esri/core/workers/chunks/e0dd6789fb797e9b7206.js +1 -0
- package/assets/esri/core/workers/chunks/{6f271249e042086d5a16.js → e4e49deae8da74f629db.js} +1 -1
- package/assets/esri/core/workers/chunks/e5dcff7a4fa84ba09670.js +1 -0
- package/assets/esri/core/workers/chunks/{f508ccfde6425dabe9ac.js → ee0bf611d191103a7046.js} +1 -1
- package/assets/esri/core/workers/chunks/{ed1fbc1bc8d50453e2f5.js → f793cd41fcd022baeea2.js} +1 -1
- package/assets/esri/core/workers/chunks/fad6a7bb82a0a2df726f.js +1 -0
- package/assets/esri/themes/base/widgets/_FeatureForm.scss +2 -84
- package/assets/esri/themes/base/widgets/_OrientedImageryViewer.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/chunks/arcade.js +1 -1
- package/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/accessorSupport/diffUtils.js +1 -1
- package/core/has.js +1 -1
- package/core/number.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/core/sql/DateOnly.js +1 -1
- package/core/sql/WhereClause.js +1 -1
- package/core/sql.js +1 -1
- package/core/timeUtils.js +1 -1
- package/identity/IdentityForm.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +48 -203
- package/layers/LinkChartLayer.js +1 -1
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/graphics/applyEditsUtils.js +5 -0
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/EditBusLayer.js +1 -1
- package/layers/orientedImagery/core/CameraOrientationLTP.js +1 -1
- package/layers/orientedImagery/core/ElevationSourceDefinitions.js +5 -0
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/orientedImagery/core/cameraOrientationFactory.js +1 -1
- package/layers/orientedImagery/core/utils.js +5 -0
- package/layers/orientedImagery/transformations/groundToImageUtils.js +1 -1
- package/layers/support/fieldProperties.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/kmlUtils.js +1 -1
- package/layers/support/rasterFunctions/BaseRasterFunction.js +1 -1
- package/layers/support/rasterFunctions/creators/createDataManagementFunctions.js +1 -1
- package/networks/Network.js +1 -1
- package/package.json +1 -1
- package/request.js +1 -1
- package/rest/featureService/FeatureService.js +1 -1
- package/rest/support/DirectionsFeatureSet.js +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/statistics/support/ageUtils.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/smartMapping/support/utils.js +1 -1
- package/support/apiKeyUtils.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/revision.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/time/TimeReference.js +1 -1
- package/time/timeReferenceUtils.js +1 -1
- package/versionManagement/VersionManagementService.js +1 -1
- package/versionManagement/support/EditMomentStack.js +5 -0
- package/versionManagement/support/versionManagementUtils.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/ManagedCanvas.js +5 -0
- package/views/2d/engine/Stage.js +1 -1
- package/views/2d/engine/webgl/GroupContainer.js +1 -1
- package/views/2d/engine/webgl/Painter.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/engine/webgl/WorldExtentClipRenderer.js +1 -1
- package/views/2d/engine/webgl/effects/FeatureEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HighlightEffect.js +1 -1
- package/views/2d/engine/webgl/effects/HittestEffectVTL.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/interactive/editingTools/TransformTool.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
- package/views/2d/layers/graphics/BaseGraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicContainer.js +1 -1
- package/views/2d/layers/graphics/GraphicsView2D.js +1 -1
- package/views/2d/layers/graphics/HighlightGraphicContainer.js +1 -1
- package/views/2d/layers/imagery/VectorFieldView2D.js +1 -1
- package/views/2d/layers/support/DisplayGL.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/glTF/loader.js +1 -1
- package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/visualElements/ExtendedLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/ParallelLineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/PointVisualElement.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/graphicUtils.js +1 -1
- package/views/3d/layers/i3s/featureEditing.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/buffer/glUtil.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/viewpointUtils.js +1 -1
- package/views/3d/webgl-engine/Stage.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPluginInput.js +1 -1
- package/views/3d/webgl-engine/effects/blit/Blit.js +5 -0
- 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/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/RenderSlot.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureFactory.js +1 -1
- package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/bufferLayouts.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/edgeProcessing.js +1 -1
- package/views/View.js +1 -1
- package/views/interactive/tooltip/TooltipContentWithHelpMessage.js +1 -1
- package/views/interactive/tooltip/TooltipEditableField.js +1 -1
- package/views/interactive/tooltip/constraintUtils.js +1 -1
- package/views/interactive/tooltip/content/Fields.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawCircle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawMesh.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPoint.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolygon.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawPolyline.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDrawRectangle.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentExtentScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentReshapeEdgeOffset.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformAbsolute.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformRotate.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTransformScale.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphic.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateGraphicZ.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertex.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexXY.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentTranslateVertexZ.js +1 -1
- package/views/support/angularMeasurementUtils.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/ShaderTranspiler.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/contextUtils.js +1 -1
- package/webmap/InitialViewProperties.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attachments/AttachmentsViewModel.js +1 -1
- package/widgets/Attachments.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesTree.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/Label.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/LevelItem.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhasePicker/BuildingPhasePicker.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/Compass.js +1 -1
- package/widgets/CoordinateConversion.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/DirectionalPad.js +1 -1
- package/widgets/Directions/components/SaveLayer.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/components/FooterActions.js +1 -1
- package/widgets/Editor/components/Notices.js +1 -1
- package/widgets/Editor/components/PanelContent.js +1 -1
- package/widgets/Editor/components/PanelToolbar.js +1 -1
- package/widgets/Editor/components/Prompt.js +1 -1
- package/widgets/Editor/components/Settings.js +1 -1
- package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
- package/widgets/Editor/components/UploadDetails.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/components/LegendItem.js +1 -1
- package/widgets/ElevationProfile/components/SettingsButton.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureRelationship.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/FeatureContentMixin.js +1 -1
- package/widgets/Feature/support/FeatureElementInfo.js +1 -1
- package/widgets/Feature.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/GroupInput.js +1 -1
- package/widgets/FeatureForm/css.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/Features/FeaturesRelatedRecords.js +1 -1
- package/widgets/Features.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Histogram.js +1 -1
- package/widgets/HistogramRangeSlider.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/ListItemPanel.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/Classic.js +1 -1
- package/widgets/Legend/styles/support/relationshipUtils.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/LineOfSight.js +1 -1
- package/widgets/Locate.js +1 -1
- package/widgets/NavigationToggle.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleRangeSlider/scalePreviewUtils.js +1 -1
- package/widgets/ScaleRangeSlider.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
- package/widgets/ShadowCast/components/DurationConfigurator.js +1 -1
- package/widgets/ShadowCast/components/ShadowTooltipContent.js +1 -1
- package/widgets/ShadowCast/components/ThresholdConfigurator.js +1 -1
- package/widgets/ShadowCast.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slice.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Swipe.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/Track.js +1 -1
- package/widgets/UtilityNetworkAssociations/UtilityNetworkAssociationsLineSymbolPicker.js +1 -1
- package/widgets/UtilityNetworkAssociations.js +1 -1
- package/widgets/UtilityNetworkTrace.js +1 -1
- package/widgets/UtilityNetworkValidateTopology.js +1 -1
- package/widgets/ValuePicker.js +1 -1
- package/widgets/VideoPlayer/components/PlayerControlsGroup.js +1 -1
- package/widgets/VideoPlayer/components/SettingsButton.js +1 -1
- package/widgets/VideoPlayer.js +1 -1
- package/widgets/Weather/LabeledSlider.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Zoom/IconButton.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSlider.js +1 -1
- package/widgets/smartMapping/HeatmapSlider.js +1 -1
- package/widgets/smartMapping/OpacitySlider.js +1 -1
- package/widgets/smartMapping/SizeSlider.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/Heading.js +1 -1
- package/widgets/support/LabeledSwitch.js +1 -1
- package/widgets/support/MeasurementWidgetContent.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/SketchTooltipControls.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/TimePicker.js +1 -1
- package/widgets/support/TimezonePicker.js +1 -1
- package/widgets/support/UnitSelect.js +1 -1
- package/widgets/support/dateUtils.js +1 -1
- package/assets/esri/core/workers/chunks/072b4e041b8630c513a0.js +0 -1
- package/assets/esri/core/workers/chunks/092920c25cac89c038ee.js +0 -1
- package/assets/esri/core/workers/chunks/114269dda1d296893908.js +0 -1
- package/assets/esri/core/workers/chunks/126df6237fc80608344e.js +0 -1
- package/assets/esri/core/workers/chunks/1b3655f5bf5d90fa8730.js +0 -1
- package/assets/esri/core/workers/chunks/1c83f47d446f2bca1721.js +0 -1
- package/assets/esri/core/workers/chunks/1cf7bb514e7eefc3e9c6.js +0 -1
- package/assets/esri/core/workers/chunks/21a9c8aa2a9e9990df41.js +0 -1
- package/assets/esri/core/workers/chunks/24629402c647ef6b5f6b.js +0 -1
- package/assets/esri/core/workers/chunks/2a1c1be9c202462cf54d.js +0 -1
- package/assets/esri/core/workers/chunks/2cb36f9686693234991a.js +0 -1
- package/assets/esri/core/workers/chunks/2d0d03cbea83c868edba.js +0 -1
- package/assets/esri/core/workers/chunks/2e130cb2f1038055c07b.js +0 -1
- package/assets/esri/core/workers/chunks/3619e04cbb6691549014.js +0 -1
- package/assets/esri/core/workers/chunks/3dbfb4f370a874393822.js +0 -1
- package/assets/esri/core/workers/chunks/406db5c90271a3a203d4.js +0 -1
- package/assets/esri/core/workers/chunks/4369a6c1e0a82ab4db6a.js +0 -1
- package/assets/esri/core/workers/chunks/4f4a424d1747d04501df.js +0 -1
- package/assets/esri/core/workers/chunks/59c00d6fba0fd1c03d01.js +0 -1
- package/assets/esri/core/workers/chunks/5a5720caa64a46daadf9.js +0 -1
- package/assets/esri/core/workers/chunks/5edb99b58549cd66b394.js +0 -1
- package/assets/esri/core/workers/chunks/6203ddf6caad3d356327.js +0 -1
- package/assets/esri/core/workers/chunks/650a317b6dc245a7060f.js +0 -1
- package/assets/esri/core/workers/chunks/7a358b1fd0c0cce59e9b.js +0 -1
- package/assets/esri/core/workers/chunks/83d1a1b3d371c991cc4c.js +0 -1
- package/assets/esri/core/workers/chunks/846b7a81b870c8b238a1.js +0 -1
- package/assets/esri/core/workers/chunks/8ab832468300cc4feb5a.js +0 -1
- package/assets/esri/core/workers/chunks/bc1dc6383e60e7e61d50.js +0 -1
- package/assets/esri/core/workers/chunks/bc6323bdc98013da6fe5.js +0 -1
- package/assets/esri/core/workers/chunks/c4bb67150ccd01ea6014.js +0 -1
- package/assets/esri/core/workers/chunks/c60cf62f374e71e562fc.js +0 -1
- package/assets/esri/core/workers/chunks/c6ea5aac232d1eca04dd.js +0 -1
- package/assets/esri/core/workers/chunks/c8438c2d9ac48afe4033.js +0 -1
- package/assets/esri/core/workers/chunks/c8f239c25fe864f0e47a.js +0 -1
- package/assets/esri/core/workers/chunks/cad260881653567bc8f9.js +0 -1
- package/assets/esri/core/workers/chunks/d824f4b405a72cd2fa74.js +0 -1
- package/assets/esri/core/workers/chunks/dd7508d4016715371e0c.js +0 -1
- package/assets/esri/core/workers/chunks/e55f7fc7eff0074ce0fc.js +0 -1
- package/assets/esri/core/workers/chunks/eef27d305023034084a4.js +0 -1
- package/assets/esri/core/workers/chunks/f38c54ada9e7012a2960.js +0 -1
- package/assets/esri/core/workers/chunks/f5e0ff5292b9fd18fc92.js +0 -1
- package/assets/esri/core/workers/chunks/f5eb8b5021620be7538e.js +0 -1
- package/core/watchUtils.d.ts +0 -4
- package/core/watchUtils.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.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ArcadeDate as e}from"../../ArcadeDate.js";import{SqlError as r,SqlErrorCodes as t}from"./errorsupport.js";import{FeatureServiceDatabaseType as a,isDate as n,isArcadeTime as s,isArcadeDate as o,isArcadeDateOnly as c}from"./shared.js";import{TimeOnly as i}from"../../../core/sql/TimeOnly.js";import{WhereClause as u}from"../../../core/sql/WhereClause.js";import{DateTime as l}from"luxon";function d(e,r){return p(e?.parseTree,r,e?.parameters)}function m(e,r,t){return p(e,r,t)}function y(e,r,t,n){return u.create(p(e.parseTree,a.Standardised,e.parameters,r,t),n,{timeZone:e.timeReferenceZone})}function f(e,r,t="AND"){return u.create("(("+d(e,a.Standardised)+")"+t+"("+d(r,a.Standardised)+"))",e.fieldsIndex,{timeZone:e.timeReferenceZone})}function p(e,i,u,l=null,d=null,m=null){let y,f,w,A;switch(e.type){case"interval":return R(p(e.value,i,u,l,d,m),e.qualifier,e.op);case"case-expression":{let r=" CASE ";"simple"===e.format&&(r+=p(e.operand,i,u,l,d,m));for(let t=0;t<e.clauses.length;t++)r+=" WHEN "+p(e.clauses[t].operand,i,u,l,d,m)+" THEN "+p(e.clauses[t].value,i,u,l,d,m);return null!==e.else&&(r+=" ELSE "+p(e.else,i,u,l,d,m)),r+=" END ",r}case"parameter":{const r=u[e.value.toLowerCase()];if("string"==typeof r){return"'"+u[e.value.toLowerCase()].toString().replaceAll("'","''")+"'"}if(n(r))return E(r,i,m);if(s(r))return L(r,i);if(o(r))return h(r,i,m);if(c(r))return T(r,i);if(r instanceof Array){const e=[];for(let t=0;t<r.length;t++)"string"==typeof r[t]?e.push("'"+r[t].toString().replaceAll("'","''")+"'"):n(r[t])?e.push(E(r[t],i,m)):s(r[t])?e.push(L(r[t],i)):o(r[t])?e.push(h(r[t],i,m)):c(r[t])?e.push(T(r[t],i)):e.push(r[t].toString());return e}return r.toString()}case"expression-list":f=[];for(const r of e.value)f.push(p(r,i,u,l,d,m));return f;case"unary-expression":return" ( NOT "+p(e.expr,i,u,l,d,m)+" ) ";case"binary-expression":switch(e.operator){case"AND":return" ("+p(e.left,i,u,l,d,m)+" AND "+p(e.right,i,u,l,d,m)+") ";case"OR":return" ("+p(e.left,i,u,l,d,m)+" OR "+p(e.right,i,u,l,d,m)+") ";case"IS":if("null"!==e.right.type)throw new r(t.UnsupportedIsRhs);return" ("+p(e.left,i,u,l,d,m)+" IS NULL )";case"ISNOT":if("null"!==e.right.type)throw new r(t.UnsupportedIsRhs);return" ("+p(e.left,i,u,l,d,m)+" IS NOT NULL )";case"IN":return y=[],"expression-list"===e.right.type?(y=p(e.right,i,u,l,d)," ("+p(e.left,i,u,l,d,m)+" IN ("+y.join(",")+")) "):(A=p(e.right,i,u,l,d,m),A instanceof Array?" ("+p(e.left,i,u,l,d,m)+" IN ("+A.join(",")+")) ":" ("+p(e.left,i,u,l,d,m)+" IN ("+A+")) ");case"NOT IN":return y=[],"expression-list"===e.right.type?(y=p(e.right,i,u,l,d)," ("+p(e.left,i,u,l,d,m)+" NOT IN ("+y.join(",")+")) "):(A=p(e.right,i,u,l,d,m),A instanceof Array?" ("+p(e.left,i,u,l,d,m)+" NOT IN ("+A.join(",")+")) ":" ("+p(e.left,i,u,l,d,m)+" NOT IN ("+A+")) ");case"BETWEEN":return w=p(e.right,i,u,l,d,m)," ("+p(e.left,i,u,l,d,m)+" BETWEEN "+w[0]+" AND "+w[1]+" ) ";case"NOTBETWEEN":return w=p(e.right,i,u,l,d,m)," ("+p(e.left,i,u,l,d,m)+" NOT BETWEEN "+w[0]+" AND "+w[1]+" ) ";case"LIKE":return""!==e.escape?" ("+p(e.left,i,u,l,d,m)+" LIKE "+p(e.right,i,u,l,d,m)+" ESCAPE '"+e.escape+"') ":" ("+p(e.left,i,u,l,d,m)+" LIKE "+p(e.right,i,u,l,d,m)+") ";case"NOT LIKE":return""!==e.escape?" ("+p(e.left,i,u,l,d,m)+" NOT LIKE "+p(e.right,i,u,l,d,m)+" ESCAPE '"+e.escape+"') ":" ("+p(e.left,i,u,l,d,m)+" NOT LIKE "+p(e.right,i,u,l,d,m)+") ";case"<>":case"<":case">":case">=":case"<=":case"=":case"*":case"-":case"+":case"/":return" ("+p(e.left,i,u,l,d,m)+" "+e.operator+" "+p(e.right,i,u,l,d,m)+") ";case"||":return" ("+p(e.left,i,u,l,d,m)+" "+(i===a.SqlServer?"+":e.operator)+" "+p(e.right,i,u,l,d,m)+") "}throw new r(t.UnsupportedOperator,{operator:e.operator});case"null":return"null";case"boolean":return!0===e.value?"1":"0";case"string":return"'"+e.value.toString().replaceAll("'","''")+"'";case"timestamp":return S(e.value,i,m,!0===e.withtimezone);case"date":return E(e.value,i,m);case"time":return L(e.value,i);case"number":return e.value.toString();case"current-time":return I("date"===e.mode,i);case"column-reference":return l?l.toLowerCase()===e.column.toLowerCase()?"("+d+")":!0===e.delimited?`"${e.column.split('"').join('""')}"`:e.column:e.column;case"data-type":return e.value;case"function":{const r=p(e.args,i,u,l,d,m);return g(e.name,r,i)}}throw new r(t.UnsupportedSyntax,{node:e.type})}function g(e,n,s){switch(e.toLowerCase().trim()){case"cos":case"sin":case"tan":case"cosh":case"tanh":case"sinh":case"acos":case"asin":case"atan":case"floor":case"log10":case"log":case"abs":if(1!==n.length)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${n[0]})`;case"ceiling":case"ceil":if(1!==n.length)throw new r(t.InvalidFunctionParameters,{function:"ceiling"});switch(s){case a.Standardised:case a.StandardisedNoInterval:}return"CEILING("+n[0]+")";case"mod":case"power":case"nullif":if(2!==n.length)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${n[0]},${n[1]})`;case"round":if(2===n.length)return"ROUND("+n[0]+","+n[1]+")";if(1===n.length)return"ROUND("+n[0]+")";throw new r(t.InvalidFunctionParameters,{function:"round"});case"truncate":if(n.length<1||n.length>2)throw new r(t.InvalidFunctionParameters,{function:"truncate"});return s===a.SqlServer?"ROUND("+n[0]+(1===n.length?"0":","+n[1])+",1)":"TRUNCATE("+n[0]+(1===n.length?")":","+n[1]+")");case"char_length":case"len":if(1!==n.length)throw new r(t.InvalidFunctionParameters,{function:"char_length"});switch(s){case a.SqlServer:return"LEN("+n[0]+")";case a.Oracle:return"LENGTH("+n[0]+")";default:return"CHAR_LENGTH("+n[0]+")"}case"coalesce":case"concat":{if(n.length<1)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase()});let a=e.toUpperCase().trim()+"(";for(let e=0;e<n.length;e++)0!==e&&(a+=","),a+=n[e];return a+=")",a}case"lower":case"lcase":if(1!==n.length)throw new r(t.InvalidFunctionParameters,{function:"lower"});return"LOWER("+n[0]+")";case"upper":case"ucase":if(1!==n.length)throw new r(t.InvalidFunctionParameters,{function:"upper"});return"UPPER("+n[0]+")";case"substring":{let e="";switch(s){case a.Oracle:return e="SUBSTR("+n[0]+","+n[1],3===n.length&&(e+=","+n[2]),e+=")",e;case a.SqlServer:return e=3===n.length?"SUBSTRING("+n[0]+","+n[1]+","+n[2]+")":"SUBSTRING("+n[0]+", "+n[1]+", LEN("+n[0]+") - "+n[1]+")",e;default:return e="SUBSTRING("+n[0]+" FROM "+n[1],3===n.length&&(e+=" FOR "+n[2]),e+=")",e}}case"extract":return"EXTRACT("+n[0].replaceAll("'","")+" FROM "+n[1]+")";case"cast":{let e="";switch(s){case a.Oracle:switch(n[1].type){case"date":e="DATE";break;case"float":e="DOUBLE";break;case"integer":e="INTEGER";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+n[1].size.toString()+")"}return`CAST(${n[0]} AS ${e})`;case a.Postgres:switch(n[1].type){case"date":e="DATE";break;case"float":e="DOUBLE PRECISION";break;case"integer":e="INT";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+n[1].size.toString()+")"}return`CAST(${n[0]} AS ${e})`;case a.SqlServer:switch(n[1].type){case"date":e="DATE";break;case"float":e="FLOAT";break;case"integer":e="INT";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="DATETIME";break;case"varchar":e="VARCHAR("+n[1].size.toString()+")"}return`CAST(${n[0]} AS ${e})`;default:switch(n[1].type){case"date":e="DATE";break;case"float":e="FLOAT";break;case"integer":e="INTEGER";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+n[1].size.toString()+")"}return`CAST(${n[0]} AS ${e})`}}}throw new r(t.InvalidFunctionParameters,{function:e})}function h(r,t,n,s){n?.outputTimeReference&&(r=e.arcadeDateAndZoneToArcadeDate(r,n?.outputTimeReference));const o=r.toDateTime(),c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function T(e,r,t){switch(r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return e.toSQLWithKeyword();case a.Oracle:return`TO_DATE('${e.toFormat("Y-MM-DD")}'`;case a.SqlServer:return`'${e.toFormat("Y-MM-DD")}'`;case a.PGDB:return`#${e.toFormat("Y-MM-DD")}#`;case a.Postgres:return`TIMESTAMP '${e.toFormat("Y-MM-DD")}'`;default:return e.toSQLWithKeyword()}}function L(e,r){switch(e instanceof i&&(e=e.toStorageString()),r){case a.Oracle:return`TO_DATE('${e}', 'HH24:MI:SS')`;case a.SqlServer:return`'${e}'`;case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:case a.Postgres:default:return`time '${e}'`}}function S(e,r,t,s){let o=n(e)?l.fromJSDate(e):l.fromSQL(e);const c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t?.inputTimeReference&&(o=l.fromObject({day:o.day,year:o.year,month:o.month,hour:o.hour,minute:o.minute,second:o.second,millisecond:o.millisecond},{zone:t.inputTimeReference})),t?.outputTimeReference&&(o=o.setZone(t.outputTimeReference)),r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function E(e,r,t,s){let o=n(e)?l.fromJSDate(e):l.fromSQL(e);const c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t?.inputTimeReference&&(o=l.fromObject({day:o.day,year:o.year,month:o.month,hour:o.hour,minute:o.minute,second:o.second,millisecond:o.millisecond},{zone:t.inputTimeReference})),t?.outputTimeReference&&(o=o.setZone(t.outputTimeReference)),r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function I(e,r){switch(r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:case a.Oracle:return e?"CURRENT_DATE":"CURRENT_TIMESTAMP";case a.SqlServer:return e?"CAST(GETDATE() AS DATE)":"GETDATE()";case a.PGDB:case a.Postgres:default:return e?"CURRENT_DATE":"CURRENT_TIMESTAMP"}}function w(e,r,t={}){const a={},n={},s={esriFieldTypeSmallInteger:"integer",esriFieldTypeInteger:"integer",esriFieldTypeBigInteger:"integer",esriFieldTypeSingle:"double",esriFieldTypeDouble:"double",esriFieldTypeString:"string",esriFieldTypeTimeOnly:"time-only",esriFieldTypeDateOnly:"date-only",esriFieldTypeTimestampOffset:"timestamp-offset",esriFieldTypeDate:"date",esriFieldTypeOID:"integer",esriFieldTypeGUID:"guid",esriFieldTypeGlobalID:"guid",oid:"integer",long:"integer","small-integer":"integer",integer:"integer","big-integer":"integer",single:"double","time-only":"time-only","date-only":"date-only","timestamp-offset":"timestemp-offset",double:"double",date:"date",guid:"guid",globalid:"guid",string:"string"};for(const o of r){const e=o.type?s[o.type]:void 0;a[o.name.toLowerCase()]=void 0===e?"":e}for(const o in t){const e=s[t[o]];n[o.toLowerCase()]=void 0===e?"":e}switch(A(a,e.parseTree,e.parameters,n)){case"double":return"double";case"integer":return"integer";case"date":return"date";case"date-only":return"date-only";case"time-only":return"time-only";case"timestamp-offset":return"timestamp-offset";case"string":return"string";case"global-id":case"guid":return"guid"}return""}function A(e,a,i,u){let l;switch(a.type){case"interval":return"integer";case"case-expression":{const r=[];if("simple"===a.format){for(let t=0;t<a.clauses.length;t++)r.push(A(e,a.clauses[t].value,i,u));null!==a.else&&r.push(A(e,a.else,i,u))}else{for(let t=0;t<a.clauses.length;t++)r.push(A(e,a.else,i,u));null!==a.else&&r.push(A(e,a.else,i,u))}return D(r)}case"parameter":{const e=u[a.value.toLowerCase()];if(void 0===e&&i){const e=i[a.value.toLowerCase()];if(void 0===e)return"";if(null===e)return"";if("string"==typeof e||e instanceof String)return"string";if("boolean"==typeof e)return"boolean";if(n(e))return"date";if(o(e))return"date";if(c(e))return"date-only";if(s(e))return"time-only";if("number"==typeof e)return e%1==0?"integer":"double"}return void 0===e?"":e}case"expression-list":{const r=[];for(const t of a.value)r.push(A(e,t,i,u));return r}case"unary-expression":return"boolean";case"binary-expression":switch(a.operator){case"AND":case"OR":case"IN":case"NOT IN":case"BETWEEN":case"NOTBETWEEN":case"LIKE":case"NOT LIKE":case"<>":case"<":case">":case">=":case"<=":case"=":return"boolean";case"IS":case"ISNOT":if("null"!==a.right.type)throw new r(t.UnsupportedIsRhs);return"boolean";case"*":case"-":case"+":case"/":return D([A(e,a.left,i,u),A(e,a.right,i,u)]);case"||":return"string";default:throw new r(t.UnsupportedOperator,{operator:a.operator})}case"null":return"";case"boolean":return"boolean";case"string":return"string";case"number":return null===a.value?"":a.value%1==0?"integer":"double";case"date":return"date";case"timestamp":return a.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"current-time":return"date";case"column-reference":{const r=e[a.column.toLowerCase()];return void 0===r?"":r}case"function":switch(a.name.toLowerCase()){case"cast":switch(a.args?.value[1]?.value.type??""){case"integer":case"smallint":return"integer";case"real":case"float":return"double";case"date":case"timestamp":return!0===a.args?.value[1]?.value?.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"varchar":return"string";default:return""}case"position":case"extract":case"char_length":case"mod":return"integer";case"round":if(l=A(e,a.args,i,u),l instanceof Array){if(l.length<=0)return"double";l=l[0]}return l;case"sign":return"integer";case"ceiling":case"floor":case"abs":return l=A(e,a.args,i,u),l instanceof Array&&(l=D(l)),"integer"===l||"double"===l?l:"double";case"area":case"length":case"log":case"log10":case"sin":case"cos":case"tan":case"asin":case"acos":case"atan":case"cosh":case"sinh":case"tanh":case"power":return"double";case"substring":case"trim":case"concat":case"lower":case"upper":return"string";case"truncate":return"double";case"nullif":case"coalesce":return l=A(e,a.args,i,u),l instanceof Array?l.length>0?l[0]:"":l}return""}throw new r(t.UnsupportedSyntax,{node:a.type})}const N={boolean:1,string:2,integer:3,double:4,date:5};function D(e){if(e){let r="";for(const t of e)""!==t&&(r=""===r||N[r]<N[t]?t:r);return r}return""}function b(e,r){return F(e.parseTree,r)}function v(e){return"column-reference"===e?.parseTree.type}function F(e,r){if(null==e)return!1;switch(e.type){case"when-clause":return F(e.operand,r)||F(e.value,r);case"case-expression":for(const t of e.clauses)if(F(t,r))return!0;return!("simple"!==e.format||!F(e.operand,r))||!(null===e.else||!F(e.else,r));case"parameter":case"null":case"boolean":case"date":case"timestamp":case"time":case"string":case"number":return!1;case"expression-list":for(const t of e.value)if(F(t,r))return!0;return!1;case"unary-expression":return F(e.expr,r);case"binary-expression":return F(e.left,r)||F(e.right,r);case"column-reference":return r.toLowerCase()===e.column.toLowerCase();case"function":return F(e.args,r)}return!1}function O(e){let r="";return r+=e.period.toUpperCase(),r}function R(e,r,t){let a="";return a="interval-period"===r.type?O(r):O(r.start)+" TO "+O(r.end),"INTERVAL "+t+" "+e+" "+a}export{T as arcadeDateOnlyToSqlString,h as arcadeDateToSqlString,f as combine,R as convertIntervalToSql,v as isSingleField,E as makeDateString,L as makeTimeString,S as makeTimestampString,I as makeToday,w as predictType,y as reformulateWithoutField,b as scanForField,d as toWhereClause,m as toWhereClauseFromTree,g as translateFunctionToDatabaseSpecific};
|
|
5
|
+
import{ArcadeDate as e}from"../../ArcadeDate.js";import{SqlError as r,SqlErrorCodes as t}from"./errorsupport.js";import{FeatureServiceDatabaseType as a,isDate as s,isArcadeTime as n,isArcadeDate as o,isArcadeDateOnly as c}from"./shared.js";import{TimeOnly as i}from"../../../core/sql/TimeOnly.js";import{WhereClause as u}from"../../../core/sql/WhereClause.js";import{DateTime as l}from"luxon";function d(e,r){return p(e?.parseTree,r,e?.parameters)}function m(e,r,t){return p(e,r,t)}function y(e,r,t,s){return u.create(p(e.parseTree,a.Standardised,e.parameters,r,t),s,e.timeZone)}function f(e,r,t="AND"){return u.create("(("+d(e,a.Standardised)+")"+t+"("+d(r,a.Standardised)+"))",e.fieldsIndex,e.timeZone)}function p(e,i,u,l=null,d=null,m=null){let y,f,w,A;switch(e.type){case"interval":return R(p(e.value,i,u,l,d,m),e.qualifier,e.op);case"case-expression":{let r=" CASE ";"simple"===e.format&&(r+=p(e.operand,i,u,l,d,m));for(let t=0;t<e.clauses.length;t++)r+=" WHEN "+p(e.clauses[t].operand,i,u,l,d,m)+" THEN "+p(e.clauses[t].value,i,u,l,d,m);return null!==e.else&&(r+=" ELSE "+p(e.else,i,u,l,d,m)),r+=" END ",r}case"parameter":{const r=u[e.value.toLowerCase()];if("string"==typeof r){return"'"+u[e.value.toLowerCase()].toString().replaceAll("'","''")+"'"}if(s(r))return E(r,i,m);if(n(r))return L(r,i);if(o(r))return h(r,i,m);if(c(r))return T(r,i);if(r instanceof Array){const e=[];for(let t=0;t<r.length;t++)"string"==typeof r[t]?e.push("'"+r[t].toString().replaceAll("'","''")+"'"):s(r[t])?e.push(E(r[t],i,m)):n(r[t])?e.push(L(r[t],i)):o(r[t])?e.push(h(r[t],i,m)):c(r[t])?e.push(T(r[t],i)):e.push(r[t].toString());return e}return r.toString()}case"expression-list":f=[];for(const r of e.value)f.push(p(r,i,u,l,d,m));return f;case"unary-expression":return" ( NOT "+p(e.expr,i,u,l,d,m)+" ) ";case"binary-expression":switch(e.operator){case"AND":return" ("+p(e.left,i,u,l,d,m)+" AND "+p(e.right,i,u,l,d,m)+") ";case"OR":return" ("+p(e.left,i,u,l,d,m)+" OR "+p(e.right,i,u,l,d,m)+") ";case"IS":if("null"!==e.right.type)throw new r(t.UnsupportedIsRhs);return" ("+p(e.left,i,u,l,d,m)+" IS NULL )";case"ISNOT":if("null"!==e.right.type)throw new r(t.UnsupportedIsRhs);return" ("+p(e.left,i,u,l,d,m)+" IS NOT NULL )";case"IN":return y=[],"expression-list"===e.right.type?(y=p(e.right,i,u,l,d)," ("+p(e.left,i,u,l,d,m)+" IN ("+y.join(",")+")) "):(A=p(e.right,i,u,l,d,m),A instanceof Array?" ("+p(e.left,i,u,l,d,m)+" IN ("+A.join(",")+")) ":" ("+p(e.left,i,u,l,d,m)+" IN ("+A+")) ");case"NOT IN":return y=[],"expression-list"===e.right.type?(y=p(e.right,i,u,l,d)," ("+p(e.left,i,u,l,d,m)+" NOT IN ("+y.join(",")+")) "):(A=p(e.right,i,u,l,d,m),A instanceof Array?" ("+p(e.left,i,u,l,d,m)+" NOT IN ("+A.join(",")+")) ":" ("+p(e.left,i,u,l,d,m)+" NOT IN ("+A+")) ");case"BETWEEN":return w=p(e.right,i,u,l,d,m)," ("+p(e.left,i,u,l,d,m)+" BETWEEN "+w[0]+" AND "+w[1]+" ) ";case"NOTBETWEEN":return w=p(e.right,i,u,l,d,m)," ("+p(e.left,i,u,l,d,m)+" NOT BETWEEN "+w[0]+" AND "+w[1]+" ) ";case"LIKE":return""!==e.escape?" ("+p(e.left,i,u,l,d,m)+" LIKE "+p(e.right,i,u,l,d,m)+" ESCAPE '"+e.escape+"') ":" ("+p(e.left,i,u,l,d,m)+" LIKE "+p(e.right,i,u,l,d,m)+") ";case"NOT LIKE":return""!==e.escape?" ("+p(e.left,i,u,l,d,m)+" NOT LIKE "+p(e.right,i,u,l,d,m)+" ESCAPE '"+e.escape+"') ":" ("+p(e.left,i,u,l,d,m)+" NOT LIKE "+p(e.right,i,u,l,d,m)+") ";case"<>":case"<":case">":case">=":case"<=":case"=":case"*":case"-":case"+":case"/":return" ("+p(e.left,i,u,l,d,m)+" "+e.operator+" "+p(e.right,i,u,l,d,m)+") ";case"||":return" ("+p(e.left,i,u,l,d,m)+" "+(i===a.SqlServer?"+":e.operator)+" "+p(e.right,i,u,l,d,m)+") "}throw new r(t.UnsupportedOperator,{operator:e.operator});case"null":return"null";case"boolean":return!0===e.value?"1":"0";case"string":return"'"+e.value.toString().replaceAll("'","''")+"'";case"timestamp":return S(e.value,i,m,!0===e.withtimezone);case"date":return E(e.value,i,m);case"time":return L(e.value,i);case"number":return e.value.toString();case"current-time":return I("date"===e.mode,i);case"column-reference":return l?l.toLowerCase()===e.column.toLowerCase()?"("+d+")":!0===e.delimited?`"${e.column.split('"').join('""')}"`:e.column:e.column;case"data-type":return e.value;case"function":{const r=p(e.args,i,u,l,d,m);return g(e.name,r,i)}}throw new r(t.UnsupportedSyntax,{node:e.type})}function g(e,s,n){switch(e.toLowerCase().trim()){case"cos":case"sin":case"tan":case"cosh":case"tanh":case"sinh":case"acos":case"asin":case"atan":case"floor":case"log10":case"log":case"abs":if(1!==s.length)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${s[0]})`;case"ceiling":case"ceil":if(1!==s.length)throw new r(t.InvalidFunctionParameters,{function:"ceiling"});switch(n){case a.Standardised:case a.StandardisedNoInterval:}return"CEILING("+s[0]+")";case"mod":case"power":case"nullif":if(2!==s.length)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase().trim()});return`${e.toUpperCase().trim()}(${s[0]},${s[1]})`;case"round":if(2===s.length)return"ROUND("+s[0]+","+s[1]+")";if(1===s.length)return"ROUND("+s[0]+")";throw new r(t.InvalidFunctionParameters,{function:"round"});case"truncate":if(s.length<1||s.length>2)throw new r(t.InvalidFunctionParameters,{function:"truncate"});return n===a.SqlServer?"ROUND("+s[0]+(1===s.length?"0":","+s[1])+",1)":"TRUNCATE("+s[0]+(1===s.length?")":","+s[1]+")");case"char_length":case"len":if(1!==s.length)throw new r(t.InvalidFunctionParameters,{function:"char_length"});switch(n){case a.SqlServer:return"LEN("+s[0]+")";case a.Oracle:return"LENGTH("+s[0]+")";default:return"CHAR_LENGTH("+s[0]+")"}case"coalesce":case"concat":{if(s.length<1)throw new r(t.InvalidFunctionParameters,{function:e.toLowerCase()});let a=e.toUpperCase().trim()+"(";for(let e=0;e<s.length;e++)0!==e&&(a+=","),a+=s[e];return a+=")",a}case"lower":case"lcase":if(1!==s.length)throw new r(t.InvalidFunctionParameters,{function:"lower"});return"LOWER("+s[0]+")";case"upper":case"ucase":if(1!==s.length)throw new r(t.InvalidFunctionParameters,{function:"upper"});return"UPPER("+s[0]+")";case"substring":{let e="";switch(n){case a.Oracle:return e="SUBSTR("+s[0]+","+s[1],3===s.length&&(e+=","+s[2]),e+=")",e;case a.SqlServer:return e=3===s.length?"SUBSTRING("+s[0]+","+s[1]+","+s[2]+")":"SUBSTRING("+s[0]+", "+s[1]+", LEN("+s[0]+") - "+s[1]+")",e;default:return e="SUBSTRING("+s[0]+" FROM "+s[1],3===s.length&&(e+=" FOR "+s[2]),e+=")",e}}case"extract":return"EXTRACT("+s[0].replaceAll("'","")+" FROM "+s[1]+")";case"cast":{let e="";switch(n){case a.Oracle:switch(s[1].type){case"date":e="DATE";break;case"float":e="DOUBLE";break;case"integer":e="INTEGER";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+s[1].size.toString()+")"}return`CAST(${s[0]} AS ${e})`;case a.Postgres:switch(s[1].type){case"date":e="DATE";break;case"float":e="DOUBLE PRECISION";break;case"integer":e="INT";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+s[1].size.toString()+")"}return`CAST(${s[0]} AS ${e})`;case a.SqlServer:switch(s[1].type){case"date":e="DATE";break;case"float":e="FLOAT";break;case"integer":e="INT";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="DATETIME";break;case"varchar":e="VARCHAR("+s[1].size.toString()+")"}return`CAST(${s[0]} AS ${e})`;default:switch(s[1].type){case"date":e="DATE";break;case"float":e="FLOAT";break;case"integer":e="INTEGER";break;case"real":e="REAL";break;case"smallint":e="SMALLINT";break;case"timestamp":e="TIMESTAMP";break;case"varchar":e="VARCHAR("+s[1].size.toString()+")"}return`CAST(${s[0]} AS ${e})`}}}throw new r(t.InvalidFunctionParameters,{function:e})}function h(r,t,s,n){s?.outputTimeReference&&(r=e.arcadeDateAndZoneToArcadeDate(r,s?.outputTimeReference));const o=r.toDateTime(),c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function T(e,r,t){switch(r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return e.toSQLWithKeyword();case a.Oracle:return`TO_DATE('${e.toFormat("Y-MM-DD")}'`;case a.SqlServer:return`'${e.toFormat("Y-MM-DD")}'`;case a.PGDB:return`#${e.toFormat("Y-MM-DD")}#`;case a.Postgres:return`TIMESTAMP '${e.toFormat("Y-MM-DD")}'`;default:return e.toSQLWithKeyword()}}function L(e,r){switch(e instanceof i&&(e=e.toStorageString()),r){case a.Oracle:return`TO_DATE('${e}', 'HH24:MI:SS')`;case a.SqlServer:return`'${e}'`;case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:case a.Postgres:default:return`time '${e}'`}}function S(e,r,t,n){let o=s(e)?l.fromJSDate(e):l.fromSQL(e);const c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t?.inputTimeReference&&(o=l.fromObject({day:o.day,year:o.year,month:o.month,hour:o.hour,minute:o.minute,second:o.second,millisecond:o.millisecond},{zone:t.inputTimeReference})),t?.outputTimeReference&&(o=o.setZone(t.outputTimeReference)),r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function E(e,r,t,n){let o=s(e)?l.fromJSDate(e):l.fromSQL(e);const c=0===o.hour&&0===o.minute&&0===o.second&&0===o.millisecond;switch(t?.inputTimeReference&&(o=l.fromObject({day:o.day,year:o.year,month:o.month,hour:o.hour,minute:o.minute,second:o.second,millisecond:o.millisecond},{zone:t.inputTimeReference})),t?.outputTimeReference&&(o=o.setZone(t.outputTimeReference)),r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:return c?`date '${o.toFormat("yyyy-LL-dd")}'`:`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`;case a.Oracle:return c?`TO_DATE('${o.toFormat("yyyy-LL-dd")}','YYYY-MM-DD')`:`TO_DATE('${o.toFormat("yyyy-LL-dd HH:mm:ss")}','YYYY-MM-DD HH24:MI:SS')`;case a.SqlServer:return`'${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;case a.PGDB:return`#${o.toFormat(c?"LL-dd-yyyy":"LL-dd-yyyy HH:mm:ss")}#`;case a.Postgres:return`TIMESTAMP '${o.toFormat(c?"yyyy-LL-dd":"yyyy-LL-dd HH:mm:ss")}'`;default:return`date '${o.toFormat("yyyy-LL-dd HH:mm:ss")}'`}}function I(e,r){switch(r){case a.FILEGDB:case a.Standardised:case a.StandardisedNoInterval:case a.Oracle:return e?"CURRENT_DATE":"CURRENT_TIMESTAMP";case a.SqlServer:return e?"CAST(GETDATE() AS DATE)":"GETDATE()";case a.PGDB:case a.Postgres:default:return e?"CURRENT_DATE":"CURRENT_TIMESTAMP"}}function w(e,r,t={}){const a={},s={},n={esriFieldTypeSmallInteger:"integer",esriFieldTypeInteger:"integer",esriFieldTypeBigInteger:"integer",esriFieldTypeSingle:"double",esriFieldTypeDouble:"double",esriFieldTypeString:"string",esriFieldTypeTimeOnly:"time-only",esriFieldTypeDateOnly:"date-only",esriFieldTypeTimestampOffset:"timestamp-offset",esriFieldTypeDate:"date",esriFieldTypeOID:"integer",esriFieldTypeGUID:"guid",esriFieldTypeGlobalID:"guid",oid:"integer",long:"integer","small-integer":"integer",integer:"integer","big-integer":"integer",single:"double","time-only":"time-only","date-only":"date-only","timestamp-offset":"timestemp-offset",double:"double",date:"date",guid:"guid",globalid:"guid",string:"string"};for(const o of r){const e=o.type?n[o.type]:void 0;a[o.name.toLowerCase()]=void 0===e?"":e}for(const o in t){const e=n[t[o]];s[o.toLowerCase()]=void 0===e?"":e}switch(A(a,e.parseTree,e.parameters,s)){case"double":return"double";case"integer":return"integer";case"date":return"date";case"date-only":return"date-only";case"time-only":return"time-only";case"timestamp-offset":return"timestamp-offset";case"string":return"string";case"global-id":case"guid":return"guid"}return""}function A(e,a,i,u){let l;switch(a.type){case"interval":return"integer";case"case-expression":{const r=[];if("simple"===a.format){for(let t=0;t<a.clauses.length;t++)r.push(A(e,a.clauses[t].value,i,u));null!==a.else&&r.push(A(e,a.else,i,u))}else{for(let t=0;t<a.clauses.length;t++)r.push(A(e,a.else,i,u));null!==a.else&&r.push(A(e,a.else,i,u))}return D(r)}case"parameter":{const e=u[a.value.toLowerCase()];if(void 0===e&&i){const e=i[a.value.toLowerCase()];if(void 0===e)return"";if(null===e)return"";if("string"==typeof e||e instanceof String)return"string";if("boolean"==typeof e)return"boolean";if(s(e))return"date";if(o(e))return"date";if(c(e))return"date-only";if(n(e))return"time-only";if("number"==typeof e)return e%1==0?"integer":"double"}return void 0===e?"":e}case"expression-list":{const r=[];for(const t of a.value)r.push(A(e,t,i,u));return r}case"unary-expression":return"boolean";case"binary-expression":switch(a.operator){case"AND":case"OR":case"IN":case"NOT IN":case"BETWEEN":case"NOTBETWEEN":case"LIKE":case"NOT LIKE":case"<>":case"<":case">":case">=":case"<=":case"=":return"boolean";case"IS":case"ISNOT":if("null"!==a.right.type)throw new r(t.UnsupportedIsRhs);return"boolean";case"*":case"-":case"+":case"/":return D([A(e,a.left,i,u),A(e,a.right,i,u)]);case"||":return"string";default:throw new r(t.UnsupportedOperator,{operator:a.operator})}case"null":return"";case"boolean":return"boolean";case"string":return"string";case"number":return null===a.value?"":a.value%1==0?"integer":"double";case"date":return"date";case"timestamp":return a.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"current-time":return"date";case"column-reference":{const r=e[a.column.toLowerCase()];return void 0===r?"":r}case"function":switch(a.name.toLowerCase()){case"cast":switch(a.args?.value[1]?.value.type??""){case"integer":case"smallint":return"integer";case"real":case"float":return"double";case"date":case"timestamp":return!0===a.args?.value[1]?.value?.withtimezone?"timestamp-offset":"date";case"time":return"time-only";case"varchar":return"string";default:return""}case"position":case"extract":case"char_length":case"mod":return"integer";case"round":if(l=A(e,a.args,i,u),l instanceof Array){if(l.length<=0)return"double";l=l[0]}return l;case"sign":return"integer";case"ceiling":case"floor":case"abs":return l=A(e,a.args,i,u),l instanceof Array&&(l=D(l)),"integer"===l||"double"===l?l:"double";case"area":case"length":case"log":case"log10":case"sin":case"cos":case"tan":case"asin":case"acos":case"atan":case"cosh":case"sinh":case"tanh":case"power":return"double";case"substring":case"trim":case"concat":case"lower":case"upper":return"string";case"truncate":return"double";case"nullif":case"coalesce":return l=A(e,a.args,i,u),l instanceof Array?l.length>0?l[0]:"":l}return""}throw new r(t.UnsupportedSyntax,{node:a.type})}const N={boolean:1,string:2,integer:3,double:4,date:5};function D(e){if(e){let r="";for(const t of e)""!==t&&(r=""===r||N[r]<N[t]?t:r);return r}return""}function b(e,r){return F(e.parseTree,r)}function v(e){return"column-reference"===e?.parseTree.type}function F(e,r){if(null==e)return!1;switch(e.type){case"when-clause":return F(e.operand,r)||F(e.value,r);case"case-expression":for(const t of e.clauses)if(F(t,r))return!0;return!("simple"!==e.format||!F(e.operand,r))||!(null===e.else||!F(e.else,r));case"parameter":case"null":case"boolean":case"date":case"timestamp":case"time":case"string":case"number":return!1;case"expression-list":for(const t of e.value)if(F(t,r))return!0;return!1;case"unary-expression":return F(e.expr,r);case"binary-expression":return F(e.left,r)||F(e.right,r);case"column-reference":return r.toLowerCase()===e.column.toLowerCase();case"function":return F(e.args,r)}return!1}function O(e){let r="";return r+=e.period.toUpperCase(),r}function R(e,r,t){let a="";return a="interval-period"===r.type?O(r):O(r.start)+" TO "+O(r.end),"INTERVAL "+t+" "+e+" "+a}export{T as arcadeDateOnlyToSqlString,h as arcadeDateToSqlString,f as combine,R as convertIntervalToSql,v as isSingleField,E as makeDateString,L as makeTimeString,S as makeTimestampString,I as makeToday,w as predictType,y as reformulateWithoutField,b as scanForField,d as toWhereClause,m as toWhereClauseFromTree,g as translateFunctionToDatabaseSpecific};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{j as r,c as s,b as a,g as i,o,q as c}from"../../chunks/languageUtils.js";import{assertIsSome as u}from"../../core/maybe.js";const l=e=>(n,t,r)=>(r=r||14,+e(n,t).toFixed(r)),d=(e,n)=>e+n,h=(e,n)=>e-n,m=(e,n)=>e*n,g=(e,n)=>e/n,_=(e,n,t)=>l(d)(e,n,t),f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(m)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=360,p=400,E=2*Math.PI,T=3600,S=3240,R=60,M=60,F=180*T/Math.PI,v=D*R*M,L=90*T,U=180*T,N=270*T,x=String.fromCharCode(7501),z="°";function O(e){if(!1===s(e))throw new n(null,t.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function b(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,y,q,k;function C(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function P(e,n){return e-Math.floor(e/n)*n}function Q(e){switch(e){case y.truncated_degrees:case y.decimal_degrees:return D;case y.radians:return E;case y.gradians:return p;case y.seconds:return v;case y.fractional_degree_minutes:return R;case y.fractional_minute_seconds:return M;default:throw new n(null,t.LogicError,null,{reason:"unsupported evaluations"})}}function j(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return q.north_azimuth;case"POLAR":return q.polar;case"QUADRANT":return q.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return q.south_azimuth}throw new n(null,t.LogicError,null,{reason:"unsupported directionType"})}function W(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return y.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return y.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return y.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return y.gradians}throw new n(null,t.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(y||(y={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(k||(k={}));class Z{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case y.decimal_degrees:case y.truncated_degrees:return this.m_degrees;case y.fractional_degree_minutes:return this.m_minutes;case y.seconds:case y.fractional_minute_seconds:return this.m_seconds;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=b(e).fraction;let t=b(e).integer;const r=Math.floor(t/T);t-=r*T;const s=Math.floor(t/M);return t-=s*M,new Z(r,s,t+n)}static numberToDms(e){const n=b(e).fraction,t=b(e).integer,r=w(b(100*n).fraction,100),s=b(100*n).integer;return new Z(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===y.seconds||e===y.fractional_minute_seconds)M<=t&&(t-=M,++r),R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.decimal_degrees||e===y.truncated_degrees){const e=A(this.m_seconds,T),n=A(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new Z(s,r,t)}static dmsToSeconds(e,n,t){return e*T+n*M+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===k.meridian?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new J(V._convertDirectionFormat(e.extractAngularUnits(y.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new J(V._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=V.secondsNorthAzimuthToQuadrant(n);return new J(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=N?H.north:H.south,t=n===H.north?Math.min(v-e,e):Math.abs(e-U),r=e>U?H.west:H.east;return new B(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new J(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(y.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:v-e:t===H.east?U-e:U+e}static _convertDirectionFormat(e,r,s){let a=0;switch(r){case q.north_azimuth:a=e;break;case q.polar:a=L-e;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+U}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=L-a;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-U}return i=I(i,v),i<0?v+i:i}}function X(e,r,s){let a=null;switch(r){case y.decimal_degrees:a=w(e,T);break;case y.seconds:a=e;break;case y.gradians:a=w(e,S);break;case y.radians:a=w(e,F);break;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case y.decimal_degrees:return A(a,T);case y.seconds:return a;case y.gradians:return A(a,S);case y.radians:return a/F;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}class J{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new J(X(e,n,y.seconds))}extractAngularUnits(e){return X(this._seconds,y.seconds,K(e))}static createFromDegreesMinutesSeconds(e,n,t){return new J(_(_(w(e,T),w(n,M)),t))}}function K(e){switch(u(e),e){case y.decimal_degrees:case y.truncated_degrees:case y.degrees_minutes_seconds:return y.decimal_degrees;case y.gradians:return y.gradians;case y.fractional_degree_minutes:return y.fractional_degree_minutes;case y.radians:return y.radians;case y.seconds:case y.fractional_minute_seconds:return y.seconds}}class Y{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new Y(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=y.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=le(this.view,r,s),n=n===y.truncated_degrees?y.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=le(this.view,r,s),n=y.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)),this._formattedDms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)).format(n,t)}}function $(e,r,s,a,i){let o=null;switch(r){case y.decimal_degrees:case y.radians:case y.gradians:return o=P(G(e.extractAngularUnits(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.truncated_degrees:case y.fractional_degree_minutes:return o=P(i.fetchFormattedDms().getField(r),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.fractional_minute_seconds:return o=P(G(i.fetchDms().getField(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}function ee(e,r,s){if(s===q.quadrant)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(r===y.degrees_minutes_seconds){const n=Z.numberToDms(e);return V.createFromAngleAndDirection(J.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return V.createFromAngleAndDirection(J.createFromAngleAndUnits(e,K(r)),s)}function ne(e){switch(i(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function te(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function re(e){const r=parseFloat(e);if(a(r)){if(isNaN(r))throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return r}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function se(e,s,a){const i=a===q.quadrant;let o=null,c=null,u=0,l=0,d=0;if(i){if(e.length<2)throw new n(null,t.LogicError,null,{reason:"conversion error"});d=1;const s=ne(r(e[e.length-1]));if(s?(o=s.first,c=s.second):(u=1,o=te(r(e[0])),c=te(r(e[e.length-1]))),null===o||null===c)throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}switch(s){case y.decimal_degrees:case y.radians:case y.gradians:if(0===e.length)throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),o,c):V.createFromAngleAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),a);case y.degrees_minutes_seconds:if(l=e.length-d-u,3===l){const n=J.createFromDegreesMinutesSeconds(re(e[u]),re(e[u+1]),re(e[u+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,a)}if(1===l){const n=re(e[u]),t=Z.numberToDms(n),r=J.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,a)}}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ae(e){const n=[" ","-","/","'",'"',"\\","^",z,x,"\t","\r","\n","*"];let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.includes(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function ie(e,r,u){if(a(e))return ee(i(e),r,u);if(s(e))return se(ae(e),r,u);if(o(e))return se(e,r,u);if(c(e))return se(e.toArray(),r,u);throw new n(null,t.LogicError,null,{reason:"conversion error"})}function oe(e,r,s){const a=K(s);if(a&&s!==y.degrees_minutes_seconds){return e.getAngle(r).extractAngularUnits(a)}throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ce(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===y.degrees_minutes_seconds){const t=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[C(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,C(e.getDirection(n),"SHORT")]}if(t===y.degrees_minutes_seconds){const e=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[C(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),C(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ue(e,r){let s="";switch(e){case y.decimal_degrees:s=r===q.quadrant?"DD.DD"+z:"DDD.DD"+z;break;case y.degrees_minutes_seconds:s=r===q.quadrant?"dd"+z+" mm' ss\"":"ddd"+z+" mm' ss.ss\"";break;case y.radians:s="R.RR";break;case y.gradians:s="GGG.GG"+x;break;default:throw new n(null,t.LogicError,null,{reason:"conversion error"})}return r===q.quadrant&&(s="p "+s+" b"),s}function le(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function de(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function he(e,n,t){let r="",s=null,a=null;const i=Y.createFromStringAndBearing(n,e,t),o={D:y.decimal_degrees,d:y.truncated_degrees,m:y.fractional_degree_minutes,s:y.fractional_minute_seconds,R:y.radians,G:y.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=de(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=le(n,c,u),a=e.getAngle(t),r+=$(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=C(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=C(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}function me(s,a,i){if(!(a instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const o=j(O(a.field("directiontype"))),c=ie(s,W(O(a.field("angletype"))),o);if(!(i instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const u=j(O(i.field("directiontype"))),l=i.hasField("angleType")?W(O(i.field("angletype"))):null,d=O(i.field("outputType")).toUpperCase().trim();if(!u||!d)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(!(l||"TEXT"===d&&i.hasField("format")))throw new n(null,t.LogicError,null,{reason:"invalid unit"});switch(d){case"VALUE":return u===q.quadrant||l===y.degrees_minutes_seconds?ce(c,u,l):oe(c,u,l);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ue(l,u)),he(c,e,u)}default:throw new n(null,t.InvalidParameter,null)}}export{me as convertDirection,_ as preciseAdd,A as preciseDivide,f as preciseMinus,w as preciseMultiply};
|
|
5
|
+
import e from"../Dictionary.js";import{ArcadeExecutionError as n,ExecutionErrorCodes as t}from"../executionError.js";import{j as r,c as s,b as a,g as i,o,q as c}from"../../chunks/languageUtils.js";import{assertIsSome as u}from"../../core/maybe.js";const l=e=>(n,t,r)=>(r=r||14,+e(n,t).toFixed(r)),d=(e,n)=>e+n,h=(e,n)=>e-n,m=(e,n)=>e*n,g=(e,n)=>e/n,_=(e,n,t)=>l(d)(e,n,t),f=(e,n,t)=>l(h)(e,n,t),w=(e,n,t)=>l(m)(e,n,t),A=(e,n,t)=>l(g)(e,n,t),D=360,p=400,E=2*Math.PI,T=3600,S=3240,R=60,M=60,F=180*T/Math.PI,v=D*R*M,L=90*T,U=180*T,N=270*T,x=String.fromCharCode(7501),z="°";function O(e){if(!1===s(e))throw new n(null,t.InvalidParameter,null);return e}function G(e,n){const t=10**n;return Math.round(e*t)/t}function I(e,n){return e%n}function b(e){const n=parseFloat(e.toString().replace(Math.trunc(e).toString(),"0"))*Math.sign(e);if(e<0){return{fraction:n,integer:Math.ceil(e)}}return{fraction:n,integer:Math.floor(e)}}var H,y,q,k;function C(e,n){switch(e){case H.north:return"SHORT"===n?"N":"North";case H.east:return"SHORT"===n?"E":"East";case H.south:return"SHORT"===n?"S":"South";case H.west:return"SHORT"===n?"W":"West"}}function P(e,n){return e-Math.floor(e/n)*n}function Q(e){switch(e){case y.truncated_degrees:case y.decimal_degrees:return D;case y.radians:return E;case y.gradians:return p;case y.seconds:return v;case y.fractional_degree_minutes:return R;case y.fractional_minute_seconds:return M;default:throw new n(null,t.LogicError,null,{reason:"unsupported evaluations"})}}function j(e){switch(e.toUpperCase().trim()){case"NORTH":case"NORTHAZIMUTH":case"NORTH AZIMUTH":return q.north_azimuth;case"POLAR":return q.polar;case"QUADRANT":return q.quadrant;case"SOUTH":case"SOUTHAZIMUTH":case"SOUTH AZIMUTH":return q.south_azimuth}throw new n(null,t.LogicError,null,{reason:"unsupported directionType"})}function W(e){switch(e.toUpperCase().trim()){case"D":case"DD":case"DECIMALDEGREE":case"DECIMAL DEGREE":case"DEGREE":case"DECIMALDEGREES":case"DECIMAL DEGREES":case"DEGREES":return y.decimal_degrees;case"DMS":case"DEGREESMINUTESSECONDS":case"DEGREES MINUTES SECONDS":return y.degrees_minutes_seconds;case"R":case"RAD":case"RADS":case"RADIAN":case"RADIANS":return y.radians;case"G":case"GON":case"GONS":case"GRAD":case"GRADS":case"GRADIAN":case"GRADIANS":return y.gradians}throw new n(null,t.LogicError,null,{reason:"unsupported units"})}!function(e){e[e.north=0]="north",e[e.east=1]="east",e[e.south=2]="south",e[e.west=3]="west"}(H||(H={})),function(e){e[e.decimal_degrees=1]="decimal_degrees",e[e.seconds=2]="seconds",e[e.degrees_minutes_seconds=3]="degrees_minutes_seconds",e[e.radians=4]="radians",e[e.gradians=5]="gradians",e[e.truncated_degrees=6]="truncated_degrees",e[e.fractional_degree_minutes=7]="fractional_degree_minutes",e[e.fractional_minute_seconds=8]="fractional_minute_seconds"}(y||(y={})),function(e){e[e.north_azimuth=1]="north_azimuth",e[e.polar=2]="polar",e[e.quadrant=3]="quadrant",e[e.south_azimuth=4]="south_azimuth"}(q||(q={})),function(e){e[e.meridian=0]="meridian",e[e.direction=1]="direction"}(k||(k={}));class Z{constructor(e,n,t){this.m_degrees=e,this.m_minutes=n,this.m_seconds=t}getField(e){switch(e){case y.decimal_degrees:case y.truncated_degrees:return this.m_degrees;case y.fractional_degree_minutes:return this.m_minutes;case y.seconds:case y.fractional_minute_seconds:return this.m_seconds;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}static secondsToDMS(e){const n=b(e).fraction;let t=b(e).integer;const r=Math.floor(t/T);t-=r*T;const s=Math.floor(t/M);return t-=s*M,new Z(r,s,t+n)}static numberToDms(e){const n=b(e).fraction,t=b(e).integer,r=w(b(100*n).fraction,100),s=b(100*n).integer;return new Z(t,s,r)}format(e,n){let t=G(this.m_seconds,n),r=this.m_minutes,s=this.m_degrees;if(e===y.seconds||e===y.fractional_minute_seconds)M<=t&&(t-=M,++r),R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.fractional_degree_minutes)t=0,r=30<=this.m_seconds?this.m_minutes+1:this.m_minutes,s=this.m_degrees,R<=r&&(r=0,++s),D<=s&&(s=0);else if(e===y.decimal_degrees||e===y.truncated_degrees){const e=A(this.m_seconds,T),n=A(this.m_minutes,R);s=Math.round(this.m_degrees+n+e),r=0,t=0}return new Z(s,r,t)}static dmsToSeconds(e,n,t){return e*T+n*M+t}}class B{constructor(e,n,t){this.meridian=e,this.angle=n,this.direction=t}fetchAzimuth(e){return e===k.meridian?this.meridian:this.direction}}class V{constructor(e){this._angle=e}static createFromAngleAndDirection(e,n){return new V(new J(V._convertDirectionFormat(e.extractAngularUnits(y.seconds),n,q.north_azimuth)))}getAngle(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:case q.south_azimuth:case q.polar:return new J(V._convertDirectionFormat(n,q.north_azimuth,e));case q.quadrant:{const e=V.secondsNorthAzimuthToQuadrant(n);return new J(e.angle)}}}getMeridian(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.north;case q.south_azimuth:return H.south;case q.polar:return H.east;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).meridian}}getDirection(e){const n=this._angle.extractAngularUnits(y.seconds);switch(e){case q.north_azimuth:return H.east;case q.south_azimuth:return H.west;case q.polar:return H.north;case q.quadrant:return V.secondsNorthAzimuthToQuadrant(n).direction}}static secondsNorthAzimuthToQuadrant(e){const n=e<=L||e>=N?H.north:H.south,t=n===H.north?Math.min(v-e,e):Math.abs(e-U),r=e>U?H.west:H.east;return new B(n,t,r)}static createFromAngleMeridianAndDirection(e,n,t){return new V(new J(V.secondsQuadrantToNorthAzimuth(e.extractAngularUnits(y.seconds),n,t)))}static secondsQuadrantToNorthAzimuth(e,n,t){return n===H.north?t===H.east?e:v-e:t===H.east?U-e:U+e}static _convertDirectionFormat(e,r,s){let a=0;switch(r){case q.north_azimuth:a=e;break;case q.polar:a=L-e;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:a=e+U}let i=0;switch(s){case q.north_azimuth:i=a;break;case q.polar:i=L-a;break;case q.quadrant:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"});case q.south_azimuth:i=a-U}return i=I(i,v),i<0?v+i:i}}function X(e,r,s){let a=null;switch(r){case y.decimal_degrees:a=w(e,T);break;case y.seconds:a=e;break;case y.gradians:a=w(e,S);break;case y.radians:a=w(e,F);break;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}switch(s){case y.decimal_degrees:return A(a,T);case y.seconds:return a;case y.gradians:return A(a,S);case y.radians:return a/F;default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}class J{constructor(e){this._seconds=e}static createFromAngleAndUnits(e,n){return new J(X(e,n,y.seconds))}extractAngularUnits(e){return X(this._seconds,y.seconds,K(e))}static createFromDegreesMinutesSeconds(e,n,t){return new J(_(_(w(e,T),w(n,M)),t))}}function K(e){switch(u(e),e){case y.decimal_degrees:case y.truncated_degrees:case y.degrees_minutes_seconds:return y.decimal_degrees;case y.gradians:return y.gradians;case y.fractional_degree_minutes:return y.fractional_degree_minutes;case y.radians:return y.radians;case y.seconds:case y.fractional_minute_seconds:return y.seconds}}class Y{constructor(e,n,t,r){this.view=e,this.angle=n,this.merdian=t,this.direction=r,this._dms=null,this._formattedDms=null}static createFromStringAndBearing(e,n,t){return new Y(e,n.getAngle(t),n.getMeridian(t),n.getDirection(t))}fetchAngle(){return this.angle}fetchMeridian(){return this.merdian}fetchDirection(){return this.direction}fetchView(){return this.view}fetchDms(){return null===this._dms&&this._calculateDms(),this._dms}fetchFormattedDms(){return null===this._formattedDms&&this._calculateDms(),this._formattedDms}_calculateDms(){let e=null,n=y.truncated_degrees,t=0;for(let r=0;r<this.view.length;r++){const s=this.view[r];switch(s){case"m":e=le(this.view,r,s),n=n===y.truncated_degrees?y.fractional_degree_minutes:n,r=e.newpos;continue;case"s":e=le(this.view,r,s),n=y.fractional_minute_seconds,t=t<e.rounding?e.rounding:t,r=e.newpos;continue;default:continue}}this._dms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)),this._formattedDms=Z.secondsToDMS(this.angle.extractAngularUnits(y.seconds)).format(n,t)}}function $(e,r,s,a,i){let o=null;switch(r){case y.decimal_degrees:case y.radians:case y.gradians:return o=P(G(e.extractAngularUnits(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.truncated_degrees:case y.fractional_degree_minutes:return o=P(i.fetchFormattedDms().getField(r),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");case y.fractional_minute_seconds:return o=P(G(i.fetchDms().getField(r),a),Q(r)),o.toFixed(a).padStart(s+a+(a>0?1:0),"0");default:throw new n(null,t.LogicError,null,{reason:"unexpected evaluation"})}}function ee(e,r,s){if(s===q.quadrant)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(r===y.degrees_minutes_seconds){const n=Z.numberToDms(e);return V.createFromAngleAndDirection(J.createFromDegreesMinutesSeconds(n.m_degrees,n.m_minutes,n.m_seconds),s)}return V.createFromAngleAndDirection(J.createFromAngleAndUnits(e,K(r)),s)}function ne(e){switch(i(e)){case 1:return{first:H.north,second:H.east};case 2:return{first:H.south,second:H.east};case 3:return{first:H.south,second:H.west};case 4:return{first:H.north,second:H.west}}return null}function te(e){switch(e.toUpperCase().trim()){case"N":case"NORTH":return H.north;case"E":case"EAST":return H.east;case"S":case"SOUTH":return H.south;case"W":case"WEST":return H.west}return null}function re(e){const r=parseFloat(e);if(a(r)){if(isNaN(r))throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return r}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function se(e,s,a){const i=a===q.quadrant;let o=null,c=null,u=0,l=0,d=0;if(i){if(e.length<2)throw new n(null,t.LogicError,null,{reason:"conversion error"});d=1;const s=ne(r(e[e.length-1]));if(s?(o=s.first,c=s.second):(u=1,o=te(r(e[0])),c=te(r(e[e.length-1]))),null===o||null===c)throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}switch(s){case y.decimal_degrees:case y.radians:case y.gradians:if(0===e.length)throw new n(null,t.LogicError,null,{reason:"invalid conversion"});return i?V.createFromAngleMeridianAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),o,c):V.createFromAngleAndDirection(J.createFromAngleAndUnits(re(e[u]),K(s)),a);case y.degrees_minutes_seconds:if(l=e.length-d-u,3===l){const n=J.createFromDegreesMinutesSeconds(re(e[u]),re(e[u+1]),re(e[u+2]));return i?V.createFromAngleMeridianAndDirection(n,o,c):V.createFromAngleAndDirection(n,a)}if(1===l){const n=re(e[u]),t=Z.numberToDms(n),r=J.createFromDegreesMinutesSeconds(t.m_degrees,t.m_minutes,t.m_seconds);return i?V.createFromAngleMeridianAndDirection(r,o,c):V.createFromAngleAndDirection(r,a)}}throw new n(null,t.LogicError,null,{reason:"invalid conversion"})}function ae(e){const n=new Set([" ","-","/","'",'"',"\\","^",z,x,"\t","\r","\n","*"]);let t="";for(let r=0;r<e.length;r++){const s=e.charAt(r);n.has(s)?t+="RRSPLITRRSPLITRR":t+=s}return t.split("RRSPLITRRSPLITRR").filter((e=>""!==e))}function ie(e,r,u){if(a(e))return ee(i(e),r,u);if(s(e))return se(ae(e),r,u);if(o(e))return se(e,r,u);if(c(e))return se(e.toArray(),r,u);throw new n(null,t.LogicError,null,{reason:"conversion error"})}function oe(e,r,s){const a=K(s);if(a&&s!==y.degrees_minutes_seconds){return e.getAngle(r).extractAngularUnits(a)}throw new n(null,t.LogicError,null,{reason:"conversion error"})}function ce(e,n,t){const r=e.getAngle(n);if(n===q.quadrant&&t===y.degrees_minutes_seconds){const t=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[C(e.getMeridian(n),"SHORT"),t.m_degrees,t.m_minutes,t.m_seconds,C(e.getDirection(n),"SHORT")]}if(t===y.degrees_minutes_seconds){const e=Z.secondsToDMS(r.extractAngularUnits(y.seconds));return[e.m_degrees,e.m_minutes,e.m_seconds]}return n===q.quadrant?[C(e.getMeridian(n),"SHORT"),r.extractAngularUnits(t),C(e.getDirection(n),"SHORT")]:[r.extractAngularUnits(t)]}function ue(e,r){let s="";switch(e){case y.decimal_degrees:s=r===q.quadrant?"DD.DD"+z:"DDD.DD"+z;break;case y.degrees_minutes_seconds:s=r===q.quadrant?"dd"+z+" mm' ss\"":"ddd"+z+" mm' ss.ss\"";break;case y.radians:s="R.RR";break;case y.gradians:s="GGG.GG"+x;break;default:throw new n(null,t.LogicError,null,{reason:"conversion error"})}return r===q.quadrant&&(s="p "+s+" b"),s}function le(e,n,t){const r={padding:0,rounding:0,newpos:n};let s=!1;for(;n<e.length;){const a=e[n];if(a===t)s?r.rounding++:r.padding++,n++;else{if("."!==a)break;s=!0,n++}}return r.newpos=n-1,r}function de(e,n,t){const r={escaped:"",newpos:n};for(n++;n<e.length;){const t=e[n];if(n++,"]"===t)break;r.escaped+=t}return r.newpos=n-1,r}function he(e,n,t){let r="",s=null,a=null;const i=Y.createFromStringAndBearing(n,e,t),o={D:y.decimal_degrees,d:y.truncated_degrees,m:y.fractional_degree_minutes,s:y.fractional_minute_seconds,R:y.radians,G:y.gradians};for(let c=0;c<n.length;c++){const u=n[c];switch(u){case"[":s=de(n,c),r+=s.escaped,c=s.newpos;continue;case"D":case"d":case"m":case"s":case"R":case"G":s=le(n,c,u),a=e.getAngle(t),r+=$(a,o[u],s.padding,s.rounding,i),c=s.newpos;continue;case"P":case"p":r+=C(i.fetchMeridian(),"p"===u?"SHORT":"LONG");continue;case"B":case"b":r+=C(i.fetchDirection(),"b"===u?"SHORT":"LONG");continue;default:r+=u}}return r}function me(s,a,i){if(!(a instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===a.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===a.hasField("angleType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const o=j(O(a.field("directiontype"))),c=ie(s,W(O(a.field("angletype"))),o);if(!(i instanceof e))throw new n(null,t.InvalidParameter,null);if(!1===i.hasField("directionType"))throw new n(null,t.LogicError,null,{reason:"missing directionType"});if(!1===i.hasField("outputType"))throw new n(null,t.LogicError,null,{reason:"missing angleType"});const u=j(O(i.field("directiontype"))),l=i.hasField("angleType")?W(O(i.field("angletype"))):null,d=O(i.field("outputType")).toUpperCase().trim();if(!u||!d)throw new n(null,t.LogicError,null,{reason:"conversion error"});if(!(l||"TEXT"===d&&i.hasField("format")))throw new n(null,t.LogicError,null,{reason:"invalid unit"});switch(d){case"VALUE":return u===q.quadrant||l===y.degrees_minutes_seconds?ce(c,u,l):oe(c,u,l);case"TEXT":{let e="";return i.hasField("format")&&(e=r(i.field("format"))),null!==e&&""!==e||(e=ue(l,u)),he(c,e,u)}default:throw new n(null,t.InvalidParameter,null)}}export{me as convertDirection,_ as preciseAdd,A as preciseDivide,f as preciseMinus,w as preciseMultiply};
|
package/arcade/functions/date.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{E as o,L as u,g as a,c as s,n as i,k as l,m as c,j as f,l as m,H as d,O as h,P as y}from"../../chunks/languageUtils.js";import{DateOnly as N}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as A}from"luxon";function
|
|
5
|
+
import{ArcadeDate as n,createDateTimeZone as e}from"../ArcadeDate.js";import{ArcadeExecutionError as r,ExecutionErrorCodes as t}from"../executionError.js";import{E as o,L as u,g as a,c as s,n as i,k as l,m as c,j as f,l as m,H as d,O as h,P as y}from"../../chunks/languageUtils.js";import{DateOnly as N}from"../../core/sql/DateOnly.js";import{TimeOnly as w}from"../../core/sql/TimeOnly.js";import{getLocale as g}from"../../intl/locale.js";import{DateTime as A}from"luxon";function k(n,e,r){return n+(T(r)?P:D)[e]}function T(n){return n%4==0&&(n%100!=0||n%400==0)}const D=[0,31,59,90,120,151,181,212,243,273,304,334],P=[0,31,60,91,121,152,182,213,244,274,305,335];function S(n){return null===n?n:!1===n.isValid?null:n}function Z(n,e){return""===n||"default"===n.toLowerCase().trim()?u(e):"z"===n||"Z"===n?"UTC":n}function p(n,e){return c(n)?n.toArcadeDate():m(n,u(e))}function C(T,D){T.today=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=new Date;return i.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(i,u(e))}))},T.time=function(e,f){return D(e,f,((m,d,h)=>{switch(o(h,0,4,e,f),h.length){case 0:{const r=n.nowToArcadeDate(u(e));return new w(r.hour,r.minute,r.second,r.millisecond)}case 1:{if(i(h[0]))return h[0].clone();if(l(h[0]))return new w(h[0].hour,h[0].minute,h[0].second,h[0].millisecond);if(c(h[0]))return new w(0,0,0,0);if(s(h[0]))return w.fromString(h[0]);const n=a(h[0]);return!1===isNaN(n)?w.fromMilliseconds(n):null}case 2:return s(h[0])&&s(h[1])?w.fromString(h[0],h[1]):w.fromParts(a(h[0]),a(h[1]),0,0);case 3:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),0);case 4:return w.fromParts(a(h[0]),a(h[1]),a(h[2]),a(h[3]))}throw new r(e,t.InvalidParameter,f)}))},T.dateonly=function(e,r){return D(e,r,((t,i,m)=>{if(o(m,0,3,e,r),3===m.length)return N.fromParts(a(m[0]),a(m[1])+1,a(m[2]));if(2===m.length){const n=f(m[1]);return""===n?null:"X"===n?N.fromSeconds(a(m[0])):"x"===n?N.fromMilliseconds(a(m[0])):N.fromString(f(m[0]),n)}if(1===m.length){if(s(m[0])){if(""===m[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(m[0]))return N.fromString(m[0]+"-01-01")}if(c(m[0]))return m[0].clone();if(l(m[0]))return N.fromParts(m[0].year,m[0].monthJS+1,m[0].day);const n=a(m[0]);return!1===isNaN(n)?N.fromMilliseconds(n):s(m[0])?N.fromString(m[0]):null}if(0===m.length){const r=n.nowToArcadeDate(u(e));return!1===r.isValid?null:N.fromParts(r.year,r.monthJS+1,r.day)}return null}))},T.changetimezone=function(a,s){return D(a,s,((i,l,d)=>{if(o(d,2,2,a,s),null===d[0])return null;if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneDateOnly,s);if(c(d[0]))throw new r(a,t.CannotChangeTimeZoneTime,s);const h=m(d[0],u(a));if(null===h)throw new r(a,t.InvalidParameter,s);const y=e(Z(f(d[1]),a),!1);if(null===y)return null;const N=n.arcadeDateAndZoneToArcadeDate(h,y);return!1===N.isValid?null:N}))},T.timezone=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,1,2,e,r),i(s[0]))return"Unknown";if(c(s[0]))return"Unknown";const l=m(s[0],u(e));if(null===l)return null;const f=l.timeZone;return"system"===f?n.systemTimeZoneCanonicalName:"utc"===f.toLowerCase()?"UTC":"unknown"===f.toLowerCase()?"Unknown":f}))},T.timezoneoffset=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:60*s.timeZoneOffset*1e3}))},T.now=function(e,r){return D(e,r,((t,a,s)=>{o(s,0,0,e,r);const i=n.nowToArcadeDate(u(e));return!1===i.isValid?null:i}))},T.timestamp=function(e,r){return D(e,r,((t,u,a)=>{o(a,0,0,e,r);const s=n.nowUTCToArcadeDate();return!1===s.isValid?null:s}))},T.toutc=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toUTC()}))},T.tolocal=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=m(a[0],u(n));return null===s?null:s.toLocal()}))},T.day=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.day}))},T.month=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthJS}))},T.year=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.year}))},T.hour=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].hour;const s=m(a[0],u(n));return null===s?NaN:s.hour}))},T.second=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].second;const s=m(a[0],u(n));return null===s?NaN:s.second}))},T.millisecond=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].millisecond;const s=m(a[0],u(n));return null===s?NaN:s.millisecond}))},T.minute=function(n,e){return D(n,e,((r,t,a)=>{if(o(a,1,1,n,e),i(a[0]))return a[0].minute;const s=m(a[0],u(n));return null===s?NaN:s.minute}))},T.week=function(n,e){return D(n,e,((s,i,l)=>{o(l,1,2,n,e);const c=p(l[0],u(n));if(null===c)return NaN;const f=a(d(l[1],0));if(f<0||f>6)throw new r(n,t.InvalidParameter,e);const m=c.day,h=c.monthJS,y=c.year,N=c.dayOfWeekJS,w=k(m,h,y)-1,g=Math.floor(w/7);return N-f+(N-f<0?7:0)<w-7*g?g+1:g}))},T.weekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekJS}))},T.isoweekday=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.dayOfWeekISO}))},T.isomonth=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.monthISO}))},T.isoweek=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.weekISO}))},T.isoyear=function(n,e){return D(n,e,((r,t,a)=>{o(a,1,1,n,e);const s=p(a[0],u(n));return null===s?NaN:s.yearISO}))},T.date=function(r,t){return D(r,t,((l,d,y)=>{if(o(y,0,8,r,t),3===y.length){if(c(y[0])&&i(y[1])&&s(y[2])){const t=e(Z(f(y[2])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,t))}return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),0,0,0,0,u(r)))}if(4===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),0,0,0,u(r)));if(5===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),0,0,u(r)));if(6===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),0,u(r)));if(7===y.length)return S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),u(r)));if(8===y.length){const t=e(Z(f(y[7])??"unknown",r),!1);return null===t?null:S(n.fromParts(a(y[0]),a(y[1])+1,a(y[2]),a(y[3]),a(y[4]),a(y[5]),a(y[6]),t))}if(2===y.length){if(c(y[0])&&s(y[1])){const t=e(Z(f(y[1])??"unknown",r),!1);return null===t?null:S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,t))}if(c(y[0])&&i(y[1]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,y[1].hour,y[1].minute,y[1].second,y[1].millisecond,"unknown"));let t,o=f(y[1]);return""===o?null:(o=h(o,!0),t="X"===o?A.fromSeconds(a(y[0])):"x"===o?A.fromMillis(a(y[0])):A.fromFormat(f(y[0]),o,{locale:g(),numberingSystem:"latn"}),t.isValid?n.dateTimeToArcadeDate(t):null)}if(1===y.length){if(c(y[0]))return S(n.fromParts(y[0].year,y[0].month,y[0].day,0,0,0,0,"unknown"));if(s(y[0])){if(""===y[0].replaceAll(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(y[0]))return m(y[0]+"-01-01",u(r))}const e=a(y[0]);if(!1===isNaN(e)){const t=A.fromMillis(e);return t.isValid?n.dateTimeAndZoneToArcadeDate(t,u(r)):null}return m(y[0],u(r))}return 0===y.length?n.nowToArcadeDate(u(r)):null}))},T.datediff=function(e,r){return D(e,r,((t,a,s)=>{if(o(s,2,4,e,r),i(s[0]))return i(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(i(s[1]))return NaN;if(c(s[0]))return c(s[1])?s[0].difference(s[1],f(s[2])):NaN;if(c(s[1]))return NaN;let l=m(s[0],u(e)),h=m(s[1],u(e));if(null===l||null===h)return NaN;let y=d(s[3],"");switch(""!==y&&null!==y?(y=Z(f(y),e),l=n.arcadeDateAndZoneToArcadeDate(l,y),h=n.arcadeDateAndZoneToArcadeDate(h,y)):l.timeZone!==h.timeZone&&(l.isUnknownTimeZone?l=n.arcadeDateAndZoneToArcadeDate(l,h.timeZone):h=(h.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(h,l.timeZone))),f(s[2]).toLowerCase()){case"days":case"day":case"d":return l.diff(h,"days");case"months":case"month":return l.diff(h,"months");case"minutes":case"minute":case"m":return"M"===s[2]?l.diff(h,"months"):l.diff(h,"minutes");case"seconds":case"second":case"s":return l.diff(h,"seconds");case"milliseconds":case"millisecond":case"ms":default:return l.diff(h);case"hours":case"hour":case"h":return l.diff(h,"hours");case"years":case"year":case"y":return l.diff(h,"years")}}))},T.dateadd=function(n,e){return D(n,e,((r,t,s)=>{o(s,2,3,n,e);let l=a(s[1]);if(isNaN(l)||l===1/0||l===-1/0)return i(s[0])||c(s[0])?s[0].clone():m(s[0],u(n));let d="milliseconds";switch(f(s[2]).toLowerCase()){case"days":case"day":case"d":d="days",l=c(s[0])?l:y(l);break;case"months":case"month":d="months",l=c(s[0])?l:y(l);break;case"minutes":case"minute":case"m":d="M"===s[2]?"months":"minutes";break;case"seconds":case"second":case"s":d="seconds";break;case"milliseconds":case"millisecond":case"ms":d="milliseconds";break;case"hours":case"hour":case"h":d="hours";break;case"years":case"year":case"y":d="years"}if(i(s[0]))return s[0].plus(d,l);if(c(s[0]))return s[0].plus(d,l);const h=m(s[0],u(n));return null===h?null:h.plus({[d]:l})}))}}export{C as registerFunctions};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as o,constructFeatureSet as f,constructFeatureSetFromRelationship as d,constructFeatureSetFromUrl as u,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as y,n as p,m as h,u as F,c as w,j as g,l as I,L as D,k as T,H as x,h as E,o as b,r as A,q as N,i as S,g as R,a2 as L,S as C}from"../../chunks/languageUtils.js";import{getPortal as Z}from"../portalUtils.js";import{SqlExpressionAdapted as $,StringToCodeAdapted as v,FieldRename as P,AdaptedFeatureSet as j,OriginalField as U}from"../featureset/actions/Adapted.js";import M from"../featureset/actions/AttributeFilter.js";import k from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import H from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import{WhereClause as K}from"../../core/sql/WhereClause.js";import V from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Y(e,t,n,i){if(1===i.length){if(b(i[0]))return q(e,i[0],-1);if(N(i[0]))return q(e,i[0].toArray(),-1)}return q(e,i,-1)}async function X(e,t,n){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function ee(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function te(e){if(null===e)return null;const t={type:ee(e,"type",""),name:ee(e,"name","")};if("range"===t.type)t.range=ee(e,"range",[]);else{t.codedValues=[];for(const n of ee(e,"codedValues",[]))t.codedValues.push({name:ee(n,"name",""),code:ee(n,"code",null)})}return t}function ne(e){if(null===e)return null;const t={},n=ee(e,"wkt",null);null!==n&&(t.wkt=n);const i=ee(e,"wkid",null);return null!==i&&(t.wkid=i),t}function ie(e){if(null===e)return null;const t={hasZ:ee(e,"hasz",!1),hasM:ee(e,"hasm",!1)},n=ee(e,"spatialreference",null);n&&(t.spatialReference=ne(n));const i=ee(e,"x",null);if(null!==i)return t.x=i,t.y=ee(e,"y",null),t;const a=ee(e,"rings",null);if(null!==a)return t.rings=a,t;const r=ee(e,"paths",null);if(null!==r)return t.paths=r,t;const s=ee(e,"points",null);if(null!==s)return t.points=s,t;for(const l of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=ee(e,l,null);null!==n&&(t[l]=n)}return t}function ae(e,t){for(const n of t)if(n===e)return!0;return!1}function re(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ae(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function se(e){return"utc"===e?.toLowerCase()?"UTC":e}function le(q){"async"===q.mode&&(q.functions.timezone=function(t,r){return q.standardFunctionAsync(t,r,(async(s,l,o)=>{if(y(o,1,2,t,r),p(o[0]))return"unknown";if(h(o[0]))return"unknown";if(F(o[0])){if(await o[0].load(),1===o.length||null===o[1])return se(o[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone);if(!(o[1]instanceof n)||!1===o[1].hasField("type"))throw new i(t,a.InvalidParameter,r);const e=o[1].field("type");if(!1===w(e))throw new i(t,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return se(o[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone);case"editfieldsinfo":return se(o[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone);case"timeinfo":return se(o[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone);case"field":if(o[1].hasField("fieldname")&&w(o[1].field("fieldname")))return se(o[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(o[1].field("fieldname"))))}throw new i(t,a.InvalidParameter,r)}const f=I(o[0],D(t));if(null===f)return null;const d=f.timeZone;return"system"===d?e.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":d}))},q.functions.sqltimestamp=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,1,3,e,t);const l=s[0];if(T(l)){if(1===s.length)return l.toSQLWithKeyword();if(2===s.length)return l.changeTimeZone(g(s[1])).toSQLWithKeyword();throw new i(e,a.InvalidParameter,t)}if(h(l))return l.toSQLWithKeyword();if(F(l)){if(3!==s.length)throw new i(e,a.InvalidParameter,t);await l.load();const n=g(s[1]);if(h(s[2]))return s[2].toSQLWithKeyword();if(!1===T(s[2]))throw new i(e,a.InvalidParameter,t);const r=l.fieldTimeZone(n);return null===r?s[2].toSQLWithKeyword():s[2].changeTimeZone(r).toSQLWithKeyword()}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"sqltimestamp",min:2,max:4}),q.functions.featuresetbyid=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetById(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyid",min:2,max:4}),q.functions.getfeatureset=function(e,t){return q.standardFunctionAsync(e,t,((n,r,s)=>{if(y(s,1,2,e,t),A(s[0])){let t=x(s[1],"datasource");return null===t&&(t="datasource"),t=g(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"getfeatureset",min:1,max:2}),q.functions.featuresetbyportalitem=function(e,n){return q.standardFunctionAsync(e,n,((r,s,l)=>{if(y(l,2,5,e,n),null===l[0])throw new i(e,a.PortalRequired,n);if(l[0]instanceof t){const t=g(l[1]),r=g(l[2]);let s=x(l[3],null);const f=E(x(l[4],!0));if(null===s&&(s=["*"]),!1===b(s))throw new i(e,a.InvalidParameter,n);let d=null;return d=e.services&&e.services.portal?e.services.portal:J.getDefault(),d=Z(l[0],d),o(t,r,e.spatialReference,s,f,d,e.lrucache,e.interceptor)}if(!1===w(l[0]))throw new i(e,a.PortalRequired,n);const f=g(l[0]),d=g(l[1]);let u=x(l[2],null);const c=E(x(l[3],!0));if(null===u&&(u=["*"]),!1===b(u))throw new i(e,a.InvalidParameter,n);return o(f,d,e.spatialReference,u,c,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},q.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),q.functions.featuresetbyname=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetByName(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyname",min:2,max:4}),q.functions.featureset=function(e,t){return q.standardFunction(e,t,((r,s,l)=>{y(l,1,1,e,t);let o=l[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(w(o))o=JSON.parse(o),void 0!==o.layerDefinition?(f.layerDefinition=o.layerDefinition,f.featureSet=o.featureSet,o.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=o.layerDefinition.spatialReference)):(f.featureSet.features=o.features,f.featureSet.geometryType=o.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=o.objectIdFieldName??"",f.layerDefinition.typeIdField=o.typeIdFieldName,f.layerDefinition.globalIdField=o.globalIdFieldName,f.layerDefinition.fields=o.fields,o.spatialReference&&(f.layerDefinition.spatialReference=o.spatialReference));else{if(!(l[0]instanceof n))throw new i(e,a.InvalidParameter,t);{o=JSON.parse(l[0].castToText(!0));const e=ee(o,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=ee(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=ee(e,"globalidfield",""),f.layerDefinition.objectIdField=ee(e,"objectidfield",""),f.layerDefinition.typeIdField=ee(e,"typeidfield",""),f.layerDefinition.hasZ=!0===ee(e,"hasz",!1),f.layerDefinition.hasM=!0===ee(e,"hasm",!1);const t=ee(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ne(t));for(const i of ee(e,"fields",[])){const e={name:ee(i,"name",""),alias:ee(i,"alias",""),type:ee(i,"type",""),nullable:ee(i,"nullable",!0),editable:ee(i,"editable",!0),length:ee(i,"length",null),domain:te(ee(i,"domain"))};f.layerDefinition.fields.push(e)}const n=ee(o,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of ee(n,"features",[])){const n={},i=ee(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:ie(ee(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===ee(o,"hasz",!1),f.layerDefinition.hasM=!0===ee(o,"hasm",!1),f.layerDefinition.geometryType=ee(o,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=ee(o,"objectidfieldname",""),f.layerDefinition.typeIdField=ee(o,"typeidfieldname","");const e=ee(o,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ne(e));let t=ee(o,"fields",null);if(b(t))for(const a of t){const e={name:ee(a,"name",""),alias:ee(a,"alias",""),type:ee(a,"type",""),nullable:ee(a,"nullable",!0),editable:ee(a,"editable",!0),length:ee(a,"length",null),domain:te(ee(a,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const a of f.layerDefinition.fields)n[a.name.toLowerCase()]=a.name;let i=ee(o,"features",null);if(b(i))for(const a of i){const e={},t=ee(a,"attributes",{});for(const i in t)e[n[i.toLowerCase()]]=t[i];f.featureSet.features.push({attributes:e,geometry:ie(ee(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===re(f))throw new i(e,a.InvalidParameter,t);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},q.signatures.push({name:"featureset",min:1,max:1}),q.functions.filter=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),b(s[0])||N(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let l=null;if(!S(s[1]))throw new i(e,a.InvalidParameter,t);l=s[1].createFunction(e);for(const e of r){const t=l(e);B(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(F(s[0])){const t=await s[0].load(),n=K.create(s[1],t.getFieldsIndex(),{timeZone:t.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),i=n.getVariables();if(i.length>0){const t=[];for(let n=0;n<i.length;n++){const a={name:i[n]};t.push(await q.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new M({parentfeatureset:s[0],whereclause:n})}return new M({parentfeatureset:s[0],whereclause:n})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"filter",min:2,max:2}),q.functions.orderby=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),F(s[0])){const e=new H(s[1]);return new k({parentfeatureset:s[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"orderby",min:2,max:2}),q.functions.top=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),F(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(b(s[0]))return R(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,R(s[1]));if(N(s[0]))return R(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,R(s[1]));throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"top",min:2,max:2}),q.functions.first=function(e,t){return q.standardFunctionAsync(e,t,(async(n,i,a)=>{if(y(a,1,1,e,t),F(a[0])){const t=await a[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,a[0],e.timeReference);return n._underlyingGraphic=t,n}return t}return b(a[0])?0===a[0].length?null:a[0][0]:N(a[0])?0===a[0].length()?null:a[0].get(0):null}))},q.signatures.push({name:"first",min:1,max:1}),q.functions.attachments=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{y(l,1,2,e,t);const o={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(l.length>1)if(l[1]instanceof n){if(l[1].hasField("minsize")&&(o.minsize=R(l[1].field("minsize"))),l[1].hasField("metadata")&&(o.returnMetadata=E(l[1].field("metadata"))),l[1].hasField("maxsize")&&(o.maxsize=R(l[1].field("maxsize"))),l[1].hasField("types")){const e=L(l[1].field("types"),!1);e.length>0&&(o.types=e)}}else if(null!==l[1])throw new i(e,a.InvalidParameter,t);if(A(l[0])){let t=l[0]._layer;return t instanceof V&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===F(t)?[]:(await t.load(),t.queryAttachments(l[0].field(t.objectIdField),o.minsize,o.maxsize,o.types,o.returnMetadata))}if(null===l[0])return[];throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"attachments",min:1,max:2}),q.functions.featuresetbyrelationshipname=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,4,e,t);const l=s[0],o=g(s[1]);let c=x(s[2],null);const m=E(x(s[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,t);if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let p=l._layer;if(p instanceof V&&(p=f(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===F(p))return null;p=await p.load();const h=p.relationshipMetaData().filter((e=>e.name===o));if(0===h.length)return null;if(void 0!==h[0].relationshipTableId&&null!==h[0].relationshipTableId&&h[0].relationshipTableId>-1)return d(p,h[0],l.field(p.objectIdField),p.spatialReference,c,m,e.lrucache,e.interceptor);let w=p.serviceUrl();if(!w)return null;w="/"===w.charAt(w.length-1)?w+h[0].relatedTableId.toString():w+"/"+h[0].relatedTableId.toString();const I=await u(w,p.spatialReference,c,m,e.lrucache,e.interceptor);await I.load();let D=I.relationshipMetaData();if(D=D.filter((e=>e.id===h[0].id)),!1===l.hasField(h[0].keyField)||null===l.field(h[0].keyField)){const e=await p.getFeatureByObjectId(l.field(p.objectIdField),[h[0].keyField]);if(e){const t=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),{timeZone:I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});return t.parameters={id:e.attributes[h[0].keyField]},I.filter(t)}return new z({parentfeatureset:I})}const T=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),{timeZone:I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});return T.parameters={id:l.field(h[0].keyField)},I.filter(T)}))},q.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),q.functions.featuresetbyassociation=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,3,e,t);const l=s[0],o=g(x(s[1],"")).toLowerCase(),d=w(s[2])?g(s[2]):null;if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let u=l._layer;if(u instanceof V&&(u=f(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===F(u))return null;await u.load();const m=u.serviceUrl(),p=await c(m,e.spatialReference);let h=null,I=null,D=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of p.terminals)e.terminalName===d&&(I=e.terminalId);null===I&&(D=!0)}const T=p.associations.getFieldsIndex(),E=T.get("TOGLOBALID").name,b=T.get("FROMGLOBALID").name,N=T.get("TOTERMINALID").name,S=T.get("FROMTERMINALID").name,R=T.get("FROMNETWORKSOURCEID").name,L=T.get("TONETWORKSOURCEID").name,Z=T.get("ASSOCIATIONTYPE").name,M=T.get("ISCONTENTVISIBLE").name,k=T.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){h=l.field(e.name);break}let O=null,z=new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create("''",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));const H="globalid",_="globalId",q={};for(const e in p.lkp)q[e]=p.lkp[e].sourceId;const B=new v(new Q({name:"classname",alias:"classname",type:"string"}),null,q);let J="";switch(o){case"midspan":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (5))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),z=p.unVersion>=4?new U(j.findField(p.associations.fields,T.get("PERCENTALONG").name)):new $(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"junctionedge":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${Z} IN (4,6))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const e=G(j.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new $(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})),W=new $(new Q({name:"side",alias:"side",type:"string"}),K.create(`CASE WHEN (${Z}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"connected":{let e=`${E}='@T'`,t=`${b}='@T'`;null!==I&&(e+=` AND ${N}=@A`,t+=` AND ${S}=@A`),J="(("+e+") OR ("+t+"))",J=C(J,"@T",h??""),e=C(e,"@T",h??""),null!==I&&(e=C(e,"@A",I.toString()),J=C(J,"@A",I.toString())),B.codefield=K.create("CASE WHEN "+e+` THEN ${R} ELSE ${L} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC});const n=G(j.findField(p.associations.fields,b));n.name=H,n.alias=H,O=new $(n,K.create("CASE WHEN "+e+` THEN ${b} ELSE ${E} END`,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}));break}case"container":J=`${E}='${h}' AND ${Z} = 2`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,H);break;case"content":J=`(${b}='${h}' AND ${Z} = 2)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,H);break;case"structure":J=`(${E}='${h}' AND ${Z} = 3)`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new P(j.findField(p.associations.fields,b),H,_);break;case"attached":J=`(${b}='${h}' AND ${Z} = 3)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new P(j.findField(p.associations.fields,E),H,_);break;default:throw new i(e,a.InvalidParameter,t)}D&&(J="1 <> 1");return new j({parentfeatureset:p.associations,adaptedFields:[new U(j.findField(p.associations.fields,k)),new U(j.findField(p.associations.fields,M)),O,W,B,z],extraFilter:J?K.create(J,p.associations.getFieldsIndex(),{timeZone:p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}):null})}))},q.signatures.push({name:"featuresetbyassociation",min:2,max:6}),q.functions.groupby=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(y(l,3,3,e,t),!F(l[0]))throw new i(e,a.InvalidParameter,t);const o=await l[0].load(),f=[],d=[];let u=!1,c=[];if(w(l[1]))c.push(l[1]);else if(l[1]instanceof n)c.push(l[1]);else if(b(l[1]))c=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);c=l[1].toArray()}for(const m of c)if(w(m)){const e=K.create(g(m),o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),t=!0===_(e)?g(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(u=!0)}else{if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(u=!0),!n)throw new i(e,a.InvalidParameter,t);f.push({name:n,expression:K.create(r||n,o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(c=[],w(l[2]))c.push(l[2]);else if(b(l[2]))c=l[2];else if(N(l[2]))c=l[2].toArray();else{if(!(l[2]instanceof n))throw new i(e,a.InvalidParameter,t);c.push(l[2])}for(const m of c){if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new i(e,a.InvalidParameter,t);d.push({name:n,statistic:r.toLowerCase(),expression:K.create(s,o.getFieldsIndex(),{timeZone:o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(u){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of d)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await X(t.expression,q,e);for(const t of d)await X(t.expression,q,e);return l[0].groupby(f,d)}))},q.signatures.push({name:"groupby",min:3,max:3}),q.functions.distinct=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(F(l[0])){y(l,2,2,e,t);const r=await l[0].load(),s=[];let o=[];if(w(l[1]))o.push(l[1]);else if(l[1]instanceof n)o.push(l[1]);else if(b(l[1]))o=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);o=l[1].toArray()}let f=!1;for(const l of o)if(w(l)){const e=K.create(g(l),r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC}),t=!0===_(e)?g(l):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(l instanceof n))throw new i(e,a.InvalidParameter,t);{const n=l.hasField("name")?l.field("name"):"%%%%FIELDNAME",o=l.hasField("expression")?l.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new i(e,a.InvalidParameter,t);s.push({name:n,expression:K.create(o||n,r.getFieldsIndex(),{timeZone:r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC})})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await X(t.expression,q,e);return l[0].groupby(s,[])}return Y("distinct",r,s,l)}))})}export{le as registerFunctions};
|
|
5
|
+
import{ArcadeDate as e}from"../ArcadeDate.js";import t from"../ArcadePortal.js";import n from"../Dictionary.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as a}from"../executionError.js";import r from"../Feature.js";import s from"../featureSetCollection.js";import{convertToFeatureSet as l,constructFeatureSetFromPortalItem as o,constructFeatureSet as f,constructFeatureSetFromRelationship as d,constructFeatureSetFromUrl as u,constructAssociationMetaDataFeatureSetFromUrl as c}from"../featureSetUtils.js";import m from"../ImmutableArray.js";import{E as y,n as p,m as h,u as w,c as F,j as g,l as I,L as D,k as T,H as x,h as E,o as b,r as A,q as N,i as S,g as L,a2 as R,S as C}from"../../chunks/languageUtils.js";import{getPortal as $}from"../portalUtils.js";import{SqlExpressionAdapted as v,StringToCodeAdapted as P,FieldRename as j,AdaptedFeatureSet as U,OriginalField as Z}from"../featureset/actions/Adapted.js";import k from"../featureset/actions/AttributeFilter.js";import M from"../featureset/actions/OrderBy.js";import O from"../featureset/actions/Top.js";import z from"../featureset/sources/Empty.js";import W from"../featureset/sources/FeatureLayerMemory.js";import H from"../featureset/support/OrderbyClause.js";import{cloneField as G}from"../featureset/support/shared.js";import{isSingleField as _}from"../featureset/support/sqlUtils.js";import{calculateStat as q}from"./fieldStats.js";import{isPromiseLike as B}from"../../core/promiseUtils.js";import{WhereClause as K}from"../../core/sql/WhereClause.js";import V from"../../layers/FeatureLayer.js";import Q from"../../layers/support/Field.js";import J from"../../portal/Portal.js";function Y(e,t,n,i){if(1===i.length){if(b(i[0]))return q(e,i[0],-1);if(N(i[0]))return q(e,i[0].toArray(),-1)}return q(e,i,-1)}async function X(e,t,n){const i=e.getVariables();if(i.length>0){const a=[];for(let e=0;e<i.length;e++){const r={name:i[e]};a.push(await t.evaluateIdentifier(n,r))}const r={};for(let e=0;e<i.length;e++)r[i[e]]=a[e];return e.parameters=r,e}return e}function ee(e,t,n=null){for(const i in e)if(i.toLowerCase()===t.toLowerCase())return e[i];return n}function te(e){if(null===e)return null;const t={type:ee(e,"type",""),name:ee(e,"name","")};if("range"===t.type)t.range=ee(e,"range",[]);else{t.codedValues=[];for(const n of ee(e,"codedValues",[]))t.codedValues.push({name:ee(n,"name",""),code:ee(n,"code",null)})}return t}function ne(e){if(null===e)return null;const t={},n=ee(e,"wkt",null);null!==n&&(t.wkt=n);const i=ee(e,"wkid",null);return null!==i&&(t.wkid=i),t}function ie(e){if(null===e)return null;const t={hasZ:ee(e,"hasz",!1),hasM:ee(e,"hasm",!1)},n=ee(e,"spatialreference",null);n&&(t.spatialReference=ne(n));const i=ee(e,"x",null);if(null!==i)return t.x=i,t.y=ee(e,"y",null),t;const a=ee(e,"rings",null);if(null!==a)return t.rings=a,t;const r=ee(e,"paths",null);if(null!==r)return t.paths=r,t;const s=ee(e,"points",null);if(null!==s)return t.points=s,t;for(const l of["xmin","xmax","ymin","ymax","zmin","zmax","mmin","mmax"]){const n=ee(e,l,null);null!==n&&(t[l]=n)}return t}function ae(e,t){for(const n of t)if(n===e)return!0;return!1}function re(e){return!!e.layerDefinition&&(!!e.featureSet&&(!1!==ae(e.layerDefinition.geometryType,["",null,"esriGeometryNull","esriGeometryPoint","esriGeometryPolyline","esriGeometryPolygon","esriGeometryMultipoint","esriGeometryEnvelope"])&&(!1!==b(e.layerDefinition.fields)&&!1!==b(e.featureSet.features))))}function se(e){return"utc"===e?.toLowerCase()?"UTC":"unknown"===e?.toLowerCase()?"Unknown":e}function le(q){"async"===q.mode&&(q.functions.timezone=function(t,r){return q.standardFunctionAsync(t,r,(async(s,l,o)=>{if(y(o,1,2,t,r),p(o[0]))return"Unknown";if(h(o[0]))return"Unknown";if(w(o[0])){if(await o[0].load(),1===o.length||null===o[1])return se(o[0].dateTimeReferenceFieldIndex.layerDateFieldsTimeZone);if(!(o[1]instanceof n)||!1===o[1].hasField("type"))throw new i(t,a.InvalidParameter,r);const e=o[1].field("type");if(!1===F(e))throw new i(t,a.InvalidParameter,r);switch(g(e).toLowerCase()){case"preferredtimezone":return se(o[0].dateTimeReferenceFieldIndex.layerPreferredTimeZone);case"editfieldsinfo":return se(o[0].dateTimeReferenceFieldIndex.layerEditFieldsTimeZone);case"timeinfo":return se(o[0].dateTimeReferenceFieldIndex.layerTimeInfoTimeZone);case"field":if(o[1].hasField("fieldname")&&F(o[1].field("fieldname")))return se(o[0].dateTimeReferenceFieldIndex.fieldTimeZone(g(o[1].field("fieldname"))))}throw new i(t,a.InvalidParameter,r)}const f=I(o[0],D(t));if(null===f)return null;const d=f.timeZone;return"system"===d?e.systemTimeZoneCanonicalName:"utc"===d.toLowerCase()?"UTC":"unknown"===d.toLowerCase()?"Unknown":d}))},q.functions.sqltimestamp=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,1,3,e,t);const l=s[0];if(T(l)){if(1===s.length)return l.toSQLWithKeyword();if(2===s.length)return l.changeTimeZone(g(s[1])).toSQLWithKeyword();throw new i(e,a.InvalidParameter,t)}if(h(l))return l.toSQLWithKeyword();if(w(l)){if(3!==s.length)throw new i(e,a.InvalidParameter,t);await l.load();const n=g(s[1]);if(h(s[2]))return s[2].toSQLWithKeyword();if(!1===T(s[2]))throw new i(e,a.InvalidParameter,t);const r=l.fieldTimeZone(n);return null===r?s[2].toSQLWithKeyword():s[2].changeTimeZone(r).toSQLWithKeyword()}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"sqltimestamp",min:2,max:4}),q.functions.featuresetbyid=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetById(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyid",min:2,max:4}),q.functions.getfeatureset=function(e,t){return q.standardFunctionAsync(e,t,((n,r,s)=>{if(y(s,1,2,e,t),A(s[0])){let t=x(s[1],"datasource");return null===t&&(t="datasource"),t=g(t).toLowerCase(),l(s[0].fullSchema(),t,e.lrucache,e.interceptor,e.spatialReference)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"getfeatureset",min:1,max:2}),q.functions.featuresetbyportalitem=function(e,n){return q.standardFunctionAsync(e,n,((r,s,l)=>{if(y(l,2,5,e,n),null===l[0])throw new i(e,a.PortalRequired,n);if(l[0]instanceof t){const t=g(l[1]),r=g(l[2]);let s=x(l[3],null);const f=E(x(l[4],!0));if(null===s&&(s=["*"]),!1===b(s))throw new i(e,a.InvalidParameter,n);let d=null;return d=e.services&&e.services.portal?e.services.portal:J.getDefault(),d=$(l[0],d),o(t,r,e.spatialReference,s,f,d,e.lrucache,e.interceptor)}if(!1===F(l[0]))throw new i(e,a.PortalRequired,n);const f=g(l[0]),d=g(l[1]);let u=x(l[2],null);const c=E(x(l[3],!0));if(null===u&&(u=["*"]),!1===b(u))throw new i(e,a.InvalidParameter,n);return o(f,d,e.spatialReference,u,c,e.services?.portal??J.getDefault(),e.lrucache,e.interceptor)}))},q.signatures.push({name:"featuresetbyportalitem",min:2,max:5}),q.functions.featuresetbyname=function(e,t){return q.standardFunctionAsync(e,t,((n,r,l)=>{if(y(l,2,4,e,t),l[0]instanceof s){const n=g(l[1]);let r=x(l[2],null);const s=E(x(l[3],!0));if(null===r&&(r=["*"]),!1===b(r))throw new i(e,a.InvalidParameter,t);return l[0].featureSetByName(n,s,r)}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"featuresetbyname",min:2,max:4}),q.functions.featureset=function(e,t){return q.standardFunction(e,t,((r,s,l)=>{y(l,1,1,e,t);let o=l[0];const f={layerDefinition:{geometryType:"",objectIdField:"",hasM:!1,hasZ:!1,globalIdField:"",typeIdField:"",fields:[]},featureSet:{geometryType:"",features:[]}};if(F(o))o=JSON.parse(o),void 0!==o.layerDefinition?(f.layerDefinition=o.layerDefinition,f.featureSet=o.featureSet,o.layerDefinition.spatialReference&&(f.layerDefinition.spatialReference=o.layerDefinition.spatialReference)):(f.featureSet.features=o.features,f.featureSet.geometryType=o.geometryType,f.layerDefinition.geometryType=f.featureSet.geometryType,f.layerDefinition.objectIdField=o.objectIdFieldName??"",f.layerDefinition.typeIdField=o.typeIdFieldName,f.layerDefinition.globalIdField=o.globalIdFieldName,f.layerDefinition.fields=o.fields,o.spatialReference&&(f.layerDefinition.spatialReference=o.spatialReference));else{if(!(l[0]instanceof n))throw new i(e,a.InvalidParameter,t);{o=JSON.parse(l[0].castToText(!0));const e=ee(o,"layerdefinition");if(null!==e){f.layerDefinition.geometryType=ee(e,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.globalIdField=ee(e,"globalidfield",""),f.layerDefinition.objectIdField=ee(e,"objectidfield",""),f.layerDefinition.typeIdField=ee(e,"typeidfield",""),f.layerDefinition.hasZ=!0===ee(e,"hasz",!1),f.layerDefinition.hasM=!0===ee(e,"hasm",!1);const t=ee(e,"spatialreference",null);t&&(f.layerDefinition.spatialReference=ne(t));for(const i of ee(e,"fields",[])){const e={name:ee(i,"name",""),alias:ee(i,"alias",""),type:ee(i,"type",""),nullable:ee(i,"nullable",!0),editable:ee(i,"editable",!0),length:ee(i,"length",null),domain:te(ee(i,"domain"))};f.layerDefinition.fields.push(e)}const n=ee(o,"featureset",null);if(n){const e={};for(const t of f.layerDefinition.fields)e[t.name.toLowerCase()]=t.name;for(const t of ee(n,"features",[])){const n={},i=ee(t,"attributes",{});for(const t in i)n[e[t.toLowerCase()]]=i[t];f.featureSet.features.push({attributes:n,geometry:ie(ee(t,"geometry",null))})}}}else{f.layerDefinition.hasZ=!0===ee(o,"hasz",!1),f.layerDefinition.hasM=!0===ee(o,"hasm",!1),f.layerDefinition.geometryType=ee(o,"geometrytype",""),f.featureSet.geometryType=f.layerDefinition.geometryType,f.layerDefinition.objectIdField=ee(o,"objectidfieldname",""),f.layerDefinition.typeIdField=ee(o,"typeidfieldname","");const e=ee(o,"spatialreference",null);e&&(f.layerDefinition.spatialReference=ne(e));let t=ee(o,"fields",null);if(b(t))for(const a of t){const e={name:ee(a,"name",""),alias:ee(a,"alias",""),type:ee(a,"type",""),nullable:ee(a,"nullable",!0),editable:ee(a,"editable",!0),length:ee(a,"length",null),domain:te(ee(a,"domain"))};f.layerDefinition.fields.push(e)}else t=null,f.layerDefinition.fields=t;const n={};for(const a of f.layerDefinition.fields)n[a.name.toLowerCase()]=a.name;let i=ee(o,"features",null);if(b(i))for(const a of i){const e={},t=ee(a,"attributes",{});for(const i in t)e[n[i.toLowerCase()]]=t[i];f.featureSet.features.push({attributes:e,geometry:ie(ee(a,"geometry",null))})}else i=null,f.featureSet.features=i}}}if(!1===re(f))throw new i(e,a.InvalidParameter,t);return""===(f?.layerDefinition?.geometryType||"")&&(f.layerDefinition.geometryType="esriGeometryNull"),W.create(f,e.spatialReference)}))},q.signatures.push({name:"featureset",min:1,max:1}),q.functions.filter=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),b(s[0])||N(s[0])){const n=[];let r=s[0];r instanceof m&&(r=r.toArray());let l=null;if(!S(s[1]))throw new i(e,a.InvalidParameter,t);l=s[1].createFunction(e);for(const e of r){const t=l(e);B(t)?!0===await t&&n.push(e):!0===t&&n.push(e)}return n}if(w(s[0])){const t=await s[0].load(),n=K.create(s[1],t.getFieldsIndex(),t.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC),i=n.getVariables();if(i.length>0){const t=[];for(let n=0;n<i.length;n++){const a={name:i[n]};t.push(await q.evaluateIdentifier(e,a))}const a={};for(let e=0;e<i.length;e++)a[i[e]]=t[e];return n.parameters=a,new k({parentfeatureset:s[0],whereclause:n})}return new k({parentfeatureset:s[0],whereclause:n})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"filter",min:2,max:2}),q.functions.orderby=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),w(s[0])){const e=new H(s[1]);return new M({parentfeatureset:s[0],orderbyclause:e})}throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"orderby",min:2,max:2}),q.functions.top=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{if(y(s,2,2,e,t),w(s[0]))return new O({parentfeatureset:s[0],topnum:s[1]});if(b(s[0]))return L(s[1])>=s[0].length?s[0].slice(0):s[0].slice(0,L(s[1]));if(N(s[0]))return L(s[1])>=s[0].length()?s[0].slice(0):s[0].slice(0,L(s[1]));throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"top",min:2,max:2}),q.functions.first=function(e,t){return q.standardFunctionAsync(e,t,(async(n,i,a)=>{if(y(a,1,1,e,t),w(a[0])){const t=await a[0].first(n.abortSignal);if(null!==t){const n=r.createFromGraphicLikeObject(t.geometry,t.attributes,a[0],e.timeReference);return n._underlyingGraphic=t,n}return t}return b(a[0])?0===a[0].length?null:a[0][0]:N(a[0])?0===a[0].length()?null:a[0].get(0):null}))},q.signatures.push({name:"first",min:1,max:1}),q.functions.attachments=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{y(l,1,2,e,t);const o={minsize:-1,maxsize:-1,types:null,returnMetadata:!1};if(l.length>1)if(l[1]instanceof n){if(l[1].hasField("minsize")&&(o.minsize=L(l[1].field("minsize"))),l[1].hasField("metadata")&&(o.returnMetadata=E(l[1].field("metadata"))),l[1].hasField("maxsize")&&(o.maxsize=L(l[1].field("maxsize"))),l[1].hasField("types")){const e=R(l[1].field("types"),!1);e.length>0&&(o.types=e)}}else if(null!==l[1])throw new i(e,a.InvalidParameter,t);if(A(l[0])){let t=l[0]._layer;return t instanceof V&&(t=f(t,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===t?[]:!1===w(t)?[]:(await t.load(),t.queryAttachments(l[0].field(t.objectIdField),o.minsize,o.maxsize,o.types,o.returnMetadata))}if(null===l[0])return[];throw new i(e,a.InvalidParameter,t)}))},q.signatures.push({name:"attachments",min:1,max:2}),q.functions.featuresetbyrelationshipname=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,4,e,t);const l=s[0],o=g(s[1]);let c=x(s[2],null);const m=E(x(s[3],!0));if(null===c&&(c=["*"]),!1===b(c))throw new i(e,a.InvalidParameter,t);if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let p=l._layer;if(p instanceof V&&(p=f(p,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===p)return null;if(!1===w(p))return null;p=await p.load();const h=p.relationshipMetaData().filter((e=>e.name===o));if(0===h.length)return null;if(void 0!==h[0].relationshipTableId&&null!==h[0].relationshipTableId&&h[0].relationshipTableId>-1)return d(p,h[0],l.field(p.objectIdField),p.spatialReference,c,m,e.lrucache,e.interceptor);let F=p.serviceUrl();if(!F)return null;F="/"===F.charAt(F.length-1)?F+h[0].relatedTableId.toString():F+"/"+h[0].relatedTableId.toString();const I=await u(F,p.spatialReference,c,m,e.lrucache,e.interceptor);await I.load();let D=I.relationshipMetaData();if(D=D.filter((e=>e.id===h[0].id)),!1===l.hasField(h[0].keyField)||null===l.field(h[0].keyField)){const e=await p.getFeatureByObjectId(l.field(p.objectIdField),[h[0].keyField]);if(e){const t=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC);return t.parameters={id:e.attributes[h[0].keyField]},I.filter(t)}return new z({parentfeatureset:I})}const T=K.create(D[0].keyField+"= @id",I.getFieldsIndex(),I.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC);return T.parameters={id:l.field(h[0].keyField)},I.filter(T)}))},q.signatures.push({name:"featuresetbyrelationshipname",min:2,max:4}),q.functions.featuresetbyassociation=function(e,t){return q.standardFunctionAsync(e,t,(async(n,r,s)=>{y(s,2,3,e,t);const l=s[0],o=g(x(s[1],"")).toLowerCase(),d=F(s[2])?g(s[2]):null;if(null===s[0])return null;if(!A(s[0]))throw new i(e,a.InvalidParameter,t);let u=l._layer;if(u instanceof V&&(u=f(u,e.spatialReference,["*"],!0,e.lrucache,e.interceptor)),null===u)return null;if(!1===w(u))return null;await u.load();const m=u.serviceUrl(),p=await c(m,e.spatialReference);let h=null,I=null,D=!1;if(null!==d&&""!==d&&void 0!==d){for(const e of p.terminals)e.terminalName===d&&(I=e.terminalId);null===I&&(D=!0)}const T=p.associations.getFieldsIndex(),E=T.get("TOGLOBALID").name,b=T.get("FROMGLOBALID").name,N=T.get("TOTERMINALID").name,S=T.get("FROMTERMINALID").name,L=T.get("FROMNETWORKSOURCEID").name,R=T.get("TONETWORKSOURCEID").name,$=T.get("ASSOCIATIONTYPE").name,k=T.get("ISCONTENTVISIBLE").name,M=T.get("OBJECTID").name;for(const e of u.fields)if("global-id"===e.type){h=l.field(e.name);break}let O=null,z=new v(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)),W=new v(new Q({name:"side",alias:"side",type:"string"}),K.create("''",p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC));const H="globalid",_="globalId",q={};for(const e in p.lkp)q[e]=p.lkp[e].sourceId;const B=new P(new Q({name:"classname",alias:"classname",type:"string"}),null,q);let J="";switch(o){case"midspan":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${$} IN (5))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${L} ELSE ${R} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC);const e=G(U.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new v(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)),z=p.unVersion>=4?new Z(U.findField(p.associations.fields,T.get("PERCENTALONG").name)):new v(new Q({name:"percentalong",alias:"percentalong",type:"double"}),K.create("0",p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC));break}case"junctionedge":{J=`((${E}='${h}') OR ( ${b}='${h}')) AND (${$} IN (4,6))`,B.codefield=K.create(`CASE WHEN (${E}='${h}') THEN ${L} ELSE ${R} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC);const e=G(U.findField(p.associations.fields,b));e.name=H,e.alias=H,O=new v(e,K.create(`CASE WHEN (${b}='${h}') THEN ${E} ELSE ${b} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)),W=new v(new Q({name:"side",alias:"side",type:"string"}),K.create(`CASE WHEN (${$}=4) THEN 'from' ELSE 'to' END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC));break}case"connected":{let e=`${E}='@T'`,t=`${b}='@T'`;null!==I&&(e+=` AND ${N}=@A`,t+=` AND ${S}=@A`),J="(("+e+") OR ("+t+"))",J=C(J,"@T",h??""),e=C(e,"@T",h??""),null!==I&&(e=C(e,"@A",I.toString()),J=C(J,"@A",I.toString())),B.codefield=K.create("CASE WHEN "+e+` THEN ${L} ELSE ${R} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC);const n=G(U.findField(p.associations.fields,b));n.name=H,n.alias=H,O=new v(n,K.create("CASE WHEN "+e+` THEN ${b} ELSE ${E} END`,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC));break}case"container":J=`${E}='${h}' AND ${$} = 2`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new j(U.findField(p.associations.fields,b),H,H);break;case"content":J=`(${b}='${h}' AND ${$} = 2)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new j(U.findField(p.associations.fields,E),H,H);break;case"structure":J=`(${E}='${h}' AND ${$} = 3)`,null!==I&&(J+=` AND ${N} = `+I.toString()),B.codefield=L,J="( "+J+" )",O=new j(U.findField(p.associations.fields,b),H,_);break;case"attached":J=`(${b}='${h}' AND ${$} = 3)`,null!==I&&(J+=` AND ${S} = `+I.toString()),B.codefield=R,J="( "+J+" )",O=new j(U.findField(p.associations.fields,E),H,_);break;default:throw new i(e,a.InvalidParameter,t)}D&&(J="1 <> 1");return new U({parentfeatureset:p.associations,adaptedFields:[new Z(U.findField(p.associations.fields,M)),new Z(U.findField(p.associations.fields,k)),O,W,B,z],extraFilter:J?K.create(J,p.associations.getFieldsIndex(),p.associations.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC):null})}))},q.signatures.push({name:"featuresetbyassociation",min:2,max:6}),q.functions.groupby=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(y(l,3,3,e,t),!w(l[0]))throw new i(e,a.InvalidParameter,t);const o=await l[0].load(),f=[],d=[];let u=!1,c=[];if(F(l[1]))c.push(l[1]);else if(l[1]instanceof n)c.push(l[1]);else if(b(l[1]))c=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);c=l[1].toArray()}for(const m of c)if(F(m)){const e=K.create(g(m),o.getFieldsIndex(),o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC),t=!0===_(e)?g(m):"%%%%FIELDNAME";f.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(u=!0)}else{if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"%%%%FIELDNAME",r=m.hasField("expression")?m.field("expression"):"";if("%%%%FIELDNAME"===n&&(u=!0),!n)throw new i(e,a.InvalidParameter,t);f.push({name:n,expression:K.create(r||n,o.getFieldsIndex(),o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)})}}if(c=[],F(l[2]))c.push(l[2]);else if(b(l[2]))c=l[2];else if(N(l[2]))c=l[2].toArray();else{if(!(l[2]instanceof n))throw new i(e,a.InvalidParameter,t);c.push(l[2])}for(const m of c){if(!(m instanceof n))throw new i(e,a.InvalidParameter,t);{const n=m.hasField("name")?m.field("name"):"",r=m.hasField("statistic")?m.field("statistic"):"",s=m.hasField("expression")?m.field("expression"):"";if(!n||!r||!s)throw new i(e,a.InvalidParameter,t);d.push({name:n,statistic:r.toLowerCase(),expression:K.create(s,o.getFieldsIndex(),o.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)})}}if(u){const e={};for(const n of o.fields)e[n.name.toLowerCase()]=1;for(const n of f)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);for(const n of d)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of f)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of f)await X(t.expression,q,e);for(const t of d)await X(t.expression,q,e);return l[0].groupby(f,d)}))},q.signatures.push({name:"groupby",min:3,max:3}),q.functions.distinct=function(e,t){return q.standardFunctionAsync(e,t,(async(r,s,l)=>{if(w(l[0])){y(l,2,2,e,t);const r=await l[0].load(),s=[];let o=[];if(F(l[1]))o.push(l[1]);else if(l[1]instanceof n)o.push(l[1]);else if(b(l[1]))o=l[1];else{if(!N(l[1]))throw new i(e,a.InvalidParameter,t);o=l[1].toArray()}let f=!1;for(const l of o)if(F(l)){const e=K.create(g(l),r.getFieldsIndex(),r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC),t=!0===_(e)?g(l):"%%%%FIELDNAME";s.push({name:t,expression:e}),"%%%%FIELDNAME"===t&&(f=!0)}else{if(!(l instanceof n))throw new i(e,a.InvalidParameter,t);{const n=l.hasField("name")?l.field("name"):"%%%%FIELDNAME",o=l.hasField("expression")?l.field("expression"):"";if("%%%%FIELDNAME"===n&&(f=!0),!n)throw new i(e,a.InvalidParameter,t);s.push({name:n,expression:K.create(o||n,r.getFieldsIndex(),r.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC)})}}if(f){const e={};for(const n of r.fields)e[n.name.toLowerCase()]=1;for(const n of s)"%%%%FIELDNAME"!==n.name&&(e[n.name.toLowerCase()]=1);let t=0;for(const n of s)if("%%%%FIELDNAME"===n.name){for(;1===e["field_"+t.toString()];)t++;e["field_"+t.toString()]=1,n.name="FIELD_"+t.toString()}}for(const t of s)await X(t.expression,q,e);return l[0].groupby(s,[])}return Y("distinct",r,s,l)}))})}export{le as registerFunctions};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{ArcadeDate as n}from"../ArcadeDate.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as e}from"../executionError.js";import{E as a,u as r,o as i,c as o,q as s,H as c,L as u}from"../../chunks/languageUtils.js";import{calculateStat as f}from"./fieldStats.js";import{SqlTimeStampOffset as d}from"../../core/sql/SqlTimestampOffset.js";import{WhereClause as l}from"../../core/sql/WhereClause.js";async function m(n,t,e,a,o,u){if(1===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1))}else if(2===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1));if(r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),
|
|
5
|
+
import{ArcadeDate as n}from"../ArcadeDate.js";import{ArcadeExecutionError as t,ExecutionErrorCodes as e}from"../executionError.js";import{E as a,u as r,o as i,c as o,q as s,H as c,L as u}from"../../chunks/languageUtils.js";import{calculateStat as f}from"./fieldStats.js";import{SqlTimeStampOffset as d}from"../../core/sql/SqlTimestampOffset.js";import{WhereClause as l}from"../../core/sql/WhereClause.js";async function m(n,t,e,a,o,u){if(1===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1))}else if(2===a.length){if(i(a[0]))return f(n,a[0],c(a[1],-1));if(s(a[0]))return f(n,a[0].toArray(),c(a[1],-1));if(r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),e.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}}else if(3===a.length&&r(a[0])){const e=await a[0].load(),r=await y(l.create(a[1],e.getFieldsIndex(),e.dateTimeReferenceFieldIndex.layerDateFieldsTimeZoneDefaultUTC),u,o);return g(o,await a[0].calculateStatistic(n,r,c(a[2],1e3),t.abortSignal))}return f(n,a,-1)}function g(t,e){return e instanceof d?n.fromReaderAsTimeStampOffset(e.toStorageFormat()):e instanceof Date?n.dateJSAndZoneToArcadeDate(e,u(t)):e}async function y(n,t,e){const a=n.getVariables();if(a.length>0){const r=[];for(let n=0;n<a.length;n++){const i={name:a[n]};r.push(await t.evaluateIdentifier(e,i))}const i={};for(let n=0;n<a.length;n++)i[a[n]]=r[n];return n.parameters=i,n}return n}function F(n){"async"===n.mode&&(n.functions.stdev=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("stdev",e,a,r,t,n)))},n.functions.variance=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("variance",e,a,r,t,n)))},n.functions.average=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.mean=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("mean",e,a,r,t,n)))},n.functions.sum=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("sum",e,a,r,t,n)))},n.functions.min=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("min",e,a,r,t,n)))},n.functions.max=function(t,e){return n.standardFunctionAsync(t,e,((e,a,r)=>m("max",e,a,r,t,n)))},n.functions.count=function(c,u){return n.standardFunctionAsync(c,u,((n,f,d)=>{if(a(d,1,1,c,u),r(d[0]))return d[0].count(n.abortSignal);if(i(d[0])||o(d[0]))return d[0].length;if(s(d[0]))return d[0].length();throw new t(c,e.InvalidParameter,u)}))})}export{F as registerFunctions};
|
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.28/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=["featureset","featuresetbyid","featuresetbyname","featuresetbyassociation","featuresetbyrelationshipname","featuresetbyurl","getfeatureset","getuser","attachments","featuresetbyportalitem"],m=["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.includes(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.includes(a[n])&&(e.usesGeometry=!0)}}function g(e){const n=y(e);for(let a=0;a<n.length;a++)if(t.includes(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: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"]),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};
|
package/arcade.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.28/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"./Graphic.js";import{ArcadeDate as t}from"./arcade/ArcadeDate.js";import r from"./arcade/ImmutableArray.js";import a from"./core/Error.js";import{clone as n}from"./core/lang.js";import{DateOnly as o}from"./core/sql/DateOnly.js";import{TimeOnly as c}from"./core/sql/TimeOnly.js";import s from"./layers/FeatureLayer.js";import i from"./portal/Portal.js";import l from"./rest/support/FeatureSet.js";import{loadArcade as u}from"./support/arcadeOnDemand.js";let p=null;function f(e,t,a,n={}){const o=t.elementType,c="value",s="array"===o.type?[{name:c,type:o.type,elementType:o.elementType}]:"dictionary"===o.type?[{name:c,type:o.type,properties:o.properties}]:[{name:c,type:o.type}];return new r(e.map((e=>{const t={};return b(t,s,{[c]:e},a,n),t[c]})))}function m(e,t,r={}){const a=e instanceof l?new s({source:e.features,geometryType:e.geometryType,fields:e.fields,spatialReference:e.spatialReference}):e;return t.constructFeatureSet(a,r.spatialReference,null,!0,r.lruCache,r.interceptor)}function y(e,t,r={}){const{spatialReference:a,interceptor:n,lruCache:o}=r;return"string"==typeof e?t.createFeatureSetCollectionFromService(e,a,o,n):t.createFeatureSetCollectionFromMap(e,a,o,n)}function d(e,t,r,a={}){const n={};return b(n,t.properties,e,r,a),new p.Dictionary(n)}function b(e,r,a,n,s={}){const i={};for(const t of Object.keys(a))i[t.toLowerCase()]=a[t];for(const l of r){const r=l.name.toLowerCase();if(s.variablesPreProcessed)e[r]=i[r];else switch(l.type){case"array":{const t=i[r];e[r]=null==t?null:f(t,l,n,s);break}case"feature":{const t=i[r];e[r]=null==t?null:p.Feature.createFromGraphic(t,s?.timeReference);break}case"featureSet":{const t=i[r];e[r]=null==t?null:n?m(t,n,s):null;break}case"featureSetCollection":{const t=i[r];e[r]=null==t?null:n?y(t,n,s):null;break}case"dictionary":{const t=i[r];e[r]=null==t?null:d(t,l,n,s);break}case"date":{const a=i[r];e[r]=a?a instanceof t?a:s?.timeReference?.timeZone?t.dateJSAndZoneToArcadeDate(a,s?.timeReference?.timeZone):t.dateJSToArcadeDate(a):null;break}case"dateOnly":{const t=i[r];e[r]=t?t instanceof o?t:o.fromReader(t):null;break}case"time":{const t=i[r];e[r]=t?t instanceof c?t:c.fromReader(t):null;break}case"geometry":case"boolean":case"text":case"number":e[r]=i[r]}}}function
|
|
5
|
+
import e from"./Graphic.js";import{ArcadeDate as t}from"./arcade/ArcadeDate.js";import r from"./arcade/ImmutableArray.js";import a from"./core/Error.js";import{clone as n}from"./core/lang.js";import{DateOnly as o}from"./core/sql/DateOnly.js";import{TimeOnly as c}from"./core/sql/TimeOnly.js";import s from"./layers/FeatureLayer.js";import i from"./portal/Portal.js";import l from"./rest/support/FeatureSet.js";import{loadArcade as u}from"./support/arcadeOnDemand.js";let p=null;function f(e,t,a,n={}){const o=t.elementType,c="value",s="array"===o.type?[{name:c,type:o.type,elementType:o.elementType}]:"dictionary"===o.type?[{name:c,type:o.type,properties:o.properties}]:[{name:c,type:o.type}];return new r(e.map((e=>{const t={};return b(t,s,{[c]:e},a,n),t[c]})))}function m(e,t,r={}){const a=e instanceof l?new s({source:e.features,geometryType:e.geometryType,fields:e.fields,spatialReference:e.spatialReference}):e;return t.constructFeatureSet(a,r.spatialReference,null,!0,r.lruCache,r.interceptor)}function y(e,t,r={}){const{spatialReference:a,interceptor:n,lruCache:o}=r;return"string"==typeof e?t.createFeatureSetCollectionFromService(e,a,o,n):t.createFeatureSetCollectionFromMap(e,a,o,n)}function d(e,t,r,a={}){const n={};return b(n,t.properties,e,r,a),new p.Dictionary(n)}function b(e,r,a,n,s={}){const i={};for(const t of Object.keys(a))i[t.toLowerCase()]=a[t];for(const l of r){const r=l.name.toLowerCase();if(s.variablesPreProcessed)e[r]=i[r];else switch(l.type){case"array":{const t=i[r];e[r]=null==t?null:f(t,l,n,s);break}case"feature":{const t=i[r];e[r]=null==t?null:p.Feature.createFromGraphic(t,s?.timeReference);break}case"featureSet":{const t=i[r];e[r]=null==t?null:n?m(t,n,s):null;break}case"featureSetCollection":{const t=i[r];e[r]=null==t?null:n?y(t,n,s):null;break}case"dictionary":{const t=i[r];e[r]=null==t?null:d(t,l,n,s);break}case"date":{const a=i[r];e[r]=a?a instanceof t?a:s?.timeReference?.timeZone?t.dateJSAndZoneToArcadeDate(a,s?.timeReference?.timeZone):t.dateJSToArcadeDate(a):null;break}case"dateOnly":{const t=i[r];e[r]=t?t instanceof o?t:o.fromReader(t):null;break}case"time":{const t=i[r];e[r]=t?t instanceof c?t:c.fromReader(t):null;break}case"geometry":case"boolean":case"text":case"number":e[r]=i[r]}}}function S(e,t){for(const r of e)t.push(r),"dictionary"===r.type&&S(r.properties,t);return t}function v(e,t,r,a,n){const{spatialReference:o,interceptor:c,lruCache:s,console:l,abortSignal:u,timeReference:p,services:f={portal:i.getDefault()}}=r,m={vars:{},spatialReference:o,interceptor:c,timeReference:p,lrucache:s,useAsync:n,services:f,console:l,abortSignal:u};return t?(b(m.vars,e.variables,t,a,r),m):m}function w(t,r){switch(r.getArcadeType(t)){case"number":case"text":case"boolean":case"point":case"polygon":case"polyline":case"multipoint":case"extent":return t;case"date":return t.toJSDate();case"time":case"dateOnly":return t.toString();case"feature":{const r=(t.type,t),a="geometry"in r?r.geometry():null,n="readAttributes"in r?r.readAttributes():r.attributes;return new e({geometry:a,attributes:n})}case"dictionary":{const e=t,a=e.attributes,n={};for(const t of Object.keys(a))n[t]=w(e.field(t),r);return n}case"array":return("toArray"in t?t.toArray():t).map((e=>w(e,r)))}return t}const $={variables:[{name:"$feature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"}]},g={variables:[{name:"$feature",type:"feature"},{name:"$aggregatedFeatures",type:"featureSet"}]},C=new Map([["form-constraint",{variables:[{name:"$feature",type:"feature"}]}],["feature-z",{variables:[{name:"$feature",type:"feature"}]}],["field-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$datastore",type:"featureSetCollection"}]}],["form-calculation",{variables:[{name:"$feature",type:"feature"},{name:"$originalFeature",type:"feature"},{name:"$layer",type:"featureSet"},{name:"$featureSet",type:"featureSet"},{name:"$datastore",type:"featureSetCollection"},{name:"$map",type:"featureSetCollection"},{name:"$editContext",type:"dictionary",properties:[{name:"editType",type:"text"}]}]}],["labeling",{variables:[{name:"$feature",type:"feature"}]}],["popup",$],["popup-element",$],["feature-reduction-popup",g],["feature-reduction-popup-element",g],["visualization",{variables:[{name:"$feature",type:"feature"},{name:"$view",type:"dictionary",properties:[{name:"scale",type:"number"}]}]}]]);function h(e){const t=C.get(e);if(!t){const t=Array.from(C.keys()).map((e=>`'${e}'`)).join(", ");throw new a("createArcadeProfile:invalid-profile-name",`Invalid profile name '${e}'. You must specify one of the following values: ${t}`)}return n(t)}async function A(e,t,r={}){p||(p=await u());const{arcade:n,arcadeUtils:o}=p,{loadScriptDependencies:c,referencesMember:s,scriptIsAsync:i}=n,l=S(t.variables,[]),f=l.filter((e=>"featureSet"===e.type||"featureSetCollection"===e.type)).map((e=>e.name.toLowerCase())),m=n.parseScript(e,f);if(!m)throw new a("arcade:invalid-script","Unable to create SyntaxTree");const y=o.extractFieldNames(m),d=n.scriptTouchesGeometry(m),b=l.map((e=>e.name.toLowerCase())).filter((e=>s(m,e))),$=i(m,f);await c(m,$,f);const g={vars:{},spatialReference:null,useAsync:$};for(const a of b)g.vars[a]="any";const{lruCache:C}=r,h=n.compileScript(m,g),A=n.featureSetUtils(),{services:j}=r;return{execute:(e,r={})=>{if($)throw new a("arcade:invalid-execution-mode","Cannot execute the script in synchronous mode");const n=h(v(t,e,{lruCache:C,...r},A,$));return r.rawOutput?n:w(n,o)},executeAsync:async(e,r={})=>{const a=await h(v(t,e,{lruCache:C,services:j,...r},A,$));return r.rawOutput?a:w(a,o)},isAsync:$,variablesUsed:b,fieldsUsed:y,geometryUsed:d,syntaxTree:m}}export{A as createArcadeExecutor,h as createArcadeProfile};
|