UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

169 lines (167 loc) 10.3 kB
import type { JSONSupport } from "../../core/JSONSupport.js"; export interface AttachmentQueryProperties extends Partial<Pick<AttachmentQuery, "attachmentsWhere" | "attachmentTypes" | "cacheHint" | "globalIds" | "keywords" | "name" | "num" | "objectIds" | "orderByFields" | "returnMetadata" | "size" | "start" | "where">> {} /** * This class defines parameters for executing queries for feature attachments from a * [feature layer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/). * Once an AttachmentQuery object's properties are defined, it can then be passed into the * [executeAttachmentQuery()](https://developers.arcgis.com/javascript/latest/references/core/rest/query/#executeAttachmentQuery) or * [FeatureLayer.queryAttachments()](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#queryAttachments) methods, * which will return [attachmentInfos](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/) * grouped by the source feature objectIds. * * > [!WARNING] * > * > **Known Limitations** * > * > All properties except [objectIds](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttachmentQuery/#objectIds) require an ArcGIS Server service 10.5 or greater, and * > feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) to be `true`. * > When the feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) * > property is `false`, [objectIds](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttachmentQuery/#objectIds) property only accepts a single `objectId`. * * @since 4.20 * @see [query](https://developers.arcgis.com/javascript/latest/references/core/rest/query/) * @see [capabilities.attachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) */ export default class AttachmentQuery extends JSONSupport { constructor(properties?: AttachmentQueryProperties); /** * The where clause to be applied to attachment queries. Only attachments that satisfy the `attachmentsWhere` * clause will be returned. * * @example * const query = new AttachmentQuery({ * where: "1=1", // query all features in the layer * attachmentsWhere: "keywords = 'ladybug, purple'" // attachment queries * }); */ accessor attachmentsWhere: string | null | undefined; /** * The file format that is supported by query attachment. For example, `image/jpeg`. * See the [ArcGIS REST API documentation](https://developers.arcgis.com/rest/services-reference/query-attachments-feature-service-layer-.htm) * for more information on supported attachment types. * * Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) to be `true`. * * If the feature layer's [capabilities.attachment.supportsTypeWildcard](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is `true`, the `attachmentTypes` can include wildcard characters (e.g., `image/*`) to return all attachments of that type. * * @see [ArcGIS REST API documentation](https://developers.arcgis.com/rest/services-reference/enterprise/query-attachments-feature-service-layer/) */ accessor attachmentTypes: string[] | null | undefined; /** * Indicates if the service should cache the attachment query results. It only applies if the layer's * [capabilities.attachment.supportsCacheHint](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is set to `true`. * Use only for queries that have the same parameters every time the app is used. * Some examples of cacheable queries: * * Queries based on [preset input](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttachmentQuery/#where), for example, a drop-down list of US states. * * @since 4.24 */ accessor cacheHint: boolean | null | undefined; /** * An array of globalIds for the features in the layer being queried. The query results will return attachments * only for specified global ids. * * Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) * to be `true`. */ accessor globalIds: string[] | null | undefined; /** * Used to query for attachments that match the provided `keywords`. * * @see [Query Attachments REST API operation](https://developers.arcgis.com/rest/services-reference/enterprise/query-attachments-feature-service-layer/) * @example * const query = new AttachmentQuery({ * where: "1=1", // query all features in the layer * keywords: ["ladybug", "purple"] // attachment keywords * }); */ accessor keywords: string[] | null | undefined; /** * Used to query for attachments that match this `name`. * * @example * const query = new AttachmentQuery({ * where: "1=1", // query all features in the layer * attachmentsWhere: "name = 'ladybug.png'" // attachment queries * }); */ accessor name: string | null | undefined; /** * The number of features to retrieve. This option should be used in conjunction with the [start property](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttachmentQuery/#start). Use this to * implement paging (i.e. to retrieve "pages" of results when querying). Default Value is `10`. * * If not provided, but an instance of AttachmentQuery has a `start` property, then the default value of `num` is `maxRecordCount`. * The maximum value for this parameter is the value of the layer's `maxRecordCount` of the service, which can be found at * the REST endpoint of the feature layer. * * Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) to be `true`. */ accessor num: number | null | undefined; /** * An array of objectIds of the features to be queried for attachments. * When the feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) property is * `false`, it only accepts a single `objectId`. */ accessor objectIds: number[]; /** * An array of one or more `attachmentInfo` field names on which the returned queried attachments will be sorted. Use `ASC` (ascending) or `DESC` (descending) to control the * sort order. The default order is ascending. * The `orderByFields` property is only supported when [FeatureLayer.capabilities.attachment.supportsOrderByFields](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is `true`. * * @since 4.32 * @example * const query = new AttachmentQuery({ * where: "1=1", // query all features in the layer * orderByFields: ["ATT_NAME DESC"] // sort attachments by name in descending order * }); */ accessor orderByFields: string[] | null | undefined; /** * If `true`, the [Exchangeable image file format](https://en.wikipedia.org/wiki/Exif) for the attachment will be included in * [AttachmentInfo.exifInfo](https://developers.arcgis.com/javascript/latest/references/core/rest/query/support/AttachmentInfo/#exifInfo). The layer's * [capabilities.attachment.supportsExifInfo](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) must be `true` for the * attachment query to return `exifInfo` for the attachments. * * @default false */ accessor returnMetadata: boolean; /** * The file size of the attachment is specified in bytes. You can enter a * file size range [1000,15000] to query for attachments. The query result will return * all attachments within the specified file size range (1000 - 15000). * * Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) * to be `true`. */ accessor size: [ number, number ] | null | undefined; /** * This option fetches query results by skipping a specified number of records. The query results start from the next record. * The default value is `0`. This parameter only applies when the feature layer's * [capabilities.query.supportsPagination](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) is `true`. You can use this option to * fetch records that are beyond `maxRecordCount`. * * Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) to be `true`. */ accessor start: number | null | undefined; /** * The `where` clause to be applied to the layer. Only features that satisfy the `where` clause * and are in the list of [objectIds](https://developers.arcgis.com/javascript/latest/references/core/rest/support/AttachmentQuery/#objectIds) will be returned. Requires an ArcGIS Server service 10.5 or greater and * feature layer's [capabilities.query.supportsAttachments](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#capabilities) * to be `true`. */ accessor where: string | null | undefined; /** * Creates a deep clone of AttachmentQuery object. * * @returns A new instance of a AttachmentQuery object equal to the object used to call `.clone()`. */ clone(): AttachmentQuery; }