@vertigis/viewer-spec
Version:
VertiGIS Viewer Specification
56 lines (55 loc) • 2 kB
TypeScript
import type { FailureMode } from "@vertigis/arcgis-extensions/FailureMode";
import type { ItemConfig } from "./ItemConfig.js";
/**
* The most recent VertiGIS Studio App configuration schema version supported by
* this API.
*/
export declare const CURRENT_SCHEMA_VERSION = "1.0";
/**
* Configuration for a VertiGIS Studio App. An App is a portable format for
* describing the items and settings used by VertiGIS Studio applications. Items
* that are defined within an App (e.g. menus, layer extensions, web maps, etc.)
* can be retrieved by loading the App configuration into an {@link AppContainer}
* and using its {@link AppContainer.get} method.
*/
export interface AppConfig {
/**
* The version of the App configuration schema that is being used. Current
* version is available via the {@link CURRENT_SCHEMA_VERSION } constant.
*/
schemaVersion: string;
/**
* Specifies zero or more App configurations that are imported into this
* one.
*
* Imports are processed in the order specified, followed by items and
* settings that are locally defined in this AppConfig. If the same item is
* defined multiple times, then the items' properties will get merged in
* such a way that the later definitions will override earlier ones.
* Similarly if a setting is defined several times, then the most recent
* definition wins.
*/
import?: string[];
/**
* User-defined settings. These can be referenced via URIs in the form
* setting://setting-name.
*/
settings?: {
[setting: string]: string | number | boolean;
};
/**
* User-defined failure modes for particular items. Items are referenced by
* item uri.
*/
failureModes?: {
[itemUri: string]: FailureMode;
};
/**
* The set of items defined in the App (order is irrelevant).
*/
items?: ItemConfig[];
/**
* A human-readable name for the App.
*/
title?: string;
}