UNPKG

@inweb/viewer-core

Version:

3D CAD and BIM data Viewer core

56 lines (55 loc) 1.61 kB
import type { IViewer } from "../viewer/IViewer"; /** * Defines the component of the viewer. */ export interface IComponent { /** * The name of the component. */ name?: string; /** * Releases resources allocated by the component. */ dispose(): void; } /** * Defines the component provider function. */ export interface IComponentProvider { /** * @param viewer - Viewer instance that creates the component. */ (viewer: any): IComponent; } /** * Defines the viewer components registry interface. */ export interface IComponentsRegistry { /** * Binds a component name to a component. Registering a component with an existing name twice overrides * the existing component. * * @param name - Unique name for the component. * @param provider - Component provider. */ registerComponent(name: string, provider: IComponentProvider): void; /** * Registers an alias for a component. * * @param name - Unique name for the component. * @param alias - Component alias string. */ registerComponentAlias(name: string, alias: string): void; /** * Returns a list of registered components. */ getComponents(): Map<string, IComponentProvider>; /** * Creates the component denoted by the given name. Returns `null` if a component with given name not * registered. * * @param name - Component name. * @param viewer - Viewer instance that wants to create the component. */ createComponent(name: string, viewer: IViewer): IComponent | null; }