@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
147 lines (145 loc) • 7.23 kB
TypeScript
import type Portal from "./Portal.js";
import type PortalItem from "./PortalItem.js";
import type PortalQueryResult from "./PortalQueryResult.js";
import type { JSONSupport } from "../core/JSONSupport.js";
import type { AbortOptions } from "../core/promiseUtils.js";
import type { PortalQueryParamsProperties } from "./PortalQueryParams.js";
import type { Members } from "./types.js";
export interface PortalGroupProperties extends Partial<Pick<PortalGroup, "access" | "description" | "id" | "isInvitationOnly" | "owner" | "portal" | "snippet" | "sourceJSON" | "tags" | "title">> {
/** The date the group was created. */
created?: (Date | number | string) | null;
/** The date the group was last modified. */
modified?: (Date | number | string) | null;
}
/**
* The group resource represents a group within the [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/). A group resource represents
* a group (e.g., "San Bernardino Fires"). The visibility of the group to other users
* is determined by the [access](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalGroup/#access) property. If the group is private, no one
* except the administrators and the members of the group will be able to see it. If the
* group is shared with an organization, than all members of the organization are able
* to find the group. For additional information, see [the ArcGIS REST API documentation for Group](https://developers.arcgis.com/rest/users-groups-and-items/group.htm).
*
* @since 4.0
* @see [ArcGIS Organization portals](https://developers.arcgis.com/javascript/latest/arcgis-organization-portals/)
* @see [Portal](https://developers.arcgis.com/javascript/latest/references/core/portal/Portal/)
*/
export default class PortalGroup extends JSONSupport {
constructor(properties?: PortalGroupProperties);
/** The access privileges on the group which determines who can see and access the group. */
accessor access: "private" | "org" | "public" | null | undefined;
/** The date the group was created. */
get created(): Date | null | undefined;
set created(value: (Date | number | string) | null | undefined);
/** A detailed description of the group. */
accessor description: string | null | undefined;
/** The unique id for the group. */
accessor id: string | null | undefined;
/**
* If set to `true`, then users will not be able to apply to join the group.
*
* @default false
*/
accessor isInvitationOnly: boolean;
/** The date the group was last modified. */
get modified(): Date | null | undefined;
set modified(value: (Date | number | string) | null | undefined);
/** The username of the group's owner. */
accessor owner: string | null | undefined;
/** The portal associated with the group. */
accessor portal: Portal | null | undefined;
/** A short summary that describes the group. */
accessor snippet: string | null | undefined;
/**
* The JSON used to create the property values when the `PortalGroup` is created.
* Although most commonly used properties are exposed on the `PortalGroup` class directly,
* this provides access to all information returned for the portal group. This property is
* useful if working in an application built using an older version of the API which
* requires access to a portal's group properties from a more recent version.
*
* @since 4.28
* @see [ArcGIS REST API - Group](https://developers.arcgis.com/rest/users-groups-and-items/group.htm)
*/
accessor sourceJSON: any;
/** User defined tags that describe the group. */
accessor tags: string[] | null | undefined;
/**
* The URL to the thumbnail used for the group.
*
* @since 4.4
* @see [getThumbnailUrl()](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalGroup/#getThumbnailUrl)
*/
get thumbnailUrl(): string | null | undefined;
/**
* The title of the group. This is the name that is displayed to users. It is also
* used to refer to the group. Every group must have a title and it must be unique.
*/
accessor title: string | null | undefined;
/** The URL to the group. */
get url(): string | null | undefined;
/**
* If present, fetches the group's category schema.
*
* @param options - An object with the following properties.
* @returns Resolves to an array of objects containing the following properties:
*
* Property | Type | Description
* ---------|--------|-------------
* title | string | The title of the category schema.
* categories | object[] | An array of objects containing a title and an optional array of subcategories.
* @since 4.8
* @example
* // Fetch featured group members
* portal.fetchFeaturedGroups().then(function(groups){
* groups.forEach(function(group){
* // Fetch group category schema
* group.fetchCategorySchema().then(function(schemas){
* schemas.forEach(function(schema){
* console.log("schema: ", schema);
* })
* });
* });
* });
*/
fetchCategorySchema(options?: AbortOptions | null | undefined): Promise<object[]>;
/**
* Fetches the current members of the group. This method is only available to members or
* administrators of the group. View the ArcGIS REST API documentation
* for the [Group Users](https://developers.arcgis.com/rest/users-groups-and-items/group-users.htm)
* for more details.
*
* @param options - An object with the following properties.
* @returns Resolves to an object with the members of the group.
* @example
* // Fetch featured group members
* portal.fetchFeaturedGroups().then(function(groups){
* groups.forEach(function(group){
* group.fetchMembers().then(function(members){
* console.log("member", members);
* });
* });
* });
*/
fetchMembers(options?: AbortOptions | null | undefined): Promise<Members>;
/**
* Get the URL to the thumbnail image for the group.
*
* Available width sizes: 150, 300 and 600.
*
* @param width - The desired image width.
* @returns The URL to the thumbnail image.
* @since 4.4
*/
getThumbnailUrl(width?: number): string | null | undefined;
/**
* Executes a query against the group to return an array of [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) objects
* that match the input query.
*
* @param queryParams - The input query parameters
* defined in [PortalQueryParams](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalQueryParams/).
* @param options - An object with the following properties.
* @returns When resolved, resolves to an instance of [PortalQueryResult](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalQueryResult/)
* which contains a `results` array of [PortalItem](https://developers.arcgis.com/javascript/latest/references/core/portal/PortalItem/) objects representing
* all the items that match the input query.
*/
queryItems(queryParams?: PortalQueryParamsProperties, options?: AbortOptions | null | undefined): Promise<PortalQueryResult<PortalItem>>;
}