@vertigis/viewer-spec
Version:
VertiGIS Viewer Specification
275 lines (274 loc) • 8.61 kB
TypeScript
/// <reference types="node" />
import type { TaskSettingsProperties } from "@vertigis/arcgis-extensions/data/TaskSettings.js";
import type { LabelingInfoJson } from "@vertigis/arcgis-extensions/json/DrawingInfoJson.js";
import type { PopupInfoJson } from "@vertigis/arcgis-extensions/json/PopupInfoJson.js";
import type { Command } from "../Command.js";
import { CommandRegistry } from "../CommandRegistry.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 { HasFiles, HasLayers, HasMaps, HasRenderer, HasSymbol, HasSymbols, LayersLike } from "../common.js";
/**
* Arguments for the "layers.visibility-changed" event.
*/
export interface LayerEventArgs {
/**
* The layer whose visibility was changed. Web only.
*
* @webOnly
*/
layers?: LayersLike;
/**
* The layer whose visibility was changed. Mobile only.
*
* @mobileOnly
*/
layerContent?: ILayerContent;
}
/**
* An instance of @Esri.ArcGISRuntime.Mapping.ILayerContent.
*/
export interface ILayerContent {
}
/**
* Arguments for the "layers.show-labels" and "layers.hide-labels" commands. If
* no 'maps' are specified, all active maps in the layout will be targeted. If
* no 'layers' are specified, all viable layers and sublayers within the 'maps'
* will be affected. If the 'layers' property includes (Sub)Layer references or
* ESRI (Sub)Layers, they must exist within one of the 'maps'.
*/
export interface SetLabelVisibilityArgs extends HasLayers, HasMaps {
}
/**
* Arguments for the layers.set-symbol command.
*/
export type SetSymbolArgs = HasSymbol & HasSymbols & HasLayers & HasMaps & HasRenderer;
/**
* Arguments for the layers.set-visibility command. If no 'maps' are specified,
* all active maps in the layout will be targeted. If no 'layers' are specified,
* all viable layers and sublayers within the 'maps' will be affected. If the
* 'layers' property includes (Sub)Layer references or ESRI (Sub)Layers, they
* must exist within one of the 'maps'.
*/
export interface SetVisibilityArgs extends HasLayers, HasMaps {
/**
* The visibility of the provided layers. If arg is not provided, visibility
* will be toggled.
*/
visible?: boolean;
}
/**
* Common settings for a layer.
*/
export interface HasLayerSettings {
/**
* The definitionExpression of the layer.
*/
definitionExpression?: string;
/**
* Settings relevant to layer tasks.
*/
taskSettings?: TaskSettingsProperties | TaskSettingsProperties[];
/**
* Configuration for a popup template to be used by features in the layer.
*/
popupTemplate?: PopupInfoJson | PopupInfoJson[];
/**
* The title of the layer.
*/
title?: string | string[];
/**
* The labeling class of the layer.
*/
labelingInfo?: LabelingInfoJson[] | LabelingInfoJson[][];
}
/**
* Arguments for a `layers.edit-settings` operation.
*/
export interface LayerSettingsArgs extends HasLayerSettings, HasLayers, HasSymbols, HasMaps {
}
/**
* Arguments for the layers.from-kml operation.
*/
export interface FromKmlArgs extends HasFiles {
}
/**
* Arguments for the layers.from-url operation.
*/
export interface FromUrlArgs {
/**
* The Url to add to the map.
*/
url: string;
}
export declare class LayersCommands extends CommandRegistry {
protected readonly _prefix = "layers";
/**
* Guard command for enabling the layers.set-symbol command. Web only.
*
* @webOnly
*/
get ensureCanSetSymbol(): Command<SetSymbolArgs>;
/**
* Resets the definition expression of a layer to its initial state. If the
* `layer` argument is undefined or an empty array, all layers will be
* reset. Web only.
*
* @webOnly
*/
get resetDefinitionExpression(): Command<LayerSettingsArgs>;
/**
* Resets the symbol of a layer to its initial state. If the `layer`
* argument is undefined or an empty array, all layers will be reset. Web
* only.
*
* @webOnly
*/
get resetSymbol(): Command<LayerSettingsArgs>;
/**
* Sets a definition expression on a layer to filter its features. Web only.
*
* @webOnly
*/
get setDefinitionExpression(): Command<LayerSettingsArgs>;
/**
* Updates the label classes of the provided layer(s). Web only.
*
* @webOnly
*/
get setLabelClasses(): Command<LayerSettingsArgs>;
/**
* Updates the provided layer(s) with new popup template configuration. Web
* only.
*
* @webOnly
*/
get setPopupTemplate(): Command<LayerSettingsArgs>;
/**
* Updates the symbol for the provided layer(s). Web only.
*
* @webOnly
*/
get setSymbol(): Command<SetSymbolArgs>;
/**
* Updates the provided layer(s) with new task settings. Web only.
*
* @webOnly
*/
get setTaskSettings(): Command<LayerSettingsArgs>;
/**
* Changes the title of the provided layer(s). Web only.
*
* @webOnly
*/
get setTitle(): Command<LayerSettingsArgs>;
/**
* Updates the visibility of the provided layer(s). Web only.
*
* **Example:** Toggle a layer's visibility off by id.
*
* ```
* {
* "layers": "Victoria_Fire_Hydrants_8780",
* "visible": false
* }
* ```
*
* @webOnly
*/
get setVisibility(): Command<SetVisibilityArgs>;
/**
* Turns on the layer's labels on the map. Web only.
*
* @webOnly
*/
get showLabels(): Command<SetLabelVisibilityArgs>;
/**
* Turns off the layer's labels on the map. Web only.
*
* @webOnly
*/
get hideLabels(): Command<SetLabelVisibilityArgs>;
}
export declare class LayersOperations extends OperationRegistry {
protected readonly _prefix = "layers";
/**
* Retrieves the popup configuration applied to the supplied layer(s). Web
* only.
*
* @webOnly
*/
get getPopupTemplate(): Operation<HasLayers, LayerSettingsArgs>;
/**
* Retrieves the label classes for supplied layer(s). Web only.
*
* @webOnly
*/
get getLabelClasses(): Operation<HasLayers, LayerSettingsArgs>;
/**
* Retrieves the values for the 'taskSettings' applied to the supplied
* layer(s). Web only.
*
* @webOnly
*/
get getTaskSettings(): Operation<HasLayers, LayerSettingsArgs>;
/**
* Retrieves the titles of the supplied layer(s). Web only.
*
* @webOnly
*/
get getTitle(): Operation<HasLayers, LayerSettingsArgs>;
/**
* Shows a UI for editing the settings on an existing layer or layers. Note
* that changes will not be applied to the supplied layers by this
* operation. Use `layers.set-*` for this. Web only.
*
* @webOnly
*/
get editSettings(): Operation<LayerSettingsArgs, LayerSettingsArgs>;
/**
* Shows a UI for editing the label classes on an existing layer or layers.
* Note that changes will not be applied to the supplied layers by this
* operation. Use `layers.set-label-classes` for this. Web only.
*
* @webOnly
*/
get editLabelSettings(): Operation<LayerSettingsArgs, LayerSettingsArgs>;
/**
* Edit the symbol from an existing layer or layers. Note that changes to
* these symbols will not be applied to the layers by this operation. Use
* `layers.set-symbol` for this. Web only.
*
* @webOnly
*/
get editSymbols(): Operation<SetSymbolArgs, HasLayers & HasMaps & HasSymbols>;
/**
* Convert the specified KML blob to layers. Web only.
*
* @webOnly
*/
get fromKml(): Operation<FromKmlArgs | Blob | Blob[], HasLayers>;
/**
* Attempts to create layer(s) from a url. Web only.
*
* The url could be to an ArcGIS Server Url, WMS, WFS, WMTS, GeoJson,
* GeoRss, Csv, Kml, kmz, OGC Feature Layer, or an Arcgis Portal Item.
*
* @webOnly
*/
get fromUrl(): Operation<FromUrlArgs | string, HasLayers>;
}
export declare class LayersEvents extends EventRegistry {
protected readonly _prefix = "layers";
/**
* Raised when a layer's definition expression changes. Web only.
*
* @webOnly
*/
get definitionExpressionChanged(): Event<HasLayers>;
/**
* Raised when a layer's visibility changes.
*/
get visibilityChanged(): Event<LayerEventArgs>;
}