ag-grid
Version:
Advanced Data Grid / Data Table supporting Javascript / React / AngularJS / Web Components
29 lines (28 loc) • 1.26 kB
TypeScript
// Type definitions for ag-grid v18.1.2
// Project: http://www.ag-grid.com/
// Definitions by: Niall Crosby <https://github.com/ag-grid/>
import { IComponent } from "../../interfaces/iComponent";
/**
* 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;
}, methodList: string[], optionalMethodList?: string[], componentName?: string): A;
}
export interface WrapableInterface {
hasMethod(name: string): boolean;
callMethod(name: string, args: IArguments): void;
addMethod(name: string, callback: Function): void;
}
export declare abstract class BaseComponentWrapper<F extends WrapableInterface> implements FrameworkComponentWrapper {
wrap<A extends IComponent<any>>(OriginalConstructor: {
new (): any;
}, mandatoryMethodList: string[], optionalMethodList?: string[], componentName?: string): A;
abstract createWrapper(OriginalConstructor: {
new (): any;
}, componentName?: string): F;
private createMethod(wrapper, methodName, mandatory);
private createMethodProxy(wrapper, methodName, mandatory);
}