@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
TypeScript
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;
}