@vertigis/arcgis-extensions 54.15.0 → 54.17.0
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/data/convert.d.ts +1 -0
- package/data/convert.js +1 -1
- package/data/support/_featureCopy.d.ts +106 -0
- package/data/support/_featureCopy.js +1 -0
- package/docs/html/assets/hierarchy.js +1 -1
- package/docs/html/assets/navigation.js +1 -1
- package/docs/html/assets/search.js +1 -1
- package/docs/html/classes/data_support__featureCopy.CopyFeatureGeometryProjectionError.html +85 -0
- package/docs/html/classes/layer-preset_LayerPreset.LayerPreset.html +1 -1
- package/docs/html/classes/layer-preset_LayerPresetSettings.LayerPresetSetting.html +1 -1
- package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_ArcGISSublayerExtension.ArcGISSublayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_BasemapExtension.BasemapExtension.html +1 -1
- package/docs/html/classes/mapping_Bookmark.Bookmark.html +1 -1
- package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerSchema.html +1 -1
- package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerSchema.html +1 -1
- package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtension.html +1 -1
- package/docs/html/classes/mapping_BuildingSceneLayerExtension.BuildingSceneLayerReadOnlySchema.html +1 -1
- package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_BuildingSublayerExtension.BuildingSublayerSchema.html +1 -1
- package/docs/html/classes/mapping_CSVLayerExtension.CSVLayerExtension.html +1 -1
- package/docs/html/classes/mapping_ElevationLayerExtension.ElevationLayerExtension.html +1 -1
- package/docs/html/classes/mapping_FeatureCollectionLayerExtension.FeatureCollectionLayerExtension.html +1 -1
- package/docs/html/classes/mapping_FeatureLayerExtension.FeatureLayerExtension.html +1 -1
- package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBase.html +1 -1
- package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerReadOnlySchema.html +1 -1
- package/docs/html/classes/mapping_FeatureLayerExtensionBase.FeatureLayerSchema.html +1 -1
- package/docs/html/classes/mapping_GeoJSONLayerExtension.GeoJSONLayerExtension.html +1 -1
- package/docs/html/classes/mapping_GeoRSSLayerExtension.GeoRSSLayerExtension.html +1 -1
- package/docs/html/classes/mapping_GraphicsLayerExtension.GraphicsLayerExtension.html +1 -1
- package/docs/html/classes/mapping_GroundExtension.GroundExtension.html +1 -1
- package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtension.html +1 -1
- package/docs/html/classes/mapping_GroupLayerExtension.GroupLayerExtensionCollection.html +1 -1
- package/docs/html/classes/mapping_ImageryLayerExtension.ImageryLayerExtension.html +1 -1
- package/docs/html/classes/mapping_ImageryTileLayerExtension.ImageryTileLayerExtension.html +1 -1
- package/docs/html/classes/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtension.html +1 -1
- package/docs/html/classes/mapping_KMLLayerExtension.KMLLayerExtension.html +1 -1
- package/docs/html/classes/mapping_KMLSublayerExtension.KMLSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_MapConstraints.MapConstraints.html +1 -1
- package/docs/html/classes/mapping_MapExtension.MapExtension.html +1 -1
- package/docs/html/classes/mapping_MapImageLayerExtension.MapImageLayerExtension.html +1 -1
- package/docs/html/classes/mapping_MapImageSublayerExtension.MapImageSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_MapNotesLayerExtension.MapNotesLayerExtension.html +1 -1
- package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionSchema.html +1 -1
- package/docs/html/classes/mapping_MediaLayerExtension.MediaLayerExtension.html +1 -1
- package/docs/html/classes/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtension.html +1 -1
- package/docs/html/classes/mapping_PointCloudLayerExtension.PointCloudLayerExtension.html +1 -1
- package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtension.html +1 -1
- package/docs/html/classes/mapping_RouteLayerExtension.RouteLayerExtensionSchema.html +1 -1
- package/docs/html/classes/mapping_SceneLayerExtension.SceneLayerExtension.html +1 -1
- package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerExtension.html +1 -1
- package/docs/html/classes/mapping_StreamLayerExtension.StreamLayerSchema.html +1 -1
- package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtension.html +1 -1
- package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerSchema.html +1 -1
- package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerRelationshipCollection.html +1 -1
- package/docs/html/classes/mapping_SubtypeSublayerExtension.SubtypeSublayerSchema.html +1 -1
- package/docs/html/classes/mapping_TileLayerExtension.TileLayerExtension.html +1 -1
- package/docs/html/classes/mapping_TileSublayerExtension.TileSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_UnsupportedLayerExtension.UnsupportedLayerExtension.html +1 -1
- package/docs/html/classes/mapping_VectorTileLayerExtension.VectorTileLayerExtension.html +1 -1
- package/docs/html/classes/mapping_WFSLayerExtension.WFSLayerExtension.html +1 -1
- package/docs/html/classes/mapping_WMSLayerExtension.WMSLayerExtension.html +1 -1
- package/docs/html/classes/mapping_WMSSublayerExtension.WMSSublayerExtension.html +1 -1
- package/docs/html/classes/mapping_WMTSLayerExtension.WMTSLayerExtension.html +1 -1
- package/docs/html/classes/mapping_WebTileLayerExtension.WebTileLayerExtension.html +1 -1
- package/docs/html/classes/mapping__LayerExtension.LayerExtension.html +1 -1
- package/docs/html/classes/mapping__LayerExtension.LayerExtensionReadOnlySchema.html +1 -1
- package/docs/html/classes/mapping__LayerExtension.LayerExtensionSchema.html +1 -1
- package/docs/html/classes/mapping__LayerExtensionCollectionImpl.LayerExtensionCollectionImpl.html +1 -1
- package/docs/html/classes/mapping__SublayerExtension.SubSublayerExtensionCollection.html +1 -1
- package/docs/html/classes/mapping__SublayerExtension.SublayerExtension.html +1 -1
- package/docs/html/classes/mapping__SublayerExtension.SublayerSchema.html +1 -1
- package/docs/html/classes/mapping_support_ArrayWrappedCollection.ArrayWrappedCollection.html +1 -1
- package/docs/html/classes/mapping_support_LayerListSettings.ExtensionBaseLayerListSettings.html +1 -1
- package/docs/html/classes/mapping_support_LayerListSettings.LayerListSettings.html +1 -1
- package/docs/html/classes/mapping_support__LayerExtensionCollection.LayerExtensionCollectionBase.html +1 -1
- package/docs/html/classes/mapping_support__SublayerExtensionCollection.SublayerExtensionCollectionBase.html +1 -1
- package/docs/html/classes/menus_Menu.Menu.html +1 -1
- package/docs/html/classes/menus_MenuItem.MenuItem.html +1 -1
- package/docs/html/classes/support_FormatSettings.FormatSettings.html +1 -1
- package/docs/html/classes/support_InitializableBase.InitializableBase.html +1 -1
- package/docs/html/classes/support_InitializableCollectionProxy.InitializableCollectionProxy.html +1 -1
- package/docs/html/classes/support_InitializeError.InitializeError.html +1 -1
- package/docs/html/classes/support_ReadOnlyInitializableCollection.ReadOnlyInitializableCollection.html +1 -1
- package/docs/html/classes/support_Serializable.SerializableBase.html +1 -1
- package/docs/html/classes/support_Settings.Settings.html +1 -1
- package/docs/html/classes/support__ArcGISRelationshipCollection.ArcGISRelationshipCollection.html +1 -1
- package/docs/html/classes/support_observableUtils.ObservableMixin.html +1 -1
- package/docs/html/classes/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoder.html +1 -1
- package/docs/html/classes/tasks_geocoding_Geocoder.Geocoder.html +1 -1
- package/docs/html/classes/tasks_identify_ArcGISSublayerIdentifyProvider.ArcGISSublayerIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_ArcGISSublayerQueryIdentifyProvider.ArcGISSublayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerClientSideIdentifyProvider.BuildingComponentSublayerClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_BuildingComponentSublayerHitTestIdentifyProvider.BuildingComponentSublayerHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_CSVLayer3DHitTestIdentifyProvider.CSVLayer3DHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_CSVLayerClientSideQueryIdentifyProvider.CSVLayerClientSideQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_ClientSideIdentifyProvider.ClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_FeatureLayer3DHitTestIdentifyProvider.FeatureLayer3DHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_FeatureLayerClientSideIdentifyProvider.FeatureLayerClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_FeatureLayerQueryIdentifyProvider.FeatureLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_GeoJSONLayer3DHitTestIdentifyProvider.GeoJSONLayer3DHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_GeoJSONLayerClientSideQueryIdentifyProvider.GeoJSONLayerClientSideQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_GeoRSSLayerIdentifyProvider.GeoRSSLayerIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_GraphicsLayerQueryIdentifyProvider.GraphicsLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_HitTestIdentifyProvider.HitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_IdentifyError.IdentifyError.html +1 -1
- package/docs/html/classes/tasks_identify_IdentifyProviderBase.IdentifyProviderBase.html +1 -1
- package/docs/html/classes/tasks_identify_IdentifyService.IdentifyService.html +1 -1
- package/docs/html/classes/tasks_identify_ImageryLayerIdentifyProvider.ImageryLayerIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_KMLLayerQueryIdentifyProvider.KMLLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_MapNotesSublayerQueryIdentifyProvider.MapNotesSublayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_PointCloudLayerHitTestIdentifyProvider.PointCloudLayerHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_RouteLayerQueryIdentifyProvider.RouteLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_SceneLayerClientSideIdentifyProvider.SceneLayerClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_SceneLayerHitTestIdentifyProvider.SceneLayerHitTestIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_SceneLayerQueryIdentifyProvider.SceneLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_StreamLayerClientSideQueryIdentifyProvider.StreamLayerClientSideQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_SubtypeSublayerClientSideIdentifyProvider.SubtypeSublayerClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_SubtypeSublayerQueryIdentifyProvider.SubtypeSublayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_WFSLayerClientSideIdentifyProvider.WFSLayerClientSideIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_WFSLayerQueryIdentifyProvider.WFSLayerQueryIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_WMSLayerFeatureInfoIdentifyProvider.WMSLayerFeatureInfoIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_identify_WMSSublayerIdentifyProvider.WMSSublayerIdentifyProvider.html +1 -1
- package/docs/html/classes/tasks_query_ArcGISRelationship.ArcGISRelationship.html +1 -1
- package/docs/html/classes/tasks_query_ArcGISServiceTableQueryProvider.ArcGISServiceTableQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_ArcGISSublayerQueryProvider.ArcGISSublayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_BuildingComponentSublayerClientSideQueryProvider.BuildingComponentSublayerClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_CSVLayerClientSideQueryProvider.CSVLayerClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_ClientSideQueryProvider.ClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_FeatureLayerQueryProvider.FeatureLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_GeoJSONLayerClientSideQueryProvider.GeoJSONLayerClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_GeoRSSLayerQueryProvider.GeoRSSLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_GraphicsLayerQueryProvider.GraphicsLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_ImageryLayerQueryProvider.ImageryLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_KMLLayerQueryProvider.KMLLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_MapNotesSublayerQueryProvider.MapNotesSublayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_QueryBasedRelationship.QueryBasedRelationship.html +1 -1
- package/docs/html/classes/tasks_query_QueryError.QueryError.html +1 -1
- package/docs/html/classes/tasks_query_QueryProviderBase.QueryProviderBase.html +1 -1
- package/docs/html/classes/tasks_query_QueryService.QueryService.html +1 -1
- package/docs/html/classes/tasks_query_RouteLayerQueryProvider.RouteLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_SceneLayerClientSideQueryProvider.SceneLayerClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_SceneLayerQueryProvider.SceneLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_StreamLayerClientSideQueryProvider.StreamLayerClientSideQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_SubtypeSublayerQueryProvider.SubtypeSublayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_query_WFSLayerQueryProvider.WFSLayerQueryProvider.html +1 -1
- package/docs/html/classes/tasks_search_ArcGISGeocoderSearchProvider.ArcGISGeocoderSearchProvider.html +1 -1
- package/docs/html/classes/tasks_search_GeocoderSearchProvider.GeocoderSearchProvider.html +1 -1
- package/docs/html/classes/tasks_search_QuerySearchProvider.QuerySearchProvider.html +1 -1
- package/docs/html/classes/tasks_search_SearchError.SearchError.html +1 -1
- package/docs/html/classes/tasks_search_SearchProviderBase.SearchProviderBase.html +1 -1
- package/docs/html/classes/tasks_search_SearchService.SearchService.html +1 -1
- package/docs/html/classes/tasks_search_SubtypeSublayerQuerySearchProvider.SubtypeSublayerQuerySearchProvider.html +1 -1
- package/docs/html/classes/utilities_CaseInsensitiveObservableMap.CaseInsensitiveObservableMap.html +1 -1
- package/docs/html/classes/utilities_CollectionProxy.CollectionProxy.html +1 -1
- package/docs/html/classes/utilities_CopyOnWriteCollection.CopyOnWriteCollection.html +1 -1
- package/docs/html/classes/utilities_GeometryServiceError.GeometryServiceError.html +1 -1
- package/docs/html/classes/utilities_MapTransformCollection.MapTransformCollection.html +1 -1
- package/docs/html/classes/utilities_ObservableMap.ObservableMap.html +1 -1
- package/docs/html/classes/utilities_ObservableSet.ObservableSet.html +1 -1
- package/docs/html/classes/utilities_ReadOnlyCollection.ReadOnlyCollection.html +1 -1
- package/docs/html/classes/utilities_ReadOnlyMap.ReadOnlyMap.html +1 -1
- package/docs/html/classes/utilities_format_date.DateFormatter.html +1 -1
- package/docs/html/classes/utilities_format_number.NumberFormatter.html +1 -1
- package/docs/html/classes/utilities_format_time.TimeFormatter.html +1 -1
- package/docs/html/classes/utilities_log.ConsoleLogger.html +1 -1
- package/docs/html/classes/utilities_log.LoggerBase.html +1 -1
- package/docs/html/functions/data_support__featureCopy.copyFeatures.html +51 -0
- package/docs/html/hierarchy.html +409 -409
- package/docs/html/interfaces/data_support__featureCopy.CopyFeatureRequiredFieldSummary.html +61 -0
- package/docs/html/interfaces/data_support__featureCopy.CopyFeaturesOptions.html +61 -0
- package/docs/html/interfaces/data_support__featureCopy.CopyFeaturesResult.html +61 -0
- package/docs/html/interfaces/data_support__featureCopy.RequiredFieldResolution.html +73 -0
- package/docs/html/interfaces/data_support__featureCopy.ResolveRequiredFieldsResult.html +73 -0
- package/docs/html/interfaces/json_AnnotationLayerJson.AnnotationLayerJson.html +1 -1
- package/docs/html/interfaces/json_BasemapJson.BasemapJson.html +1 -1
- package/docs/html/interfaces/json_BasemapLayerJson.BasemapLayerJsonBase.html +1 -1
- package/docs/html/interfaces/json_BingLayerJson.BingLayerJson.html +1 -1
- package/docs/html/interfaces/json_BuildingSceneLayerJson.BuildingSceneLayerJson.html +1 -1
- package/docs/html/interfaces/json_BuildingSceneSublayerJson.BuildingSceneSublayerJson.html +1 -1
- package/docs/html/interfaces/json_CSVLayerJson.CSVLayerJson.html +1 -1
- package/docs/html/interfaces/json_DomainJson.CodedValueDomainJson.html +1 -1
- package/docs/html/interfaces/json_DomainJson.DomainJsonBase.html +1 -1
- package/docs/html/interfaces/json_DomainJson.InheritedDomainJson.html +1 -1
- package/docs/html/interfaces/json_DomainJson.RangeDomainJson.html +1 -1
- package/docs/html/interfaces/json_FeatureLayerJson.FeatureLayerJson.html +1 -1
- package/docs/html/interfaces/json_GeoJSONLayerJson.GeoJSONLayerJson.html +1 -1
- package/docs/html/interfaces/json_GeoRSSLayerJson.GeoRSSLayerJson.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.ExtentJson.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.GeometryJsonBase.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.MultipointJson.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.PointJson.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.PolygonJson.html +1 -1
- package/docs/html/interfaces/json_GeometryJson.PolylineJson.html +1 -1
- package/docs/html/interfaces/json_GroundJson.GroundJson.html +1 -1
- package/docs/html/interfaces/json_GroupLayerJson.GroupLayerJson.html +1 -1
- package/docs/html/interfaces/json_ImageServiceLayerJson.ImageServiceLayerJson.html +1 -1
- package/docs/html/interfaces/json_ImageServiceVectorLayerJson.ImageServiceVectorLayerJson.html +1 -1
- package/docs/html/interfaces/json_IntegratedMeshLayerJson.IntegratedMeshLayerJson.html +1 -1
- package/docs/html/interfaces/json_KMLLayerJson.KMLLayerJson.html +1 -1
- package/docs/html/interfaces/json_LayerDefinitionJson.DataSourceJsonBase.html +1 -1
- package/docs/html/interfaces/json_LayerDefinitionJson.JoinTableDataSourceJson.html +1 -1
- package/docs/html/interfaces/json_LayerDefinitionJson.QueryTableDataSourceJson.html +1 -1
- package/docs/html/interfaces/json_LayerDefinitionJson.RasterDataSourceJson.html +1 -1
- package/docs/html/interfaces/json_LayerDefinitionJson.TableDataSourceJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.BrightnessEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.ContrastEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.GrayscaleEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.InvertEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.LayerJsonBase.html +1 -1
- package/docs/html/interfaces/json_LayerJson.OpacityEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.SaturateEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_LayerJson.SepiaEffectFunctionJson.html +1 -1
- package/docs/html/interfaces/json_MapServiceLayerJson.MapServiceLayerJson.html +1 -1
- package/docs/html/interfaces/json_MediaLayerJson.MediaLayerJson.html +1 -1
- package/docs/html/interfaces/json_OpenStreetMapLayerJson.OpenStreetMapLayerJson.html +1 -1
- package/docs/html/interfaces/json_OperationalLayerJson.OperationalLayerJsonBase.html +1 -1
- package/docs/html/interfaces/json_PointCloudLayerJson.PointCloudLayerJson.html +1 -1
- package/docs/html/interfaces/json_PopupInfoJson.PopupElementJson.html +1 -1
- package/docs/html/interfaces/json_RasterDataElevationLayerJson.RasterDataElevationLayerJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.ClassBreaksRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.ColorInfoJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.HeatmapRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PointCloudClassBreaksRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PointCloudRGBRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PointCloudRendererJsonBase.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PointCloudStretchRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PointCloudUniqueValueRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.PredominanceRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.RendererJsonBase.html +1 -1
- package/docs/html/interfaces/json_RendererJson.RotationInfoJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.SimpleRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.SizeInfoJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.TemporalRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.TransparencyInfoJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.UniqueValueFromStyleRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.UniqueValueRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.VectorFieldRendererJson.html +1 -1
- package/docs/html/interfaces/json_RendererJson.VisualVariableJsonBase.html +1 -1
- package/docs/html/interfaces/json_SceneLayerJson.SceneLayerJson.html +1 -1
- package/docs/html/interfaces/json_StreamLayerJson.StreamLayerJson.html +1 -1
- package/docs/html/interfaces/json_SublayerJson.SublayerJson.html +1 -1
- package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeGroupLayerJson.html +1 -1
- package/docs/html/interfaces/json_SubtypeGroupLayerJson.SubtypeSubtypeGroupLayerJson.html +1 -1
- package/docs/html/interfaces/json_SubtypeSublayerJson.SubtypeSublayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.CIMSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.CIMSymbolReferenceJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.ExtrudeSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.FillSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.IconSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.LabelSymbol3DJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.LineSymbol3DJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.LineSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.MeshSymbol3DJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.ObjectSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.PathSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.PictureFillSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.PictureMarkerSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.PointSymbol3DJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.PolygonSymbol3DJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SimpleFillSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SimpleLineSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SimpleMarkerSymbolJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SketchEdgesJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SolidEdgesJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.Symbol3DJsonBase.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.Symbol3DLayerJsonBase.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.SymbolJsonBase.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.TextSymbol3DLayerJson.html +1 -1
- package/docs/html/interfaces/json_SymbolJson.TextSymbolJson.html +1 -1
- package/docs/html/interfaces/json_TableJson.TableJson.html +1 -1
- package/docs/html/interfaces/json_TiledElevationServiceLayerJson.TiledElevationServiceLayerJson.html +1 -1
- package/docs/html/interfaces/json_TiledImageServiceLayerJson.TiledImageServiceLayerJson.html +1 -1
- package/docs/html/interfaces/json_TiledMapServiceLayerJson.TiledMapServiceLayerJson.html +1 -1
- package/docs/html/interfaces/json_VectorTileLayerJson.VectorTileLayerJson.html +1 -1
- package/docs/html/interfaces/json_WFSLayerJson.WFSLayerJson.html +1 -1
- package/docs/html/interfaces/json_WMSLayerJson.WMSLayerJson.html +1 -1
- package/docs/html/interfaces/json_WMSSublayerJson.WMSSublayerJson.html +1 -1
- package/docs/html/interfaces/json_WebMapJson.WebMapJson.html +1 -1
- package/docs/html/interfaces/json_WebMapJson.WebMapJsonBase.html +1 -1
- package/docs/html/interfaces/json_WebSceneJson.WebSceneJson.html +1 -1
- package/docs/html/interfaces/json_WebTileLayerJson.WebTileLayerJson.html +1 -1
- package/docs/html/interfaces/layer-preset_LayerPreset.LayerPresetProperties.html +1 -1
- package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_ArcGISSublayerExtension.ArcGISSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_BasemapExtension.BasemapExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_BasemapExtension.BasemapProperties.html +1 -1
- package/docs/html/interfaces/mapping_Bookmark.BookmarkProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingComponentSublayerExtension.BuildingComponentSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingGroupSublayerExtension.BuildingGroupSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSceneLayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingSceneLayerExtension.BuildingSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_BuildingSublayerExtension.BuildingSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_CSVLayerExtension.CSVLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_ElevationLayerExtension.ElevationLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_FeatureLayerExtension.FeatureLayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerBaseProperties.html +1 -1
- package/docs/html/interfaces/mapping_FeatureLayerExtensionBase.FeatureLayerExtensionBaseProperties.html +1 -1
- package/docs/html/interfaces/mapping_GeoJSONLayerExtension.GeoJSONLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_GeoRSSLayerExtension.GeoRSSLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_GraphicsLayerExtension.GraphicsLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_GroundExtension.GroundExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_GroundExtension.GroundProperties.html +1 -1
- package/docs/html/interfaces/mapping_GroupLayerExtension.GroupLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_ImageryLayerExtension.ImageryLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_ImageryTileLayerExtension.ImageryTileLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_IntegratedMeshLayerExtension.IntegratedMeshLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_KMLLayerExtension.KMLLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_KMLSublayerExtension.KMLSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapExtension.MapExtensionEvents.html +1 -1
- package/docs/html/interfaces/mapping_MapExtension.MapExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapExtension.TableExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_MapImageLayerExtension.MapImageLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapImageSublayerExtension.MapImageSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapNotesLayerExtension.MapNotesLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_MapNotesSublayerExtension.MapNotesSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_MediaLayerExtension.MediaLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_OpenStreetMapLayerExtension.OpenStreetMapLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_PointCloudLayerExtension.PointCloudLayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_RouteLayerExtension.RouteLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_SceneLayerExtension.SceneLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_StreamLayerExtension.StreamLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_SubtypeGroupLayerExtension.SubtypeGroupLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_SubtypeSublayerExtension.SubtypeSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_TileLayerExtension.TileLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_TileSublayerExtension.TileSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_VectorTileLayerExtension.VectorTileLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_WFSLayerExtension.WFSLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_WMSLayerExtension.WMSLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_WMSSublayerExtension.WMSSublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_WMTSLayerExtension.WMTSLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping_WebTileLayerExtension.WebTileLayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping__LayerExtension.LayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping__SublayerExtension.SublayerExtensionProperties.html +1 -1
- package/docs/html/interfaces/mapping__SublayerExtension.SublayerProperties.html +1 -1
- package/docs/html/interfaces/mapping_support__LayerExtensionCollection.LayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/mapping_support__SublayerExtensionCollection.SublayerExtensionCollection.html +1 -1
- package/docs/html/interfaces/menus_Menu.MenuProperties.html +1 -1
- package/docs/html/interfaces/menus_MenuItem.MenuItemProperties.html +1 -1
- package/docs/html/interfaces/support_ArcGISRequestHelper.ArcGISRequestHelperResponse.html +1 -1
- package/docs/html/interfaces/support_InitializableBase.Initializable.html +1 -1
- package/docs/html/interfaces/support_InitializableBase.InitializableBaseEvents.html +1 -1
- package/docs/html/interfaces/support_InitializableBase.InitializableBaseProperties.html +1 -1
- package/docs/html/interfaces/support_InitializableCollectionProxy.InitializableCollection.html +1 -1
- package/docs/html/interfaces/support_Serializable.Serializable.html +1 -1
- package/docs/html/interfaces/support_Settings.SettingsEvents.html +1 -1
- package/docs/html/interfaces/support__restApiJson.RestApiMapServiceTimeInfo.html +1 -1
- package/docs/html/interfaces/support__restApiJson.RestApiServiceTimeInfo.html +1 -1
- package/docs/html/interfaces/support_esri.LayerWithSublayers.html +1 -1
- package/docs/html/interfaces/support_esri.SublayerLike.html +1 -1
- package/docs/html/interfaces/support_observableUtils.WatchEachOptions.html +1 -1
- package/docs/html/interfaces/support_observableUtils.WatchOptions.html +1 -1
- package/docs/html/interfaces/tasks_geocoding_ArcGISGeocoder.ArcGISGeocoderProperties.html +1 -1
- package/docs/html/interfaces/tasks_geocoding_Geocoder.GeocoderCapabilities.html +1 -1
- package/docs/html/interfaces/tasks_geocoding_Geocoder.GeocoderProperties.html +1 -1
- package/docs/html/interfaces/tasks_query_ArcGISRelationship.ArcGISRelationshipProperties.html +1 -1
- package/docs/html/interfaces/tasks_query_QueryBasedRelationship.QueryBasedRelationshipProperties.html +1 -1
- package/docs/html/interfaces/utilities_ObservableMap.MapAfterItemEvent.html +1 -1
- package/docs/html/interfaces/utilities_ObservableSet.SetAfterItemEvent.html +1 -1
- package/docs/html/interfaces/utilities__layers.LayerWithLegendEnabledProperty.html +1 -1
- package/docs/html/interfaces/utilities__layers.TimeAwareLayer.html +1 -1
- package/docs/html/interfaces/utilities_collection.AfterItemChangeEvent.html +1 -1
- package/docs/html/interfaces/utilities_format_FormatSettings.FormatSettings.html +1 -1
- package/docs/html/interfaces/utilities_format_date.DateFormatterProperties.html +1 -1
- package/docs/html/interfaces/utilities_format_date.DateSettings.html +1 -1
- package/docs/html/interfaces/utilities_format_number.NumberFormatterProperties.html +1 -1
- package/docs/html/interfaces/utilities_format_number.NumberSettings.html +1 -1
- package/docs/html/interfaces/utilities_format_string.FormatOptions.html +1 -1
- package/docs/html/interfaces/utilities_format_time.TimeFormatterProperties.html +1 -1
- package/docs/html/interfaces/utilities_format_time.TimeSettings.html +1 -1
- package/docs/html/interfaces/utilities_log.LogMessageOptions.html +1 -1
- package/docs/html/interfaces/utilities_log.LogMessageResourceOptions.html +1 -1
- package/docs/html/modules/data_convert.html +2 -2
- package/docs/html/modules/data_support__featureCopy.html +43 -0
- package/docs/html/modules.html +2 -2
- package/docs/html/variables/version.version.html +1 -1
- package/package.json +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
package/data/convert.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ import type { IDxfJsonComponentContext } from "./support/_dxfInterfaces.js";
|
|
|
13
13
|
import type { GeoProcessedFgdbData } from "./support/_fgdbConverter.js";
|
|
14
14
|
import type { GeoProcessedLpkxData } from "./support/lpkxInterfaces.js";
|
|
15
15
|
export type { GeoProcessedFgdbData } from "./support/_fgdbConverter.js";
|
|
16
|
+
export { getGdbVersion } from "../utilities/_version.js";
|
|
16
17
|
/**
|
|
17
18
|
* A union of simple fill, line, and marker symbols.
|
|
18
19
|
*/
|
package/data/convert.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e from"@arcgis/core/Color.js";import t from"@arcgis/core/Graphic.js";import r from"@arcgis/core/geometry/Point";import o from"@arcgis/core/geometry/Polygon.js";import n from"@arcgis/core/geometry/Polyline.js";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/FeatureLayer.js";import s from"@arcgis/core/layers/GroupLayer.js";import c from"@arcgis/core/layers/support/Field.js";import l from"@arcgis/core/renderers/SimpleRenderer.js";import m from"@arcgis/core/renderers/UniqueValueRenderer.js";import u from"@arcgis/core/renderers/support/UniqueValueInfo.js";import f from"@arcgis/core/symbols/MeshSymbol3D.js";import p from"@arcgis/core/symbols/PictureMarkerSymbol.js";import y from"@arcgis/core/symbols/SimpleFillSymbol.js";import d from"@arcgis/core/symbols/SimpleLineSymbol.js";import g from"@arcgis/core/symbols/SimpleMarkerSymbol.js";import w from"dxf-parser";import{ArgumentError as h}from"../ArgumentError.js";import{NotFoundError as F}from"../NotFoundError.js";import{geometryTypeToJson as S}from"../json/GeometryJson.js";import{translate as N}from"../locale/language.js";import{INVARIANT as T}from"../locale.js";import{FeatureCollectionLayerExtension as O}from"../mapping/FeatureCollectionLayerExtension.js";import{GroupLayerExtension as x}from"../mapping/GroupLayerExtension.js";import{MapImageLayerExtension as b}from"../mapping/MapImageLayerExtension.js";import{CaseInsensitiveObservableMap as D}from"../utilities/CaseInsensitiveObservableMap.js";import{Time as M}from"../utilities/Time.js";import{checkArg as E,assertNever as R}from"../utilities/checkArg.js";import{isPoint as A,isMultipoint as I,isPolyline as _,isPolygon as G,isExtent as L}from"../utilities/esri.js";import{parse as C,format as v,DEFAULT_PARSING_FORMATS as P,INVALID_DATE as j}from"../utilities/format/date.js";import{DateFormat as U,NumberFormat as $,TimeFormat as B}from"../utilities/format/formats.js";import{parse as H,format as k}from"../utilities/format/number.js";import{parse as z,format as J,DEFAULT_PARSING_FORMATS as X}from"../utilities/format/time.js";import{project as W,esriToWKT as q,wktToEsri as Y,esriWkidToWkt as Z,esriWktToWkid as K,esriToGeoJSON as V,geoJSONToEsri as Q}from"../utilities/geometry.js";import{getLogger as ee}from"../utilities/log.js";import{isNumeric as te}from"../utilities/number.js";import{delay as re}from"../utilities/promise.js";import{caseInsensitiveEquals as oe}from"../utilities/string.js";import{Feature as ne}from"./Feature.js";import{FeatureSet as ie}from"./FeatureSet.js";import{DxfEntityProcessor as ae}from"./support/_dxfConverters.js";import{createGpxDocument as se,serializeGpxDocument as ce,buildGpxTrack as le,buildGpxTrackPoint as me,buildGpxWaypoint as ue,getGpxExtensions as fe,getGpxTrackDescription as pe,getGpxTrackName as ye,getGpxTrackTime as de,getGpxTrackId as ge}from"./support/_gpxExport.js";import{addAndPopulateFidField as we}from"./support/_shapefileConverter.js";const he=["=","-","+","@"],Fe='"',Se="\r\n",Ne="\n",Te=[...P.map(et),"M/d/yy"],Oe=[...X.map(rt).map(e=>e.replace("AM/PM","tt"))],xe=10,be=/(\w+)_(point|multipoint|polyline|polygon)z?/;var De;function Me(){return ee("geocortex.api.data.convert")}!function(e){e.DATE="D",e.NUMBER="N",e.STRING="C",e.BOOLEAN="L"}(De||(De={}));export const FIELD_NAME_REGEX=/[^a-zA-Z\d_]/g;export var GeometryFormat;!function(e){e.NONE="NONE",e.WKT="WKT",e.XY="XY",e.XYZ="XYZ",e.LAT_LON="LAT_LONG",e.GEO_JSON="GEO_JSON",e.ARCGIS_JSON="ARCGIS_JSON"}(GeometryFormat||(GeometryFormat={}));export const geometryTypeHeaders={[GeometryFormat.XYZ]:[["x","y","z"]],[GeometryFormat.XY]:[["x","y"]],[GeometryFormat.LAT_LON]:[["latitude","longitude"],["lat","lon"],["lat","long"]],[GeometryFormat.ARCGIS_JSON]:[["geometry"]],[GeometryFormat.GEO_JSON]:[["geometry"]],[GeometryFormat.WKT]:[["geometry"]]};const Ee=[[GeometryFormat.ARCGIS_JSON,ze],[GeometryFormat.GEO_JSON,Je],[GeometryFormat.WKT,Xe]],Re=new Map(Ee);export async function uploadDataToFeatureSet(e){const t=await async function(e){const{data:t,includeHeaderRow:o,geometryFormat:n,geometryFields:i,locale:a,numberFormat:s,inSpatialReference:c}=e,l=o?t.slice(1):t;if(n===GeometryFormat.NONE)return{columnIndices:[]};const m=e=>Ye(e,a,s),u=(e,t)=>{const o=t===GeometryFormat.XYZ,n=t===GeometryFormat.LAT_LON;return{columnIndices:e,geometries:l.map(t=>{if(t.length>=Math.max(...e)&&te(t[e[0]]?.raw,a)&&te(t[e[1]]?.raw,a)&&(!o||te(t[e[2]]?.raw,a)))return new r({x:m(n?t[e[1]].raw:t[e[0]].raw),y:m(n?t[e[0]].raw:t[e[1]].raw),z:o?m(t[e[2]].raw):0,spatialReference:c})})}},f=async(e,t)=>({columnIndices:[e],geometries:await Promise.all(l.map(t=>t[e]).map(e=>{if(e?.raw)return t(e.raw.toString(),c)}))}),p=async(e,t)=>{switch(t){case GeometryFormat.NONE:return{columnIndices:[0]};case GeometryFormat.LAT_LON:case GeometryFormat.XYZ:case GeometryFormat.XY:return u(e,t);case GeometryFormat.ARCGIS_JSON:return f(e[0],ze);case GeometryFormat.GEO_JSON:return f(e[0],Je);case GeometryFormat.WKT:return f(e[0],Xe);default:return R(t,new Error(`Unknown geometry format "${t}".`))}};if(n){const e=We(o?t[0]:t[0].map((e,t)=>({raw:t.toString()})),n,o?i:i.map(e=>""+(parseInt(e.match(/\d+/g)[0])-1)));if(o&&void 0===e)throw new Error(`Error parsing file data: Expected geometry columns ${geometryTypeHeaders[n][0].join(",")} are missing for GeometryType.${n}`);return p(e??[0],n)}const[y,d]=await Ze(t,c,o);if(y===GeometryFormat.NONE)return{columnIndices:[]};return d.length>1?u(d,y):f(d[0],Re.get(y))}(e),o=function(e,t){const{data:r,displayField:o,includeHeaderRow:n,inSpatialReference:i,outSpatialReference:a,generatePrimaryKey:s}=e,c={fields:[]},l=e=>!(!t.columnIndices||0===t.columnIndices.length)&&t.columnIndices.includes(e);let{primaryKeyField:m}=e,u=0;for(let t=0;t<r[0].length;t++){if(l(t))continue;const o=Ve(e,t,!s&&!m&&!c.fields.find(e=>"esriFieldTypeOID"===e.type));let i=r[0][t]?.raw?.toString(),a=i?.replace(FIELD_NAME_REGEX,"_");n&&a||(a="field"+ ++u,i=N("gcx.api.data.convert.import-field-alias",u)),c.fields.push({alias:i,name:a,type:o}),"esriFieldTypeOID"===o&&(m=a)}if(c.spatialReference=a??t.geometries?.[0]?.spatialReference??i,t.geometries?.length){const e=t.geometries.filter(e=>void 0!==e).map(e=>e.type),r=e[0];c.geometryType=e.every(e=>e===r)?S(r):void 0}if(!c.fields.find(e=>"esriFieldTypeOID"===e.type)){const e=c.fields.length+1,t=!!c.fields.find(e=>"objectid"===e.name.toLowerCase());m=t?`OBJECTID_${e}`:"OBJECTID",c.fields.push({name:m,alias:m,type:"esriFieldTypeOID"})}return c.displayField=o??c.fields.find(e=>!oe(e.name,m)&&"esriFieldTypeString"===e.type)?.name??c.fields.find(e=>!oe(e.name,m))?.name??m,c.primaryKeyField=m,c}(e,t),n=await async function(e,t,r){const{data:o,includeHeaderRow:n,outFields:i,escapeFormulaChars:a,locale:s,numberFormat:c,dateFormat:l,timeFormat:m}=e,{spatialReference:u}=r,f=[],p=n?o.slice(1):o,y=(e,r)=>!t.columnIndices||0===t.columnIndices.length||!t.columnIndices.includes(r);return await Promise.all(p.map(async(e,o)=>{const n=ne.create();for(let t=0;t<r.fields.length;t++){const u=r.fields[t],f=e.filter(y);if(i.includes("*")||i.filter(e=>oe(e,u.name)).length>0){let e=await Qe(f[t]?.raw,u,{escapeFormulaChars:a,dateFormat:l,numberFormat:c,timeFormat:m,locale:s});"esriFieldTypeOID"===u.type&&null===e&&(e=o),n.attributes.set(u.name,e)}}t.geometries&&(n.geometry=await ve(t.geometries[o],u)),f.push(n)})),f}(e,t,o);return new ie({features:n,schema:o})}export async function toCsv(e,t){E("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,alwaysQuote:!1,escapeFormulaChars:!0,delimiter:",",dateFormat:U.ROUND_TRIP,timeFormat:B.ROUND_TRIP,geometryFormat:r.some(e=>void 0!==e.geometry&&null!==e.geometry)?GeometryFormat.WKT:GeometryFormat.NONE,includeByteOrderMark:!0,outSpatialReference:i.WGS84,includeHeaderRow:!0,outFields:Le(e.source),rowDelimiter:navigator.platform?.startsWith("Win")?Se:"\n"},...t},{includeByteOrderMark:n,includeHeaderRow:a,delimiter:s,outFields:c,rowDelimiter:l}=o,m=[];n&&m.push("\ufeff");const u=_e(r,o),f=Ge(r,c,e.schema,!0),p=Ge(r,c,e.schema,!1);if(a){const e=[];for(const t of u)e.push(Pe(t,o));for(const t of f)e.push(Pe(t,o));for(const t of p)e.push(Pe(t,o));const t=e.join(s)+l;m.push(t)}await Promise.all(r.map(async e=>{const t=[],r=(t,r)=>{const o=Ue(e,t,r),n=e.schema.findFieldByName(t)?.type;return Pe(je(o,{...r,isDateOnly:"date-only"===n}),r)};t.push(...await async function(e,t){let r=await Ce(e,t);t.geometryFormat!==GeometryFormat.XYZ&&t.geometryFormat!==GeometryFormat.XY&&t.geometryFormat!==GeometryFormat.LAT_LON||(r=r.map(e=>void 0===e?"":je(e,t)));return r.map(e=>""===e?"":Pe(e,t))}(e.geometry,o)),t.push(...f.map(e=>r(e,o))),t.push(...p.map(e=>r(e,o)));const n=`${t.join(s)}${l}`;m.push(n)}));return new Blob(m,{type:"text/plain",endings:"\n"===l||l===Se?"transparent":"native"})}export async function csvToUploadData(e,t){let r;if(E("csvData",e).isNotMissing(),e instanceof Blob){const t=new Promise((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsText(e)});r=await t}else r=e;const o=Ie(t),n=o.rowDelimiter||function(e){let t=Ne;return ke(e,Se,(r,o)=>(0===r&&o===e.length||(t=Se),!1)),t}(r),i=o.delimiter??function(e,t,r){const o=",";if(0===e.length)return o;const n=[];if(ke(e,t,(t,r)=>(r!==e.length||t!==r)&&(n.push(e.substring(t,r)),n.length<3)),0===n.length)return o;let i=[{delimiter:",",rowsDelimiterOccurrences:[],rowsNumberAdjacentOccurrences:[]},{delimiter:";",rowsDelimiterOccurrences:[]},{delimiter:"|",rowsDelimiterOccurrences:[]},{delimiter:"\t",rowsDelimiterOccurrences:[]},{delimiter:" ",rowsDelimiterOccurrences:[]}].filter(e=>n[0].includes(e.delimiter));if(0===i.length)return o;for(const e of n)for(const t of i){let o=0,n=0;ke(e,t.delimiter,(i,a)=>{if(a!==e.length&&o++,","===t.delimiter){const t=e.charAt(a-1),o=e.charAt(a+1);te(t,r)&&te(o,r)&&n++}return!0}),t.rowsDelimiterOccurrences.push(o),","===t.delimiter&&t.rowsNumberAdjacentOccurrences.push(n)}if(i=i.filter(e=>e.rowsDelimiterOccurrences.every(t=>e.rowsDelimiterOccurrences[0]===t)).sort((e,t)=>t.rowsDelimiterOccurrences[0]-e.rowsDelimiterOccurrences[0]),i.length>1&&","===i[0].delimiter&&null!=r&&r!==T){const e=i[0];if(","===e?.delimiter&&","===Intl.NumberFormat(r).formatToParts(1.1).find(e=>"decimal"===e.type)?.value)for(let t=0;t<e.rowsDelimiterOccurrences.length;t++)if(e.rowsDelimiterOccurrences[t]<=e.rowsNumberAdjacentOccurrences[t]){i=i.filter(e=>","!==e.delimiter);break}}if(0===i.length)return o;return i[0].delimiter}(r,n,o.locale),a=function(e,t,r){const o=[],n=(e,t)=>{const o=[];return ke(e,r,(r,n)=>{const i=e.substring(r,n);return o.push({raw:He(i,t,o.length)}),!0}),o};if(ke(e,t,(t,r)=>{const i=e.substring(t,r);return i.length>0&&o.push(n(i,o.length)),!0}),o.length){const e=o[0].length;o.forEach((t,r)=>{if(t.length!==e)throw new Error(`Detected invalid CSV: Row ${r} does not have expected number of columns: ${e}`)})}return o}(r,n,i);let{geometryFormat:s,geometryFields:c}=o;if(!s){const[e,t]=await Ze(a,o.inSpatialReference,o.includeHeaderRow);s=e,c=t.map(e=>o.includeHeaderRow?a[0][e]?.raw??N("gcx.api.data.convert.import-field-alias",(e+1).toString()):N("gcx.api.data.convert.import-field-alias",(e+1).toString()))}return{data:a,...o,geometryFormat:s,geometryFields:c}}export async function csvToFeatureSet(e,t){const r=Ie(t);return uploadDataToFeatureSet(await csvToUploadData(e,r))}export async function toGpx(e){E("featureSet",e).isNotMissing();const t=Array.from(e),r=se(),o=r.documentElement,n=new Set;for(const e of t){if(!e.geometry)continue;const t=await ve(e.geometry,i.WGS84),a={name:ye(e),desc:pe(e),time:de(e),extensions:fe(r,e),id:ge(e)};if(A(t))o.appendChild(ue(r,t.y,t.x,t.hasZ?t.z:void 0,a));else if(_(t))for(const e of t.paths){if(e.length<2)continue;const n=e.map(([e,o,n])=>me(r,o,e,t.hasZ?n:void 0));o.appendChild(le(r,n,a))}else n.add(t.type)}if(n.size>0){const e=Array.from(n).join(", ");Me().warn(`One or more features with unsupported geometry types (${e}) were ignored during GPX conversion. GPX format only supports points and polylines.`)}const a=ce(r);return new Blob([a],{type:"application/gpx+xml"})}export async function toXLSX(e,t){E("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,includeHeaderRow:!0,escapeFormulaChars:!0,geometryFormat:r.some(e=>void 0!==e.geometry&&null!==e.geometry)?GeometryFormat.WKT:GeometryFormat.NONE,outFields:Le(e.source),outSpatialReference:i.WGS84,dateFormat:U.DEFAULT,timeFormat:B.DEFAULT,numberFormat:$.DEFAULT,sheetName:"sheet1"},...t},{outFields:n,includeHeaderRow:a,dateFormat:s,timeFormat:c,numberFormat:l}=o,m=_e(r,o),u=Ge(r,n,e.schema,!0),f=Ge(r,n,e.schema,!1),p=await import("xlsx"),y=p.utils.sheet_new();let d=!1;if(a){const t=m.concat(u).concat(function(e,t){const r=t?.schema?.fieldExtensions.initializedItems.map(e=>e.field);return e.map(e=>r?.find(t=>oe(t.name,e))?.alias??e)}(f,e.source));d=!0,p.utils.sheet_add_aoa(y,[t],{cellDates:!0})}await Promise.all(r.map(async e=>{const t=[],r=new Set,n=new Set;t.push(...await Ce(e.geometry,o));for(const r of u){const n=nt(e.attributes.get(r),o);t.push(n)}for(const i of f){const a=Ue(e,i,o);if(a instanceof M){const o=e.schema.findFieldByName(i);"time-only"===o?.type&&r.add(t.length)}else if(a instanceof Date){const r=e.schema.findFieldByName(i);"date-only"===r?.type&&n.add(t.length)}const s=nt(a,o);t.push(s)}if(!t.every(e=>"string"!=typeof e||e.length<=32767))return void Me().warn(`toXLSX cell limit exceeded, feature (${e.primaryKey??e.id}) omitted.`);p.utils.sheet_add_aoa(y,[t],{cellDates:!0,origin:d?-1:void 0}),d=!0;const i=p.utils.decode_range(y["!ref"]);for(let e=i.s.c;e<=i.e.c;e++){const t=y[p.utils.encode_cell({r:i.e.r,c:e})];"d"===t.t?r.has(e)?t.z=rt(c??B.ROUND_TRIP):n.has(e)?t.z=tt(s??U.ROUND_TRIP):t.z=et(s??U.ROUND_TRIP):"n"===t.t&&(t.z=ot(l))}}));const g={SheetNames:[],Sheets:{}};g.SheetNames.push(o.sheetName),g.Sheets[o.sheetName]=y;const w=p.write(g,{type:"binary",bookType:"xlsx",compression:!0,bookSST:!0,cellDates:!0}),h=new Uint8Array(w.length);for(let e=0;e<w.length;e++)h[e]=w.charCodeAt(e);return new Blob([h.buffer],{type:"text/plain"})}export async function xlsxToUploadData(e,t){E("xlsxData",e).isNotMissing();const r=function(e){const t={includeHeaderRow:!0,inSpatialReference:i.WGS84,...Ae(e)};return{...t,...e}}(t),o=await async function(e,t){const r=await import("xlsx"),o=new Promise((o,n)=>{const i=new FileReader;i.onload=()=>{const e=new Uint8Array(i.result);let n="";for(const t of e)n+=String.fromCharCode(t);const a=r.read(n,{type:"binary",cellDates:!0}),s=t.sheetName||a.SheetNames[0],c=a.Sheets[s];o(c)},i.onerror=()=>{n(i.error)},i.readAsArrayBuffer(e)}),n=await o,i=r.utils.decode_range(n["!ref"]),a=[];for(let e=i.s.r;e<=i.e.r;e++){const t=[];for(let o=i.s.c;o<=i.e.c;o++){const i=n[`${r.utils.encode_cell({r:e,c:o})}`];"d"===i?.t&&i.v instanceof Date&&(i.v=new Date(i.v.getTime()+6e4*i.v.getTimezoneOffset())),t.push(i?{raw:i.v,formatted:"s"===i.t?void 0:i.w}:{raw:""})}a.push(t)}return a}(e,r);let{geometryFormat:n,geometryFields:a}=r;if(!n){const[e,t]=await Ze(o,r.inSpatialReference,r.includeHeaderRow);n=e,a=t.map(e=>r.includeHeaderRow?o[0][e]?.raw.toString()??N("gcx.api.data.convert.import-field-alias",(e+1).toString()):N("gcx.api.data.convert.import-field-alias",(e+1).toString()))}return{data:o,...r,geometryFormat:n,geometryFields:a}}export async function xlsxToFeatureSet(e,t){E("xlsxData",e).isNotMissing();return uploadDataToFeatureSet(await xlsxToUploadData(e,t))}export function kmlHexToEsriColor(t){return e.fromHex(`#${t.match(/.{2}/g).reverse().join("")}`)}export function parseKMLCoordinates(e){return e.trim().split(/\s+/).map(e=>{const[t,r,o]=e.split(",").map(Number);return{x:t,y:r,z:o}})}export function parseKMLSymbol(t,r,o){if(t){const r=t.querySelector("IconStyle > Icon > href")?.textContent;if(r)return new p({url:r,width:32,height:32});const o=t.querySelector("PolyStyle");if(o){const t=o.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]);return new y({color:r,outline:{color:[0,0,0,.5],width:1}})}const n=t.querySelector("LineStyle");if(n){const t=n.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]),o=parseFloat(n.querySelector("width")?.textContent||"1");return new d({color:r,width:o})}}return getDefaultSymbol(o,"polygon"===r?"polygon":"point"===r?"point":"polyline")}export async function toShapefile(e,t){E("featureSet",e).isNotMissing();const[{default:r},o]=await Promise.all([import("jszip"),import("../forked-libs/shp-write/index.js")]),n=Array.from(e),a={...{useFormattedValues:!1,outFields:Le(e.source),fileName:e.title||"export"},...t},{outFields:s,outSpatialReference:c,fileName:l}=a,m=e=>e.geometry.hasZ||e.geometry.hasM,u=new Map,f=n.filter(e=>A(e.geometry));u.set("POINTZ",f.filter(m)),u.set("POINT",f.filter(e=>!m(e)));const p=n.filter(e=>I(e.geometry));u.set("MULTIPOINTZ",p.filter(m)),u.set("MULTIPOINT",p.filter(e=>!m(e)));const y=n.filter(e=>_(e.geometry));u.set("POLYLINEZ",y.filter(m)),u.set("POLYLINE",y.filter(e=>!m(e)));const d=n.filter(e=>G(e.geometry)||L(e.geometry));u.set("POLYGONZ",d.filter(m)),u.set("POLYGON",d.filter(e=>!m(e)));const g=Ge(n,s,e.schema,!0);let w=Ge(n,s,e.schema,!1);w=g.concat(w);const h=new r,F=Array.from(u.keys()).filter(e=>u.get(e).length>0);await Promise.all(F.map(async t=>{const r=u.get(t),n=await Promise.all(r.map(e=>ve(e.geometry,c))),s=await async function(e){const{wkid:t,wkt:r}=e[0].spatialReference;if(!e.every(e=>e.spatialReference.wkid===t&&e.spatialReference.wkt===r))throw new Error("Cannot create shapefile that contains geometries with different spatial references.");return r??await Z(t??i.WGS84.wkid)}(n),m=a.useFormattedValues?Object.assign({},...w.map(e=>({[e]:De.STRING}))):function(e,t,r,o){const n={};for(const i of t){if(e.some(e=>$e(e,i))){n[i]=De.STRING;continue}const t=r?r.fields.find(e=>oe(e.name,i)):void 0;if(t){switch(t.type){case"oid":case"double":case"integer":case"single":case"small-integer":case"big-integer":n[i]=De.NUMBER;break;case"date":case"timestamp-offset":n[i]=o?De.NUMBER:De.DATE;break;default:n[i]=De.STRING}continue}const a=(e,t)=>e.attributes.get(t)??e.presentableAttributes.get(t);e.every(e=>a(e,i)instanceof Date||void 0===a(e,i))&&e.some(e=>a(e,i)instanceof Date)?n[i]=o?De.NUMBER:De.DATE:e.every(e=>"number"==typeof a(e,i)||void 0===a(e,i))&&e.some(e=>"number"==typeof a(e,i))?n[i]=De.NUMBER:e.every(e=>"boolean"==typeof a(e,i)||void 0===a(e,i))&&e.some(e=>"boolean"==typeof a(e,i))?n[i]=De.BOOLEAN:n[i]=De.STRING}return n}(r,w,e.schema,"timestamp"===a.dateFormat),f=function(e){return e.map(e=>{if(A(e)){const{x:t,y:r,z:o,m:n}=e,i=[t,r];return e.hasZ&&i.push(o),e.hasM&&i.push(n),it(i,e)}if(I(e))return at(e.points,e);if(_(e))return st(e.paths,e);if(G(e))return st(e.rings,e);if(L(e)){const t=[e.xmin,e.ymax];return[[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]]}throw new Error("Unsupported geometry type.")})}(n),p=function(e,t,r,o){const n=function(e){const t=new Set,r=new Map;for(const o of e){let e=o.replaceAll(".","_");e.length>xe&&(e=e.substring(0,xe));let n=1;for(;t.has(e);){const t=`_${n}`,r=xe-t.length;e=`${e.substring(0,r)}${t}`,n++}t.add(e),r.set(o,e)}return r}(t),i=[];for(const a of e){const e={};for(const i of t){let t=Ue(a,i,o);if(null==t&&(t=""),o.useFormattedValues)t=t.toString();else{t=ct(t,r[i],{...o,isDateOnly:"date-only"===a.schema.findFieldByName(i)?.type})}e[n.get(i)]=t}i.push(e)}return i}(r,w,m,a);o.write(p,t,f,(e,r)=>{const o=F.length>1?`${l}_${t.toLowerCase()}`:l;h.file(`${o}.shp`,r.shp.buffer,{binary:!0}),h.file(`${o}.shx`,r.shx.buffer,{binary:!0}),h.file(`${o}.dbf`,r.dbf.buffer,{binary:!0}),h.file(`${o}.prj`,s)})}));const S=await h.generateAsync({type:"uint8array"});return new Blob([S.buffer],{type:"text/plain"})}export async function kmlToLayerExtensions(e){E("blob",e).isNotMissing();const i=await e.text(),l=(new DOMParser).parseFromString(i,"application/xml"),m=function(e,i,u=!1){const f={};l.querySelectorAll("Style").forEach(e=>{f[`#${e.id}`]=e});const p=e.querySelector(":scope > name")?.textContent??"Unnamed Container",y=new Map;e.querySelectorAll(":scope > Placemark").forEach((e,a)=>{const s=e.querySelector("name")?.textContent??"",c=e.querySelector("description")?.textContent??"",l=function(e){const t=e.querySelector("Point > coordinates"),i=e.querySelector("LineString > coordinates"),a=e.querySelector("Polygon");if(t?.textContent){const[e]=parseKMLCoordinates(t.textContent.replace(/ /g,""));return new r(e)}if(i?.textContent)return new n({paths:[parseKMLCoordinates(i.textContent).map(({x:e,y:t})=>[e,t])]});if(a?.textContent){const e=a.querySelector("outerBoundaryIs > LinearRing > coordinates");if(e?.textContent){const t=[parseKMLCoordinates(e.textContent).map(({x:e,y:t})=>[e,t])];return new o({rings:t})}}return}(e);if(l?.type){const r=e.querySelector("styleUrl")?.textContent,o=parseKMLSymbol(r?f[r]:e.querySelector("Style"),l.type,i);y.has(l.type)||y.set(l.type,{graphics:[],symbols:[]});let n=function(e,t){for(let r=0;r<e.length;r++)if(lt(e[r],t))return r;return-1}(y.get(l.type).symbols,o);-1===n&&(y.get(l.type).symbols.push(o),n=y.get(l.type).symbols.length-1),y.get(l.type).graphics.push(new t({geometry:l,attributes:{name:s,description:c,SymbolID:n,OBJECTID:p+a}}))}});const d=e.querySelectorAll(":scope > Folder, :scope > Document");if(u||1!==y.size||0!==d.length){const e=new x({layer:new s({title:p})});return y.forEach((t,r)=>{const o=new a({displayField:"name",title:`${r.slice(0,1).toUpperCase()+r.slice(1)}s`,source:t.graphics,renderer:mt(t.symbols),fields:[new c({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new c({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new c({name:"name",type:"string",alias:"name"}),new c({name:"description",type:"string",alias:"description",defaultValue:""})]}),n=new O({layer:o});e.layerExtensions.add(n)}),d.forEach((t,r)=>{const o=m(t,r);e.layerExtensions.add(o)}),e}{const e=[...y.values()][0],t=new a({displayField:"name",title:p,source:e.graphics,renderer:mt(e.symbols),fields:[new c({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new c({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new c({name:"name",type:"string",alias:"name"}),new c({name:"description",type:"string",alias:"description",defaultValue:""})]});return new O({layer:t})}},u=[];return l.querySelectorAll("kml > Document, kml > Folder").forEach((e,t)=>{const r=m(e,t,!0);r.layerExtensions.length&&u.push(r)}),u}export async function lpkxToLayerExtensions(e,t){const{displayServiceUrl:r,geoProcessedLpkxData:o}=t;E("options.lpkxBlob",e).isNotMissing(),E("options.displayServiceUrl",r).isNotMissing();const{createLpkxLayer:n}=await import("./support/_lpkxConverter.js"),i=await n(o,e,r);return[new b({layer:i})]}export async function dxfToLayerExtensions(e,t,r){const{inputSpatialReference:o,outputSpatialReference:n}=t;E("options.dxfBlob",e).isNotMissing(),E("options.inputSpatialReference",o).isNotMissing(),E("options.outputSpatialReference",n).isNotMissing();const i=new ae(o,n,r),a=i.getContext(),c=await e.text(),l=new w;await re();try{const e=l.parseSync(c);if(!e)throw new Error("DXF parsing failed: parser returned null");a.dxf=e}catch(e){throw e instanceof Error?e:new Error(String(e))}const m=e instanceof File?e.name:"dxf-layer",u=m.replace(/[^a-zA-Z0-9_.-]/g,"_");if(a.fileName=m,a.sanitizedFileName=u,a.subLayers=await i.processAll(),!a.subLayers||0===a.subLayers.length)return[];const f=new s({id:`dxf-group-${u}-${(new Date).getTime()}`,title:m,visible:!0}),p={layer:f,visibilityMode:"independent"};return f.layers.addMany(a.subLayers),[new x(p)]}export async function fgdbToLayerExtensions(e,t){const{displayServiceUrl:r,geoProcessedFgdbData:o}=t;E("options.fgdbBlob",e).isNotMissing(),E("options.displayServiceUrl",r).isNotMissing(),E("options.geoProcessedFgdbData",o).isNotMissing();const{createFgdbLayer:n}=await import("./support/_fgdbConverter.js"),i=await n(o,e,r);return[new b({layer:i})]}export async function shapefileToUploadData(e,t){E("shapefileData",e).isNotMissing();const o=function(e){const t={...Ae(e)};return{...t,...e}}(t),n=new Promise((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsArrayBuffer(e)}),[{default:a},s]=await Promise.all([import("jszip"),import("shpjs")]),c=await n,l=await a.loadAsync(new Uint8Array(c)),m=new D;l.forEach((e,t)=>{t&&m.set(t.name,t)});const u=l.filter(()=>!0).map(e=>e.name);let f,p=u.filter(e=>e.endsWith(".shp")).map(e=>e.substring(0,e.length-4));if(p=function(e){if(!e.length)return[];let t=e[0];const r=t.match(be);return r?(t=r[1],e.filter(e=>{const r=e.match(be);return r?.[1]===t})):[t]}(p),u.some(e=>e.endsWith(".prj"))&&!p.every(e=>m.has(`${e}.prj`)))throw new Error("Shapefile zip must contain the same prj file for each separate shapefile");if(0===p.length)throw new h("shapefileData",`No shapefile found in the provided ${u.map(e=>e.substring(0,e.length-4))} zip file(s).`);await Promise.all(u.filter(e=>e.endsWith(".prj")).map(async e=>{const t=await l.file(e).async("string");if(f){if(t!==f)throw new Error("Shapefile zip must contain the same prj file for each separate shapefile")}else f=t}));let y=[],d=[];for(const e of p){if(!m.has(`${e}.shp`)||!m.has(`${e}.shx`)||!m.has(`${e}.dbf`))throw new F("Shapefile must contain shp, shx, and dbf files.");const t=s.parseShp(await m.get(`${e}.shp`).async("uint8array")),r=s.parseDbf(await m.get(`${e}.dbf`).async("uint8array"));if(r.length!==t.length)throw new Error("Shapefile must contain shp, shx, and dbf files.");y=y.concat(r),d=d.concat(t)}const g=await Promise.all(d.map(e=>async function(e,t){if(!e)return;const o=A(e)?function(e){E("geometry.coordinates",e.type).matches("Point"),E("geometry.coordinates",e.coordinates).satisfies(e=>"number"==typeof e||Array.isArray(e));const[t,o,n]=e.coordinates,a=new r({x:t,y:o,spatialReference:i.WGS84});if(Array.isArray(n)){const[e,t]=n;!e&&!t||e?a.z=e:a.m=t}return a}(e):await Q(e);if(t){let e;try{const r=await K(t);e=new i({wkid:H(r)})}catch{}e||(e=new i({wkt:t})),o.spatialReference=e}return o}(e,f))),w=geometryTypeHeaders[GeometryFormat.ARCGIS_JSON][0][0];y.forEach((e,t)=>e[w]=JSON.stringify(g[t]?g[t].toJSON():void 0));const S=function(e){const t=e.map(e=>Object.keys(e)).reduce((e,t)=>e.concat(t.filter(t=>!e.includes(t))),[]);return[t.map(e=>({raw:e})),...e.map(e=>t.map(t=>({raw:e[t]})))]}(y);return o.primaryKeyField||(o.primaryKeyField=we(S)),{data:S,...o,includeHeaderRow:!0,geometryFormat:GeometryFormat.ARCGIS_JSON,geometryFields:[w],inSpatialReference:g[0]?.spatialReference??i.fromJSON({wkid:4326})}}export async function shapefileToFeatureSet(e,t){return uploadDataToFeatureSet(await shapefileToUploadData(e,t))}export function getDefaultSymbol(e,t){const r=e%8;let o=["#FFDBFF","#88D6FF","#7F9FC3","#FF8200","#F34A53","#76E3B9","#E7BFFF","#FFC467"][r],n=["#EF3786","#005A99","#2D5070","#790C00","#4C0000","#006543","#6244A9","#904200"][r];if(Math.floor(e/8)%2!=0){const e=o;o=n,n=e}switch(t){case"point":case"multipoint":return new g({color:o,outline:{color:n}});case"polyline":return new d({color:o,width:"2"});case"polygon":return new y({color:o,outline:{color:n}});case"mesh":return new f({symbolLayers:[{type:"fill",material:{color:o},outline:{color:n}}]})}}function Ae(e){return{escapeFormulaChars:!0,outFields:["*"],generatePrimaryKey:!1,locale:T,detectOid:!e?.primaryKeyField}}function Ie(e){return{...{includeHeaderRow:!0,inSpatialReference:i.WGS84,...Ae(e)},...e}}function _e(e,t){return t.geometryFormat===GeometryFormat.XYZ?["x","y","z"]:t.geometryFormat===GeometryFormat.XY?["x","y"]:t.geometryFormat===GeometryFormat.LAT_LON?["latitude","longitude"]:t.geometryFormat===GeometryFormat.NONE?[]:["geometry"]}function Ge(e,t,r,o){const n=r.fields.filter(e=>"oid"===e.type).map(e=>e.name).toArray();if(o)return n;if(t&&!t.includes("*"))return t.filter(e=>!n.includes(e));{const t=r.fields.filter(e=>"oid"!==e.type).map(e=>e.name).toArray();let o=[];for(const r of e)for(const e of r.attributes.keys())t.includes(e)||n.includes(e)||o.includes(e)||o.push(e);return o=o.sort(),t.concat(o)}}function Le(e){if(!e)return["*"];const t=e.featureSettings.popupTemplate?.content;if(Array.isArray(t)){const e=new Set;for(const r of t)if("fields"===r.type&&Array.isArray(r.fieldInfos))for(const t of r.fieldInfos)t.visible&&e.add(t.fieldName);if(e.size>0)return Array.from(e)}const r=e.featureSettings.popupTemplate?.fieldInfos;if(Array.isArray(r)){const e=[];for(const t of r)t.visible&&e.push(t.fieldName);if(e.length>0)return e}return["*"]}async function Ce(e,t){const r=await ve(e,t.outSpatialReference);if(t.geometryFormat===GeometryFormat.XYZ){if(!r)return["","",""];if(!A(r))throw new Error("Cannot use geometry format XYZ with non-point geometry");return[r.x,r.y,r.z]}if(t.geometryFormat===GeometryFormat.XY){if(!r)return["",""];if(!A(r))throw new Error("Cannot use geometry format XY with non-point geometry");return[r.x,r.y]}if(t.geometryFormat===GeometryFormat.LAT_LON){if(!r)return["",""];if(!A(r))throw new Error("Cannot use geometry format LAT_LONG with non-point geometry");return[r.y,r.x]}return t.geometryFormat===GeometryFormat.ARCGIS_JSON?r?[JSON.stringify(r.toJSON())]:[""]:t.geometryFormat===GeometryFormat.WKT?r?[await q(r)]:[""]:t.geometryFormat===GeometryFormat.GEO_JSON?r?[JSON.stringify(await V(r))]:[""]:[]}async function ve(e,t){return e?.spatialReference&&!e.spatialReference.equals(t)&&t?(await W([e],t))[0]:e}function Pe(e,t){const r=[t.delimiter,Fe,"\r","\n",t.rowDelimiter];if(t.alwaysQuote||r.some(t=>e.includes(t))){const t=e.replace(new RegExp(Fe,"g"),`${Fe}${Fe}`);return`${Fe}${t}${Fe}`}return e}function je(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e){const r=t.numberFormat||$.ROUND_TRIP;return k(r,e)}if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime().toString():v({format:t.dateFormat,timeZone:"UTC",isDateOnly:t.isDateOnly},e);if(e instanceof M)return J({format:t.timeFormat},e)}let r=e.toString();return t.escapeFormulaChars&&(r=Be(r)),r}function Ue(e,t,r){if(r.useFormattedValues||$e(e,t))return e.presentableAttributes.get(t)??e.attributes.get(t);const o=e.schema.findFieldByName(t)?.type;if(null!=o)switch(o){case"date":case"date-only":case"timestamp-offset":{const r=C(e.attributes.get(t));if(!isNaN(r.getTime()))return r;break}case"time-only":{const r=z(e.attributes.get(t));if(r.isValid)return r;break}}return e.attributes.get(t)??e.presentableAttributes.get(t)}function $e(e,t){return!!oe(t,e.schema.typeIdField)||("coded-value"===e.type?.domains?.[t]?.type||"coded-value"===e.schema.findFieldByName(t)?.domain?.type)}function Be(e){for(const t of he)if(e.startsWith(t))return`\t${e}`;return e}function He(e,t,r){const o=e.startsWith(Fe),n=e.endsWith(Fe);if(o&&!n||!o&&n)throw new Error(`Detected invalid CSV: Missing opening or closing quote for value at row:${t} column:${r}`);const i=o?e.substring(1,e.length-1):e;let a=-1;return ke(i,Fe,(e,o)=>{if(o===i.length)return!0;if(a<0){if(o!==i.length)return a=o,!0}else if(o===a+1)return a=-1,!0;throw new Error(`Detected invalid CSV: Non-escaped quote for value at row:${t} column:${r}`)}),i.replace(new RegExp(`${Fe}${Fe}`,"g"),Fe)}function ke(e,t,r){let o,n=!1,i=0,a=0;for(;o=e.indexOf(t,i),!(o<0);){for(let t=i;t<o;)e.substring(t).startsWith(Fe)?(n=!n,t+=1):t++;const s=o+t.length;if(!n){const e=r(a,o);if(a=s,!e)return}i=s}r(a,e.length)}async function ze(e,t){const r=JSON.parse(e),o=(await import("@arcgis/core/geometry/support/jsonUtils")).fromJSON(r);return r.spatialReference||(o.spatialReference=t),o}async function Je(e,t){const r=await Q(JSON.parse(e));return r.spatialReference=t,r}async function Xe(e,t){const r=await Y(e);return r.spatialReference=t,r}function We(e,t,r){const o=r?[r]:geometryTypeHeaders[t];for(const t of o){const r=t.map(t=>e.map(e=>e?.raw?.toString().trim().toLowerCase()).indexOf(t.trim().toLowerCase()));if(r.every(e=>e>=0))return r}}async function qe(e,t){return(await Promise.all(e.map(async(e,r)=>{const o=e?.raw;if("string"==typeof o&&""!==o)try{return await t(o,void 0),r}catch{return}}))).find(e=>void 0!==e)}function Ye(e,t,r){return"inv"===t?"string"==typeof e?parseFloat(e.replaceAll(",","")):e:H({locale:t,format:r},e)}async function Ze(e,t,r){const o=r?e.slice(1):e;if(r){const r=We(e[0],GeometryFormat.ARCGIS_JSON);if(void 0!==r)for(const[e,n]of Ee){try{await Ke(r[0],n,t,o)}catch{continue}return[e,[r[0]]]}const n=[GeometryFormat.XYZ,GeometryFormat.XY,GeometryFormat.LAT_LON];for(const t of n){const r=We(e[0],t);if(void 0!==r)return[t,r]}}for(const[e,r]of Ee){const n=await qe(o[0],r);if(void 0!==n){try{await Ke(n,r,t,o)}catch{continue}return[e,[n]]}}return[GeometryFormat.NONE,[]]}async function Ke(e,t,r,o){return{columnIndices:[e],geometries:await Promise.all(o.map(t=>t[e]).map(e=>{if(e?.raw)return t(e.raw.toString(),r)}))}}function Ve(e,t,r){let o=!1,n=!0,i=!0,a=!0,s=!0,c=!0;const l=new Set,{data:m,includeHeaderRow:u,dateFormat:f,timeFormat:p,primaryKeyField:y,locale:d}=e,g=u?m[0]:[],w=u?m.slice(1):m;for(const e of w){const r=e[t];r?.raw&&(l.add(r.raw),o=!0,n&&(n=te(r.raw,d)||Number.isNaN(r.raw)),i&&(i=r.raw instanceof Date||C(f||P,r.raw)!==j),s&&(s=C(f||Te,r.formatted)!==j),a&&(a=r.raw instanceof M||z(p||X,r.raw).isValid),c&&(c=z({format:p||Oe,locale:"en"},r.formatted).isValid))}const h=l.size===w.length;return y&&g[t]?.raw===y||r&&o&&h&&n?"esriFieldTypeOID":o&&c?"esriFieldTypeTimeOnly":o&&s?"esriFieldTypeDate":o&&n?"esriFieldTypeDouble":o&&a?"esriFieldTypeTimeOnly":o&&i?"esriFieldTypeDate":"esriFieldTypeString"}async function Qe(e,t,r){const{escapeFormulaChars:o,locale:n,numberFormat:i,dateFormat:a,timeFormat:s}=r;if("esriFieldTypeDouble"===t.type||"esriFieldTypeOID"===t.type)return"number"==typeof e?e:e?Ye(e,n,i):null;if("esriFieldTypeDate"===t.type){if(e instanceof Date)return e.getTime();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new Date(t.y,t.m-1,t.d,t.H,t.M,t.S).getTime():void 0}return""===e?null:C({locale:n,format:a},e).getTime()}if("esriFieldTypeTimeOnly"===t.type){if(e instanceof M)return e.toString();if(e instanceof Date)return new M(e).toString();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new M(`${t.H.toString().padStart(2,"0")}:${t.M.toString().padStart(2,"0")}:${t.S.toString().padStart(2,"0")}`).toString():void 0}return""===e?null:z({locale:n,format:s},e).toString()}const c=e?.toString()??"";if(o&&c.startsWith("\t"))for(const e of he)if(c.length>1&&c.charAt(1)===e)return c.substring(1);return c}function et(e){switch(e){case U.DATE_SHORT:return"dd/MM/yyyy";case U.DATE_LONG:return"MMMM d, yyyy";case U.TIME_SHORT:return"h:mm AM/PM";case U.TIME_LONG:return"h:mm:ss AM/PM";case U.DATE_TIME_SHORT:case U.DEFAULT:return"MMM d yyyy h:mm AM/PM";case U.DATE_TIME_LONG:return"MMMM d yyyy h:mm AM/PM";case U.FULL:return"dddd, MMMM d yyyy h:mm AM/PM";case U.ISO_8601:case U.ROUND_TRIP:return'yyyy-MM-dd"T"HH:mm:ss';default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("z")&&Me().warn("Warning: Excel will not recognize timezone format 'z', 'zz', or 'zzz'"),t.includes("h")&&!t.includes("AM/PM")&&Me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function tt(e){switch(e){case U.DATE_SHORT:return"dd/MM/yyyy";case U.DATE_LONG:return"MMMM d, yyyy";case U.DATE_TIME_SHORT:case U.DEFAULT:return"MMM d yyyy";case U.DATE_TIME_LONG:return"MMMM d yyyy";case U.FULL:return"dddd, MMMM d yyyy";case U.ISO_8601:case U.ROUND_TRIP:return"yyyy-MM-dd";default:return e.replace(/TtZzHhmSsUua/g,"")}}function rt(e){switch(e){case B.TIME_SHORT:return"h:mm AM/PM";case B.TIME_LONG:return"h:mm:ss AM/PM";case B.ISO_8601:case B.ROUND_TRIP:return"HH:mm:ss";default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("h")&&!t.includes("AM/PM")&&Me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function ot(e){switch(e){case $.ACCOUNTING:return'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)';case $.CURRENCY:return'"$"#,##0.00';case $.FIXED_POINT:case $.DEFAULT:return"0.0000";case $.NUMBER:return"#,##0.0000";case $.PERCENT:return"0%";case $.ROUND_TRIP:return"0.00000";default:return e}}function nt(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e)return e;if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime():e;if(e instanceof M)return e.toDate()}let r=e.toString();return t.escapeFormulaChars&&(r=Be(r)),r}function it(e,t){return 3===e.length&&!t.hasZ&&t.hasM?[e[0],e[1],void 0,e[2]]:e}function at(e,t){return e.map(e=>it(e,t))}function st(e,t){return e.map(e=>at(e,t))}function ct(e,t,r){switch(t){case De.NUMBER:return e instanceof Date?e.getTime():H(e);case De.STRING:return e instanceof Date?v({format:r.dateFormat??U.ROUND_TRIP,timeZone:"UTC",isDateOnly:r.isDateOnly},e):e instanceof M?J({format:r.timeFormat??B.ROUND_TRIP},e):"number"==typeof e?k(r.numberFormat??$.DEFAULT,e):e.toString();case De.BOOLEAN:return!!e;case De.DATE:return C(e);default:return e.toString()}}function lt(e,t){return JSON.stringify(e.toJSON())===JSON.stringify(t.toJSON())}function mt(e){return 1===e.length?new l({symbol:e[0]}):new m({field:"SymbolID",uniqueValueInfos:[...e.map((e,t)=>new u({label:t.toString(),symbol:e,value:t}))]})}
|
|
1
|
+
import e from"@arcgis/core/Color.js";import t from"@arcgis/core/Graphic.js";import r from"@arcgis/core/geometry/Point";import o from"@arcgis/core/geometry/Polygon.js";import n from"@arcgis/core/geometry/Polyline.js";import i from"@arcgis/core/geometry/SpatialReference";import a from"@arcgis/core/layers/FeatureLayer.js";import s from"@arcgis/core/layers/GroupLayer.js";import c from"@arcgis/core/layers/support/Field.js";import l from"@arcgis/core/renderers/SimpleRenderer.js";import m from"@arcgis/core/renderers/UniqueValueRenderer.js";import u from"@arcgis/core/renderers/support/UniqueValueInfo.js";import f from"@arcgis/core/symbols/MeshSymbol3D.js";import p from"@arcgis/core/symbols/PictureMarkerSymbol.js";import y from"@arcgis/core/symbols/SimpleFillSymbol.js";import d from"@arcgis/core/symbols/SimpleLineSymbol.js";import g from"@arcgis/core/symbols/SimpleMarkerSymbol.js";import w from"dxf-parser";import{ArgumentError as h}from"../ArgumentError.js";import{NotFoundError as F}from"../NotFoundError.js";import{geometryTypeToJson as S}from"../json/GeometryJson.js";import{translate as N}from"../locale/language.js";import{INVARIANT as T}from"../locale.js";import{FeatureCollectionLayerExtension as O}from"../mapping/FeatureCollectionLayerExtension.js";import{GroupLayerExtension as x}from"../mapping/GroupLayerExtension.js";import{MapImageLayerExtension as b}from"../mapping/MapImageLayerExtension.js";import{CaseInsensitiveObservableMap as D}from"../utilities/CaseInsensitiveObservableMap.js";import{Time as M}from"../utilities/Time.js";import{checkArg as E,assertNever as R}from"../utilities/checkArg.js";import{isPoint as A,isMultipoint as _,isPolyline as G,isPolygon as I,isExtent as L}from"../utilities/esri.js";import{parse as v,format as C,DEFAULT_PARSING_FORMATS as P,INVALID_DATE as j}from"../utilities/format/date.js";import{DateFormat as U,NumberFormat as $,TimeFormat as B}from"../utilities/format/formats.js";import{parse as H,format as k}from"../utilities/format/number.js";import{parse as z,format as J,DEFAULT_PARSING_FORMATS as X}from"../utilities/format/time.js";import{project as W,esriToWKT as q,wktToEsri as Y,esriWkidToWkt as Z,esriWktToWkid as K,esriToGeoJSON as V,geoJSONToEsri as Q}from"../utilities/geometry.js";import{getLogger as ee}from"../utilities/log.js";import{isNumeric as te}from"../utilities/number.js";import{delay as re}from"../utilities/promise.js";import{caseInsensitiveEquals as oe}from"../utilities/string.js";import{Feature as ne}from"./Feature.js";import{FeatureSet as ie}from"./FeatureSet.js";import{DxfEntityProcessor as ae}from"./support/_dxfConverters.js";import{createGpxDocument as se,serializeGpxDocument as ce,buildGpxTrack as le,buildGpxTrackPoint as me,buildGpxWaypoint as ue,getGpxExtensions as fe,getGpxTrackDescription as pe,getGpxTrackName as ye,getGpxTrackTime as de,getGpxTrackId as ge}from"./support/_gpxExport.js";import{addAndPopulateFidField as we}from"./support/_shapefileConverter.js";export{getGdbVersion}from"../utilities/_version.js";const he=["=","-","+","@"],Fe='"',Se="\r\n",Ne="\n",Te=[...P.map(et),"M/d/yy"],Oe=[...X.map(rt).map(e=>e.replace("AM/PM","tt"))],xe=10,be=/(\w+)_(point|multipoint|polyline|polygon)z?/;var De;function Me(){return ee("geocortex.api.data.convert")}!function(e){e.DATE="D",e.NUMBER="N",e.STRING="C",e.BOOLEAN="L"}(De||(De={}));export const FIELD_NAME_REGEX=/[^a-zA-Z\d_]/g;export var GeometryFormat;!function(e){e.NONE="NONE",e.WKT="WKT",e.XY="XY",e.XYZ="XYZ",e.LAT_LON="LAT_LONG",e.GEO_JSON="GEO_JSON",e.ARCGIS_JSON="ARCGIS_JSON"}(GeometryFormat||(GeometryFormat={}));export const geometryTypeHeaders={[GeometryFormat.XYZ]:[["x","y","z"]],[GeometryFormat.XY]:[["x","y"]],[GeometryFormat.LAT_LON]:[["latitude","longitude"],["lat","lon"],["lat","long"]],[GeometryFormat.ARCGIS_JSON]:[["geometry"]],[GeometryFormat.GEO_JSON]:[["geometry"]],[GeometryFormat.WKT]:[["geometry"]]};const Ee=[[GeometryFormat.ARCGIS_JSON,ze],[GeometryFormat.GEO_JSON,Je],[GeometryFormat.WKT,Xe]],Re=new Map(Ee);export async function uploadDataToFeatureSet(e){const t=await async function(e){const{data:t,includeHeaderRow:o,geometryFormat:n,geometryFields:i,locale:a,numberFormat:s,inSpatialReference:c}=e,l=o?t.slice(1):t;if(n===GeometryFormat.NONE)return{columnIndices:[]};const m=e=>Ye(e,a,s),u=(e,t)=>{const o=t===GeometryFormat.XYZ,n=t===GeometryFormat.LAT_LON;return{columnIndices:e,geometries:l.map(t=>{if(t.length>=Math.max(...e)&&te(t[e[0]]?.raw,a)&&te(t[e[1]]?.raw,a)&&(!o||te(t[e[2]]?.raw,a)))return new r({x:m(n?t[e[1]].raw:t[e[0]].raw),y:m(n?t[e[0]].raw:t[e[1]].raw),z:o?m(t[e[2]].raw):0,spatialReference:c})})}},f=async(e,t)=>({columnIndices:[e],geometries:await Promise.all(l.map(t=>t[e]).map(e=>{if(e?.raw)return t(e.raw.toString(),c)}))}),p=async(e,t)=>{switch(t){case GeometryFormat.NONE:return{columnIndices:[0]};case GeometryFormat.LAT_LON:case GeometryFormat.XYZ:case GeometryFormat.XY:return u(e,t);case GeometryFormat.ARCGIS_JSON:return f(e[0],ze);case GeometryFormat.GEO_JSON:return f(e[0],Je);case GeometryFormat.WKT:return f(e[0],Xe);default:return R(t,new Error(`Unknown geometry format "${t}".`))}};if(n){const e=We(o?t[0]:t[0].map((e,t)=>({raw:t.toString()})),n,o?i:i.map(e=>""+(parseInt(e.match(/\d+/g)[0])-1)));if(o&&void 0===e)throw new Error(`Error parsing file data: Expected geometry columns ${geometryTypeHeaders[n][0].join(",")} are missing for GeometryType.${n}`);return p(e??[0],n)}const[y,d]=await Ze(t,c,o);if(y===GeometryFormat.NONE)return{columnIndices:[]};return d.length>1?u(d,y):f(d[0],Re.get(y))}(e),o=function(e,t){const{data:r,displayField:o,includeHeaderRow:n,inSpatialReference:i,outSpatialReference:a,generatePrimaryKey:s}=e,c={fields:[]},l=e=>!(!t.columnIndices||0===t.columnIndices.length)&&t.columnIndices.includes(e);let{primaryKeyField:m}=e,u=0;for(let t=0;t<r[0].length;t++){if(l(t))continue;const o=Ve(e,t,!s&&!m&&!c.fields.find(e=>"esriFieldTypeOID"===e.type));let i=r[0][t]?.raw?.toString(),a=i?.replace(FIELD_NAME_REGEX,"_");n&&a||(a="field"+ ++u,i=N("gcx.api.data.convert.import-field-alias",u)),c.fields.push({alias:i,name:a,type:o}),"esriFieldTypeOID"===o&&(m=a)}if(c.spatialReference=a??t.geometries?.[0]?.spatialReference??i,t.geometries?.length){const e=t.geometries.filter(e=>void 0!==e).map(e=>e.type),r=e[0];c.geometryType=e.every(e=>e===r)?S(r):void 0}if(!c.fields.find(e=>"esriFieldTypeOID"===e.type)){const e=c.fields.length+1,t=!!c.fields.find(e=>"objectid"===e.name.toLowerCase());m=t?`OBJECTID_${e}`:"OBJECTID",c.fields.push({name:m,alias:m,type:"esriFieldTypeOID"})}return c.displayField=o??c.fields.find(e=>!oe(e.name,m)&&"esriFieldTypeString"===e.type)?.name??c.fields.find(e=>!oe(e.name,m))?.name??m,c.primaryKeyField=m,c}(e,t),n=await async function(e,t,r){const{data:o,includeHeaderRow:n,outFields:i,escapeFormulaChars:a,locale:s,numberFormat:c,dateFormat:l,timeFormat:m}=e,{spatialReference:u}=r,f=[],p=n?o.slice(1):o,y=(e,r)=>!t.columnIndices||0===t.columnIndices.length||!t.columnIndices.includes(r);return await Promise.all(p.map(async(e,o)=>{const n=ne.create();for(let t=0;t<r.fields.length;t++){const u=r.fields[t],f=e.filter(y);if(i.includes("*")||i.filter(e=>oe(e,u.name)).length>0){let e=await Qe(f[t]?.raw,u,{escapeFormulaChars:a,dateFormat:l,numberFormat:c,timeFormat:m,locale:s});"esriFieldTypeOID"===u.type&&null===e&&(e=o),n.attributes.set(u.name,e)}}t.geometries&&(n.geometry=await Ce(t.geometries[o],u)),f.push(n)})),f}(e,t,o);return new ie({features:n,schema:o})}export async function toCsv(e,t){E("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,alwaysQuote:!1,escapeFormulaChars:!0,delimiter:",",dateFormat:U.ROUND_TRIP,timeFormat:B.ROUND_TRIP,geometryFormat:r.some(e=>void 0!==e.geometry&&null!==e.geometry)?GeometryFormat.WKT:GeometryFormat.NONE,includeByteOrderMark:!0,outSpatialReference:i.WGS84,includeHeaderRow:!0,outFields:Le(e.source),rowDelimiter:navigator.platform?.startsWith("Win")?Se:"\n"},...t},{includeByteOrderMark:n,includeHeaderRow:a,delimiter:s,outFields:c,rowDelimiter:l}=o,m=[];n&&m.push("\ufeff");const u=Ge(r,o),f=Ie(r,c,e.schema,!0),p=Ie(r,c,e.schema,!1);if(a){const e=[];for(const t of u)e.push(Pe(t,o));for(const t of f)e.push(Pe(t,o));for(const t of p)e.push(Pe(t,o));const t=e.join(s)+l;m.push(t)}await Promise.all(r.map(async e=>{const t=[],r=(t,r)=>{const o=Ue(e,t,r),n=e.schema.findFieldByName(t)?.type;return Pe(je(o,{...r,isDateOnly:"date-only"===n}),r)};t.push(...await async function(e,t){let r=await ve(e,t);t.geometryFormat!==GeometryFormat.XYZ&&t.geometryFormat!==GeometryFormat.XY&&t.geometryFormat!==GeometryFormat.LAT_LON||(r=r.map(e=>void 0===e?"":je(e,t)));return r.map(e=>""===e?"":Pe(e,t))}(e.geometry,o)),t.push(...f.map(e=>r(e,o))),t.push(...p.map(e=>r(e,o)));const n=`${t.join(s)}${l}`;m.push(n)}));return new Blob(m,{type:"text/plain",endings:"\n"===l||l===Se?"transparent":"native"})}export async function csvToUploadData(e,t){let r;if(E("csvData",e).isNotMissing(),e instanceof Blob){const t=new Promise((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsText(e)});r=await t}else r=e;const o=_e(t),n=o.rowDelimiter||function(e){let t=Ne;return ke(e,Se,(r,o)=>(0===r&&o===e.length||(t=Se),!1)),t}(r),i=o.delimiter??function(e,t,r){const o=",";if(0===e.length)return o;const n=[];if(ke(e,t,(t,r)=>(r!==e.length||t!==r)&&(n.push(e.substring(t,r)),n.length<3)),0===n.length)return o;let i=[{delimiter:",",rowsDelimiterOccurrences:[],rowsNumberAdjacentOccurrences:[]},{delimiter:";",rowsDelimiterOccurrences:[]},{delimiter:"|",rowsDelimiterOccurrences:[]},{delimiter:"\t",rowsDelimiterOccurrences:[]},{delimiter:" ",rowsDelimiterOccurrences:[]}].filter(e=>n[0].includes(e.delimiter));if(0===i.length)return o;for(const e of n)for(const t of i){let o=0,n=0;ke(e,t.delimiter,(i,a)=>{if(a!==e.length&&o++,","===t.delimiter){const t=e.charAt(a-1),o=e.charAt(a+1);te(t,r)&&te(o,r)&&n++}return!0}),t.rowsDelimiterOccurrences.push(o),","===t.delimiter&&t.rowsNumberAdjacentOccurrences.push(n)}if(i=i.filter(e=>e.rowsDelimiterOccurrences.every(t=>e.rowsDelimiterOccurrences[0]===t)).sort((e,t)=>t.rowsDelimiterOccurrences[0]-e.rowsDelimiterOccurrences[0]),i.length>1&&","===i[0].delimiter&&null!=r&&r!==T){const e=i[0];if(","===e?.delimiter&&","===Intl.NumberFormat(r).formatToParts(1.1).find(e=>"decimal"===e.type)?.value)for(let t=0;t<e.rowsDelimiterOccurrences.length;t++)if(e.rowsDelimiterOccurrences[t]<=e.rowsNumberAdjacentOccurrences[t]){i=i.filter(e=>","!==e.delimiter);break}}if(0===i.length)return o;return i[0].delimiter}(r,n,o.locale),a=function(e,t,r){const o=[],n=(e,t)=>{const o=[];return ke(e,r,(r,n)=>{const i=e.substring(r,n);return o.push({raw:He(i,t,o.length)}),!0}),o};if(ke(e,t,(t,r)=>{const i=e.substring(t,r);return i.length>0&&o.push(n(i,o.length)),!0}),o.length){const e=o[0].length;o.forEach((t,r)=>{if(t.length!==e)throw new Error(`Detected invalid CSV: Row ${r} does not have expected number of columns: ${e}`)})}return o}(r,n,i);let{geometryFormat:s,geometryFields:c}=o;if(!s){const[e,t]=await Ze(a,o.inSpatialReference,o.includeHeaderRow);s=e,c=t.map(e=>o.includeHeaderRow?a[0][e]?.raw??N("gcx.api.data.convert.import-field-alias",(e+1).toString()):N("gcx.api.data.convert.import-field-alias",(e+1).toString()))}return{data:a,...o,geometryFormat:s,geometryFields:c}}export async function csvToFeatureSet(e,t){const r=_e(t);return uploadDataToFeatureSet(await csvToUploadData(e,r))}export async function toGpx(e){E("featureSet",e).isNotMissing();const t=Array.from(e),r=se(),o=r.documentElement,n=new Set;for(const e of t){if(!e.geometry)continue;const t=await Ce(e.geometry,i.WGS84),a={name:ye(e),desc:pe(e),time:de(e),extensions:fe(r,e),id:ge(e)};if(A(t))o.appendChild(ue(r,t.y,t.x,t.hasZ?t.z:void 0,a));else if(G(t))for(const e of t.paths){if(e.length<2)continue;const n=e.map(([e,o,n])=>me(r,o,e,t.hasZ?n:void 0));o.appendChild(le(r,n,a))}else n.add(t.type)}if(n.size>0){const e=Array.from(n).join(", ");Me().warn(`One or more features with unsupported geometry types (${e}) were ignored during GPX conversion. GPX format only supports points and polylines.`)}const a=ce(r);return new Blob([a],{type:"application/gpx+xml"})}export async function toXLSX(e,t){E("featureSet",e).isNotMissing();const r=Array.from(e),o={...{useFormattedValues:!1,includeHeaderRow:!0,escapeFormulaChars:!0,geometryFormat:r.some(e=>void 0!==e.geometry&&null!==e.geometry)?GeometryFormat.WKT:GeometryFormat.NONE,outFields:Le(e.source),outSpatialReference:i.WGS84,dateFormat:U.DEFAULT,timeFormat:B.DEFAULT,numberFormat:$.DEFAULT,sheetName:"sheet1"},...t},{outFields:n,includeHeaderRow:a,dateFormat:s,timeFormat:c,numberFormat:l}=o,m=Ge(r,o),u=Ie(r,n,e.schema,!0),f=Ie(r,n,e.schema,!1),p=await import("xlsx"),y=p.utils.sheet_new();let d=!1;if(a){const t=m.concat(u).concat(function(e,t){const r=t?.schema?.fieldExtensions.initializedItems.map(e=>e.field);return e.map(e=>r?.find(t=>oe(t.name,e))?.alias??e)}(f,e.source));d=!0,p.utils.sheet_add_aoa(y,[t],{cellDates:!0})}await Promise.all(r.map(async e=>{const t=[],r=new Set,n=new Set;t.push(...await ve(e.geometry,o));for(const r of u){const n=nt(e.attributes.get(r),o);t.push(n)}for(const i of f){const a=Ue(e,i,o);if(a instanceof M){const o=e.schema.findFieldByName(i);"time-only"===o?.type&&r.add(t.length)}else if(a instanceof Date){const r=e.schema.findFieldByName(i);"date-only"===r?.type&&n.add(t.length)}const s=nt(a,o);t.push(s)}if(!t.every(e=>"string"!=typeof e||e.length<=32767))return void Me().warn(`toXLSX cell limit exceeded, feature (${e.primaryKey??e.id}) omitted.`);p.utils.sheet_add_aoa(y,[t],{cellDates:!0,origin:d?-1:void 0}),d=!0;const i=p.utils.decode_range(y["!ref"]);for(let e=i.s.c;e<=i.e.c;e++){const t=y[p.utils.encode_cell({r:i.e.r,c:e})];"d"===t.t?r.has(e)?t.z=rt(c??B.ROUND_TRIP):n.has(e)?t.z=tt(s??U.ROUND_TRIP):t.z=et(s??U.ROUND_TRIP):"n"===t.t&&(t.z=ot(l))}}));const g={SheetNames:[],Sheets:{}};g.SheetNames.push(o.sheetName),g.Sheets[o.sheetName]=y;const w=p.write(g,{type:"binary",bookType:"xlsx",compression:!0,bookSST:!0,cellDates:!0}),h=new Uint8Array(w.length);for(let e=0;e<w.length;e++)h[e]=w.charCodeAt(e);return new Blob([h.buffer],{type:"text/plain"})}export async function xlsxToUploadData(e,t){E("xlsxData",e).isNotMissing();const r=function(e){const t={includeHeaderRow:!0,inSpatialReference:i.WGS84,...Ae(e)};return{...t,...e}}(t),o=await async function(e,t){const r=await import("xlsx"),o=new Promise((o,n)=>{const i=new FileReader;i.onload=()=>{const e=new Uint8Array(i.result);let n="";for(const t of e)n+=String.fromCharCode(t);const a=r.read(n,{type:"binary",cellDates:!0}),s=t.sheetName||a.SheetNames[0],c=a.Sheets[s];o(c)},i.onerror=()=>{n(i.error)},i.readAsArrayBuffer(e)}),n=await o,i=r.utils.decode_range(n["!ref"]),a=[];for(let e=i.s.r;e<=i.e.r;e++){const t=[];for(let o=i.s.c;o<=i.e.c;o++){const i=n[`${r.utils.encode_cell({r:e,c:o})}`];"d"===i?.t&&i.v instanceof Date&&(i.v=new Date(i.v.getTime()+6e4*i.v.getTimezoneOffset())),t.push(i?{raw:i.v,formatted:"s"===i.t?void 0:i.w}:{raw:""})}a.push(t)}return a}(e,r);let{geometryFormat:n,geometryFields:a}=r;if(!n){const[e,t]=await Ze(o,r.inSpatialReference,r.includeHeaderRow);n=e,a=t.map(e=>r.includeHeaderRow?o[0][e]?.raw.toString()??N("gcx.api.data.convert.import-field-alias",(e+1).toString()):N("gcx.api.data.convert.import-field-alias",(e+1).toString()))}return{data:o,...r,geometryFormat:n,geometryFields:a}}export async function xlsxToFeatureSet(e,t){E("xlsxData",e).isNotMissing();return uploadDataToFeatureSet(await xlsxToUploadData(e,t))}export function kmlHexToEsriColor(t){return e.fromHex(`#${t.match(/.{2}/g).reverse().join("")}`)}export function parseKMLCoordinates(e){return e.trim().split(/\s+/).map(e=>{const[t,r,o]=e.split(",").map(Number);return{x:t,y:r,z:o}})}export function parseKMLSymbol(t,r,o){if(t){const r=t.querySelector("IconStyle > Icon > href")?.textContent;if(r)return new p({url:r,width:32,height:32});const o=t.querySelector("PolyStyle");if(o){const t=o.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]);return new y({color:r,outline:{color:[0,0,0,.5],width:1}})}const n=t.querySelector("LineStyle");if(n){const t=n.querySelector("color")?.textContent,r=t?kmlHexToEsriColor(t):new e([0,0,0,1]),o=parseFloat(n.querySelector("width")?.textContent||"1");return new d({color:r,width:o})}}return getDefaultSymbol(o,"polygon"===r?"polygon":"point"===r?"point":"polyline")}export async function toShapefile(e,t){E("featureSet",e).isNotMissing();const[{default:r},o]=await Promise.all([import("jszip"),import("../forked-libs/shp-write/index.js")]),n=Array.from(e),a={...{useFormattedValues:!1,outFields:Le(e.source),fileName:e.title||"export"},...t},{outFields:s,outSpatialReference:c,fileName:l}=a,m=e=>e.geometry.hasZ||e.geometry.hasM,u=new Map,f=n.filter(e=>A(e.geometry));u.set("POINTZ",f.filter(m)),u.set("POINT",f.filter(e=>!m(e)));const p=n.filter(e=>_(e.geometry));u.set("MULTIPOINTZ",p.filter(m)),u.set("MULTIPOINT",p.filter(e=>!m(e)));const y=n.filter(e=>G(e.geometry));u.set("POLYLINEZ",y.filter(m)),u.set("POLYLINE",y.filter(e=>!m(e)));const d=n.filter(e=>I(e.geometry)||L(e.geometry));u.set("POLYGONZ",d.filter(m)),u.set("POLYGON",d.filter(e=>!m(e)));const g=Ie(n,s,e.schema,!0);let w=Ie(n,s,e.schema,!1);w=g.concat(w);const h=new r,F=Array.from(u.keys()).filter(e=>u.get(e).length>0);await Promise.all(F.map(async t=>{const r=u.get(t),n=await Promise.all(r.map(e=>Ce(e.geometry,c))),s=await async function(e){const{wkid:t,wkt:r}=e[0].spatialReference;if(!e.every(e=>e.spatialReference.wkid===t&&e.spatialReference.wkt===r))throw new Error("Cannot create shapefile that contains geometries with different spatial references.");return r??await Z(t??i.WGS84.wkid)}(n),m=a.useFormattedValues?Object.assign({},...w.map(e=>({[e]:De.STRING}))):function(e,t,r,o){const n={};for(const i of t){if(e.some(e=>$e(e,i))){n[i]=De.STRING;continue}const t=r?r.fields.find(e=>oe(e.name,i)):void 0;if(t){switch(t.type){case"oid":case"double":case"integer":case"single":case"small-integer":case"big-integer":n[i]=De.NUMBER;break;case"date":case"timestamp-offset":n[i]=o?De.NUMBER:De.DATE;break;default:n[i]=De.STRING}continue}const a=(e,t)=>e.attributes.get(t)??e.presentableAttributes.get(t);e.every(e=>a(e,i)instanceof Date||void 0===a(e,i))&&e.some(e=>a(e,i)instanceof Date)?n[i]=o?De.NUMBER:De.DATE:e.every(e=>"number"==typeof a(e,i)||void 0===a(e,i))&&e.some(e=>"number"==typeof a(e,i))?n[i]=De.NUMBER:e.every(e=>"boolean"==typeof a(e,i)||void 0===a(e,i))&&e.some(e=>"boolean"==typeof a(e,i))?n[i]=De.BOOLEAN:n[i]=De.STRING}return n}(r,w,e.schema,"timestamp"===a.dateFormat),f=function(e){return e.map(e=>{if(A(e)){const{x:t,y:r,z:o,m:n}=e,i=[t,r];return e.hasZ&&i.push(o),e.hasM&&i.push(n),it(i,e)}if(_(e))return at(e.points,e);if(G(e))return st(e.paths,e);if(I(e))return st(e.rings,e);if(L(e)){const t=[e.xmin,e.ymax];return[[t,[e.xmax,e.ymax],[e.xmax,e.ymin],[e.xmin,e.ymin],t]]}throw new Error("Unsupported geometry type.")})}(n),p=function(e,t,r,o){const n=function(e){const t=new Set,r=new Map;for(const o of e){let e=o.replaceAll(".","_");e.length>xe&&(e=e.substring(0,xe));let n=1;for(;t.has(e);){const t=`_${n}`,r=xe-t.length;e=`${e.substring(0,r)}${t}`,n++}t.add(e),r.set(o,e)}return r}(t),i=[];for(const a of e){const e={};for(const i of t){let t=Ue(a,i,o);if(null==t&&(t=""),o.useFormattedValues)t=t.toString();else{t=ct(t,r[i],{...o,isDateOnly:"date-only"===a.schema.findFieldByName(i)?.type})}e[n.get(i)]=t}i.push(e)}return i}(r,w,m,a);o.write(p,t,f,(e,r)=>{const o=F.length>1?`${l}_${t.toLowerCase()}`:l;h.file(`${o}.shp`,r.shp.buffer,{binary:!0}),h.file(`${o}.shx`,r.shx.buffer,{binary:!0}),h.file(`${o}.dbf`,r.dbf.buffer,{binary:!0}),h.file(`${o}.prj`,s)})}));const S=await h.generateAsync({type:"uint8array"});return new Blob([S.buffer],{type:"text/plain"})}export async function kmlToLayerExtensions(e){E("blob",e).isNotMissing();const i=await e.text(),l=(new DOMParser).parseFromString(i,"application/xml"),m=function(e,i,u=!1){const f={};l.querySelectorAll("Style").forEach(e=>{f[`#${e.id}`]=e});const p=e.querySelector(":scope > name")?.textContent??"Unnamed Container",y=new Map;e.querySelectorAll(":scope > Placemark").forEach((e,a)=>{const s=e.querySelector("name")?.textContent??"",c=e.querySelector("description")?.textContent??"",l=function(e){const t=e.querySelector("Point > coordinates"),i=e.querySelector("LineString > coordinates"),a=e.querySelector("Polygon");if(t?.textContent){const[e]=parseKMLCoordinates(t.textContent.replace(/ /g,""));return new r(e)}if(i?.textContent)return new n({paths:[parseKMLCoordinates(i.textContent).map(({x:e,y:t})=>[e,t])]});if(a?.textContent){const e=a.querySelector("outerBoundaryIs > LinearRing > coordinates");if(e?.textContent){const t=[parseKMLCoordinates(e.textContent).map(({x:e,y:t})=>[e,t])];return new o({rings:t})}}return}(e);if(l?.type){const r=e.querySelector("styleUrl")?.textContent,o=parseKMLSymbol(r?f[r]:e.querySelector("Style"),l.type,i);y.has(l.type)||y.set(l.type,{graphics:[],symbols:[]});let n=function(e,t){for(let r=0;r<e.length;r++)if(lt(e[r],t))return r;return-1}(y.get(l.type).symbols,o);-1===n&&(y.get(l.type).symbols.push(o),n=y.get(l.type).symbols.length-1),y.get(l.type).graphics.push(new t({geometry:l,attributes:{name:s,description:c,SymbolID:n,OBJECTID:p+a}}))}});const d=e.querySelectorAll(":scope > Folder, :scope > Document");if(u||1!==y.size||0!==d.length){const e=new x({layer:new s({title:p})});return y.forEach((t,r)=>{const o=new a({displayField:"name",title:`${r.slice(0,1).toUpperCase()+r.slice(1)}s`,source:t.graphics,renderer:mt(t.symbols),fields:[new c({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new c({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new c({name:"name",type:"string",alias:"name"}),new c({name:"description",type:"string",alias:"description",defaultValue:""})]}),n=new O({layer:o});e.layerExtensions.add(n)}),d.forEach((t,r)=>{const o=m(t,r);e.layerExtensions.add(o)}),e}{const e=[...y.values()][0],t=new a({displayField:"name",title:p,source:e.graphics,renderer:mt(e.symbols),fields:[new c({name:"OBJECTID",type:"oid",alias:"OBJECTID"}),new c({name:"SymbolID",type:"integer",alias:"SymbolID",editable:!1}),new c({name:"name",type:"string",alias:"name"}),new c({name:"description",type:"string",alias:"description",defaultValue:""})]});return new O({layer:t})}},u=[];return l.querySelectorAll("kml > Document, kml > Folder").forEach((e,t)=>{const r=m(e,t,!0);r.layerExtensions.length&&u.push(r)}),u}export async function lpkxToLayerExtensions(e,t){const{displayServiceUrl:r,geoProcessedLpkxData:o}=t;E("options.lpkxBlob",e).isNotMissing(),E("options.displayServiceUrl",r).isNotMissing();const{createLpkxLayer:n}=await import("./support/_lpkxConverter.js"),i=await n(o,e,r);return[new b({layer:i})]}export async function dxfToLayerExtensions(e,t,r){const{inputSpatialReference:o,outputSpatialReference:n}=t;E("options.dxfBlob",e).isNotMissing(),E("options.inputSpatialReference",o).isNotMissing(),E("options.outputSpatialReference",n).isNotMissing();const i=new ae(o,n,r),a=i.getContext(),c=await e.text(),l=new w;await re();try{const e=l.parseSync(c);if(!e)throw new Error("DXF parsing failed: parser returned null");a.dxf=e}catch(e){throw e instanceof Error?e:new Error(String(e))}const m=e instanceof File?e.name:"dxf-layer",u=m.replace(/[^a-zA-Z0-9_.-]/g,"_");if(a.fileName=m,a.sanitizedFileName=u,a.subLayers=await i.processAll(),!a.subLayers||0===a.subLayers.length)return[];const f=new s({id:`dxf-group-${u}-${(new Date).getTime()}`,title:m,visible:!0}),p={layer:f,visibilityMode:"independent"};return f.layers.addMany(a.subLayers),[new x(p)]}export async function fgdbToLayerExtensions(e,t){const{displayServiceUrl:r,geoProcessedFgdbData:o}=t;E("options.fgdbBlob",e).isNotMissing(),E("options.displayServiceUrl",r).isNotMissing(),E("options.geoProcessedFgdbData",o).isNotMissing();const{createFgdbLayer:n}=await import("./support/_fgdbConverter.js"),i=await n(o,e,r);return[new b({layer:i})]}export async function shapefileToUploadData(e,t){E("shapefileData",e).isNotMissing();const o=function(e){const t={...Ae(e)};return{...t,...e}}(t),n=new Promise((t,r)=>{const o=new FileReader;o.onload=()=>{t(o.result)},o.onerror=()=>{r(o.error)},o.readAsArrayBuffer(e)}),[{default:a},s]=await Promise.all([import("jszip"),import("shpjs")]),c=await n,l=await a.loadAsync(new Uint8Array(c)),m=new D;l.forEach((e,t)=>{t&&m.set(t.name,t)});const u=l.filter(()=>!0).map(e=>e.name);let f,p=u.filter(e=>e.endsWith(".shp")).map(e=>e.substring(0,e.length-4));if(p=function(e){if(!e.length)return[];let t=e[0];const r=t.match(be);return r?(t=r[1],e.filter(e=>{const r=e.match(be);return r?.[1]===t})):[t]}(p),u.some(e=>e.endsWith(".prj"))&&!p.every(e=>m.has(`${e}.prj`)))throw new Error("Shapefile zip must contain the same prj file for each separate shapefile");if(0===p.length)throw new h("shapefileData",`No shapefile found in the provided ${u.map(e=>e.substring(0,e.length-4))} zip file(s).`);await Promise.all(u.filter(e=>e.endsWith(".prj")).map(async e=>{const t=await l.file(e).async("string");if(f){if(t!==f)throw new Error("Shapefile zip must contain the same prj file for each separate shapefile")}else f=t}));let y=[],d=[];for(const e of p){if(!m.has(`${e}.shp`)||!m.has(`${e}.shx`)||!m.has(`${e}.dbf`))throw new F("Shapefile must contain shp, shx, and dbf files.");const t=s.parseShp(await m.get(`${e}.shp`).async("uint8array")),r=s.parseDbf(await m.get(`${e}.dbf`).async("uint8array"));if(r.length!==t.length)throw new Error("Shapefile must contain shp, shx, and dbf files.");y=y.concat(r),d=d.concat(t)}const g=await Promise.all(d.map(e=>async function(e,t){if(!e)return;const o=A(e)?function(e){E("geometry.coordinates",e.type).matches("Point"),E("geometry.coordinates",e.coordinates).satisfies(e=>"number"==typeof e||Array.isArray(e));const[t,o,n]=e.coordinates,a=new r({x:t,y:o,spatialReference:i.WGS84});if(Array.isArray(n)){const[e,t]=n;!e&&!t||e?a.z=e:a.m=t}return a}(e):await Q(e);if(t){let e;try{const r=await K(t);e=new i({wkid:H(r)})}catch{}e||(e=new i({wkt:t})),o.spatialReference=e}return o}(e,f))),w=geometryTypeHeaders[GeometryFormat.ARCGIS_JSON][0][0];y.forEach((e,t)=>e[w]=JSON.stringify(g[t]?g[t].toJSON():void 0));const S=function(e){const t=e.map(e=>Object.keys(e)).reduce((e,t)=>e.concat(t.filter(t=>!e.includes(t))),[]);return[t.map(e=>({raw:e})),...e.map(e=>t.map(t=>({raw:e[t]})))]}(y);return o.primaryKeyField||(o.primaryKeyField=we(S)),{data:S,...o,includeHeaderRow:!0,geometryFormat:GeometryFormat.ARCGIS_JSON,geometryFields:[w],inSpatialReference:g[0]?.spatialReference??i.fromJSON({wkid:4326})}}export async function shapefileToFeatureSet(e,t){return uploadDataToFeatureSet(await shapefileToUploadData(e,t))}export function getDefaultSymbol(e,t){const r=e%8;let o=["#FFDBFF","#88D6FF","#7F9FC3","#FF8200","#F34A53","#76E3B9","#E7BFFF","#FFC467"][r],n=["#EF3786","#005A99","#2D5070","#790C00","#4C0000","#006543","#6244A9","#904200"][r];if(Math.floor(e/8)%2!=0){const e=o;o=n,n=e}switch(t){case"point":case"multipoint":return new g({color:o,outline:{color:n}});case"polyline":return new d({color:o,width:"2"});case"polygon":return new y({color:o,outline:{color:n}});case"mesh":return new f({symbolLayers:[{type:"fill",material:{color:o},outline:{color:n}}]})}}function Ae(e){return{escapeFormulaChars:!0,outFields:["*"],generatePrimaryKey:!1,locale:T,detectOid:!e?.primaryKeyField}}function _e(e){return{...{includeHeaderRow:!0,inSpatialReference:i.WGS84,...Ae(e)},...e}}function Ge(e,t){return t.geometryFormat===GeometryFormat.XYZ?["x","y","z"]:t.geometryFormat===GeometryFormat.XY?["x","y"]:t.geometryFormat===GeometryFormat.LAT_LON?["latitude","longitude"]:t.geometryFormat===GeometryFormat.NONE?[]:["geometry"]}function Ie(e,t,r,o){const n=r.fields.filter(e=>"oid"===e.type).map(e=>e.name).toArray();if(o)return n;if(t&&!t.includes("*"))return t.filter(e=>!n.includes(e));{const t=r.fields.filter(e=>"oid"!==e.type).map(e=>e.name).toArray();let o=[];for(const r of e)for(const e of r.attributes.keys())t.includes(e)||n.includes(e)||o.includes(e)||o.push(e);return o=o.sort(),t.concat(o)}}function Le(e){if(!e)return["*"];const t=e.featureSettings.popupTemplate?.content;if(Array.isArray(t)){const e=new Set;for(const r of t)if("fields"===r.type&&Array.isArray(r.fieldInfos))for(const t of r.fieldInfos)t.visible&&e.add(t.fieldName);if(e.size>0)return Array.from(e)}const r=e.featureSettings.popupTemplate?.fieldInfos;if(Array.isArray(r)){const e=[];for(const t of r)t.visible&&e.push(t.fieldName);if(e.length>0)return e}return["*"]}async function ve(e,t){const r=await Ce(e,t.outSpatialReference);if(t.geometryFormat===GeometryFormat.XYZ){if(!r)return["","",""];if(!A(r))throw new Error("Cannot use geometry format XYZ with non-point geometry");return[r.x,r.y,r.z]}if(t.geometryFormat===GeometryFormat.XY){if(!r)return["",""];if(!A(r))throw new Error("Cannot use geometry format XY with non-point geometry");return[r.x,r.y]}if(t.geometryFormat===GeometryFormat.LAT_LON){if(!r)return["",""];if(!A(r))throw new Error("Cannot use geometry format LAT_LONG with non-point geometry");return[r.y,r.x]}return t.geometryFormat===GeometryFormat.ARCGIS_JSON?r?[JSON.stringify(r.toJSON())]:[""]:t.geometryFormat===GeometryFormat.WKT?r?[await q(r)]:[""]:t.geometryFormat===GeometryFormat.GEO_JSON?r?[JSON.stringify(await V(r))]:[""]:[]}async function Ce(e,t){return e?.spatialReference&&!e.spatialReference.equals(t)&&t?(await W([e],t))[0]:e}function Pe(e,t){const r=[t.delimiter,Fe,"\r","\n",t.rowDelimiter];if(t.alwaysQuote||r.some(t=>e.includes(t))){const t=e.replace(new RegExp(Fe,"g"),`${Fe}${Fe}`);return`${Fe}${t}${Fe}`}return e}function je(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e){const r=t.numberFormat||$.ROUND_TRIP;return k(r,e)}if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime().toString():C({format:t.dateFormat,timeZone:"UTC",isDateOnly:t.isDateOnly},e);if(e instanceof M)return J({format:t.timeFormat},e)}let r=e.toString();return t.escapeFormulaChars&&(r=Be(r)),r}function Ue(e,t,r){if(r.useFormattedValues||$e(e,t))return e.presentableAttributes.get(t)??e.attributes.get(t);const o=e.schema.findFieldByName(t)?.type;if(null!=o)switch(o){case"date":case"date-only":case"timestamp-offset":{const r=v(e.attributes.get(t));if(!isNaN(r.getTime()))return r;break}case"time-only":{const r=z(e.attributes.get(t));if(r.isValid)return r;break}}return e.attributes.get(t)??e.presentableAttributes.get(t)}function $e(e,t){return!!oe(t,e.schema.typeIdField)||("coded-value"===e.type?.domains?.[t]?.type||"coded-value"===e.schema.findFieldByName(t)?.domain?.type)}function Be(e){for(const t of he)if(e.startsWith(t))return`\t${e}`;return e}function He(e,t,r){const o=e.startsWith(Fe),n=e.endsWith(Fe);if(o&&!n||!o&&n)throw new Error(`Detected invalid CSV: Missing opening or closing quote for value at row:${t} column:${r}`);const i=o?e.substring(1,e.length-1):e;let a=-1;return ke(i,Fe,(e,o)=>{if(o===i.length)return!0;if(a<0){if(o!==i.length)return a=o,!0}else if(o===a+1)return a=-1,!0;throw new Error(`Detected invalid CSV: Non-escaped quote for value at row:${t} column:${r}`)}),i.replace(new RegExp(`${Fe}${Fe}`,"g"),Fe)}function ke(e,t,r){let o,n=!1,i=0,a=0;for(;o=e.indexOf(t,i),!(o<0);){for(let t=i;t<o;)e.substring(t).startsWith(Fe)?(n=!n,t+=1):t++;const s=o+t.length;if(!n){const e=r(a,o);if(a=s,!e)return}i=s}r(a,e.length)}async function ze(e,t){const r=JSON.parse(e),o=(await import("@arcgis/core/geometry/support/jsonUtils")).fromJSON(r);return r.spatialReference||(o.spatialReference=t),o}async function Je(e,t){const r=await Q(JSON.parse(e));return r.spatialReference=t,r}async function Xe(e,t){const r=await Y(e);return r.spatialReference=t,r}function We(e,t,r){const o=r?[r]:geometryTypeHeaders[t];for(const t of o){const r=t.map(t=>e.map(e=>e?.raw?.toString().trim().toLowerCase()).indexOf(t.trim().toLowerCase()));if(r.every(e=>e>=0))return r}}async function qe(e,t){return(await Promise.all(e.map(async(e,r)=>{const o=e?.raw;if("string"==typeof o&&""!==o)try{return await t(o,void 0),r}catch{return}}))).find(e=>void 0!==e)}function Ye(e,t,r){return"inv"===t?"string"==typeof e?parseFloat(e.replaceAll(",","")):e:H({locale:t,format:r},e)}async function Ze(e,t,r){const o=r?e.slice(1):e;if(r){const r=We(e[0],GeometryFormat.ARCGIS_JSON);if(void 0!==r)for(const[e,n]of Ee){try{await Ke(r[0],n,t,o)}catch{continue}return[e,[r[0]]]}const n=[GeometryFormat.XYZ,GeometryFormat.XY,GeometryFormat.LAT_LON];for(const t of n){const r=We(e[0],t);if(void 0!==r)return[t,r]}}for(const[e,r]of Ee){const n=await qe(o[0],r);if(void 0!==n){try{await Ke(n,r,t,o)}catch{continue}return[e,[n]]}}return[GeometryFormat.NONE,[]]}async function Ke(e,t,r,o){return{columnIndices:[e],geometries:await Promise.all(o.map(t=>t[e]).map(e=>{if(e?.raw)return t(e.raw.toString(),r)}))}}function Ve(e,t,r){let o=!1,n=!0,i=!0,a=!0,s=!0,c=!0;const l=new Set,{data:m,includeHeaderRow:u,dateFormat:f,timeFormat:p,primaryKeyField:y,locale:d}=e,g=u?m[0]:[],w=u?m.slice(1):m;for(const e of w){const r=e[t];r?.raw&&(l.add(r.raw),o=!0,n&&(n=te(r.raw,d)||Number.isNaN(r.raw)),i&&(i=r.raw instanceof Date||v(f||P,r.raw)!==j),s&&(s=v(f||Te,r.formatted)!==j),a&&(a=r.raw instanceof M||z(p||X,r.raw).isValid),c&&(c=z({format:p||Oe,locale:"en"},r.formatted).isValid))}const h=l.size===w.length;return y&&g[t]?.raw===y||r&&o&&h&&n?"esriFieldTypeOID":o&&c?"esriFieldTypeTimeOnly":o&&s?"esriFieldTypeDate":o&&n?"esriFieldTypeDouble":o&&a?"esriFieldTypeTimeOnly":o&&i?"esriFieldTypeDate":"esriFieldTypeString"}async function Qe(e,t,r){const{escapeFormulaChars:o,locale:n,numberFormat:i,dateFormat:a,timeFormat:s}=r;if("esriFieldTypeDouble"===t.type||"esriFieldTypeOID"===t.type)return"number"==typeof e?e:e?Ye(e,n,i):null;if("esriFieldTypeDate"===t.type){if(e instanceof Date)return e.getTime();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new Date(t.y,t.m-1,t.d,t.H,t.M,t.S).getTime():void 0}return""===e?null:v({locale:n,format:a},e).getTime()}if("esriFieldTypeTimeOnly"===t.type){if(e instanceof M)return e.toString();if(e instanceof Date)return new M(e).toString();if("number"==typeof e){const t=(await import("xlsx")).SSF.parse_date_code(e);return t?new M(`${t.H.toString().padStart(2,"0")}:${t.M.toString().padStart(2,"0")}:${t.S.toString().padStart(2,"0")}`).toString():void 0}return""===e?null:z({locale:n,format:s},e).toString()}const c=e?.toString()??"";if(o&&c.startsWith("\t"))for(const e of he)if(c.length>1&&c.charAt(1)===e)return c.substring(1);return c}function et(e){switch(e){case U.DATE_SHORT:return"dd/MM/yyyy";case U.DATE_LONG:return"MMMM d, yyyy";case U.TIME_SHORT:return"h:mm AM/PM";case U.TIME_LONG:return"h:mm:ss AM/PM";case U.DATE_TIME_SHORT:case U.DEFAULT:return"MMM d yyyy h:mm AM/PM";case U.DATE_TIME_LONG:return"MMMM d yyyy h:mm AM/PM";case U.FULL:return"dddd, MMMM d yyyy h:mm AM/PM";case U.ISO_8601:case U.ROUND_TRIP:return'yyyy-MM-dd"T"HH:mm:ss';default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("z")&&Me().warn("Warning: Excel will not recognize timezone format 'z', 'zz', or 'zzz'"),t.includes("h")&&!t.includes("AM/PM")&&Me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function tt(e){switch(e){case U.DATE_SHORT:return"dd/MM/yyyy";case U.DATE_LONG:return"MMMM d, yyyy";case U.DATE_TIME_SHORT:case U.DEFAULT:return"MMM d yyyy";case U.DATE_TIME_LONG:return"MMMM d yyyy";case U.FULL:return"dddd, MMMM d yyyy";case U.ISO_8601:case U.ROUND_TRIP:return"yyyy-MM-dd";default:return e.replace(/TtZzHhmSsUua/g,"")}}function rt(e){switch(e){case B.TIME_SHORT:return"h:mm AM/PM";case B.TIME_LONG:return"h:mm:ss AM/PM";case B.ISO_8601:case B.ROUND_TRIP:return"HH:mm:ss";default:{const t=e.replace(/tt/g,"AM/PM");return t.includes("h")&&!t.includes("AM/PM")&&Me().warn("Warning: Excel will interpret 'h' as 'H' if the format does not have an AM/PM designator"),t}}}function ot(e){switch(e){case $.ACCOUNTING:return'_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)';case $.CURRENCY:return'"$"#,##0.00';case $.FIXED_POINT:case $.DEFAULT:return"0.0000";case $.NUMBER:return"#,##0.0000";case $.PERCENT:return"0%";case $.ROUND_TRIP:return"0.00000";default:return e}}function nt(e,t){if(null==e)return"";if(!t.useFormattedValues){if("number"==typeof e)return e;if(e instanceof Date)return"timestamp"===t.dateFormat?e.getTime():e;if(e instanceof M)return e.toDate()}let r=e.toString();return t.escapeFormulaChars&&(r=Be(r)),r}function it(e,t){return 3===e.length&&!t.hasZ&&t.hasM?[e[0],e[1],void 0,e[2]]:e}function at(e,t){return e.map(e=>it(e,t))}function st(e,t){return e.map(e=>at(e,t))}function ct(e,t,r){switch(t){case De.NUMBER:return e instanceof Date?e.getTime():H(e);case De.STRING:return e instanceof Date?C({format:r.dateFormat??U.ROUND_TRIP,timeZone:"UTC",isDateOnly:r.isDateOnly},e):e instanceof M?J({format:r.timeFormat??B.ROUND_TRIP},e):"number"==typeof e?k(r.numberFormat??$.DEFAULT,e):e.toString();case De.BOOLEAN:return!!e;case De.DATE:return v(e);default:return e.toString()}}function lt(e,t){return JSON.stringify(e.toJSON())===JSON.stringify(t.toJSON())}function mt(e){return 1===e.length?new l({symbol:e[0]}):new m({field:"SymbolID",uniqueValueInfos:[...e.map((e,t)=>new u({label:t.toString(),symbol:e,value:t}))]})}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import type FeatureLayer from "@arcgis/core/layers/FeatureLayer.js";
|
|
2
|
+
import { Feature } from "../Feature.js";
|
|
3
|
+
import type { FeatureSet } from "../FeatureSet.js";
|
|
4
|
+
/**
|
|
5
|
+
* Options used when cloning features for a target layer.
|
|
6
|
+
*/
|
|
7
|
+
export interface CopyFeaturesOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Field mappings from target attribute name to source attribute name.
|
|
10
|
+
*/
|
|
11
|
+
fieldMappings?: {
|
|
12
|
+
targetAttribute: string;
|
|
13
|
+
sourceAttribute: string | null;
|
|
14
|
+
}[];
|
|
15
|
+
/**
|
|
16
|
+
* Called after required fields have been populated for each feature.
|
|
17
|
+
*/
|
|
18
|
+
onRequiredFieldsResolved?: (summary: CopyFeatureRequiredFieldSummary) => void;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Summary of required-field resolution for a copied feature.
|
|
22
|
+
*/
|
|
23
|
+
export interface CopyFeatureRequiredFieldSummary {
|
|
24
|
+
/**
|
|
25
|
+
* Fields that were filled using defaults or placeholders.
|
|
26
|
+
*/
|
|
27
|
+
resolvedFieldNames: string[];
|
|
28
|
+
/**
|
|
29
|
+
* Whether a later bulk update is required for placeholder values.
|
|
30
|
+
*/
|
|
31
|
+
bulkUpdateRequired: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Features cloned and prepared for an add operation.
|
|
35
|
+
*/
|
|
36
|
+
export interface CopyFeaturesResult {
|
|
37
|
+
/**
|
|
38
|
+
* The cloned features, ready to be added to the target feature source.
|
|
39
|
+
*/
|
|
40
|
+
features: Feature[];
|
|
41
|
+
/**
|
|
42
|
+
* Whether a later bulk update is required for placeholder values.
|
|
43
|
+
*/
|
|
44
|
+
bulkUpdateRequired: boolean;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Describes how a required field value was resolved.
|
|
48
|
+
*/
|
|
49
|
+
export interface RequiredFieldResolution {
|
|
50
|
+
/**
|
|
51
|
+
* Name of the required field.
|
|
52
|
+
*/
|
|
53
|
+
fieldName: string;
|
|
54
|
+
/**
|
|
55
|
+
* Value assigned to the field.
|
|
56
|
+
*/
|
|
57
|
+
value: unknown;
|
|
58
|
+
/**
|
|
59
|
+
* Whether the target layer's default value was used.
|
|
60
|
+
*/
|
|
61
|
+
usedDefault: boolean;
|
|
62
|
+
/**
|
|
63
|
+
* Whether a type-derived placeholder was used.
|
|
64
|
+
*/
|
|
65
|
+
usedPlaceholder: boolean;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Result of resolving required fields for a set of attributes.
|
|
69
|
+
*/
|
|
70
|
+
export interface ResolveRequiredFieldsResult {
|
|
71
|
+
/**
|
|
72
|
+
* Attributes including resolved required fields.
|
|
73
|
+
*/
|
|
74
|
+
attributes: Record<string, unknown>;
|
|
75
|
+
/**
|
|
76
|
+
* Details of fields that were resolved.
|
|
77
|
+
*/
|
|
78
|
+
resolved: RequiredFieldResolution[];
|
|
79
|
+
/**
|
|
80
|
+
* Required fields for which no value could be generated.
|
|
81
|
+
*/
|
|
82
|
+
unresolved: string[];
|
|
83
|
+
/**
|
|
84
|
+
* Whether a later bulk update is required for placeholder values.
|
|
85
|
+
*/
|
|
86
|
+
bulkUpdateRequired: boolean;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Error raised when source geometry cannot be projected to the target spatial
|
|
90
|
+
* reference.
|
|
91
|
+
*/
|
|
92
|
+
export declare class CopyFeatureGeometryProjectionError extends Error {
|
|
93
|
+
readonly sourceWkid: number | undefined;
|
|
94
|
+
readonly targetWkid: number | undefined;
|
|
95
|
+
constructor(sourceWkid: number | undefined, targetWkid: number | undefined);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Clones features and prepares their geometry and attributes for a target
|
|
99
|
+
* layer. This function does not persist edits; pass the returned features to
|
|
100
|
+
* the target feature source's `addFeature` or `addFeatures` operation.
|
|
101
|
+
*
|
|
102
|
+
* @param featureSet Features to clone.
|
|
103
|
+
* @param targetLayer Layer whose schema and spatial reference should be used.
|
|
104
|
+
* @param options Attribute mapping and required-field options.
|
|
105
|
+
*/
|
|
106
|
+
export declare function copyFeatures(featureSet: FeatureSet, targetLayer: FeatureLayer, options?: CopyFeaturesOptions): Promise<CopyFeaturesResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{checkArg as e}from"../../utilities/checkArg.js";import{project as t}from"../../utilities/geometry.js";import{generateUuid as r}from"../../utilities/uuid.js";import{Feature as n}from"../Feature.js";const o=new Set(["oid","global-id","geometry"]);export class CopyFeatureGeometryProjectionError extends Error{sourceWkid;targetWkid;constructor(e,t){super(`Could not project geometry from WKID ${e??"unknown"} to WKID ${t??"unknown"}.`),this.name="CopyFeatureGeometryProjectionError",this.sourceWkid=e,this.targetWkid=t}}export async function copyFeatures(t,r,o){e("featureSet",t).isNotMissing(),e("targetLayer",r).isNotMissing();const s=[];let a=!1;for(const e of t){const t=resolveRequiredFields(mapAttributes(e,o),r);if(t.unresolved.length>0)throw new Error(`Cannot copy feature: unresolved required fields: ${t.unresolved.join(", ")}`);a||=t.bulkUpdateRequired,o?.onRequiredFieldsResolved?.({resolvedFieldNames:t.resolved.map(e=>e.fieldName),bulkUpdateRequired:t.bulkUpdateRequired});const u=await i(e.geometry,r);s.push(n.create({attributes:t.attributes,geometry:u}))}return{features:s,bulkUpdateRequired:a}}export function mapAttributes(e,t){if(!t?.fieldMappings)return Object.fromEntries(e.attributes.entries());const r={};for(const{targetAttribute:n,sourceAttribute:o}of t.fieldMappings){if(!n||!o)continue;const t=e.attributes.get(o);null!=t&&(r[n]=t)}return r}export function resolveRequiredFields(e,t){const r={...e},n=[],i=[];let u=!1;for(const e of t.fields??[]){if(o.has(e.type)||!1!==e.nullable||a(r[e.name]))continue;const t=null!=e.defaultValue&&""!==e.defaultValue,c=t?e.defaultValue:s(e);if(void 0===c){i.push(e.name);continue}r[e.name]=c;const d=!t;n.push({fieldName:e.name,value:c,usedDefault:t,usedPlaceholder:d}),u||=l(c,e)}return{attributes:r,resolved:n,unresolved:i,bulkUpdateRequired:u}}async function i(e,r){if(r.geometryType&&!e)throw new Error("Cannot copy feature: source feature has no geometry.");if(!e?.spatialReference||!r.spatialReference||e.spatialReference.equals(r.spatialReference))return e?.clone();const n=(await t([e],r.spatialReference))[0];if(!n)throw new CopyFeatureGeometryProjectionError(e.spatialReference.wkid??void 0,r.spatialReference.wkid??void 0);return n}function s(e){switch(e.type){case"string":return u("<REQUIRED>",e.length);case"date":case"timestamp-offset":return(new Date).toISOString();case"date-only":{const e=new Date;return`${e.getUTCFullYear()}-${String(e.getUTCMonth()+1).padStart(2,"0")}-${String(e.getUTCDate()).padStart(2,"0")}`}case"time-only":return"00:00:00";case"small-integer":case"integer":case"long":case"big-integer":case"single":case"double":return 0;case"xml":return"<root/>";case"guid":if(!1===e.editable)return;return r().toUpperCase();case"blob":return new Blob;default:return}}function a(e){return null!=e&&""!==e}function u(e,t){return null!=t&&t>0?e.slice(0,t):e}function l(e,t){const r=u("<REQUIRED>",t.length);return String(e).includes("<REQUIRED>")||"string"===t.type&&"<REQUIRED>"!==r&&e===r}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.hierarchyData = "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"
|
|
1
|
+
window.hierarchyData = "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"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
window.navigationData = "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"
|
|
1
|
+
window.navigationData = "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"
|