ohctechv3/.svn/pristine/e5/e5146c915eb9e4ba3655d2de4a5842ab749d8f33.svn-base
2024-10-28 15:03:36 +05:30

28 lines
1.2 KiB
Plaintext

import { IComponent } from "../../interfaces/iComponent";
import { ComponentType } from "./componentTypes";
/**
* B the business interface (ie IHeader)
* A the agGridComponent interface (ie IHeaderComp). The final object acceptable by ag-grid
*/
export interface FrameworkComponentWrapper {
wrap<A extends IComponent<any>>(frameworkComponent: {
new (): any;
} | null, methodList: string[], optionalMethodList: string[], componentType: ComponentType): A;
}
export interface WrappableInterface {
hasMethod(name: string): boolean;
callMethod(name: string, args: IArguments): void;
addMethod(name: string, callback: Function): void;
}
export declare abstract class BaseComponentWrapper<F extends WrappableInterface> implements FrameworkComponentWrapper {
wrap<A extends IComponent<any>>(OriginalConstructor: {
new (): any;
}, mandatoryMethodList: string[], optionalMethodList: string[] | undefined, componentType: ComponentType): A;
unwrap(comp: any): any;
abstract createWrapper(OriginalConstructor: {
new (): any;
}, componentType: ComponentType): F;
private createMethod;
protected createMethodProxy(wrapper: F, methodName: string, mandatory: boolean): Function;
}