@turbox3d/renderer-core
Version:
Large-scale declarative graphic ui core renderer
54 lines (53 loc) • 3.09 kB
TypeScript
import { ViewEntity, SceneEvent } from '@turbox3d/event-manager';
import { SceneTool } from '@turbox3d/command-manager';
import { Element, VirtualNode } from './render';
import { SceneContext } from './scene';
export interface PreserveProps {
key?: string | number;
children?: Element<any>[];
onClick?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onDBClick?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onRightClick?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onDragStart?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onDragMove?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onDragEnd?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onPinchStart?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onPinch?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onPinchEnd?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onRotateStart?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onRotate?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onRotateEnd?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onPress?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onPressUp?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onHoverIn?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
onHoverOut?: (viewEntity: Partial<ViewEntity>, event: SceneEvent, tools: SceneTool) => void;
clickable?: boolean;
hoverable?: boolean;
draggable?: boolean;
pinchable?: boolean;
rotatable?: boolean;
pressable?: boolean;
}
export type ComponentProps<P> = PreserveProps & Partial<ViewEntity> & P;
/**
* graphic render component
*/
export declare class Component<P extends object = {}> {
props: ComponentProps<P>;
_vNode: VirtualNode;
get context(): SceneContext;
constructor(props?: ComponentProps<P>);
forceUpdate(): void;
shouldComponentUpdate(nextProps?: Readonly<ComponentProps<P>>): boolean;
shouldComponentInteractiveUpdate(nextProps?: Readonly<ComponentProps<P>>): boolean;
shouldComponentCustomPropsUpdate(nextProps?: Readonly<ComponentProps<P>>): boolean;
componentWillMount(): void | Promise<void>;
componentWillUpdate(nextProps?: Readonly<ComponentProps<P>>): void | Promise<void>;
render(): Element<any>[] | null;
componentDidMount(): void | Promise<void>;
componentDidUpdate(prevProps: Readonly<ComponentProps<P>>): void | Promise<void>;
componentWillUnmount(): void | Promise<void>;
}
export declare class PureComponent<P extends object = {}> extends Component<P> {
shouldComponentUpdate(nextProps: Readonly<ComponentProps<P>>): boolean;
}