@vertigis/viewer-spec
Version:
VertiGIS Viewer Specification
113 lines (112 loc) • 3.43 kB
TypeScript
import type PortalItem from "@arcgis/core/portal/PortalItem";
import type { Source } from "../../app-config/web/PortalModelProperties.js";
import type { Event } from "../Event.js";
import { EventRegistry } from "../EventRegistry.js";
import type { Operation } from "../Operation.js";
import { OperationRegistry } from "../OperationRegistry.js";
import type { HasMaps, HasUITarget, LayersLike } from "../common.js";
/**
* Corresponds to `VertiGIS.Mobile.Infrastructure.Portal.ArcGISPortalExtension`
* in the VertiGIS.Mobile SDK.
*/
export interface ArcGISPortalExtension {
}
/**
* Arguments for the "portal.choose-layers" operation.
*/
export interface ChooseLayersOptions extends HasMaps, HasUITarget {
/**
* Whether the user can choose multiple layers, or just one. Default is
* `false`.
*/
allowMultiple?: boolean;
/**
* Optionally specify the tags by which the Choose Layer modal will filter
* out the displayed layers. If specified this will overwrite the configured
* default in the Portal Model.
*/
layerFilterTags?: string[];
/**
* Optionally specify the source that will be initially selected. If
* specified this will overwrite the configured default in the Portal
* Model.
*/
initialSource?: Source;
/**
* Optionally specify the sources that we want to expose. If specified this
* will overwrite the configured default in the Portal Model.
*/
sources?: Source[];
}
/**
* Result of the "portal.choose-layers" operation.
*/
export interface ChooseLayersResult extends HasMaps {
/**
* The layer(s) chosen by the user.
*/
layers?: LayersLike;
}
/**
* Information about a portal item to be saved.
*/
export interface PortalItemData {
/**
* The JSON data associated with the item.
*/
data: unknown;
/**
* The portal type of the item.
*/
type: string;
/**
* The URL of a thumbnail for the item.
*/
thumbnail?: string;
}
/**
* Arguments for the 'portal.create-or-update-item' operation.
*/
export interface CreateOrUpdateItemArgs extends PortalItemData {
/**
* The title of the resulting portal item. Must be provided if `showUI` is
* `false`.
*/
title?: string;
/**
* Whether to show UI elements associated with this operation. Defaults to
* `true`.
*/
showUI?: boolean;
/**
* Whether to prompt before overwriting an existing item. This must be set
* to `false` to allow overwriting if `showUI` is also `false`. Defaults to
* `true`.
*/
promptForOverwrite?: boolean;
}
export declare class PortalEvents extends EventRegistry {
protected readonly _prefix = "portal";
/**
* Raised when an ArcGIS Portal is initialized. Mobile only.
*
* @mobileOnly
*/
get initialized(): Event<ArcGISPortalExtension>;
}
export declare class PortalOperations extends OperationRegistry {
protected readonly _prefix = "portal";
/**
* Allows the user to browse/search the application's associated portal for
* one or more layers. Web only.
*
* @webOnly
*/
get chooseLayers(): Operation<ChooseLayersOptions, ChooseLayersResult>;
/**
* Creates or updates a portal item from the supplied data. Web only.
*
* @webOnly
*/
get createOrUpdateItem(): Operation<CreateOrUpdateItemArgs, PortalItem>;
}