UNPKG

2.01 kBTypeScriptView Raw
1import { Application } from '../application';
2import { EventDispatcher, Event, EventMap } from './events';
3import { DeclarationOption } from './options/declaration';
4export interface ComponentHost {
5 readonly application: Application;
6}
7export interface Component extends AbstractComponent<ComponentHost> {
8}
9export interface ComponentClass<T extends Component, O extends ComponentHost = ComponentHost> extends Function {
10 new (owner: O): T;
11}
12export interface ComponentOptions {
13 name?: string;
14 childClass?: Function;
15 internal?: boolean;
16}
17export declare function Component(options: ComponentOptions): ClassDecorator;
18export declare class ComponentEvent extends Event {
19 owner: ComponentHost;
20 component: AbstractComponent<ComponentHost>;
21 static ADDED: string;
22 static REMOVED: string;
23 constructor(name: string, owner: ComponentHost, component: AbstractComponent<ComponentHost>);
24}
25export declare const DUMMY_APPLICATION_OWNER: unique symbol;
26export declare abstract class AbstractComponent<O extends ComponentHost> extends EventDispatcher implements ComponentHost {
27 private _componentOwner;
28 componentName: string;
29 private _componentOptions?;
30 constructor(owner: O | typeof DUMMY_APPLICATION_OWNER);
31 protected initialize(): void;
32 protected bubble(name: Event | EventMap | string, ...args: any[]): this;
33 getOptionDeclarations(): DeclarationOption[];
34 get application(): Application;
35 get owner(): O;
36}
37export declare abstract class ChildableComponent<O extends ComponentHost, C extends Component> extends AbstractComponent<O> {
38 private _componentChildren?;
39 private _defaultComponents?;
40 constructor(owner: O | typeof DUMMY_APPLICATION_OWNER);
41 getComponent(name: string): C | undefined;
42 getComponents(): C[];
43 hasComponent(name: string): boolean;
44 addComponent<T extends C>(name: string, componentClass: T | ComponentClass<T, O>): T;
45 removeComponent(name: string): C | undefined;
46 removeAllComponents(): void;
47}