UNPKG

@visactor/vrender-core

Version:

```typescript import { xxx } from '@visactor/vrender-core'; ```

90 lines (89 loc) 4.22 kB
import type { MaybePromise, Releaseable } from './common'; import type { IContext2d } from './context'; import type { IThemeAttribute, IMarkAttribute } from './graphic/creator'; import type { IGraphicAttribute } from './graphic'; import type { ISymbol, ISymbolGraphicAttribute } from './graphic/symbol'; import type { BaseRenderContributionTime } from '../common/enums'; import type { IArc, IArcGraphicAttribute } from './graphic/arc'; import type { IArea, IAreaGraphicAttribute } from './graphic/area'; import type { IText, ITextGraphicAttribute } from './graphic/text'; import type { ICircle, ICircleGraphicAttribute } from './graphic/circle'; import type { IGroup, IGroupGraphicAttribute } from './graphic/group'; import type { IImage, IImageGraphicAttribute } from './graphic/image'; import type { IPath, IPathGraphicAttribute } from './graphic/path'; import type { IPolygon, IPolygonGraphicAttribute } from './graphic/polygon'; import type { IRect, IRectGraphicAttribute } from './graphic/rect'; import type { IStar, IStarGraphicAttribute } from './graphic/star'; import type { IStage } from './stage'; import type { ICanvasLike } from './canvas'; import type { IDrawContext } from './render'; export interface IContribution<T> extends Releaseable { configure: (service: T, ...data: any) => void; } export interface IBaseRenderContribution<GraphicType, AttributeType> { time: BaseRenderContributionTime; useStyle: boolean; order: number; supportedAppName?: string | string[]; drawShape: (graphic: GraphicType, context: IContext2d, x: number, y: number, doFill: boolean, doStroke: boolean, fVisible: boolean, sVisible: boolean, graphicAttribute: Required<AttributeType>, drawContext: IDrawContext, fillCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, strokeCb?: (ctx: IContext2d, markAttribute: Partial<IMarkAttribute & IGraphicAttribute>, themeAttribute: IThemeAttribute) => boolean, params?: any) => void; } export type ISymbolRenderContribution = IBaseRenderContribution<ISymbol, ISymbolGraphicAttribute>; export type IArcRenderContribution = IBaseRenderContribution<IArc, IArcGraphicAttribute>; export type ITextRenderContribution = IBaseRenderContribution<IText, ITextGraphicAttribute>; export type IAreaRenderContribution = IBaseRenderContribution<IArea, IAreaGraphicAttribute>; export type ICircleRenderContribution = IBaseRenderContribution<ICircle, ICircleGraphicAttribute>; export type IStarRenderContribution = IBaseRenderContribution<IStar, IStarGraphicAttribute>; export type IGroupRenderContribution = IBaseRenderContribution<IGroup, IGroupGraphicAttribute>; export type IImageRenderContribution = IBaseRenderContribution<IImage, IImageGraphicAttribute>; export type IPathRenderContribution = IBaseRenderContribution<IPath, IPathGraphicAttribute>; export type IPolygonRenderContribution = IBaseRenderContribution<IPolygon, IPolygonGraphicAttribute>; export type IRectRenderContribution = IBaseRenderContribution<IRect, IRectGraphicAttribute>; export interface IContributionProvider<T> { getContributions: () => T[]; } export interface IApplicationContribution { initialize?: () => void; configure?: (stage: IStage) => MaybePromise<void>; onDestroy?: (stage: IStage) => MaybePromise<void>; } export interface ITTCanvas extends ICanvasLike { width: number; height: number; offsetWidth: number; offsetHeight: number; getContext: () => any; getBoundingClientRect: () => { width: number; height: number; }; id: string; } export interface ILynxCanvas extends ICanvasLike { width: number; height: number; offsetWidth: number; offsetHeight: number; getContext: () => any; getBoundingClientRect: () => { width: number; height: number; }; id: string; } export interface IDomRef { id: string; width: number; height: number; left: number; top: number; right: number; bottom: number; x: number; y: number; requestAnimationFrame?: any; cancelAnimationFrame?: any; getBoundingClientRect?: () => { height: number; width: number; }; }