@zxh19890103/wik
Version:
The world-class JavaScript library for building large-scale digital warehouse both on 2D and 3D.
27 lines (26 loc) • 975 B
TypeScript
import React from 'react';
import { ReactSVGOverlay } from './ReactSVGOverlay.class';
export interface SvgComponentUpdateDataBase {
size: L.PointTuple;
angle: number;
[k: string]: any;
}
export interface SvgComponentProps<D = Record<string, any>, M extends ReactSVGOverlay = ReactSVGOverlay> {
id: string;
data: D & SvgComponentUpdateDataBase;
style: React.CSSProperties;
/**
* 一般是 svg overlay
*/
model: M;
svgType: string;
className: string;
}
export interface SvgFunctionComponent<D = Record<string, any>> {
(props: {
data: any;
}): React.ReactElement;
svgType: string;
defaultData: Readonly<D & SvgComponentUpdateDataBase>;
}
export declare const SvgComponentFactory: <D = Record<string, any>, M extends ReactSVGOverlay<any> = ReactSVGOverlay<any>>(com: React.FunctionComponent<SvgComponentProps<D, M>>, type: string, defaultData?: D & SvgComponentUpdateDataBase) => SvgFunctionComponent<D>;