# Class TableExtension<TProperties>`Abstract`

Extends the capabilities of an table object (represented by an ArcGIS `FeatureLayer` object).

#### Type Parameters

- TProperties extends TableExtensionProperties = TableExtensionProperties

#### Hierarchy (view full)

- FeatureSourceBase<TProperties>
  - TableExtension
    - ArcGISServiceTableExtension

#####
Index

### Constructors

constructor

### Properties

_id
_itemType
@eventTypes
iconUrl?
onAddFeature?
onEditFeature?
queryService?
factory

### Accessors

canChangeDefinitionExpression
capabilities
failureMode
featureActions
featureSettings
featureSourceActions
hyperlinks
id
isDestroyed
isInitialized
itemType
mapExtension
relationships
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
finishAssignProperties
getAttachments
getDefault
getDefaults
getFeature
getFeatures
getFullExtent
getSerializableProperties
initialize
toItemUri
toJSON
updateFeature
updateFeatures
create

##
Constructors

### constructor

- new TableExtension<TProperties>(properties?): TableExtension<TProperties>

- #### Type Parameters

  - TProperties extends TableExtensionProperties = TableExtensionProperties

  #### Parameters

  - `Optional` properties: TProperties

  #### Returns TableExtension<TProperties>

  Overrides FeatureSourceBase.constructor

##
Properties

### `Protected`_id

_id: string

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

Inherited from FeatureSourceBase._id

### `Protected` `Readonly`_itemType

_itemType: string = ItemType.TABLE_EXTENSION

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

Overrides FeatureSourceBase._itemType

### @eventTypes

@eventTypes: InitializableBaseEvents

#### Deprecated

Do not directly reference this property. Use EventNames and EventTypes helpers from @arcgis/core/Evented.

Inherited from FeatureSourceBase.@eventTypes

### `Optional` iconUrl

iconUrl?: string

URL to an icon that represents this feature source.

Inherited from FeatureSourceBase.iconUrl

### `Optional` onAddFeature

onAddFeature?: Action

The action to be executed when a feature is added.

Inherited from FeatureSourceBase.onAddFeature

### `Optional` onEditFeature

onEditFeature?: Action

The action to be executed when a feature is edited.

Inherited from FeatureSourceBase.onEditFeature

### `Optional` queryService

queryService?: QueryService

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

Inherited from FeatureSourceBase.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.

##
Accessors

### canChangeDefinitionExpression

- get canChangeDefinitionExpression(): boolean

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

  #### Returns boolean

### capabilities

- get capabilities(): QuerySourceCapabilities

- Capabilities of the feature source.

  #### Returns QuerySourceCapabilities

  Overrides FeatureSourceBase.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 FeatureSourceBase.failureMode

- set failureMode(value): void

- #### Parameters

  - value: FailureMode

  #### Returns void

  Inherited from FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.featureActions

### featureSettings

- get featureSettings(): FeatureSettings

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

  #### Returns FeatureSettings

  Inherited from FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.featureSourceActions

### hyperlinks

- get hyperlinks(): Collection<Hyperlink>

- Hyperlinks associated with the feature source.

  #### Returns Collection<Hyperlink>

  Inherited from FeatureSourceBase.hyperlinks

### id

- get id(): string

- The unique ID for this entity.

  #### Returns string

  Inherited from FeatureSourceBase.id

### isDestroyed

- get isDestroyed(): boolean

- See support/InitializableBase!Initializable.isDestroyed.

  #### Returns boolean

  Inherited from FeatureSourceBase.isDestroyed

### isInitialized

- get isInitialized(): boolean

- See support/InitializableBase!Initializable.isInitialized.

  #### Returns boolean

  Inherited from FeatureSourceBase.isInitialized

### itemType

- get itemType(): string

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

  #### Returns string

  Inherited from FeatureSourceBase.itemType

### mapExtension

- get mapExtension(): MapExtension

- The parent map extension.

  #### Returns MapExtension

### relationships

- get relationships(): Collection<Relationship>

- Relationships to other feature sources.

  #### Returns Collection<Relationship>

  Inherited from FeatureSourceBase.relationships

### schema

- get schema(): Schema

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

  #### Returns Schema

  Inherited from FeatureSourceBase.schema

### table

- get table(): FeatureLayer

- The table object being extended.

  #### Returns FeatureLayer

### 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 FeatureSourceBase.taskSettings

### title

- get title(): string

- See data/FeatureSource!FeatureSource.title.

  #### Returns string

  Overrides FeatureSourceBase.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>

  Inherited from FeatureSourceBase._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>

  Inherited from FeatureSourceBase._addFeatures

### `Protected`_capabilities

- _capabilities(): Capabilities

- The capabilities of the feature source.

  #### Returns Capabilities

  Inherited from FeatureSourceBase._capabilities

### `Protected`_createFeatureSettings

- _createFeatureSettings(): FeatureSettings

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

  #### Returns FeatureSettings

  Overrides FeatureSourceBase._createFeatureSettings

### `Protected`_createHyperlinks

- _createHyperlinks(): Collection<Hyperlink>

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

  #### Returns Collection<Hyperlink>

  Inherited from FeatureSourceBase._createHyperlinks

### `Protected`_createRelationships

- _createRelationships(): Collection<Relationship>

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

  #### Returns Collection<Relationship>

  Inherited from FeatureSourceBase._createRelationships

### `Protected`_createSchema

- _createSchema(): Schema

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

  #### Returns Schema

  Overrides FeatureSourceBase._createSchema

### `Protected`_createTaskSettings

- _createTaskSettings(): TaskSettings

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

  #### Returns TaskSettings

  Inherited from FeatureSourceBase._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>

  Inherited from FeatureSourceBase._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>

  Inherited from FeatureSourceBase._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[]>

  Inherited from FeatureSourceBase._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>

  Inherited from FeatureSourceBase._getFeatures

### `Protected`_getSerializableProperties

- _getSerializableProperties(): PropertyDefs<TProperties>

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

  #### Returns PropertyDefs<TProperties>

  Overrides FeatureSourceBase._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 FeatureSourceBase._initializableChildCollections

### `Protected`_initializeChildren

- _initializeChildren(): Promise<void>

- Initializes child entities.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._initializeChildren

### `Protected`_isRelationship

- _isRelationship(relationship): boolean

- #### Parameters

  - relationship: Relationship | RelationshipProperties

  #### Returns boolean

  Inherited from FeatureSourceBase._isRelationship

### `Protected` `Abstract`_isSupportedTable

- _isSupportedTable(table): boolean

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

  #### Parameters

  - table: Layer

    The table to validate.

  #### Returns boolean

### `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 FeatureSourceBase._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 FeatureSourceBase._onInitialize

### `Protected`_postInitialize

- _postInitialize(): Promise<void>

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

  #### Returns Promise<void>

  Inherited from FeatureSourceBase._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 FeatureSourceBase._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>

  Inherited from FeatureSourceBase._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 FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.addFeatures

### assignProperties

- assignProperties(properties): void

- #### Parameters

  - properties: Partial<TProperties>

  #### Returns void

  #### Inherit Doc

  Inherited from FeatureSourceBase.assignProperties

### assignPropertiesAsync

- assignPropertiesAsync(properties): Promise<void>

- #### Parameters

  - properties: Partial<TProperties>

  #### Returns Promise<void>

  #### Inherit Doc

  Inherited from FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.deleteFeatures

### destroy

- destroy(): Promise<void>

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

  #### Returns Promise<void>

  Inherited from FeatureSourceBase.destroy

### finishAssignProperties

- finishAssignProperties(): Promise<void>

- #### Returns Promise<void>

  #### Inherit Doc

  Inherited from FeatureSourceBase.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 FeatureSourceBase.getAttachments

### getDefault

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

- #### Type Parameters

  - K extends string | number | symbol

  #### Parameters

  - key: K

  #### Returns TProperties[K]

  #### Inherit Doc

  Inherited from FeatureSourceBase.getDefault

### getDefaults

- getDefaults(): TProperties

- #### Returns TProperties

  #### Inherit Doc

  Inherited from FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.getFeatures

### getFullExtent

- getFullExtent(): Extent

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

  #### Returns Extent

  Inherited from FeatureSourceBase.getFullExtent

### getSerializableProperties

- getSerializableProperties(serializeMode?): PropertyDefs<TProperties>

- Returns the serializable properties.

  #### Parameters

  - `Optional` serializeMode: SerializeMode

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

  #### Returns PropertyDefs<TProperties>

  Inherited from FeatureSourceBase.getSerializableProperties

### initialize

- initialize(): Promise<void>

- Initializes the item.

  #### Returns Promise<void>

  Inherited from FeatureSourceBase.initialize

### toItemUri

- toItemUri(): string

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

  #### Returns string

  Inherited from FeatureSourceBase.toItemUri

### toJSON

- toJSON(serializeMode?): TProperties

- #### Parameters

  - serializeMode: SerializeMode = "all"

  #### Returns TProperties

  #### Inherit Doc

  Inherited from FeatureSourceBase.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 FeatureSourceBase.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 FeatureSourceBase.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>