# Class ArcGISServiceTableExtension

Extends the capabilities of a a table in an ArcGIS service (`FeatureLayer` object).

#### Hierarchy (view full)

- TableExtension<ArcGISServiceTableExtensionProperties>
  - ArcGISServiceTableExtension

#####
Index

### Constructors

constructor

### Properties

_id
_itemType
attachmentTypes
iconUrl?
onAddFeature?
onEditFeature?
queryService?
factory

### Accessors

canChangeDefinitionExpression
capabilities
failureMode
featureActions
featureSettings
featureSourceActions
hyperlinks
id
isDestroyed
isInitialized
itemType
mapExtension
relationships
requestHelper
schema
table
taskSettings
title

### Methods

_addAttachment
_addFeatures
_capabilities
_createFeatureSettings
_createHyperlinks
_createRelationships
_createSchema
_createTaskSettings
_deleteAttachments
_deleteFeatures
_getAttachments
_getFeatures
_getSerializableProperties
_initializableChildCollections
_initializeChildren
_isRelationship
_isSupportedTable
_onDestroy
_onInitialize
_postInitialize
_toPropertyDef
_updateFeatures
addAttachment
addFeature
addFeatures
assignProperties
assignPropertiesAsync
deleteAttachments
deleteFeature
deleteFeatures
destroy
emit
finishAssignProperties
getAttachments
getDefault
getDefaults
getFeature
getFeatures
getFullExtent
getSerializableProperties
initialize
on
toItemUri
toJSON
updateFeature
updateFeatures
create

##
Constructors

### constructor

- new ArcGISServiceTableExtension(properties?): ArcGISServiceTableExtension

- #### Parameters

  - `Optional` properties: ArcGISServiceTableExtensionProperties

  #### Returns ArcGISServiceTableExtension

  Inherited from TableExtension.constructor

##
Properties

### `Protected`_id

_id: string

The unique ID for this entity. Once set, this should never change.

Inherited from TableExtension._id

### `Protected` `Readonly`_itemType

_itemType: string = ItemType.TABLE_EXTENSION

The item type for this entity when it participates in an App.

Inherited from TableExtension._itemType

### attachmentTypes

attachmentTypes: string[]

A list of the valid file MIME types that can be uploaded as attachments.

### `Optional` iconUrl

iconUrl?: string

URL to an icon that represents this feature source.

Inherited from TableExtension.iconUrl

### `Optional` onAddFeature

onAddFeature?: Action

The action to be executed when a feature is added.

Inherited from TableExtension.onAddFeature

### `Optional` onEditFeature

onEditFeature?: Action

The action to be executed when a feature is edited.

Inherited from TableExtension.onEditFeature

### `Optional` queryService

queryService?: QueryService

An optional query service that the feature source can use to get features.

Inherited from TableExtension.queryService

### `Static` factory

factory: TableExtensionFactory

The factory that will be used whenever a new table extension needs to be created. Applications can supply their own factory to customize table extension creation.

Inherited from TableExtension.factory

##
Accessors

### canChangeDefinitionExpression

- get canChangeDefinitionExpression(): boolean

- Determines whether the type of table being extended supports changing its definition expression.

  #### Returns boolean

  Overrides TableExtension.canChangeDefinitionExpression

### capabilities

- get capabilities(): QuerySourceCapabilities

- See data/FeatureSource!FeatureSource.capabilities.

  #### Returns QuerySourceCapabilities

  Overrides TableExtension.capabilities

### failureMode

- get failureMode(): FailureMode

- Determines how a parent object should handle initialization failure in this object. The default is "warn".

  - `"error"`: support/InitializeError!InitializeError is thrown.
  - `"warn"`: Message is logged and support/InitializableBase!InitializeWarningEvent is raised.
  - `"ignore"`: support/InitializableBase!InitializeWarningEvent is raised.

  #### Returns FailureMode

  Inherited from TableExtension.failureMode

- set failureMode(value): void

- #### Parameters

  - value: FailureMode

  #### Returns void

  Inherited from TableExtension.failureMode

### featureActions

- get featureActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to features from this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from TableExtension.featureActions

- set featureActions(value): void

- A menu for actions specifically related to features from this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from TableExtension.featureActions

### featureSettings

- get featureSettings(): FeatureSettings

- Default settings that apply to features originating from this source.

  #### Returns FeatureSettings

  Inherited from TableExtension.featureSettings

### featureSourceActions

- get featureSourceActions(): Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

- A menu for actions specifically related to this source.

  #### Returns Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  Inherited from TableExtension.featureSourceActions

- set featureSourceActions(value): void

- A menu for actions specifically related to this source.

  #### Parameters

  - value: Menu<MenuItemProperties, MenuProperties, MenuItem<MenuItemProperties, MenuProperties>>

  #### Returns void

  Inherited from TableExtension.featureSourceActions

### hyperlinks

- get hyperlinks(): Collection<Hyperlink>

- Hyperlinks associated with the feature source.

  #### Returns Collection<Hyperlink>

  Inherited from TableExtension.hyperlinks

### id

- get id(): string

- The unique ID for this entity.

  #### Returns string

  Inherited from TableExtension.id

### isDestroyed

- get isDestroyed(): boolean

- See support/InitializableBase!Initializable.isDestroyed.

  #### Returns boolean

  Inherited from TableExtension.isDestroyed

### isInitialized

- get isInitialized(): boolean

- See support/InitializableBase!Initializable.isInitialized.

  #### Returns boolean

  Inherited from TableExtension.isInitialized

### itemType

- get itemType(): string

- The item type for this entity when it participates in an App.

  #### Returns string

  Inherited from TableExtension.itemType

### mapExtension

- get mapExtension(): MapExtension

- The parent map extension.

  #### Returns MapExtension

  Inherited from TableExtension.mapExtension

### relationships

- get relationships(): Collection<Relationship>

- Relationships to other feature sources.

  #### Returns Collection<Relationship>

  Inherited from TableExtension.relationships

### requestHelper

- get requestHelper(): ArcGISRequestHelper

- The support/ArcGISRequestHelper!ArcGISRequestHelper to use when making requests to external services. If not specified, a default implementation will be used.

  #### Returns ArcGISRequestHelper

- set requestHelper(requestHelper): void

- #### Parameters

  - requestHelper: ArcGISRequestHelper

  #### Returns void

### schema

- get schema(): Schema

- Metadata about features originating from this source, such as fields, domains, and geometry type.

  #### Returns Schema

  Inherited from TableExtension.schema

### table

- get table(): FeatureLayer

- The table object being extended.

  #### Returns FeatureLayer

  Inherited from TableExtension.table

### taskSettings

- get taskSettings(): TaskSettings

- Settings that affect whether a feature source participates in various tasks that are performed on a map.

  #### Returns TaskSettings

  Inherited from TableExtension.taskSettings

### title

- get title(): string

- See data/FeatureSource!FeatureSource.title.

  #### Returns string

  Inherited from TableExtension.title

##
Methods

### `Protected`_addAttachment

- _addAttachment(feature, attachment): Promise<Attachment>

- Called to add an attachment to a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Overrides TableExtension._addAttachment

### `Protected`_addFeatures

- _addFeatures(features, options?): Promise<void>

- Called to add new features. Subclasses must override this if they support adding features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Overrides TableExtension._addFeatures

### `Protected`_capabilities

- _capabilities(): Capabilities

- The capabilities of the feature source.

  #### Returns Capabilities

  Inherited from TableExtension._capabilities

### `Protected`_createFeatureSettings

- _createFeatureSettings(): FeatureSettings

- Called to create the data/FeatureSettings!FeatureSettings for this feature source.

  #### Returns FeatureSettings

  Overrides TableExtension._createFeatureSettings

### `Protected`_createHyperlinks

- _createHyperlinks(): Collection<Hyperlink>

- Called to create the Hyperlink collection for this feature source.

  #### Returns Collection<Hyperlink>

  Inherited from TableExtension._createHyperlinks

### `Protected`_createRelationships

- _createRelationships(): Collection<Relationship>

- Called to create the data/_Relationship!Relationship collection for this feature source.

  #### Returns Collection<Relationship>

  Overrides TableExtension._createRelationships

### `Protected`_createSchema

- _createSchema(): Schema

- Called to create the data/Schema!Schema for this feature source.

  #### Returns Schema

  Overrides TableExtension._createSchema

### `Protected`_createTaskSettings

- _createTaskSettings(): TaskSettings

- Called to create the data/TaskSettings!TaskSettings for this feature source.

  #### Returns TaskSettings

  Inherited from TableExtension._createTaskSettings

### `Protected`_deleteAttachments

- _deleteAttachments(feature, attachments): Promise<void>

- Called to remove attachments from a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete.

  #### Returns Promise<void>

  Overrides TableExtension._deleteAttachments

### `Protected`_deleteFeatures

- _deleteFeatures(ids, options?): Promise<void>

- Called to delete features. Subclasses must override this if they support deleting features.

  #### Parameters

  - ids: string[]

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Overrides TableExtension._deleteFeatures

### `Protected`_getAttachments

- _getAttachments(feature): Promise<Attachment[]>

- Called to retrieve attachments for a feature. Subclasses must override this if they support feature attachments.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Overrides TableExtension._getAttachments

### `Protected`_getFeatures

- _getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Called to retrieve features. Subclasses must override this if they support querying for features.

  #### Parameters

  - ids: string[]

    The unique IDs of features to retrieve.

  - `Optional` options: FeatureReadOptions

    Options that control what gets returned.

  #### Returns AsyncIterable<Feature, any, any>

  Overrides TableExtension._getFeatures

### `Protected`_getSerializableProperties

- _getSerializableProperties(): PropertyDefs<ArcGISServiceTableExtensionProperties>

- The property keys and their metadata that are used to implement serializing and deserializing the class instance.

  #### Returns PropertyDefs<ArcGISServiceTableExtensionProperties>

  Overrides TableExtension._getSerializableProperties

### `Protected`_initializableChildCollections

- _initializableChildCollections(): IterableIterator<Collection<InitializableBase<unknown>>, any, any>

- Collections of child items to initialize. Items that fail to initialize are removed from the collection.

  #### Returns IterableIterator<Collection<InitializableBase<unknown>>, any, any>

  Inherited from TableExtension._initializableChildCollections

### `Protected`_initializeChildren

- _initializeChildren(): Promise<void>

- Initializes child entities.

  #### Returns Promise<void>

  Inherited from TableExtension._initializeChildren

### `Protected`_isRelationship

- _isRelationship(relationship): boolean

- #### Parameters

  - relationship: Relationship | RelationshipProperties

  #### Returns boolean

  Inherited from TableExtension._isRelationship

### `Protected`_isSupportedTable

- _isSupportedTable(table): boolean

- Determines whether the table is of the right type for the type of table extension.

  #### Parameters

  - table: FeatureLayer

    The table to validate.

  #### Returns boolean

  Overrides TableExtension._isSupportedTable

### `Protected`_onDestroy

- _onDestroy(): Promise<void>

- Called to perform cleanup. Subclasses should override this method rather than destroy() to perform custom cleanup.

  #### Returns Promise<void>

  Inherited from TableExtension._onDestroy

### `Protected`_onInitialize

- _onInitialize(): Promise<void>

- Called to perform initialization of the support/InitializableBase!InitializableBase. Subclasses should override this method rather than initialize() to perform custom initialization.

  #### Returns Promise<void>

  Overrides TableExtension._onInitialize

### `Protected`_postInitialize

- _postInitialize(): Promise<void>

- Called after normal initialization. Note: Child items are initialized before this is called.

  #### Returns Promise<void>

  Inherited from TableExtension._postInitialize

### `Protected`_toPropertyDef

- _toPropertyDef<T>(def): PropertyDef<T>

- Converts the value to a PropertyDef object.

  #### Type Parameters

  - T

  #### Parameters

  - def: PropertyDefSerializeMode | PropertyDefSerializeMode[] | PropertyDef<T>

    The value to convert.

  #### Returns PropertyDef<T>

  Inherited from TableExtension._toPropertyDef

### `Protected`_updateFeatures

- _updateFeatures(features, options?): Promise<void>

- Called to update features. Subclasses must override this if they support updating features.

  #### Parameters

  - features: Iterable<Feature, any, any>

    The feature to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Overrides TableExtension._updateFeatures

### addAttachment

- addAttachment(feature, attachment): Promise<Attachment>

- Adds an attachment to a feature.

  #### Parameters

  - feature: Feature

    The feature to add the attachment to.

  - attachment: AttachmentProperties | Attachment | File

    The attachment to add to the feature.

  #### Returns Promise<Attachment>

  Inherited from TableExtension.addAttachment

### addFeature

- addFeature(feature, _options?): Promise<void>

- Adds a new feature to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to add.

  - `Optional`_options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from TableExtension.addFeature

### addFeatures

- addFeatures(features, options?): Promise<void>

- Adds a set of features to the source. If the source does not support adding features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to add.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Inherited from TableExtension.addFeatures

### assignProperties

- assignProperties(properties): void

- #### Parameters

  - properties: Partial<ArcGISServiceTableExtensionProperties>

  #### Returns void

  #### Inherit Doc

  Inherited from TableExtension.assignProperties

### assignPropertiesAsync

- assignPropertiesAsync(properties): Promise<void>

- #### Parameters

  - properties: Partial<ArcGISServiceTableExtensionProperties>

  #### Returns Promise<void>

  #### Inherit Doc

  Inherited from TableExtension.assignPropertiesAsync

### deleteAttachments

- deleteAttachments(feature, attachments): Promise<void>

- Deletes attachments from a feature.

  #### Parameters

  - feature: Feature

    The feature to delete attachments from.

  - attachments: (string | Attachment)[]

    The attachments or the IDs of the attachments to delete from the feature.

  #### Returns Promise<void>

  Inherited from TableExtension.deleteAttachments

### deleteFeature

- deleteFeature(id, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - id: string

    The ID of the feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from TableExtension.deleteFeature

- deleteFeature(feature, options?): Promise<void>

- Deletes a feature from its source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from TableExtension.deleteFeature

### deleteFeatures

- deleteFeatures(ids, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - ids: Iterable<string, any, any>

    The IDs of the features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from TableExtension.deleteFeatures

- deleteFeatures(features, options?): Promise<void>

- Deletes features from their source. If the source does not support deleting features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to delete.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are deleted.

  #### Returns Promise<void>

  Inherited from TableExtension.deleteFeatures

### destroy

- destroy(): Promise<void>

- A clean-up function that should get called whenever the item is disposed of.

  #### Returns Promise<void>

  Inherited from TableExtension.destroy

### emit

- emit(name, event): boolean

- Emits an event on the instance.

  #### Parameters

  - name: string
  - event: unknown

    The event payload.

    Read more...

  #### Returns boolean

  Inherited from TableExtension.emit

### finishAssignProperties

- finishAssignProperties(): Promise<void>

- #### Returns Promise<void>

  #### Inherit Doc

  Inherited from TableExtension.finishAssignProperties

### getAttachments

- getAttachments(feature): Promise<Attachment[]>

- Gets any attachments associated with a feature.

  #### Parameters

  - feature: Feature

    The feature to get attachments for.

  #### Returns Promise<Attachment[]>

  Inherited from TableExtension.getAttachments

### getDefault

- getDefault<K>(key): ArcGISServiceTableExtensionProperties[K]

- #### Type Parameters

  - K extends keyof ArcGISServiceTableExtensionProperties

  #### Parameters

  - key: K

  #### Returns ArcGISServiceTableExtensionProperties[K]

  #### Inherit Doc

  Inherited from TableExtension.getDefault

### getDefaults

- getDefaults(): ArcGISServiceTableExtensionProperties

- #### Returns ArcGISServiceTableExtensionProperties

  #### Inherit Doc

  Inherited from TableExtension.getDefaults

### getFeature

- getFeature(id, options?): Promise<Feature>

- Gets a feature by ID. If no such feature exists, the promise is rejected with an instance of NotFoundError.

  #### Parameters

  - id: string

    The ID of the feature to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional options that control how the feature is retrieved.

  #### Returns Promise<Feature>

  Inherited from TableExtension.getFeature

### getFeatures

- getFeatures(ids, options?): AsyncIterable<Feature, any, any>

- Gets a set of features by their IDs.

  #### Parameters

  - ids: string[]

    The IDs of the features to retrieve.

  - `Optional` options: FeatureReadOptions

    Additional Options that control how the features are retrieved.

  #### Returns AsyncIterable<Feature, any, any>

  Inherited from TableExtension.getFeatures

### getFullExtent

- getFullExtent(): Extent

- Returns the full extent of the source that contains all included features.

  #### Returns Extent

  Inherited from TableExtension.getFullExtent

### getSerializableProperties

- getSerializableProperties(serializeMode?): PropertyDefs<ArcGISServiceTableExtensionProperties>

- Returns the serializable properties.

  #### Parameters

  - `Optional` serializeMode: SerializeMode

    Optional. If specified, only properties that support the given serialization mode will be returned.

  #### Returns PropertyDefs<ArcGISServiceTableExtensionProperties>

  Inherited from TableExtension.getSerializableProperties

### initialize

- initialize(): Promise<void>

- Initializes the item.

  #### Returns Promise<void>

  Inherited from TableExtension.initialize

### on

- on(name, callback): IHandle

- Registers an event handler on the instance.

  #### Parameters

  - name: string | string[]
  - callback: EventCallback<any>

  #### Returns IHandle

  Inherited from TableExtension.on

### toItemUri

- toItemUri(): string

- Creates an item:// URI reference to this entity.

  #### Returns string

  Inherited from TableExtension.toItemUri

### toJSON

- toJSON(serializeMode?): ArcGISServiceTableExtensionProperties

- #### Parameters

  - serializeMode: SerializeMode = "all"

  #### Returns ArcGISServiceTableExtensionProperties

  #### Inherit Doc

  Inherited from TableExtension.toJSON

### updateFeature

- updateFeature(feature, _options?): Promise<void>

- Saves changes to an existing feature. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - feature: Feature

    The feature to update.

  - `Optional`_options: FeatureWriteOptions

    Additional options that control how the feature is saved.

  #### Returns Promise<void>

  Inherited from TableExtension.updateFeature

### updateFeatures

- updateFeatures(features, options?): Promise<void>

- Saves changes to a existing features. If the source does not support updating features, then an InvalidOperationError will be thrown (see capabilities).

  #### Parameters

  - features: Iterable<Feature, any, any>

    The features to update.

  - `Optional` options: FeatureWriteOptions

    Additional options that control how the features are saved.

  #### Returns Promise<void>

  Inherited from TableExtension.updateFeatures

### `Static` create

- create(properties): TableExtension<TableExtensionProperties>

- Creates the appropriate subclass of data/_TableExtension!TableExtension based on the supplied properties.

  #### Parameters

  - properties: TableExtensionProperties

    The table extension properties.

  #### Returns TableExtension<TableExtensionProperties>

  Inherited from TableExtension.create