@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
91 lines (89 loc) • 5.97 kB
TypeScript
import type CodedValueDomain from "../../../layers/support/CodedValueDomain.js";
import type RangeDomain from "../../../layers/support/RangeDomain.js";
import type ColumnTemplateBase from "./ColumnTemplateBase.js";
import type { ColumnTemplateBaseProperties } from "./ColumnTemplateBase.js";
import type { EditableColumnTemplateMixinProperties, EditableColumnTemplateMixin } from "./EditableColumnTemplateMixin.js";
import type { FieldValueFormatFunction } from "./types.js";
import type { RangeDomainProperties } from "../../../layers/support/RangeDomain.js";
import type { CodedValueDomainProperties } from "../../../layers/support/CodedValueDomain.js";
export interface FieldColumnTemplateProperties extends ColumnTemplateBaseProperties, EditableColumnTemplateMixinProperties {
/** The [coded value domain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/CodedValueDomain/) or a [range domain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/RangeDomain/) of the associated field. */
domain?: (CodedValueDomainProperties & { type: "coded-value" }) | (RangeDomainProperties & { type: "range" }) | null;
/**
* Custom function for rendering cell content. Accepts a string, number, an HTML element or equivalent node type (e.g. a Calcite component).
*
* @since 4.30
* @example
* // The following example demonstrates how to use the formatFunction property to create a custom cell renderer that displays a progress bar in the cell. The progress bar can be used to show the progress of a task.
* columnTemplate.formatFunction = ({ column, feature, index, value })=> {
* const progress = document.createElement("progress");
* progress.max = 100;
* progress.value = value;
* return progress;
* };
*/
formatFunction?: FieldValueFormatFunction | null;
/**
* Indicates whether the field column can be sorted.
*
* @default true
*/
sortable?: boolean;
}
/**
* A FieldColumnTemplate formats and defines the structure of a [FieldColumn](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/FieldColumn/) within a
* [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/) widget.
*
* The FieldColumnTemplate is set directly on the table's [template](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) or its [view model](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/FeatureTableViewModel/#tableTemplate).
* The [FeatureTable's tableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/) contains a collection of [field and/or group column templates](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/#columnTemplates).
*
* @since 4.24
* @see [FeatureTable](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/)
* @see [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/)
* @see [GroupColumnTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/GroupColumnTemplate/)
* @see [Sample - FeatureTable with a map](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-map/)
* @see [Sample - FeatureTable with related records](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-relates/)
* @see [Sample - FeatureTable with row highlights](https://developers.arcgis.com/javascript/latest/sample-code/widgets-featuretable-row-highlights/)
* @example
* const fieldColumnTemplate = new FieldColumnTemplate({
* fieldName: "full_name",
* label: "Full name",
* direction: "asc", // In order to use initialSortPriority, make sure direction is set
* initialSortPriority: 0 // This field's sort order takes the highest priority.
* });
*/
export default class FieldColumnTemplate extends FieldColumnTemplateSuperclass {
constructor(properties?: FieldColumnTemplateProperties);
/** The [coded value domain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/CodedValueDomain/) or a [range domain](https://developers.arcgis.com/javascript/latest/references/core/layers/support/RangeDomain/) of the associated field. */
get domain(): CodedValueDomain | RangeDomain | null | undefined;
set domain(value: (CodedValueDomainProperties & { type: "coded-value" }) | (RangeDomainProperties & { type: "range" }) | null | undefined);
/**
* Custom function for rendering cell content. Accepts a string, number, an HTML element or equivalent node type (e.g. a Calcite component).
*
* @since 4.30
* @example
* // The following example demonstrates how to use the formatFunction property to create a custom cell renderer that displays a progress bar in the cell. The progress bar can be used to show the progress of a task.
* columnTemplate.formatFunction = ({ column, feature, index, value })=> {
* const progress = document.createElement("progress");
* progress.max = 100;
* progress.value = value;
* return progress;
* };
*/
accessor formatFunction: FieldValueFormatFunction | null | undefined;
/**
* Indicates whether the field column can be sorted.
*
* @default true
*/
accessor sortable: boolean;
/**
* The type of column that the template represents.
*
* > [!WARNING]
* >
* > This property must be set to `field` when creating a new FieldColumnTemplate within a [TableTemplate](https://developers.arcgis.com/javascript/latest/references/core/widgets/FeatureTable/support/TableTemplate/).
*/
get type(): "field";
}
declare const FieldColumnTemplateSuperclass: typeof ColumnTemplateBase & typeof EditableColumnTemplateMixin