@vertigis/viewer-spec
Version:
VertiGIS Viewer Specification
265 lines (264 loc) • 7.29 kB
TypeScript
import type { AppConfig } from "../../app-config/index.js";
import type { Command } from "../Command.js";
import { CommandRegistry } from "../CommandRegistry.js";
import type * as DotNetTypes from "../DotNetTypes.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 { Blob } from "../common.js";
/**
* Information about a specific app. Only available in VertiGIS Studio Mobile.
*/
export interface GcxAppInfo {
}
/**
* Arguments for the app started events. Only available in VertiGIS Studio
* Mobile.
*/
export interface SpecificAppArgs {
/**
* A unique identifier for the app.
*/
uniqueKey: string;
/**
* The amount of time that the app took to load.
*/
loadTime: DotNetTypes.TimeSpan;
}
/**
* Arguments for the app.generic.apps-listed event. Only available in VertiGIS
* Studio Mobile.
*/
export interface GenericAppsListedArgs {
/**
* The number of dev apps available.
*/
devApps: number;
/**
* The number of test apps available.
*/
testApps: number;
/**
* The number of staging apps available.
*/
stagingApps: number;
/**
* The number of production apps available.
*/
productionApps: number;
/**
* The total number of apps available.
*/
totalApps: number;
}
export declare class AppCommands extends CommandRegistry {
protected readonly _prefix = "app";
/**
* Returns to the app selector view where the user can select a different
* app. Only enabled if the current app was launched through VertiGIS Studio
* Go. Mobile only.
*
* @mobileOnly
*/
get goToAppSelector(): Command;
/**
* Refreshes the currently loaded app so that it can download updates if
* available. Mobile only.
*
* @mobileOnly
*/
get refresh(): Command;
/**
* Stores data specified by the arguments (key and scope). Mobile only.
*
* @mobileOnly
*/
get setPersistentData(): Command<SaveStorageDataArgs>;
/**
* Adds the currently loaded app to the user's Favorites collection. Mobile
* only.
*
* @mobileOnly
*/
get favorite(): Command;
/**
* Removes the currently loaded app from the user's Favorites collection.
* Mobile only.
*
* @mobileOnly
*/
get unfavorite(): Command;
/**
* Loads a project's app config and updates the application's current state,
* accordingly. If more than one file is provided, only the first will be
* loaded. Deprecated; use project.load instead. Web only.
*
* @deprecated
* @webOnly
*/
get loadProject(): Command<AppConfig | Blob | Blob[]>;
}
export declare class AppEvents extends EventRegistry {
readonly custom: AppCustomEvents;
readonly generic: AppGenericEvents;
protected readonly _prefix = "app";
/**
* Raised when the app is started, restored from a background state, layout
* switched, or restored from an interrupted state. Mobile only.
*
* @mobileOnly
*/
get activated(): Event;
/**
* Raised when the app is backgrounded. Mobile only.
*
* @mobileOnly
*/
get backgrounded(): Event;
/**
* Raised when the app is interrupted temporarily (eg. Pull down
* notifications, control center, or OS level prompt or alert). Mobile
* only.
*
* @mobileOnly
*/
get interrupted(): Event;
/**
* Raised when returning to the app selector screen from a specific app in
* VertiGIS Studio Go. Mobile only.
*
* @mobileOnly
*/
get goingToAppSelector(): Event;
/**
* Raised when an app has been refreshed. Mobile only.
*
* @mobileOnly
*/
get refreshed(): Event<SpecificAppArgs>;
/**
* Raised when an app refresh is beginning. Mobile only.
*
* @mobileOnly
*/
get refreshing(): Event;
/**
* Raised when an app is favorited. Mobile only.
*
* @mobileOnly
*/
get favorited(): Event<GcxAppInfo>;
/**
* Raised when an app is unfavorited. Mobile only.
*
* @mobileOnly
*/
get unfavorited(): Event<GcxAppInfo>;
}
export declare class AppCustomEvents extends EventRegistry {
protected readonly _prefix = "app.custom";
/**
* Raised when a custom app is started. Mobile only.
*
* @mobileOnly
*/
get started(): Event<SpecificAppArgs>;
}
export declare class AppGenericEvents extends EventRegistry {
protected readonly _prefix = "app.generic";
/**
* Raised when apps are listed within VertiGIS Studio Go. Mobile only.
*
* @mobileOnly
*/
get appsListed(): Event<GenericAppsListedArgs>;
/**
* Raised before a specific app starts within VertiGIS Studio Go. Mobile
* only.
*
* @mobileOnly
*/
get specificAppStarting(): Event<SpecificAppArgs>;
/**
* Raised when a specific app is started within VertiGIS Studio Go. Mobile
* only.
*
* @mobileOnly
*/
get specificAppStarted(): Event<SpecificAppArgs>;
/**
* Raised when a generic app is started. Mobile only.
*
* @mobileOnly
*/
get started(): Event;
}
export declare class AppOperations extends OperationRegistry {
protected readonly _prefix = "app";
/**
* Gets the current version stamped in the application (i.e. the version of
* the viewer this application was created with). Web only.
*
* @webOnly
*/
get getVersion(): Operation<void, string>;
/**
* Creates app config for a project, based on the current state of the
* application. Deprecated; use project.create instead. Web only.
*
* @deprecated
* @webOnly
*/
get createProject(): Operation<void, AppConfig>;
/**
* Gets stored data, specified by the arguments (key and scope).
*/
get getPersistentData(): Operation<StorageDataArgs, unknown>;
/**
* Removes stored data, specified by the arguments (key and scope). Returns
* true if the data was removed, false otherwise. Mobile only.
*
* @mobileOnly
*/
get removePersistentData(): Operation<StorageDataArgs, boolean>;
}
/**
* Arguments for the reading app.*-persistent-data operations. Only available in
* VertiGIS Studio Mobile.
*/
export interface StorageDataArgs {
/**
* The key of the data to store.
*/
key: string;
/**
* The scope the data is stored in. Defaults to @see StorageScope.APP.
*/
scope?: StorageScope;
}
/**
* Arguments for the app.set-persistent-data operations. Only available in
* VertiGIS Studio Mobile.
*/
export interface SaveStorageDataArgs extends StorageDataArgs {
/**
* The data to be stored.
*/
data: unknown;
}
type StorageScope =
/**
* Defines the global storage that is accessible from all apps.
*/
"global"
/**
* Defines the app specific storage that only is accessible from within the
* very app.
*/
| "app"
/**
* Defines in memory storage, that doesn't get persisted on app shutdown.
*/
| "memory";
export {};