@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
200 lines (198 loc) • 6.82 kB
TypeScript
import type { JSONSupport } from "../../core/JSONSupport.js";
import type { EsriFieldType, EsriGeometryType, EsriGraphPropertyRoles } from "./types.js";
export interface GraphPropertyProperties extends Partial<Pick<GraphProperty, "alias" | "defaultValue" | "defaultVisibility" | "domain" | "editable" | "fieldType" | "geometryType" | "hasM" | "hasZ" | "name" | "nullable" | "required" | "role" | "systemMaintained">> {}
/**
* Specifies the properties for [entity types](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraph/EntityType/) and [relationship types](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraph/RelationshipType/) defined in the graph schema by the [data model](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraph/DataModel/).
* Each instance of a specified graph object type will include these properties.
*
* @since 4.25
* @example
* //The `EntityType` 'person' may have the following properties.
* [{
* name: "first_name"
* alias: "First Name",
* defaultValue: null,
* defaultVisibility: true,
* editable: true,
* fieldType: "esriFieldTypeString",
* geometryType: "esriGeometryNull",
* hasM: false,
* hasZ: false,
* nullable: true,
* required: false,
* searchable: false,
* systemMaintained: false
* },
* {
* name: "age",
* alias: "Age",
* defaultValue: null,
* defaultVisibility: true,
* editable: true,
* fieldType: "esriFieldTypeNumber",
* geometryType: "esriGeometryNull",
* hasM: false,
* hasZ: false,
* nullable: false,
* required: false,
* searchable: true,
* systemMaintained: false
* }]
* @example
* //example of a RelationshipType definition including properties.
* {
* "declaredClass": "esri.rest.knowledgeGraph.RelationshipType",
* "name": "employed_by",
* "alias": "Employed By",
* "role": "Regular",
* "strict": false,
* "properties": [{
* "declaredClass": "esri.rest.knowledgeGraph.GraphProperty",
* "name": "id",
* "alias": "id",
* "fieldType": "esriFieldTypeGUID",
* "geometryType": "esriGeometryNull",
* "hasM": false,
* "hasZ": false,
* "nullable": false,
* "editable": false,
* "required": true,
* "defaultVisibility": true,
* "systemMaintained": true,
* "role": "esriGraphPropertyRegular",
* "defaultValue": null
* },
* {
* "declaredClass": "esri.rest.knowledgeGraph.GraphProperty",
* "name": "start_date",
* "alias": "Start Date",
* "fieldType": "esriFieldTypeString",
* "geometryType": "esriGeometryNull",
* "hasM": false,
* "hasZ": false,
* "nullable": false,
* "editable": true,
* "required": true,
* "defaultVisibility": true,
* "systemMaintained": false,
* "role": "esriGraphPropertyRegular",
* "defaultValue": null
* }]
* }
*/
export default class GraphProperty extends JSONSupport {
constructor(properties?: GraphPropertyProperties);
/** The display name for the property. */
accessor alias: string | null | undefined;
/** Specifies a default value for the object type. */
accessor defaultValue: unknown | null;
/**
* Specifies whether the property is visible by default.
*
* @default true
*/
accessor defaultVisibility: boolean;
/** The name of the domain for values of this property, if applicable */
accessor domain: string | null | undefined;
/**
* Specifies whether the property is editable.
*
* @default true
*/
accessor editable: boolean;
/**
* Specifies the field type for the property.
*
* @example
* // possible field types
* "esriFieldTypeSmallInteger"
* "esriFieldTypeInteger"
* "esriFieldTypeSingle"
* "esriFieldTypeDouble"
* "esriFieldTypeLong"
* "esriFieldTypeString"
* "esriFieldTypeDate"
* "esriFieldTypeOID"
* "esriFieldTypeGeometry"
* "esriFieldTypeBlob"
* "esriFieldTypeRaster"
* "esriFieldTypeGUID"
* "esriFieldTypeGlobalID"
* "esriFieldTypeXML"
* "esriFieldTypeBigInteger"
* "esriFieldTypeTimestampOffset"
* "esriFieldTypeTimeOnly"
* "esriFieldTypeDateOnly"
*/
accessor fieldType: EsriFieldType;
/** Specifies the geometry type for the property. Will not be present if property is not of type `geometry`. */
accessor geometryType: EsriGeometryType | null | undefined;
/** Specifies whether the property has an m-value. This only applies if the property is of type `geometry`. */
accessor hasM: boolean | null | undefined;
/** Specifies whether property has a z-value. This only applies if the property is of type `geometry`. */
accessor hasZ: boolean | null | undefined;
/** The name of the property. */
accessor name: string;
/**
* Specifies whether the property can be `null`.
*
* @default true
*/
accessor nullable: boolean | null | undefined;
/**
* Specifies whether the property is required.
*
* @default false
*/
accessor required: boolean;
/**
* Specifies the role of the property. [Entity types](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraph/EntityType/) with the [GraphObjectType.role](https://developers.arcgis.com/javascript/latest/references/core/rest/knowledgeGraph/GraphObjectType/#role) `document` have properties with specific roles.
*
* @default "esriGraphPropertyUNSPECIFIED"
* @example
* {
* "declaredClass": "esri.rest.knowledgeGraph.EntityType",
* "name": "documents",
* "alias": "Documents",
* "role": "Regular",
* "strict": false,
* "properties": [
* {
* "declaredClass": "esri.rest.knowledgeGraph.GraphProperty",
* "name": "Name",
* "alias": "Name",
* "fieldType": "esriFieldTypeString",
* "geometryType": "esriGeometryNull",
* "hasM": false,
* "hasZ": false,
* "nullable": true,
* "editable": true,
* "required": false,
* "defaultVisibility": true,
* "systemMaintained": false,
* "role": "esriGraphPropertyDocumentName",
* "defaultValue": null
* },
* {
* "declaredClass": "esri.rest.knowledgeGraph.GraphProperty",
* "name": "text",
* "alias": "text",
* "fieldType": "esriFieldTypeString",d
* "geometryType": "esriGeometryNull",
* "hasM": false,
* "hasZ": false,
* "nullable": false,
* "editable": false,
* "required": true,
* "defaultVisibility": true,
* "systemMaintained": true,
* "role": "esriGraphPropertyDocumentText",
* "defaultValue": null
* }
* ]
* }
*/
accessor role: EsriGraphPropertyRoles;
/** Specifies if the property is system maintained. */
accessor systemMaintained: boolean | null | undefined;
}