@gravity-ui/graph
Version:
Modern graph editor component
54 lines (53 loc) • 2.3 kB
TypeScript
import { Scheduler } from "./Scheduler";
import { ITree, Tree } from "./Tree";
type TOptions = {
readonly key?: string;
readonly ref?: ((inst: any) => void) | string;
};
export type TCoreComponent = CoreComponent<CoreComponentProps, CoreComponentContext>;
type TPrivateComponentData = {
parent: CoreComponent | undefined;
treeNode: Tree;
context: {
scheduler: Scheduler;
globalIterateId: number;
};
children: object;
childrenKeys: string[];
prevChildrenArr: object[];
updated: boolean;
iterateId: number;
};
export type CoreComponentProps = Record<string, unknown>;
export type CoreComponentContext = Record<string, unknown>;
export type ComponentDescriptor<Props extends CoreComponentProps = CoreComponentProps, Context extends CoreComponentContext = CoreComponentContext> = {
props: Props;
options: TOptions;
klass: Constructor<CoreComponent<Props, Context>>;
};
export declare class CoreComponent<Props extends CoreComponentProps = CoreComponentProps, Context extends CoreComponentContext = CoreComponentContext> implements ITree {
$: object;
context: Context;
props: Props;
protected __comp: TPrivateComponentData;
get zIndex(): number;
set zIndex(index: number);
get renderOrder(): number;
constructor(props: Props, parent?: CoreComponent);
isIterated(): boolean;
performRender: () => void;
getParent(): CoreComponent | undefined;
setContext<K extends keyof Context>(context: Pick<Context, K>): void;
protected unmount(): void;
protected render(): void;
protected updateChildren(): void | ComponentDescriptor[];
protected setProps<K extends keyof Props>(_: Pick<Props, K>): void;
private __unmount;
iterate(): boolean;
protected __updateChildren(): void;
private __unmountChildren;
static create<Props extends CoreComponentProps, Context extends CoreComponentContext>(this: Constructor<CoreComponent<Props, Context>>, props?: Props, options?: TOptions): ComponentDescriptor<Props, Context>;
static mount<Props extends CoreComponentProps, Context extends CoreComponentContext>(Component: Constructor<CoreComponent<Props, Context>>, props?: Props): CoreComponent<Props, Context>;
static unmount(instance: any): void;
}
export {};