import FieldInfo from "@arcgis/core/popup/FieldInfo.js";const FieldInfo = await $arcgis.import("@arcgis/core/popup/FieldInfo.js");- Inheritance:
- FieldInfo→
Accessor
- Since
- ArcGIS Maps SDK for JavaScript 4.11
The FieldInfo class defines how a Field participates,
or in some cases, does not participate, in a PopupTemplate.
Example
let fieldInfo = new FieldInfo({ fieldName: 'PROMINENCE_ft', label: 'Prominence (feet)', //autocasts to FieldInfo.Format format: { places: 0, digitSeparator: true }});Constructors
Constructor
Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
| properties | | |
Properties
| Property | Type | Class |
|---|---|---|
declaredClass readonly inherited | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| | ||
| |
fieldFormat
- Type
- FieldFormatUnion | null | undefined
- Since
- ArcGIS Maps SDK for JavaScript 4.34
Provides formatting options for numerical or date fields, using the same format types as the layer level field formatting.
Setting this property automatically updates the format property. This property takes precedence over the format property when both are set and working with supported layer types. FieldInfo.fieldFormat should be used in the context of fields content used within PopupTemplate.content, rather than directly on the PopupTemplate.fieldInfos property.
Notes:
- This property is only supported for FeatureLayers that reference services (not supported for feature collections) and when set on a FieldsContent element within a PopupTemplate.
- FieldInfos participating in clustering or binning are also supported when the parent layer is a service-based FeatureLayer.
- Use the format property instead if formatting:
- Layers other than FeatureLayer or feature collections.
- PopupTemplate.fieldInfos for layer types that don't support layer level field formatting.
- FieldInfo that contains field names referencing related fields or Arcade expressions.
fieldName
The field name as defined by the service or the ExpressionInfo.name of
an Arcade
expression. Arcade expression names are defined in the PopupTemplate.expressionInfos
property of the PopupTemplate. When referencing Arcade expressions, you must preface the name with expression/, such as
expression/percent-total.
- See also
format
- Type
- FieldInfoFormat | null | undefined
Class which provides formatting options for numerical or date fields and how they should display. Setting this property will also automatically update the fieldFormat property.
Notes:
- Use this property to format date and numerical fields in the following scenarios:
- Formatting fields in Layers other than FeatureLayer or feature collections.
- Formatting fields in PopupTemplate.fieldInfos for layer types that don't support layer level field formatting.
- Formatting fields that contain field names referencing related fields or Arcade expressions.
- If formatting FieldsContent for a FeatureLayer, use the fieldFormat property to format dates and numbers instead. See the fieldFormat property description for limitations.
- If displaying a
timestamp-offsetordateField.type field in a Popup, Features, or Feature widget and the MapView has a MapView.timeZone set other thanunknown, the abbreviated time zone suffix will be omitted from the attribute value. For example, the attribute value will display as9/28/2014, 7:58 PM. To display an abbreviated time zone suffix, see theRead moresection.
Read More
- If the user wants
datefields to show a time zone suffix (e.g.9/28/2014, 7:58 PM PST), then the Arcade Text function can be used to format the field value. This can be done either with ExpressionContent or attribute expressions.// Attribute expression using expressionInfos to append the time zone suffix to a date field.// Date field types will show in the MapView's current time zone.layer.popupTemplate = {title: "Display time zones",fieldInfos: [{fieldName: "expression/date-with-time-zone-suffix",}],expressionInfos: [{expression: `Text($feature.date_Field, "M/D/Y, h:mm A ZZZZ")`,name: "date-with-time-zone-suffix",}],content: [{type: "fields"}]};// ExpressionContent to append the time zone suffix to a date field.// Date field types will show in the MapView's current time zone by default.layer.popupTemplate = {title: "Display time zones",content: [{type: "expression",expressionInfo: {expression: `return {type : 'text',text : Text($feature.date_Field, "M/D/Y, h:mm A ZZZZ")}`}}]}; - If the user wants
timestamp-offsetfields to display in the time zone from the server with an abbreviated time zone suffix, then the Arcade Text function can be used to format the field value. This can be done either with ExpressionContent or attribute expressions.// Attribute expression using expressionInfos to append the time zone suffix to a timestamp-offset field.layer.popupTemplate = {title: "Display time zones",fieldInfos: [{fieldName: "expression/TSO-from-server",}],expressionInfos: [{expression: `Text($feature.TimestampOffset_Field, "M/D/Y, h:mm A ZZZZ")`,name: "TSO-from-server",}],content: [{type: "fields"}]};// ExpressionContent to append the time zone suffix to a timestamp-offset field.layer.popupTemplate = {title: "Display time zones",content: [{type: "expression",expressionInfo: {expression: `return {type : 'text',text : Text($feature.TimestampOffset_Field, "M/D/Y, h:mm A ZZZZ")}`}}]}; - If the user wants
timestamp-offsetfields to display in the MapView's time zone with an abbreviated time zone suffix, then theChangeTimeZoneArcade function can be used to format the value.// Attribute expression using expressionInfos to append the MapView's current time zone suffix to a timestamp-offset fieldlayer.popupTemplate = {title: "Display time zones",fieldInfos: [{fieldName: "expression/TSO-matching-view-tz",}],expressionInfos: [{expression: `Text(ChangeTimeZone($feature.TimestampOffset_Field, GetEnvironment().timeZone), "M/D/Y, h:mm A ZZZZ")`,name: "TSO-matching-view-tz",}],content: [{type: "fields"}]};// ExpressionContent to append the MapView's current time zone suffix to a timestamp-offset fieldlayer.popupTemplate = {title: "Display time zones",content: [{type: "expression",expressionInfo: {expression: `return {type: "text",text: Text(ChangeTimeZone($feature.TimestampOffset_Field, GetEnvironment().timeZone), "M/D/Y, h:mm A ZZZZ")}`}}]};
- See also
isEditable
- Type
- boolean
A Boolean determining whether users can edit this field. This is not applicable to Arcade expressions.
- Default value
- true
stringFieldOption
- Type
- StringFieldOption
A string determining what type of input box editors see when editing the field. Applies only to string fields. This is not applicable to Arcade expressions. If this property is present, it must be one of the following values:
- Default value
- "text-box"
visible
- Type
- boolean
Indicates whether the field is visible in the popup window.
As of version 4.16, the default Popup.defaultPopupTemplateEnabled
has been improved to no longer display system fields that do not hold significant value,
e.g. Shape__Area and Shape__Length are two fields that
no longer display.
- Default value
- true
Methods
fromJSON
- Signature
-
fromJSON (json: any): any
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
| Parameter | Type | Description | Required |
|---|---|---|---|
| json | 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
- Signature
-
clone (): this
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
- Signature
-
toJSON (): any
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.