@rocket.chat/apps-engine
Version:
The engine code for the Rocket.Chat Apps which manages, runs, translates, coordinates and all of that.
50 lines (49 loc) • 1.57 kB
TypeScript
import type { IExternalComponentOptions } from './IExternalComponentOptions';
import type { IExternalComponentState } from './IExternalComponentState';
/**
* Represents an external component that is being provided.
*/
export interface IExternalComponent {
/**
* Provides the appId of the app which the external component belongs to.
*/
appId: string;
/**
* Provides the name of the external component. This key must be unique.
*/
name: string;
/**
* Provides the description of the external component.
*/
description: string;
/**
* Provides the icon's url or base64 string.
*/
icon: string;
/**
* Provides the location which external component needs
* to register, see the ExternalComponentLocation descriptions
* for the more information.
*/
location: ExternalComponentLocation;
/**
* Provides the url that external component will load.
*/
url: string;
/**
* Provides options for the external component.
*/
options?: IExternalComponentOptions;
/**
* Represents the current state of the external component.
* The value is *null* until the ExternalComponentOpened
* event is triggered. It doesn't make sense to get its value in
* PreExternalComponentOpenedPrevent, PreExternalComponentOpenedModify
* and PreExternalComponentOpenedExtend handlers.
*/
state?: IExternalComponentState;
}
export declare enum ExternalComponentLocation {
CONTEXTUAL_BAR = "CONTEXTUAL_BAR",
MODAL = "MODAL"
}