@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
507 lines (501 loc) • 30.3 kB
TypeScript
import type Graphic from "../../Graphic.js";
import type Collection from "../../core/Collection.js";
import type SharedTemplateMetadata from "../../editing/sharedTemplates/SharedTemplateMetadata.js";
import type FeatureTemplate from "../../layers/support/FeatureTemplate.js";
import type SelectionManager from "../../views/SelectionManager.js";
import type SketchLabelOptions from "../../views/interactive/sketch/SketchLabelOptions.js";
import type SketchTooltipOptions from "../../views/interactive/sketch/SketchTooltipOptions.js";
import type SketchValueOptions from "../../views/interactive/sketch/SketchValueOptions.js";
import type SnappingOptions from "../../views/interactive/snapping/SnappingOptions.js";
import type AttachmentsViewModel from "../Attachments/AttachmentsViewModel.js";
import type BatchAttributeFormViewModel from "../BatchAttributeForm/BatchAttributeFormViewModel.js";
import type CreateFeaturesWorkflow from "./CreateFeaturesWorkflow.js";
import type UpdateWorkflow from "./UpdateWorkflow.js";
import type EditorItem from "./support/EditorItem.js";
import type FeatureFormViewModel from "../FeatureForm/FeatureFormViewModel.js";
import type FeatureTemplatesViewModel from "../FeatureTemplates/FeatureTemplatesViewModel.js";
import type SketchViewModel from "../Sketch/SketchViewModel.js";
import type { EventedAccessor } from "../../core/Evented.js";
import type { MapViewOrSceneView } from "../../views/MapViewOrSceneView.js";
import type { CreationInfo, EditorLayerUnion, EditorSketchCreateEvent, EditorSketchUpdateEvent, FailedOperation, FeatureInfo, LayerInfo, SplitFeatureWorkflowStep, State, SplitterGeometryType, SplitterGeometry } from "./types.js";
import type { AttachmentsViewModelProperties } from "../Attachments/AttachmentsViewModel.js";
import type { FeatureTemplatesViewModelProperties } from "../FeatureTemplates/FeatureTemplatesViewModel.js";
import type { SketchLabelOptionsProperties } from "../../views/interactive/sketch/SketchLabelOptions.js";
import type { SnappingOptionsProperties } from "../../views/interactive/snapping/SnappingOptions.js";
import type { SketchTooltipOptionsProperties } from "../../views/interactive/sketch/SketchTooltipOptions.js";
import type { SketchValueOptionsProperties } from "../../views/interactive/sketch/SketchValueOptions.js";
export interface EditorViewModelProperties extends Partial<Pick<EditorViewModel, "layerInfos" | "selectionManager" | "syncViewSelection" | "useLegacyCreateTools" | "view">> {
/** The [AttachmentsViewModel][AttachmentsViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Attachments/AttachmentsViewModel/) for supporting the editor widget. Attachment editing is enabled by default if the layer has support for it. */
attachmentsViewModel?: AttachmentsViewModelProperties;
/**
* The [FeatureTemplatesViewModel][FeatureTemplatesViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/FeatureTemplatesViewModel/)
* for supporting the editor widget.
*/
featureTemplatesViewModel?: FeatureTemplatesViewModelProperties;
/**
* Options to configure the labels shown next to each segment of the geometry being created or updated.
*
* > [!WARNING]
* >
* > **Known Limitation**
* >
* > Sketch labels are currently only supported when working with a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
*
* @since 4.24
*/
labelOptions?: SketchLabelOptionsProperties;
/**
* The [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/) for sketching. It supports [self](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#selfEnabled) and [feature](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#featureEnabled) snapping.
*
* @since 4.19
*/
snappingOptions?: SnappingOptionsProperties;
/**
* Options to configure the tooltip shown next to the cursor when creating or updating graphics.
*
* @since 4.24
*/
tooltipOptions?: SketchTooltipOptionsProperties;
/**
* Options to configure how values are displayed and input when creating or updating graphics.
*
* @since 4.29
*/
valueOptions?: SketchValueOptionsProperties;
}
export interface EditorViewModelEvents {
/**
* Fires when a user starts drawing a feature, is actively drawing a feature, and completes drawing a feature.
*
* @since 4.29
* @example
* // Listen to Editor's create event.
* editor.on("sketch-create", function(evt) {
* const { graphic, tool } = evt.detail;
*
* // Check if the tool used is a 'polyline'
* if (tool === "polyline") {
* // Set the active polyline symbol to white while drawing
* graphic.symbol.color = "#ffffff";
* }
* });
*/
"sketch-create": EditorSketchCreateEvent;
/**
* Fires when a user starts updating a feature's geometry, is actively updating a feature's geometry, and completes updating a feature's geometry.
*
* @since 4.29
* @example
* // Listen to Editor's update event.
* editor.on("sketch-update", function(evt) {
* const { tool, graphics } = evt.detail;
*
* // Check if the layer's geometryType is a 'polyline'
* if (evt.layer?.geometryType === "polyline") {
* // For every feature, update the line symbol
* // width to emphasize the feature being updated
* graphics.forEach((graphic) => graphic.symbol.width = 5);
* }
* });
*/
"sketch-update": EditorSketchUpdateEvent;
}
/**
* Provides the logic for the [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) widget and [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/).
*
* @since 4.11
* @see [Editor](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/) widget
* @see [Editor component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-editor/)
* @see [Workflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/Workflow/)
* @see [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/)
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
* @see [CreateFeaturesWorkflowData](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflowData/)
* @see [UpdateWorkflowData](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflowData/)
* @see [SnappingControls](https://developers.arcgis.com/javascript/latest/references/core/widgets/support/SnappingControls/)
* @see [SketchLabelOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchLabelOptions/)
* @see [SketchTooltipOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchTooltipOptions/)
* @see [SketchValueOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/sketch/SketchValueOptions/)
* @see [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/)
* @see [Programming patterns: Widget viewModel pattern](https://developers.arcgis.com/javascript/latest/programming-patterns/#widget-viewmodel-pattern)
* @see [Sample - Edit features with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/widgets-editor-basic/)
* @see [Sample - Edit features in 3D with the Editor widget](https://developers.arcgis.com/javascript/latest/sample-code/editor-3d/)
* @see [Sample - Editor widget with configurations](https://developers.arcgis.com/javascript/latest/sample-code/widgets-editor-configurable/)
* @see [Sample - Popup with edit action](https://developers.arcgis.com/javascript/latest/sample-code/popup-editaction/)
* @example
* const editor = new Editor({
* viewModel: { // autocasts as new EditorViewModel
* layerInfos: [{
* layer: featureLayer,
* deleteEnabled: false // disables deleting features
* }]
* }
* });
*/
export default class EditorViewModel extends EventedAccessor {
/**
* @deprecated
* Do not directly reference this property.
* Use EventNames and EventTypes helpers from \@arcgis/core/Evented
*/
"@eventTypes": EditorViewModelEvents;
constructor(properties?: EditorViewModelProperties);
/**
* A property indicating the current active workflow. This is either
* [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/), [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/), or [UpdateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateFeaturesWorkflow/).
*
* @see [Sample - Popup with edit action](https://developers.arcgis.com/javascript/latest/sample-code/popup-editaction/)
*/
get activeWorkflow(): CreateFeaturesWorkflow | UpdateWorkflow | null | undefined;
/** The [AttachmentsViewModel][AttachmentsViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Attachments/AttachmentsViewModel/) for supporting the editor widget. Attachment editing is enabled by default if the layer has support for it. */
get attachmentsViewModel(): AttachmentsViewModel;
set attachmentsViewModel(value: AttachmentsViewModelProperties);
/** Convenience property that indicates at least one layer supports a `create-features` workflow. */
get canCreate(): boolean;
/**
* Convenience property that indicates at least one layer supports a `update` workflow.
* This includes the ability to delete features and modify attachments and/or related records.
*/
get canUpdate(): boolean;
/**
* A predominantly read-only collection of [editor items](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/support/EditorItem/) that corresponds to the feature being updated.
*
* @since 4.29
*/
get editorItems(): Collection<EditorItem>;
/**
* An array of objects containing information specific to any failed editing operations.
* In addition to the error(s), options to `retry()` or `cancel()` are provided.
*/
get failures(): FailedOperation[];
/**
* The [FeatureFormViewModel][FeatureFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FeatureFormViewModel/)
* for supporting the editor widget.
*/
get featureFormViewModel(): FeatureFormViewModel | null | undefined;
/**
* The [FeatureTemplatesViewModel][FeatureTemplatesViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/FeatureTemplatesViewModel/)
* for supporting the editor widget.
*/
get featureTemplatesViewModel(): FeatureTemplatesViewModel;
set featureTemplatesViewModel(value: FeatureTemplatesViewModelProperties);
/**
* The form's view model used to support the Editor widget.
* This can be either the [BatchAttributeFormViewModel][BatchAttributeFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/BatchAttributeForm/BatchAttributeFormViewModel/)
* or the [FeatureFormViewModel][FeatureFormViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureForm/FeatureFormViewModel/) and is dependent on the active workflow.
*
* @since 4.33
*/
get formViewModel(): BatchAttributeFormViewModel | FeatureFormViewModel | null | undefined;
/**
* Use this property to determine if the next generation geometry creation
* has been disabled. This can happen when
* [useLegacyCreateTools](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/EditorViewModel/#useLegacyCreateTools) is true,
* or Editor is used with a non-2D (`arcgis-map`) view.
*
* @deprecated
* @since 5.0
*/
get isUsingLegacyCreateTools(): boolean;
/**
* Options to configure the labels shown next to each segment of the geometry being created or updated.
*
* > [!WARNING]
* >
* > **Known Limitation**
* >
* > Sketch labels are currently only supported when working with a [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
*
* @since 4.24
*/
get labelOptions(): SketchLabelOptions;
set labelOptions(value: SketchLabelOptionsProperties);
/**
* An array of editing configurations for individual layers.
*
* For example, if you have an editable feature layer but do not want
* the end user to do any type of editing, you can limit this by
* setting the `enabled` property to `false`.
*
* @example
* const editorViewModel = new EditorViewModel({
* layerInfos: [{
* layer: featureLayer, // pass in the feature layer,
* formTemplate: { // autocasts to FormTemplate
* elements: [
* { // autocasts to FieldElement
* type: "field",
* fieldName: "fulladdr",
* label: "Full Address"
* }
* ]
* },
* enabled: true, // default is true, set to false to disable editing functionality
* addEnabled: true, // default is true, set to false to disable the ability to add a new feature
* updateEnabled: false // default is true, set to false to disable the ability to edit an existing feature
* deleteEnabled: false // default is true, set to false to disable the ability to delete features
* }]
* });
*/
accessor layerInfos: LayerInfo[] | null | undefined;
/**
* Use this property to supply a custom selection manager that overrides the default selection manager. This property is ignored if [syncViewSelection](#syncViewSelection) is `true`.
* This is useful when applications want to share selection sets between components, without relying on the view's selection manager.
*
* @since 5.0
* @beta
*/
accessor selectionManager: SelectionManager | null | undefined;
/**
* The [SketchViewModel][SketchViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/Sketch/SketchViewModel/)
* for supporting the editor widget.
*/
get sketchViewModel(): SketchViewModel | null | undefined;
/**
* The [SnappingOptions](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/) for sketching. It supports [self](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#selfEnabled) and [feature](https://developers.arcgis.com/javascript/latest/references/core/views/interactive/snapping/SnappingOptions/#featureEnabled) snapping.
*
* @since 4.19
*/
get snappingOptions(): SnappingOptions;
set snappingOptions(value: SnappingOptionsProperties);
/**
* The widget's state. Possible values are in the table below.
*
* Value | Description
* ------|------------
* ready | Dependencies are met and has valid property values.
* disabled | Dependencies are missing and cannot provide valid inputs.
* editing-existing-feature | The Editor is currently editing an existing feature.
* awaiting-update-feature-candidate | The period when the application is awaiting the user's input after clicking update and multiple features are returned. Specify the feature to update.
* awaiting-feature-creation-info | This is the first step in the `create-features` workflow. A [CreationInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/types/#CreationInfo) is required.
* awaiting-feature-to-update | This is the first step in the `update` workflow. A [feature](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) is required.
* awaiting-feature-to-create | The waiting period for when a feature is created before attribute/geometry edits can be performed.
* adding-attachment | If currently `editing-existing-feature` and adding an attachment to an existing feature.
* editing-attachment | If currently `editing-existing-feature` and updating an existing attachment to an existing feature.
* creating-features | The Editor is currently creating multiple features.
* viewing-selection-list | The Editor is displaying its selection list and not editing any features.
*/
get state(): State;
/** Indicates if there is at least one edit request being processed. */
get syncing(): boolean;
/**
* Indicates whether the Editor should sync with the view's [selection manager](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/).
* Enabling this does not automatically inherit the [selection sources](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/#sources) from the [SelectionManager](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/), (e.g. which layers or graphics collections the view listens to for selections). If you need specific selection sources, configure them separately via [SelectionManager.sources](https://developers.arcgis.com/javascript/latest/references/core/views/SelectionManager/#sources).
*
* Setting this property takes precedence over the [selectionManager](#selectionManager) property.
*
* @default false
* @since 5.0
* @beta
*/
accessor syncViewSelection: boolean;
/**
* Options to configure the tooltip shown next to the cursor when creating or updating graphics.
*
* @since 4.24
*/
get tooltipOptions(): SketchTooltipOptions;
set tooltipOptions(value: SketchTooltipOptionsProperties);
/**
* Starting at version 5.0, Editor is transitioning to a next generation geometry
* creation experience. This new experience provides advanced curve creation tools
* and allows multiple tools to be used in combination to define a single geometry.
*
* As of 5.0, this experience is only available in 2D (e.g., [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/), [`arcgis-map`](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-map)).
*
* This property is available to allow 2D applications to temporarily
* opt out of this experience.
*
* > [!CAUTION]
* >
* > This option will be removed in an upcoming release.
*
* @deprecated
* @since 5.0
*/
accessor useLegacyCreateTools: boolean;
/**
* Options to configure how values are displayed and input when creating or updating graphics.
*
* @since 4.29
*/
get valueOptions(): SketchValueOptions;
set valueOptions(value: SketchValueOptionsProperties);
/**
* A reference to the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
* This view provides the editable layers for the Editor widget and is required when instantiating the widget.
*/
accessor view: MapViewOrSceneView | null | undefined;
/**
* Cancels any active selection operation.
*
* @since 5.0
*/
cancelSelectionTool(): void;
/**
* Cancels any active workflow.
*
* @returns Resolves once the workflow is canceled.
*/
cancelWorkflow(): Promise<void>;
/**
* This is applicable if there is an active update workflow with an active
* child workflow. This method deletes the utility network association
* involved with the active child workflow's feature.
*
* @returns Resolves once the active
* [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) is deleted.
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
*/
deleteAssociationFromWorkflow(): Promise<void>;
/**
* This is applicable if there is an active update workflow with an active
* child workflow. In this case, this method deletes the feature associated
* with the active child workflow.
*
* @deprecated since version 4.33. Use [deleteFeatures()](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/EditorViewModel/#deleteFeatures) instead.
* @returns Resolves once the active [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) is deleted.
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
*/
deleteFeatureFromWorkflow(): Promise<void>;
/**
* If the active workflow is an
* [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) or
* [UpdateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateFeaturesWorkflow/), this method
* deletes the feature(s) associated with the workflow.
*
* @returns Resolves once the features have been deleted.
* @since 4.33
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
* @see [UpdateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateFeaturesWorkflow/)
*/
deleteFeatures(): Promise<void>;
/**
* Get all of the editing templates associated with a given layer. The items
* in the resulting array will be
* [SharedTemplateMetadata](https://developers.arcgis.com/javascript/latest/references/core/editing/sharedTemplates/SharedTemplateMetadata/) objects
* if there are any shared templates defined for the layer; otherwise, they
* will be standard [FeatureTemplate](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureTemplate/)
* objects.
*
* @param layer - The layer whose templates should be retrieved.
* @returns An array of templates associated with the layer.
* @since 4.32
*/
getTemplatesForLayer(layer: EditorLayerUnion): (FeatureTemplate | SharedTemplateMetadata)[];
/**
* Initiates the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) by displaying the panel where feature creation begins. This method
* takes a [CreateFeaturesCreationInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/#CreateFeaturesCreationInfo) object containing the layer(s) and template(s) to use.
*
* @param creationInfo - An object containing
* information needed to create a new feature using the Editor widget. This object
* provides the feature template and layer for creating a new feature.
* @returns Resolves when the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) initiates
* and displays the panel where feature creation begins.
* @since 4.23
*/
startCreateFeaturesWorkflowAtFeatureCreation(creationInfo: Required<Pick<CreationInfo, "layer" | "template">>): Promise<void>;
/**
* This method starts the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) at the "creating-features" step with the provided feature.
*
* > [!WARNING]
* >
* > Any CreateFeaturesWorkflow instance generated by this method will only support creating a single feature per operation, (ie. batch creation is disabled).
*
* @param params - Parameters object containing an `initialFeature` to use in the associated CreateFeaturesWorkflow.
* @returns Resolves once the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) initiates and displays the panel where additional edits can be made to the provided feature.
* @since 4.28
* @see [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/)
*/
startCreateFeaturesWorkflowAtFeatureEdit(params: EditorViewModelStartCreateFeaturesWorkflowAtFeatureEditParameters): Promise<void>;
/**
* Initiates the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) by displaying the [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/) panel.
*
* @returns Resolves when the [CreateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/CreateFeaturesWorkflow/) is initiated
* and displays the [FeatureTemplates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTemplates/) panel.
* @since 4.23
*/
startCreateFeaturesWorkflowAtFeatureTypeSelection(): Promise<void>;
/**
* Starts a [MergeFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/MergeFeaturesWorkflow/) for the
* specified features. All features must belong to the same layer.
*
* @param features - The features to be merged. These can be supplied
* either as an array of [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) instances or as a single
* [FeatureInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/types/#FeatureInfo) object specifying a layer
* and the object IDs of the features.
* @param options - Options for the merge features workflow.
* @since 4.34
*/
startMergeFeaturesWorkflow(features: Graphic[] | FeatureInfo, options?: EditorViewModelStartMergeFeaturesWorkflowOptions): Promise<void>;
/**
* Starts a split feature workflow for the given feature.
*
* @param feature - The feature to be split.
* @param options - Options for the split feature workflow.
* @returns Resolves once the [SplitFeatureWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/SplitFeatureWorkflow/) has been initialized and is active.
* @since 4.34
*/
startSplitFeatureWorkflow(feature: Graphic, options?: EditorViewModelStartSplitFeatureWorkflowOptions): Promise<void>;
/**
* Starts an [UpdateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateFeaturesWorkflow/) using
* the provided features.
*
* @param features - The features to be updated. These can be supplied
* either as an array of [Graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) instances or as a single
* [FeatureInfo](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/types/#FeatureInfo) object specifying a layer
* and the object IDs of the features.
* @returns Resolves once the
* [UpdateFeaturesWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateFeaturesWorkflow/) is initiated.
* @since 4.33
*/
startUpdateFeaturesWorkflow(features: Graphic[] | FeatureInfo): Promise<void>;
/**
* Starts the update workflow at the feature geometry and attribute editing panel.
*
* @param feature - The feature to be updated.
* @returns Resolves once the [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) initiates the
* feature geometry and attribute editing panel.
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
*/
startUpdateWorkflowAtFeatureEdit(feature: Graphic): Promise<void>;
/**
* Starts the `update` workflow using the current selected feature.
*
* @returns Resolves once the [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) is initiated
* using the current selected feature.
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
*/
startUpdateWorkflowAtFeatureSelection(): Promise<void>;
/**
* Starts the Editor workflow where it waits for multiple features
* to be selected.
*
* @param candidates - The selected feature candidates.
* @returns Resolves once the [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/) is initiated
* as it waits for multiple features to be selected.
* @see [UpdateWorkflow](https://developers.arcgis.com/javascript/latest/references/core/widgets/Editor/UpdateWorkflow/)
*/
startUpdateWorkflowAtMultipleFeatureSelection(candidates: Graphic[]): Promise<void>;
/** Toggles the `UpdateWorkflow`. */
toggleUpdateWorkflow(): Promise<void>;
}
export interface EditorViewModelStartCreateFeaturesWorkflowAtFeatureEditParameters {
/** The initial feature used when you begin creating features. */
initialFeature: Graphic;
}
export interface EditorViewModelStartMergeFeaturesWorkflowOptions {
/**
* The feature that the other
* features will be merged into. This feature will have its geometry updated
* with the merged geometry. The other features will be deleted.
*/
keyFeature?: Graphic;
}
export interface EditorViewModelStartSplitFeatureWorkflowOptions {
/** The step to start the workflow at. */
startAt?: SplitFeatureWorkflowStep;
/** The preferred Sketch tool to use for drawing the splitter geometry. */
defaultSplitterGeometryType?: SplitterGeometryType;
/** The geometry with which to split the input geometry. This is required in order to start the workflow at the "reviewing-features" step. Otherwise, it is ignored. */
splitterGeometry?: SplitterGeometry;
}