import AttachmentInput from "@arcgis/core/form/elements/inputs/attachments/AttachmentInput.js";
Inheritance
AttachmentInputInputAccessor
Since
ArcGIS Maps SDK for JavaScript 5.1

The AttachmentInput class defines a user interface for an attachment input. This AttachmentElement.input is used in attachment elements that are set on the Editor's layerInfo.formTemplate or a feature layer's formTemplate and displayed within the Editor. The AttachmentInput offers the most flexibility, and allows a number of different attachment types to be included in a single attachment element.

  • Input methods that are configured as only allowing capture are not supported on desktop devices for inputs such as AudioInput, ImageInput, or VideoInput.
  • For inputs such as AudioInput, ImageInput, or VideoInput, minimum requirements apply only in mobile editing workflows when the input method is set to only allow capture and the minimum file count is greater than or equal to one.
  • When using specific input types, such as AudioInput, ImageInput, or VideoInput, existing attachments are displayed only if they match the element's keyword. Existing attachments without a matching keyword are not shown. To display attachments that do not have a corresponding keyword, use the general AttachmentInput instead. This input type provides a more general approach to displaying attachments and does not require a keyword to be specified by setting the attachmentAssociationType accordingly.
See also
Example
// Create the new input types for the general attachment input
const audioInput = new AudioInput({
inputMethod: "any",
maxDuration: 30,
});
const imageInput = new ImageInput({
inputMethod: "upload",
maxImageSize: 800,
});
const documentInput = new DocumentInput({
maxFileSize: 500,
});
const videoInput = new VideoInput({
inputMethod: "any",
maxDuration: 90,
});
// Create the general attachment input that allows for multiple types of attachments
const attachmentInput = new AttachmentInput({
attachmentAssociationType: "any", // Associates all existing attachments to this element.
inputTypes: [documentInput, audioInput, imageInput, videoInput]
});

Constructors

Constructor

Constructor

Parameters

ParameterTypeDescriptionRequired
properties
See the properties table for a list of all the properties that may be passed into the constructor.

Properties

Any properties can be set, retrieved or listened to. See the Watch for changes topic.

attachmentAssociationType

Property
Type
FormAttachmentAssociationType

String value which indicates if existing attachments should be associated with the element and how they should be associated. This property is used in conjunction with the AttachmentElement.attachmentKeyword property.

The table below describes the options.

valuedescription
anyInclude all existing attachments associated with this feature regardless of their keyword value. This option is only available if there are no existing attachment elements in the form. If an attachment element has this set, additional attachment elements cannot be added to the form.
exactOnly attachments whose keyword matches the form element's keyword will be shown.
exactOrNoneAssociates attachments whose keyword matches the attachmentKeyword and those that do not have a keyword. Only one attachment element with exactOrNone can be used within a form and it cannot be used in conjunction with any other attachment element that has an attachmentAssociationType value of exact or any.
See also
Default value
"exact"

declaredClass

readonlyinherited Property
Type
string
Inherited from: Accessor
Since
ArcGIS Maps SDK for JavaScript 4.7

The name of the class. The declared class name is formatted as esri.folder.className.

inputTypes

autocast Property
Type
NestableAttachmentInputUnion[] | null

Available inputs to add an attachment.

See also

type

readonly Property
Type
"attachment"

The input type identifier.

Methods

MethodSignatureClass
inherited static
fromJSON(json: any): any
inherited
clone(): this
inherited
toJSON(): any

fromJSON

inheritedstatic Method
Signature
fromJSON (json: any): any
Inherited from: JSONSupportMixin

Creates a new instance of this class and initializes it with values from a JSON object generated from an ArcGIS product. The object passed into the input json parameter often comes from a response to a query operation in the REST API or a toJSON() method from another ArcGIS product. See the Using fromJSON() topic in the Guide for details and examples of when and how to use this function.

Parameters

ParameterTypeDescriptionRequired
json
any

A JSON representation of the instance in the ArcGIS format. See the ArcGIS REST API documentation for examples of the structure of various input JSON objects.

Returns
any

Returns a new instance of this class.

clone

inherited Method
Signature
clone (): this
Inherited from: ClonableMixin

Creates a deep clone of this object. Any properties that store values by reference will be assigned copies of the referenced values on the cloned instance.

Returns
this

A deep clone of the class instance that invoked this method.

toJSON

inherited Method
Signature
toJSON (): any
Inherited from: JSONSupportMixin

Converts an instance of this class to its ArcGIS portal JSON representation. See the Using fromJSON() guide topic for more information.

Returns
any

The ArcGIS portal JSON representation of an instance of this class.