@visactor/vrender 0.14.5 → 0.15.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/animate/default-ticker.js +1 -1
- package/cjs/animate/default-ticker.js.map +1 -1
- package/cjs/core/contributions/env/base-contribution.d.ts +5 -1
- package/cjs/core/contributions/env/base-contribution.js +10 -1
- package/cjs/core/contributions/env/base-contribution.js.map +1 -1
- package/cjs/core/contributions/env/browser-contribution.d.ts +5 -2
- package/cjs/core/contributions/env/browser-contribution.js +47 -0
- package/cjs/core/contributions/env/browser-contribution.js.map +1 -1
- package/cjs/core/global.d.ts +5 -1
- package/cjs/core/global.js +9 -0
- package/cjs/core/global.js.map +1 -1
- package/cjs/core/layer.js +6 -6
- package/cjs/core/layer.js.map +1 -1
- package/cjs/core/stage.d.ts +7 -3
- package/cjs/core/stage.js +30 -16
- package/cjs/core/stage.js.map +1 -1
- package/cjs/event/event-manager.js +4 -6
- package/cjs/event/event-manager.js.map +1 -1
- package/cjs/graphic/arc.d.ts +0 -7
- package/cjs/graphic/arc.js +1 -3
- package/cjs/graphic/arc.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-down.d.ts +12 -0
- package/cjs/graphic/builtin-symbol/arrow2-down.js +30 -0
- package/cjs/graphic/builtin-symbol/arrow2-down.js.map +1 -0
- package/cjs/graphic/builtin-symbol/arrow2-left.js +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-left.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-right.js +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-right.js.map +1 -1
- package/cjs/graphic/builtin-symbol/arrow2-up.d.ts +12 -0
- package/cjs/graphic/builtin-symbol/arrow2-up.js +30 -0
- package/cjs/graphic/builtin-symbol/arrow2-up.js.map +1 -0
- package/cjs/graphic/builtin-symbol/close.d.ts +13 -0
- package/cjs/graphic/builtin-symbol/close.js +33 -0
- package/cjs/graphic/builtin-symbol/close.js.map +1 -0
- package/cjs/graphic/builtin-symbol/index.d.ts +1 -1
- package/cjs/graphic/builtin-symbol/index.js +2 -2
- package/cjs/graphic/builtin-symbol/index.js.map +1 -1
- package/cjs/graphic/builtin-symbol/line-h.d.ts +13 -0
- package/cjs/graphic/builtin-symbol/line-h.js +32 -0
- package/cjs/graphic/builtin-symbol/line-h.js.map +1 -0
- package/cjs/graphic/builtin-symbol/line-v.d.ts +13 -0
- package/cjs/graphic/builtin-symbol/line-v.js +32 -0
- package/cjs/graphic/builtin-symbol/line-v.js.map +1 -0
- package/cjs/graphic/builtin-symbol/utils.d.ts +13 -5
- package/cjs/graphic/builtin-symbol/utils.js +23 -9
- package/cjs/graphic/builtin-symbol/utils.js.map +1 -1
- package/cjs/graphic/config.js +2 -1
- package/cjs/graphic/config.js.map +1 -1
- package/cjs/graphic/constants.d.ts +22 -0
- package/cjs/graphic/constants.js +20 -2
- package/cjs/graphic/constants.js.map +1 -1
- package/cjs/graphic/index.d.ts +1 -0
- package/cjs/graphic/index.js +13 -13
- package/cjs/graphic/index.js.map +1 -1
- package/cjs/graphic/symbol.d.ts +2 -1
- package/cjs/graphic/symbol.js +27 -4
- package/cjs/graphic/symbol.js.map +1 -1
- package/cjs/graphic/tools.d.ts +3 -2
- package/cjs/graphic/tools.js +58 -3
- package/cjs/graphic/tools.js.map +1 -1
- package/cjs/graphic/wrap-text.js +10 -14
- package/cjs/graphic/wrap-text.js.map +1 -1
- package/cjs/index.d.ts +2 -1
- package/cjs/index.js +2 -2
- package/cjs/index.js.map +1 -1
- package/cjs/interface/global.d.ts +13 -1
- package/cjs/interface/global.js.map +1 -1
- package/cjs/interface/graphic/arc.d.ts +0 -2
- package/cjs/interface/graphic/arc.js.map +1 -1
- package/cjs/interface/graphic/symbol.d.ts +3 -2
- package/cjs/interface/graphic/symbol.js.map +1 -1
- package/cjs/interface/graphic.d.ts +14 -1
- package/cjs/interface/graphic.js.map +1 -1
- package/cjs/interface/render.d.ts +1 -0
- package/cjs/interface/render.js.map +1 -1
- package/cjs/interface/stage.d.ts +4 -2
- package/cjs/interface/stage.js.map +1 -1
- package/cjs/jsx/graphicType.d.ts +136 -0
- package/cjs/jsx/graphicType.js +133 -0
- package/cjs/jsx/graphicType.js.map +1 -0
- package/cjs/jsx/index.d.ts +2 -0
- package/cjs/jsx/index.js +21 -0
- package/cjs/jsx/index.js.map +1 -0
- package/cjs/jsx/jsx-classic.d.ts +5 -0
- package/cjs/jsx/jsx-classic.js +69 -0
- package/cjs/jsx/jsx-classic.js.map +1 -0
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js +4 -2
- package/cjs/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/cjs/picker/pick-interceptor.js +2 -3
- package/cjs/picker/pick-interceptor.js.map +1 -1
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.d.ts +13 -0
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js +75 -0
- package/cjs/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -0
- package/cjs/render/contributions/render/arc-render.js +2 -9
- package/cjs/render/contributions/render/arc-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js +7 -9
- package/cjs/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js +7 -9
- package/cjs/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js +7 -9
- package/cjs/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js +22 -24
- package/cjs/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/cjs/render/contributions/render/draw-contribution.d.ts +3 -1
- package/cjs/render/contributions/render/draw-contribution.js +3 -1
- package/cjs/render/contributions/render/draw-contribution.js.map +1 -1
- package/cjs/render/contributions/render/symbol-render.js +12 -5
- package/cjs/render/contributions/render/symbol-render.js.map +1 -1
- package/cjs/render/render-service.js +3 -1
- package/cjs/render/render-service.js.map +1 -1
- package/dist/index.js +3732 -835
- package/dist/index.min.js +1 -1
- package/es/animate/default-ticker.js +1 -1
- package/es/animate/default-ticker.js.map +1 -1
- package/es/core/contributions/env/base-contribution.d.ts +5 -1
- package/es/core/contributions/env/base-contribution.js +11 -0
- package/es/core/contributions/env/base-contribution.js.map +1 -1
- package/es/core/contributions/env/browser-contribution.d.ts +5 -2
- package/es/core/contributions/env/browser-contribution.js +48 -1
- package/es/core/contributions/env/browser-contribution.js.map +1 -1
- package/es/core/global.d.ts +5 -1
- package/es/core/global.js +9 -0
- package/es/core/global.js.map +1 -1
- package/es/core/layer.js +6 -6
- package/es/core/layer.js.map +1 -1
- package/es/core/stage.d.ts +7 -3
- package/es/core/stage.js +31 -15
- package/es/core/stage.js.map +1 -1
- package/es/event/event-manager.js +4 -6
- package/es/event/event-manager.js.map +1 -1
- package/es/graphic/arc.d.ts +0 -7
- package/es/graphic/arc.js +1 -3
- package/es/graphic/arc.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-down.d.ts +12 -0
- package/es/graphic/builtin-symbol/arrow2-down.js +24 -0
- package/es/graphic/builtin-symbol/arrow2-down.js.map +1 -0
- package/es/graphic/builtin-symbol/arrow2-left.js +1 -1
- package/es/graphic/builtin-symbol/arrow2-left.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-right.js +1 -1
- package/es/graphic/builtin-symbol/arrow2-right.js.map +1 -1
- package/es/graphic/builtin-symbol/arrow2-up.d.ts +12 -0
- package/es/graphic/builtin-symbol/arrow2-up.js +24 -0
- package/es/graphic/builtin-symbol/arrow2-up.js.map +1 -0
- package/es/graphic/builtin-symbol/close.d.ts +13 -0
- package/es/graphic/builtin-symbol/close.js +27 -0
- package/es/graphic/builtin-symbol/close.js.map +1 -0
- package/es/graphic/builtin-symbol/index.d.ts +1 -1
- package/es/graphic/builtin-symbol/index.js +11 -1
- package/es/graphic/builtin-symbol/index.js.map +1 -1
- package/es/graphic/builtin-symbol/line-h.d.ts +13 -0
- package/es/graphic/builtin-symbol/line-h.js +26 -0
- package/es/graphic/builtin-symbol/line-h.js.map +1 -0
- package/es/graphic/builtin-symbol/line-v.d.ts +13 -0
- package/es/graphic/builtin-symbol/line-v.js +26 -0
- package/es/graphic/builtin-symbol/line-v.js.map +1 -0
- package/es/graphic/builtin-symbol/utils.d.ts +13 -5
- package/es/graphic/builtin-symbol/utils.js +25 -7
- package/es/graphic/builtin-symbol/utils.js.map +1 -1
- package/es/graphic/config.js +2 -1
- package/es/graphic/config.js.map +1 -1
- package/es/graphic/constants.d.ts +22 -0
- package/es/graphic/constants.js +26 -0
- package/es/graphic/constants.js.map +1 -1
- package/es/graphic/index.d.ts +1 -0
- package/es/graphic/index.js +2 -0
- package/es/graphic/index.js.map +1 -1
- package/es/graphic/symbol.d.ts +2 -1
- package/es/graphic/symbol.js +28 -1
- package/es/graphic/symbol.js.map +1 -1
- package/es/graphic/tools.d.ts +3 -2
- package/es/graphic/tools.js +59 -0
- package/es/graphic/tools.js.map +1 -1
- package/es/graphic/wrap-text.js +10 -14
- package/es/graphic/wrap-text.js.map +1 -1
- package/es/index.d.ts +2 -1
- package/es/index.js +3 -1
- package/es/index.js.map +1 -1
- package/es/interface/global.d.ts +13 -1
- package/es/interface/global.js.map +1 -1
- package/es/interface/graphic/arc.d.ts +0 -2
- package/es/interface/graphic/arc.js.map +1 -1
- package/es/interface/graphic/symbol.d.ts +3 -2
- package/es/interface/graphic/symbol.js.map +1 -1
- package/es/interface/graphic.d.ts +14 -1
- package/es/interface/graphic.js.map +1 -1
- package/es/interface/render.d.ts +1 -0
- package/es/interface/render.js.map +1 -1
- package/es/interface/stage.d.ts +4 -2
- package/es/interface/stage.js.map +1 -1
- package/es/jsx/graphicType.d.ts +136 -0
- package/es/jsx/graphicType.js +126 -0
- package/es/jsx/graphicType.js.map +1 -0
- package/es/jsx/index.d.ts +2 -0
- package/es/jsx/index.js +4 -0
- package/es/jsx/index.js.map +1 -0
- package/es/jsx/jsx-classic.d.ts +5 -0
- package/es/jsx/jsx-classic.js +63 -0
- package/es/jsx/jsx-classic.js.map +1 -0
- package/es/picker/contributions/canvas-picker/symbol-picker.js +6 -1
- package/es/picker/contributions/canvas-picker/symbol-picker.js.map +1 -1
- package/es/picker/pick-interceptor.js +2 -3
- package/es/picker/pick-interceptor.js.map +1 -1
- package/es/plugins/builtin-plugin/html-attribute-plugin.d.ts +13 -0
- package/es/plugins/builtin-plugin/html-attribute-plugin.js +71 -0
- package/es/plugins/builtin-plugin/html-attribute-plugin.js.map +1 -0
- package/es/render/contributions/render/arc-render.js +3 -10
- package/es/render/contributions/render/arc-render.js.map +1 -1
- package/es/render/contributions/render/contributions/arc-contribution-render.js +7 -9
- package/es/render/contributions/render/contributions/arc-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/circle-contribution-render.js +7 -9
- package/es/render/contributions/render/contributions/circle-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/rect-contribution-render.js +7 -9
- package/es/render/contributions/render/contributions/rect-contribution-render.js.map +1 -1
- package/es/render/contributions/render/contributions/symbol-contribution-render.js +20 -22
- package/es/render/contributions/render/contributions/symbol-contribution-render.js.map +1 -1
- package/es/render/contributions/render/draw-contribution.d.ts +3 -1
- package/es/render/contributions/render/draw-contribution.js +4 -0
- package/es/render/contributions/render/draw-contribution.js.map +1 -1
- package/es/render/contributions/render/symbol-render.js +12 -5
- package/es/render/contributions/render/symbol-render.js.map +1 -1
- package/es/render/render-service.js +3 -1
- package/es/render/render-service.js.map +1 -1
- package/es/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -8
|
@@ -50,7 +50,6 @@ export type ILayout = {
|
|
|
50
50
|
};
|
|
51
51
|
export type IBorderStyle = Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> & {
|
|
52
52
|
distance: number | string;
|
|
53
|
-
visible?: boolean;
|
|
54
53
|
};
|
|
55
54
|
export type IStrokeType = boolean | string | IColor | null;
|
|
56
55
|
export type IStrokeStyle = {
|
|
@@ -93,6 +92,15 @@ export type IGraphicStyle = IFillStyle & IStrokeStyle & {
|
|
|
93
92
|
texturePadding: number;
|
|
94
93
|
blur: number;
|
|
95
94
|
cursor: Cursor | null;
|
|
95
|
+
html: {
|
|
96
|
+
dom: string | HTMLElement;
|
|
97
|
+
container: string | HTMLElement | null;
|
|
98
|
+
width: number;
|
|
99
|
+
height: number;
|
|
100
|
+
style: string | Record<string, any>;
|
|
101
|
+
visible?: boolean;
|
|
102
|
+
anchorType?: 'position' | 'boundsLeftTop';
|
|
103
|
+
} | null;
|
|
96
104
|
};
|
|
97
105
|
export type IGraphicAttribute = IGraphicStyle & ITransform & {
|
|
98
106
|
strokeSeg: IStrokeSeg | null;
|
|
@@ -139,6 +147,11 @@ export interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphi
|
|
|
139
147
|
shadowRoot?: IShadowRoot;
|
|
140
148
|
glyphHost?: IGraphic<IGlyphGraphicAttribute>;
|
|
141
149
|
backgroundImg?: boolean;
|
|
150
|
+
bindDom?: Map<string | HTMLElement, {
|
|
151
|
+
container: HTMLElement | string;
|
|
152
|
+
dom: HTMLElement;
|
|
153
|
+
wrapGroup: HTMLDivElement;
|
|
154
|
+
}>;
|
|
142
155
|
valid: boolean;
|
|
143
156
|
parent: IGroup | null;
|
|
144
157
|
isContainer?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/graphic.ts"],"names":[],"mappings":"","file":"graphic.js","sourcesContent":["import type { IAABBBounds, IOBBBounds, IMatrix, IPointLike, IPoint } from '@visactor/vutils';\nimport type { IAnimate, IStep, EasingType, IAnimateTarget } from './animate';\nimport type { IColor } from './color';\nimport type { IGroup } from './graphic/group';\nimport type { IShadowRoot } from './graphic/shadow-root';\nimport type { ILayer } from './layer';\nimport type { INode } from './node-tree';\nimport type { ICustomPath2D } from './path';\nimport type { IStage } from './stage';\nimport type { IGlyphGraphicAttribute } from './graphic/glyph';\nimport type { IContainPointMode } from '../common/enums';\nimport type { IFace3d } from './graphic/face3d';\n\ntype IStrokeSeg = {\n start: number; // 百分比\n // end和length二选一\n end: number; // 百分比\n length: number; // 像素长度\n};\n\n// TODO 最后加一个any\nexport type GraphicType =\n | 'area'\n | 'circle'\n | 'ellipse'\n | 'line'\n | 'rect'\n | 'rect3d'\n | 'path'\n | 'richtext'\n | 'text'\n | 'arc'\n | 'arc3d'\n | 'image'\n | 'symbol'\n | 'group'\n | 'shadowroot'\n | 'polygon'\n | 'pyramid3d'\n | 'glyph';\n\n// Cursor style\n// See: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'none'\n | 'context-menu'\n | 'help'\n | 'pointer'\n | 'progress'\n | 'wait'\n | 'cell'\n | 'crosshair'\n | 'text'\n | 'vertical-text'\n | 'alias'\n | 'copy'\n | 'move'\n | 'no-drop'\n | 'not-allowed'\n | 'grab'\n | 'grabbing'\n | 'all-scroll'\n | 'col-resize'\n | 'row-resize'\n | 'n-resize'\n | 'e-resize'\n | 's-resize'\n | 'w-resize'\n | 'ne-resize'\n | 'nw-resize'\n | 'se-resize'\n | 'sw-resize'\n | 'ew-resize'\n | 'ns-resize'\n | 'nesw-resize'\n | 'nwse-resize'\n | 'zoom-in'\n | 'zoom-out';\n\nexport type ITransform = {\n x: number;\n y: number;\n z: number;\n dx: number;\n dy: number;\n dz: number;\n scrollX: number;\n scrollY: number;\n scaleX: number;\n scaleY: number;\n scaleZ: number;\n angle: number;\n alpha: number;\n beta: number;\n anchor: [number | string, number | string]; // 基于AABB的锚点位置,用于简单的定位某些path\n anchor3d: [number | string, number | string, number] | [number | string, number | string]; // 3d的锚点位置\n postMatrix: IMatrix;\n};\n\nexport type IFillType = boolean | string | IColor;\nexport type IFillStyle = {\n fillOpacity: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n fill: IFillType;\n};\n\nexport type ILayout = {\n alignSelf: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n};\n\nexport type IBorderStyle = Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> & {\n distance: number | string;\n visible?: boolean;\n};\n\nexport type IStrokeType = boolean | string | IColor | null;\nexport type IStrokeStyle = {\n outerBorder: Partial<IBorderStyle>;\n innerBorder: Partial<IBorderStyle>;\n strokeOpacity: number;\n lineDash: number[];\n lineDashOffset: number;\n lineWidth: number;\n lineCap: CanvasLineCap;\n lineJoin: CanvasLineJoin;\n miterLimit: number;\n // 描边的boundsBuffer,用于控制bounds的buffer\n strokeBoundsBuffer: number;\n /**\n * stroke - true 全描边\n * stroke - false 不描边\n * stroke 为数值类型,适用于rect\\arc等图形,用于配置部分描边的场景,其中\n *\n * 0b00000 - 不描边\n * 0b000001 - top\n * 0b000010 - right\n * 0b000100 - bottom\n * 0b001000 - left\n * 相应的:\n * 0b000011 - top + right\n * 0b000111 - top + right + bottom\n * 0b001111 - 全描边\n *\n * stroke - boolean[],适用于rect\\arc等图形,用于配置部分描边的场景\n */\n stroke: IStrokeType[] | IStrokeType;\n};\n\ntype TextureType = 'circle' | 'diamond' | 'rect' | 'vertical-line' | 'horizontal-line' | 'bias-lr' | 'bias-rl' | 'grid';\n\nexport type IConnectedStyle = {\n // 连接,取零或者断开\n connectedType: 'connect' | 'zero' | 'none';\n connectedStyle: {\n stroke: IStrokeStyle['stroke'];\n strokeOpacity: IStrokeStyle['strokeOpacity'];\n lineDash: IStrokeStyle['lineDash'];\n lineDashOffset: IStrokeStyle['lineDashOffset'];\n lineCap: IStrokeStyle['lineCap'];\n lineJoin: IStrokeStyle['lineJoin'];\n lineWidth: IStrokeStyle['lineWidth'];\n fill: IFillStyle['fill'];\n fillOpacity: IFillStyle['fillOpacity'];\n };\n connectedX: number;\n connectedY: number;\n};\n\nexport type IGraphicStyle = IFillStyle &\n IStrokeStyle & {\n opacity: number;\n backgroundMode: number; // 填充模式(与具体图元有关)\n background: string | HTMLImageElement | HTMLCanvasElement | null; // 背景,可以与fill同时存在\n texture: TextureType | string; // 纹理\n textureColor: string; // 纹理颜色\n textureSize: number; // 纹理大小\n texturePadding: number; // 纹理间隙\n blur: number;\n cursor: Cursor | null; // 鼠标样式\n };\n\nexport type IGraphicAttribute = IGraphicStyle &\n ITransform & {\n /**\n * stroke百分比\n */\n strokeSeg: IStrokeSeg | null;\n // 包围盒的padding\n boundsPadding: number | number[];\n /**\n * 选择模式,精确模式,粗糙模式(包围盒模式),自定义模式\n */\n pickMode: 'accurate' | 'imprecise' | 'custom';\n boundsMode: 'accurate' | 'imprecise';\n customPickShape: () => boolean | null;\n /**\n * 是否支持事件拾取,默认为 true。\n * @default true\n */\n pickable: boolean;\n /**\n * 对于 group 节点,是否支持其子元素的事件拾取,默认为 true。\n * 如果 group `pickable` 关闭,`childrenPickable` 开启,那么 group 的子节点仍参与事件拾取\n * @default true\n */\n childrenPickable: boolean;\n /**\n * 元素是否可见。\n * @default true\n */\n visible: boolean;\n zIndex: number;\n layout: any;\n /**\n * 是否在3d中控制方向\n * false: 不控制方向\n * true: 始终控制方向朝摄像机\n */\n keepDirIn3d?: boolean;\n };\n\nexport interface IGraphicJson<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>> {\n attribute: Partial<T>;\n _uid: number;\n type: string;\n name: string;\n children: IGraphicJson<T>[];\n}\n\n/** the context of setAttribute */\nexport type ISetAttributeContext = {\n /** type of setAttribute */\n type?: number;\n animationState?: {\n step?: IStep;\n isFirstFrameOfStep?: boolean;\n /** ratio of animation */\n ratio?: number;\n /** is animation end? */\n end?: boolean;\n };\n};\n\nexport type IGraphicAnimateParams = {\n id?: number | string;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n};\n\nexport interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>>\n extends INode,\n IAnimateTarget {\n type?: GraphicType;\n numberType?: number;\n stage?: IStage;\n layer?: ILayer;\n shadowRoot?: IShadowRoot;\n glyphHost?: IGraphic<IGlyphGraphicAttribute>;\n backgroundImg?: boolean;\n\n valid: boolean;\n parent: IGroup | null;\n isContainer?: boolean;\n // 是否是3d模式(是否应用3d视角)\n in3dMode?: boolean;\n\n // 上次更新的stamp\n stamp?: number;\n animationBackUps?: {\n from: Record<string, any>;\n to: Record<string, any>;\n };\n\n attribute: Partial<T>;\n\n /** 用于实现morph动画场景,转换成bezier曲线渲染 */\n pathProxy?: ICustomPath2D | ((attrs: T) => ICustomPath2D);\n incremental?: number;\n incrementalAt?: number;\n\n /** 记录state对应的图形属性 */\n states?: Record<string, Partial<T>>;\n normalAttrs?: Partial<T>;\n stateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;\n findFace?: () => IFace3d;\n toggleState: (stateName: string, hasAnimation?: boolean) => void;\n removeState: (stateName: string, hasAnimation?: boolean) => void;\n clearStates: (hasAnimation?: boolean) => void;\n useStates: (states: string[], hasAnimation?: boolean) => void;\n addState: (stateName: string, keepCurrentStates?: boolean, hasAnimation?: boolean) => void;\n hasState: (stateName?: string) => boolean;\n getState: (stateName: string) => Partial<T>;\n onBeforeAttributeUpdate?: (\n val: any,\n attributes: Partial<T>,\n key: null | string | string[],\n context?: ISetAttributeContext\n ) => T | undefined;\n applyStateAttrs: (attrs: Partial<T>, stateNames: string[], hasAnimation?: boolean, isClear?: boolean) => void;\n updateNormalAttrs: (stateAttrs: Partial<T>) => void;\n\n // get\n readonly AABBBounds: IAABBBounds; // 用于获取当前节点的AABB包围盒\n readonly OBBBounds: IOBBBounds; // 获取OBB包围盒,旋转防重叠需要用\n readonly globalAABBBounds: IAABBBounds; // 全局AABB包围盒\n readonly transMatrix: IMatrix; // 变换矩阵,动态计算\n readonly globalTransMatrix: IMatrix; // 变换矩阵,动态计算\n\n getOffsetXY: (attr?: ITransform) => IPoint;\n\n // function\n containsPoint: (x: number, y: number, mode?: IContainPointMode) => boolean;\n\n setMode: (mode: '3d' | '2d') => void;\n isValid: () => boolean;\n\n // TODO: transform API\n // 基于当前transform的变换,普通用户尽量别用,拿捏不住的~\n translate: (x: number, y: number) => this;\n translateTo: (x: number, y: number) => this;\n scale: (scaleX: number, scaleY: number, scaleCenter?: IPointLike) => this;\n scaleTo: (scaleX: number, scaleY: number) => this;\n rotate: (angle: number) => this;\n rotateTo: (angle: number) => this;\n skewTo: (b: number, c: number) => this;\n addUpdateBoundTag: () => void;\n addUpdateShapeAndBoundsTag: () => void;\n\n update: (d?: { bounds: boolean; trans: boolean }) => void;\n\n // animate\n animate: (params?: IGraphicAnimateParams) => IAnimate;\n\n // 语法糖,可有可无,有的为了首屏性能考虑做成get方法,有的由外界直接托管,内部不赋值\n name?: string;\n\n // 供render处理shape缓存tag\n shouldUpdateShape: () => boolean;\n clearUpdateShapeTag: () => void;\n\n // // 供render缓存shape\n // cacheShape?: ICustomPath2D;\n // // 线段使用的path2D\n // cacheLine?: ISegPath2D | ISegPath2D[];\n // // 面积图使用的path2D\n // cacheArea?: IAreaCacheItem | IAreaCacheItem[];\n\n setAttributes: (params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n initAttributes: (params: Partial<T>) => void;\n\n setAttribute: (key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n setStage: (stage?: IStage, layer?: ILayer) => void;\n onSetStage: (cb: (g: IGraphic, stage: IStage) => void) => void;\n\n shouldUpdateAABBBounds: () => boolean;\n shouldSelfChangeUpdateAABBBounds: () => boolean;\n shouldUpdateGlobalMatrix: () => boolean;\n\n addUpdatePositionTag: () => void;\n addUpdateGlobalPositionTag: () => void;\n\n attachShadow: () => IShadowRoot;\n detachShadow: () => void;\n\n toJson: () => IGraphicJson;\n\n /** 创建pathProxy */\n createPathProxy: (path?: string) => void;\n /** 将图形转换成CustomPath2D */\n toCustomPath?: () => ICustomPath2D;\n\n resources?: Map<\n string | HTMLImageElement | HTMLCanvasElement,\n { state: 'init' | 'loading' | 'success' | 'fail'; data?: HTMLImageElement | HTMLCanvasElement }\n >;\n imageLoadSuccess: (url: string, data: HTMLImageElement) => void;\n imageLoadFail: (url: string) => void;\n\n clone: () => IGraphic;\n stopAnimates: (stopChildren?: boolean) => void;\n}\n\nexport interface IRoot extends IGraphic {\n pick: (x: number, y: number) => IGraphic;\n}\n\n/**\n * 动画配置\n */\nexport type IAnimateConfig = {\n duration?: number;\n easing?: EasingType;\n};\n\nexport type GraphicReleaseStatus = 'released' | 'willRelease';\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/interface/graphic.ts"],"names":[],"mappings":"","file":"graphic.js","sourcesContent":["import type { IAABBBounds, IOBBBounds, IMatrix, IPointLike, IPoint } from '@visactor/vutils';\nimport type { IAnimate, IStep, EasingType, IAnimateTarget } from './animate';\nimport type { IColor } from './color';\nimport type { IGroup } from './graphic/group';\nimport type { IShadowRoot } from './graphic/shadow-root';\nimport type { ILayer } from './layer';\nimport type { INode } from './node-tree';\nimport type { ICustomPath2D } from './path';\nimport type { IStage } from './stage';\nimport type { IGlyphGraphicAttribute } from './graphic/glyph';\nimport type { IContainPointMode } from '../common/enums';\nimport type { IFace3d } from './graphic/face3d';\n\ntype IStrokeSeg = {\n start: number; // 百分比\n // end和length二选一\n end: number; // 百分比\n length: number; // 像素长度\n};\n\n// TODO 最后加一个any\nexport type GraphicType =\n | 'area'\n | 'circle'\n | 'ellipse'\n | 'line'\n | 'rect'\n | 'rect3d'\n | 'path'\n | 'richtext'\n | 'text'\n | 'arc'\n | 'arc3d'\n | 'image'\n | 'symbol'\n | 'group'\n | 'shadowroot'\n | 'polygon'\n | 'pyramid3d'\n | 'glyph';\n\n// Cursor style\n// See: https://developer.mozilla.org/en-US/docs/Web/CSS/cursor\nexport type Cursor =\n | 'auto'\n | 'default'\n | 'none'\n | 'context-menu'\n | 'help'\n | 'pointer'\n | 'progress'\n | 'wait'\n | 'cell'\n | 'crosshair'\n | 'text'\n | 'vertical-text'\n | 'alias'\n | 'copy'\n | 'move'\n | 'no-drop'\n | 'not-allowed'\n | 'grab'\n | 'grabbing'\n | 'all-scroll'\n | 'col-resize'\n | 'row-resize'\n | 'n-resize'\n | 'e-resize'\n | 's-resize'\n | 'w-resize'\n | 'ne-resize'\n | 'nw-resize'\n | 'se-resize'\n | 'sw-resize'\n | 'ew-resize'\n | 'ns-resize'\n | 'nesw-resize'\n | 'nwse-resize'\n | 'zoom-in'\n | 'zoom-out';\n\nexport type ITransform = {\n x: number;\n y: number;\n z: number;\n dx: number;\n dy: number;\n dz: number;\n scrollX: number;\n scrollY: number;\n scaleX: number;\n scaleY: number;\n scaleZ: number;\n angle: number;\n alpha: number;\n beta: number;\n anchor: [number | string, number | string]; // 基于AABB的锚点位置,用于简单的定位某些path\n anchor3d: [number | string, number | string, number] | [number | string, number | string]; // 3d的锚点位置\n postMatrix: IMatrix;\n};\n\nexport type IFillType = boolean | string | IColor;\nexport type IFillStyle = {\n fillOpacity: number;\n shadowBlur: number;\n shadowColor: string;\n shadowOffsetX: number;\n shadowOffsetY: number;\n fill: IFillType;\n};\n\nexport type ILayout = {\n alignSelf: 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n};\n\nexport type IBorderStyle = Omit<IStrokeStyle, 'outerBorder' | 'innerBorder'> & {\n distance: number | string;\n};\n\nexport type IStrokeType = boolean | string | IColor | null;\nexport type IStrokeStyle = {\n outerBorder: Partial<IBorderStyle>;\n innerBorder: Partial<IBorderStyle>;\n strokeOpacity: number;\n lineDash: number[];\n lineDashOffset: number;\n lineWidth: number;\n lineCap: CanvasLineCap;\n lineJoin: CanvasLineJoin;\n miterLimit: number;\n // 描边的boundsBuffer,用于控制bounds的buffer\n strokeBoundsBuffer: number;\n /**\n * stroke - true 全描边\n * stroke - false 不描边\n * stroke 为数值类型,适用于rect\\arc等图形,用于配置部分描边的场景,其中\n *\n * 0b00000 - 不描边\n * 0b000001 - top\n * 0b000010 - right\n * 0b000100 - bottom\n * 0b001000 - left\n * 相应的:\n * 0b000011 - top + right\n * 0b000111 - top + right + bottom\n * 0b001111 - 全描边\n *\n * stroke - boolean[],适用于rect\\arc等图形,用于配置部分描边的场景\n */\n stroke: IStrokeType[] | IStrokeType;\n};\n\ntype TextureType = 'circle' | 'diamond' | 'rect' | 'vertical-line' | 'horizontal-line' | 'bias-lr' | 'bias-rl' | 'grid';\n\nexport type IConnectedStyle = {\n // 连接,取零或者断开\n connectedType: 'connect' | 'zero' | 'none';\n connectedStyle: {\n stroke: IStrokeStyle['stroke'];\n strokeOpacity: IStrokeStyle['strokeOpacity'];\n lineDash: IStrokeStyle['lineDash'];\n lineDashOffset: IStrokeStyle['lineDashOffset'];\n lineCap: IStrokeStyle['lineCap'];\n lineJoin: IStrokeStyle['lineJoin'];\n lineWidth: IStrokeStyle['lineWidth'];\n fill: IFillStyle['fill'];\n fillOpacity: IFillStyle['fillOpacity'];\n };\n connectedX: number;\n connectedY: number;\n};\n\nexport type IGraphicStyle = IFillStyle &\n IStrokeStyle & {\n opacity: number;\n backgroundMode: number; // 填充模式(与具体图元有关)\n background: string | HTMLImageElement | HTMLCanvasElement | null; // 背景,可以与fill同时存在\n texture: TextureType | string; // 纹理\n textureColor: string; // 纹理颜色\n textureSize: number; // 纹理大小\n texturePadding: number; // 纹理间隙\n blur: number;\n cursor: Cursor | null; // 鼠标样式\n // HTML的dom或者string\n html: {\n dom: string | HTMLElement; // dom字符串或者dom\n container: string | HTMLElement | null; // id或者dom\n width: number; // 容器的宽度\n height: number; // 容器的高度\n style: string | Record<string, any>; // 容器的样式\n visible?: boolean;\n anchorType?: 'position' | 'boundsLeftTop';\n } | null;\n };\n\nexport type IGraphicAttribute = IGraphicStyle &\n ITransform & {\n /**\n * stroke百分比\n */\n strokeSeg: IStrokeSeg | null;\n // 包围盒的padding\n boundsPadding: number | number[];\n /**\n * 选择模式,精确模式,粗糙模式(包围盒模式),自定义模式\n */\n pickMode: 'accurate' | 'imprecise' | 'custom';\n boundsMode: 'accurate' | 'imprecise';\n customPickShape: () => boolean | null;\n /**\n * 是否支持事件拾取,默认为 true。\n * @default true\n */\n pickable: boolean;\n /**\n * 对于 group 节点,是否支持其子元素的事件拾取,默认为 true。\n * 如果 group `pickable` 关闭,`childrenPickable` 开启,那么 group 的子节点仍参与事件拾取\n * @default true\n */\n childrenPickable: boolean;\n /**\n * 元素是否可见。\n * @default true\n */\n visible: boolean;\n zIndex: number;\n layout: any;\n /**\n * 是否在3d中控制方向\n * false: 不控制方向\n * true: 始终控制方向朝摄像机\n */\n keepDirIn3d?: boolean;\n };\n\nexport interface IGraphicJson<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>> {\n attribute: Partial<T>;\n _uid: number;\n type: string;\n name: string;\n children: IGraphicJson<T>[];\n}\n\n/** the context of setAttribute */\nexport type ISetAttributeContext = {\n /** type of setAttribute */\n type?: number;\n animationState?: {\n step?: IStep;\n isFirstFrameOfStep?: boolean;\n /** ratio of animation */\n ratio?: number;\n /** is animation end? */\n end?: boolean;\n };\n};\n\nexport type IGraphicAnimateParams = {\n id?: number | string;\n onStart?: () => void;\n onFrame?: (step: IStep, ratio: number) => void;\n onEnd?: () => void;\n onRemove?: () => void;\n interpolate?: (key: string, ratio: number, from: any, to: any, nextAttributes: any) => boolean;\n};\n\nexport interface IGraphic<T extends Partial<IGraphicAttribute> = Partial<IGraphicAttribute>>\n extends INode,\n IAnimateTarget {\n type?: GraphicType;\n numberType?: number;\n stage?: IStage;\n layer?: ILayer;\n shadowRoot?: IShadowRoot;\n glyphHost?: IGraphic<IGlyphGraphicAttribute>;\n backgroundImg?: boolean;\n\n bindDom?: Map<string | HTMLElement, { container: HTMLElement | string; dom: HTMLElement; wrapGroup: HTMLDivElement }>;\n\n valid: boolean;\n parent: IGroup | null;\n isContainer?: boolean;\n // 是否是3d模式(是否应用3d视角)\n in3dMode?: boolean;\n\n // 上次更新的stamp\n stamp?: number;\n animationBackUps?: {\n from: Record<string, any>;\n to: Record<string, any>;\n };\n\n attribute: Partial<T>;\n\n /** 用于实现morph动画场景,转换成bezier曲线渲染 */\n pathProxy?: ICustomPath2D | ((attrs: T) => ICustomPath2D);\n incremental?: number;\n incrementalAt?: number;\n\n /** 记录state对应的图形属性 */\n states?: Record<string, Partial<T>>;\n normalAttrs?: Partial<T>;\n stateProxy?: (stateName: string, targetStates?: string[]) => Partial<T>;\n findFace?: () => IFace3d;\n toggleState: (stateName: string, hasAnimation?: boolean) => void;\n removeState: (stateName: string, hasAnimation?: boolean) => void;\n clearStates: (hasAnimation?: boolean) => void;\n useStates: (states: string[], hasAnimation?: boolean) => void;\n addState: (stateName: string, keepCurrentStates?: boolean, hasAnimation?: boolean) => void;\n hasState: (stateName?: string) => boolean;\n getState: (stateName: string) => Partial<T>;\n onBeforeAttributeUpdate?: (\n val: any,\n attributes: Partial<T>,\n key: null | string | string[],\n context?: ISetAttributeContext\n ) => T | undefined;\n applyStateAttrs: (attrs: Partial<T>, stateNames: string[], hasAnimation?: boolean, isClear?: boolean) => void;\n updateNormalAttrs: (stateAttrs: Partial<T>) => void;\n\n // get\n readonly AABBBounds: IAABBBounds; // 用于获取当前节点的AABB包围盒\n readonly OBBBounds: IOBBBounds; // 获取OBB包围盒,旋转防重叠需要用\n readonly globalAABBBounds: IAABBBounds; // 全局AABB包围盒\n readonly transMatrix: IMatrix; // 变换矩阵,动态计算\n readonly globalTransMatrix: IMatrix; // 变换矩阵,动态计算\n\n getOffsetXY: (attr?: ITransform) => IPoint;\n\n // function\n containsPoint: (x: number, y: number, mode?: IContainPointMode) => boolean;\n\n setMode: (mode: '3d' | '2d') => void;\n isValid: () => boolean;\n\n // TODO: transform API\n // 基于当前transform的变换,普通用户尽量别用,拿捏不住的~\n translate: (x: number, y: number) => this;\n translateTo: (x: number, y: number) => this;\n scale: (scaleX: number, scaleY: number, scaleCenter?: IPointLike) => this;\n scaleTo: (scaleX: number, scaleY: number) => this;\n rotate: (angle: number) => this;\n rotateTo: (angle: number) => this;\n skewTo: (b: number, c: number) => this;\n addUpdateBoundTag: () => void;\n addUpdateShapeAndBoundsTag: () => void;\n\n update: (d?: { bounds: boolean; trans: boolean }) => void;\n\n // animate\n animate: (params?: IGraphicAnimateParams) => IAnimate;\n\n // 语法糖,可有可无,有的为了首屏性能考虑做成get方法,有的由外界直接托管,内部不赋值\n name?: string;\n\n // 供render处理shape缓存tag\n shouldUpdateShape: () => boolean;\n clearUpdateShapeTag: () => void;\n\n // // 供render缓存shape\n // cacheShape?: ICustomPath2D;\n // // 线段使用的path2D\n // cacheLine?: ISegPath2D | ISegPath2D[];\n // // 面积图使用的path2D\n // cacheArea?: IAreaCacheItem | IAreaCacheItem[];\n\n setAttributes: (params: Partial<T>, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n initAttributes: (params: Partial<T>) => void;\n\n setAttribute: (key: string, value: any, forceUpdateTag?: boolean, context?: ISetAttributeContext) => void;\n\n setStage: (stage?: IStage, layer?: ILayer) => void;\n onSetStage: (cb: (g: IGraphic, stage: IStage) => void) => void;\n\n shouldUpdateAABBBounds: () => boolean;\n shouldSelfChangeUpdateAABBBounds: () => boolean;\n shouldUpdateGlobalMatrix: () => boolean;\n\n addUpdatePositionTag: () => void;\n addUpdateGlobalPositionTag: () => void;\n\n attachShadow: () => IShadowRoot;\n detachShadow: () => void;\n\n toJson: () => IGraphicJson;\n\n /** 创建pathProxy */\n createPathProxy: (path?: string) => void;\n /** 将图形转换成CustomPath2D */\n toCustomPath?: () => ICustomPath2D;\n\n resources?: Map<\n string | HTMLImageElement | HTMLCanvasElement,\n { state: 'init' | 'loading' | 'success' | 'fail'; data?: HTMLImageElement | HTMLCanvasElement }\n >;\n imageLoadSuccess: (url: string, data: HTMLImageElement) => void;\n imageLoadFail: (url: string) => void;\n\n clone: () => IGraphic;\n stopAnimates: (stopChildren?: boolean) => void;\n}\n\nexport interface IRoot extends IGraphic {\n pick: (x: number, y: number) => IGraphic;\n}\n\n/**\n * 动画配置\n */\nexport type IAnimateConfig = {\n duration?: number;\n easing?: EasingType;\n};\n\nexport type GraphicReleaseStatus = 'released' | 'willRelease';\n"]}
|
package/es/interface/render.d.ts
CHANGED
|
@@ -57,6 +57,7 @@ export interface IDrawContribution {
|
|
|
57
57
|
defaultRenderMap: Map<number, IGraphicRender>;
|
|
58
58
|
styleRenderMap: Map<string, Map<number, IGraphicRender>>;
|
|
59
59
|
draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;
|
|
60
|
+
afterDraw?: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;
|
|
60
61
|
getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;
|
|
61
62
|
renderGroup: (group: IGroup, drawContext: IDrawContext, skipSort?: boolean) => void;
|
|
62
63
|
renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/render.ts"],"names":[],"mappings":"","file":"render.js","sourcesContent":["import type { IAABBBounds, IBounds } from '@visactor/vutils';\nimport type { IColor } from './color';\nimport type { IContext2d } from './context';\nimport type { IGraphic, IGraphicAttribute } from './graphic';\nimport type { IMarkAttribute, IThemeAttribute } from './graphic/creator';\nimport type { IFullThemeSpec } from './graphic/theme';\nimport type { ILayer } from './layer';\nimport type { IStage } from './stage';\nimport type { IGroup } from './graphic/group';\nimport type { MaybePromise } from './common';\nimport type { ISyncHook } from './sync-hook';\n\n// 用于绘制的参数,提供context\n// TODO: 考虑是否可以隐藏上下文类型\nexport interface IRenderServiceDrawParams {\n context?: IContext2d;\n\n // 绘制的区域以及是否需要清屏\n clear?: string | IColor;\n width: number;\n height: number;\n x: number;\n y: number;\n stage: IStage;\n layer: ILayer;\n renderService: IRenderService;\n updateBounds: boolean;\n renderStyle?: string;\n}\n\nexport interface IRenderService {\n dirtyBounds: IBounds;\n renderTreeRoots: IGraphic[]; // 此次render的数组\n renderLists: IGraphic[];\n drawParams: IRenderServiceDrawParams;\n\n prepare: (updateBounds: boolean) => void;\n prepareRenderList: () => void;\n beforeDraw: (params: IRenderServiceDrawParams) => void;\n draw: (params: IRenderServiceDrawParams) => void;\n afterDraw: (params: IRenderServiceDrawParams) => void;\n render: (groups: IGroup[], params: IRenderServiceDrawParams) => MaybePromise<void>;\n}\n\nexport interface IDrawContext extends IRenderServiceDrawParams {\n startAtId?: number;\n break?: boolean;\n restartIncremental?: boolean;\n // multi图元开始的位置\n multiGraphicOptions?: {\n startAtIdx: number;\n length: number;\n };\n in3dInterceptor?: boolean;\n drawContribution?: IDrawContribution;\n // hack内容\n hack_pieFace?: 'inside' | 'bottom' | 'top' | 'outside';\n}\n\nexport interface IDrawContribution {\n hooks?: {\n completeDraw: ISyncHook<[]>;\n };\n dirtyBounds?: IAABBBounds;\n backupDirtyBounds?: IAABBBounds;\n rendering?: boolean;\n currentRenderMap: Map<number, IGraphicRender>;\n defaultRenderMap: Map<number, IGraphicRender>;\n styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;\n renderGroup: (group: IGroup, drawContext: IDrawContext, skipSort?: boolean) => void;\n renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;\n}\n\nexport interface IGraphicRenderDrawParams {\n beforeDrawCb?: () => void;\n afterDrawCb?: () => void;\n drawingCb?: () => void;\n skipDraw?: boolean;\n theme?: IFullThemeSpec;\n}\n\nexport interface IGraphicRender {\n type: string; // 图元类型\n numberType: number;\n style?: string;\n z?: number;\n draw: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams\n ) => void;\n drawShape?: (\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) => void;\n}\n\nexport interface IBeforeRenderConstribution {\n apply: (renderService: IRenderService) => MaybePromise<void>;\n}\n\nexport interface IRenderSelector {\n selector: (graphic: IGraphic) => IGraphicRender | null;\n}\n\nexport interface IDrawItemInterceptorContribution {\n order: number;\n beforeDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n afterDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/interface/render.ts"],"names":[],"mappings":"","file":"render.js","sourcesContent":["import type { IAABBBounds, IBounds } from '@visactor/vutils';\nimport type { IColor } from './color';\nimport type { IContext2d } from './context';\nimport type { IGraphic, IGraphicAttribute } from './graphic';\nimport type { IMarkAttribute, IThemeAttribute } from './graphic/creator';\nimport type { IFullThemeSpec } from './graphic/theme';\nimport type { ILayer } from './layer';\nimport type { IStage } from './stage';\nimport type { IGroup } from './graphic/group';\nimport type { MaybePromise } from './common';\nimport type { ISyncHook } from './sync-hook';\n\n// 用于绘制的参数,提供context\n// TODO: 考虑是否可以隐藏上下文类型\nexport interface IRenderServiceDrawParams {\n context?: IContext2d;\n\n // 绘制的区域以及是否需要清屏\n clear?: string | IColor;\n width: number;\n height: number;\n x: number;\n y: number;\n stage: IStage;\n layer: ILayer;\n renderService: IRenderService;\n updateBounds: boolean;\n renderStyle?: string;\n}\n\nexport interface IRenderService {\n dirtyBounds: IBounds;\n renderTreeRoots: IGraphic[]; // 此次render的数组\n renderLists: IGraphic[];\n drawParams: IRenderServiceDrawParams;\n\n prepare: (updateBounds: boolean) => void;\n prepareRenderList: () => void;\n beforeDraw: (params: IRenderServiceDrawParams) => void;\n draw: (params: IRenderServiceDrawParams) => void;\n afterDraw: (params: IRenderServiceDrawParams) => void;\n render: (groups: IGroup[], params: IRenderServiceDrawParams) => MaybePromise<void>;\n}\n\nexport interface IDrawContext extends IRenderServiceDrawParams {\n startAtId?: number;\n break?: boolean;\n restartIncremental?: boolean;\n // multi图元开始的位置\n multiGraphicOptions?: {\n startAtIdx: number;\n length: number;\n };\n in3dInterceptor?: boolean;\n drawContribution?: IDrawContribution;\n // hack内容\n hack_pieFace?: 'inside' | 'bottom' | 'top' | 'outside';\n}\n\nexport interface IDrawContribution {\n hooks?: {\n completeDraw: ISyncHook<[]>;\n };\n dirtyBounds?: IAABBBounds;\n backupDirtyBounds?: IAABBBounds;\n rendering?: boolean;\n currentRenderMap: Map<number, IGraphicRender>;\n defaultRenderMap: Map<number, IGraphicRender>;\n styleRenderMap: Map<string, Map<number, IGraphicRender>>;\n draw: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n afterDraw?: (renderService: IRenderService, drawParams: IDrawContext) => MaybePromise<void>;\n getRenderContribution: (graphic: IGraphic) => IGraphicRender | null;\n renderGroup: (group: IGroup, drawContext: IDrawContext, skipSort?: boolean) => void;\n renderItem: (graphic: IGraphic, drawContext: IDrawContext, params?: IGraphicRenderDrawParams) => void;\n}\n\nexport interface IGraphicRenderDrawParams {\n beforeDrawCb?: () => void;\n afterDrawCb?: () => void;\n drawingCb?: () => void;\n skipDraw?: boolean;\n theme?: IFullThemeSpec;\n}\n\nexport interface IGraphicRender {\n type: string; // 图元类型\n numberType: number;\n style?: string;\n z?: number;\n draw: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams\n ) => void;\n drawShape?: (\n graphic: IGraphic,\n ctx: IContext2d,\n x: number,\n y: number,\n drawContext: IDrawContext,\n params?: IGraphicRenderDrawParams,\n fillCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean,\n strokeCb?: (\n ctx: IContext2d,\n markAttribute: Partial<IMarkAttribute & IGraphicAttribute>,\n themeAttribute: IThemeAttribute\n ) => boolean\n ) => void;\n}\n\nexport interface IBeforeRenderConstribution {\n apply: (renderService: IRenderService) => MaybePromise<void>;\n}\n\nexport interface IRenderSelector {\n selector: (graphic: IGraphic) => IGraphicRender | null;\n}\n\nexport interface IDrawItemInterceptorContribution {\n order: number;\n beforeDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n afterDrawItem?: (\n graphic: IGraphic,\n renderService: IRenderService,\n drawContext: IDrawContext,\n drawContribution: IDrawContribution,\n params?: IGraphicRenderDrawParams\n ) => boolean;\n}\n"]}
|
package/es/interface/stage.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { ILayer } from './layer';
|
|
|
3
3
|
import type { IGraphic } from './graphic';
|
|
4
4
|
import type { IGroup } from './graphic/group';
|
|
5
5
|
import type { IColor } from './color';
|
|
6
|
-
import type { IBounds, IBoundsLike, IMatrix } from '@visactor/vutils';
|
|
6
|
+
import type { IAABBBounds, IBounds, IBoundsLike, IMatrix } from '@visactor/vutils';
|
|
7
7
|
import type { ICamera } from './camera';
|
|
8
8
|
import type { vec3 } from './matrix';
|
|
9
9
|
import type { IDirectionLight } from './light';
|
|
@@ -29,6 +29,7 @@ export interface IStageParams {
|
|
|
29
29
|
enableLayout: boolean;
|
|
30
30
|
disableDirtyBounds: boolean;
|
|
31
31
|
interactiveLayer: boolean;
|
|
32
|
+
enableHtmlAttribute: string | boolean | HTMLElement;
|
|
32
33
|
poptip: boolean;
|
|
33
34
|
beforeRender: (stage: IStage) => void;
|
|
34
35
|
afterRender: (stage: IStage) => void;
|
|
@@ -63,6 +64,7 @@ export interface IStage extends INode {
|
|
|
63
64
|
parent: IStage | null;
|
|
64
65
|
x: number;
|
|
65
66
|
y: number;
|
|
67
|
+
params: Partial<IStageParams>;
|
|
66
68
|
window: IWindow;
|
|
67
69
|
width: number;
|
|
68
70
|
height: number;
|
|
@@ -117,7 +119,7 @@ export interface IStage extends INode {
|
|
|
117
119
|
height: number;
|
|
118
120
|
}) => void;
|
|
119
121
|
renderToNewWindow: (fullImage?: boolean) => IWindow;
|
|
120
|
-
toCanvas: (fullImage?: boolean) => HTMLCanvasElement | null;
|
|
122
|
+
toCanvas: (fullImage?: boolean, viewBox?: IAABBBounds) => HTMLCanvasElement | null;
|
|
121
123
|
setBeforeRender: (cb: (stage: IStage) => void) => void;
|
|
122
124
|
setAfterRender: (cb: (stage: IStage) => void) => void;
|
|
123
125
|
afterNextRender: (cb: (stage: IStage) => void) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/interface/stage.ts"],"names":[],"mappings":"","file":"stage.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { ILayer } from './layer';\nimport type { IGraphic } from './graphic';\nimport type { IGroup } from './graphic/group';\nimport type { IColor } from './color';\nimport type { IBounds, IBoundsLike, IMatrix, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { vec3 } from './matrix';\nimport type { IDirectionLight } from './light';\nimport type { ISyncHook } from './sync-hook';\nimport type { IDrawContext, IRenderService } from './render';\nimport type { ITicker } from './animate';\nimport type { IPickerService } from './picker';\nimport type { IPluginService } from './plugin';\nimport type { IWindow } from './window';\nimport type { ILayerService } from './core';\n\nexport type IExportType = 'canvas' | 'imageData';\n\nexport interface IStageParams {\n // x: number;\n // y: number;\n // // 视口的宽高\n // viewWidth: number;\n // viewHeight: number;\n\n // 视口的宽高\n viewBox: IBoundsLike;\n // 总的宽高\n width: number;\n height: number;\n dpr: number;\n // stage的背景\n background: string | IColor;\n // 外部的canvas\n canvas: string | HTMLCanvasElement;\n // canvas的container容器,如果不传入canvas,那就会在容器中创建canvas\n container: string | HTMLElement;\n // 是否是受控制的canvas,如果不是的话,不会进行resize等操作,也不会修改canvas的样式\n canvasControled: boolean;\n title: string;\n // 是否开启自动渲染\n autoRender: boolean;\n // 是否开启布局支持\n enableLayout: boolean;\n // 是否关闭脏矩形检测\n disableDirtyBounds: boolean;\n // 是否支持interactiveLayer,默认为true\n interactiveLayer: boolean;\n poptip: boolean;\n // 绘制之前的钩子函数\n beforeRender: (stage: IStage) => void;\n // 绘制之后的钩子函数\n afterRender: (stage: IStage) => void;\n renderStyle?: string;\n ticker?: ITicker;\n pluginList?: string[];\n}\n\nexport interface IOption3D {\n enableView3dTransform?: boolean; // 是否开启view3d自动旋转\n alpha?: number; // x轴的转角\n beta?: number; // y轴的转角\n gama?: number; // z轴的转角\n center?: { x?: number; y?: number; z?: number; dx?: number; dy?: number; dz?: number }; // 中心位置\n fieldRatio?: number; // 透视的视域缩放比例\n fieldDepth?: number;\n light?: {\n dir?: vec3;\n color?: string;\n ambient?: number;\n };\n // 配置相机后,alpha、beta、gamma配置会失效\n camera?: any; // 相机配置\n}\n\n// TODO 命名方式\nexport interface IStage extends INode {\n stage?: IStage;\n parent: IStage | null;\n // rootNode: IStage;\n x: number;\n y: number;\n\n window: IWindow;\n\n width: number;\n height: number;\n viewWidth: number;\n viewHeight: number;\n defaultLayer: ILayer;\n dirtyBounds: IBounds | null;\n\n autoRender: boolean;\n renderCount: number;\n\n hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n option3d?: IOption3D;\n\n set3dOptions: (options: IOption3D) => void;\n light?: IDirectionLight;\n camera?: ICamera;\n\n dpr: number;\n\n viewBox: IBoundsLike;\n background: string | IColor;\n ticker: ITicker;\n increaseAutoRender: boolean;\n readonly renderService: IRenderService;\n readonly pickerService: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer: (canvasId?: string) => ILayer;\n getLayer: (name: string) => ILayer;\n sortLayer: (cb: (layer1: ILayer, layer2: ILayer) => number) => void;\n removeLayer: (layerId: number) => ILayer | false;\n\n render: (layers?: ILayer[], params?: Partial<IDrawContext>) => void;\n renderNextFrame: (layers?: ILayer[]) => void;\n tryInitInteractiveLayer: () => void;\n\n // 画布操作\n resize: (w: number, h: number, rerender?: boolean) => void;\n resizeWindow: (w: number, h: number, rerender?: boolean) => void;\n resizeView: (w: number, h: number, rerender?: boolean) => void;\n setViewBox:\n | ((viewBox: IBoundsLike, rerender: boolean) => void)\n | ((x: number, y: number, w: number, h: number, rerender: boolean) => void)\n | ((x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean) => void);\n setDpr: (dpr: number) => void;\n setOrigin: (x: number, y: number) => void;\n export: (type: IExportType) => HTMLCanvasElement | ImageData;\n pick: (x: number, y: number) => { graphic: IGraphic | null; group: IGroup | null } | false;\n\n // 动画相关\n startAnimate: (t: number) => void;\n setToFrame: (t: number) => void;\n dirty: (b: IBounds, matrix?: IMatrix) => void;\n // 考虑操作回放\n\n renderTo: (window: IWindow, params: { x: number; y: number; width: number; height: number }) => void;\n\n renderToNewWindow: (fullImage?: boolean) => IWindow;\n\n toCanvas: (fullImage?: boolean) => HTMLCanvasElement | null;\n\n setBeforeRender: (cb: (stage: IStage) => void) => void;\n\n setAfterRender: (cb: (stage: IStage) => void) => void;\n\n afterNextRender: (cb: (stage: IStage) => void) => void;\n enableAutoRender: () => void;\n disableAutoRender: () => void;\n enableIncrementalAutoRender: () => void;\n disableIncrementalAutoRender: () => void;\n enableDirtyBounds: () => void;\n disableDirtyBounds: () => void;\n enableView3dTransform: () => void;\n disableView3dTranform: () => void;\n clearViewBox: (color?: string) => void;\n release: () => void;\n setStage: (stage?: IStage) => void;\n\n setCursor: (mode?: string) => void;\n}\n\nexport declare function combineStage(srages: IStage[], params: { canvas: string | HTMLCanvasElement }): IStage;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/interface/stage.ts"],"names":[],"mappings":"","file":"stage.js","sourcesContent":["import type { INode } from './node-tree';\nimport type { ILayer } from './layer';\nimport type { IGraphic } from './graphic';\nimport type { IGroup } from './graphic/group';\nimport type { IColor } from './color';\nimport type { IAABBBounds, IBounds, IBoundsLike, IMatrix, IPointLike } from '@visactor/vutils';\nimport type { ICamera } from './camera';\nimport type { vec3 } from './matrix';\nimport type { IDirectionLight } from './light';\nimport type { ISyncHook } from './sync-hook';\nimport type { IDrawContext, IRenderService } from './render';\nimport type { ITicker } from './animate';\nimport type { IPickerService } from './picker';\nimport type { IPluginService } from './plugin';\nimport type { IWindow } from './window';\nimport type { ILayerService } from './core';\n\nexport type IExportType = 'canvas' | 'imageData';\n\nexport interface IStageParams {\n // x: number;\n // y: number;\n // // 视口的宽高\n // viewWidth: number;\n // viewHeight: number;\n\n // 视口的宽高\n viewBox: IBoundsLike;\n // 总的宽高\n width: number;\n height: number;\n dpr: number;\n // stage的背景\n background: string | IColor;\n // 外部的canvas\n canvas: string | HTMLCanvasElement;\n // canvas的container容器,如果不传入canvas,那就会在容器中创建canvas\n container: string | HTMLElement;\n // 是否是受控制的canvas,如果不是的话,不会进行resize等操作,也不会修改canvas的样式\n canvasControled: boolean;\n title: string;\n // 是否开启自动渲染\n autoRender: boolean;\n // 是否开启布局支持\n enableLayout: boolean;\n // 是否关闭脏矩形检测\n disableDirtyBounds: boolean;\n // 是否支持interactiveLayer,默认为true\n interactiveLayer: boolean;\n // 是否支持HTML属性\n enableHtmlAttribute: string | boolean | HTMLElement;\n poptip: boolean;\n // 绘制之前的钩子函数\n beforeRender: (stage: IStage) => void;\n // 绘制之后的钩子函数\n afterRender: (stage: IStage) => void;\n renderStyle?: string;\n ticker?: ITicker;\n pluginList?: string[];\n}\n\nexport interface IOption3D {\n enableView3dTransform?: boolean; // 是否开启view3d自动旋转\n alpha?: number; // x轴的转角\n beta?: number; // y轴的转角\n gama?: number; // z轴的转角\n center?: { x?: number; y?: number; z?: number; dx?: number; dy?: number; dz?: number }; // 中心位置\n fieldRatio?: number; // 透视的视域缩放比例\n fieldDepth?: number;\n light?: {\n dir?: vec3;\n color?: string;\n ambient?: number;\n };\n // 配置相机后,alpha、beta、gamma配置会失效\n camera?: any; // 相机配置\n}\n\n// TODO 命名方式\nexport interface IStage extends INode {\n stage?: IStage;\n parent: IStage | null;\n // rootNode: IStage;\n x: number;\n y: number;\n\n params: Partial<IStageParams>;\n\n window: IWindow;\n\n width: number;\n height: number;\n viewWidth: number;\n viewHeight: number;\n defaultLayer: ILayer;\n dirtyBounds: IBounds | null;\n\n autoRender: boolean;\n renderCount: number;\n\n hooks: {\n beforeRender: ISyncHook<[IStage]>;\n afterRender: ISyncHook<[IStage]>;\n };\n\n option3d?: IOption3D;\n\n set3dOptions: (options: IOption3D) => void;\n light?: IDirectionLight;\n camera?: ICamera;\n\n dpr: number;\n\n viewBox: IBoundsLike;\n background: string | IColor;\n ticker: ITicker;\n increaseAutoRender: boolean;\n readonly renderService: IRenderService;\n readonly pickerService: IPickerService;\n readonly pluginService: IPluginService;\n readonly layerService: ILayerService;\n // 如果传入CanvasId,如果存在相同Id,说明这两个图层使用相同的Canvas绘制\n // 但需要注意的是依然是两个图层(用于解决Table嵌入ChartSpace不影响Table的绘制)\n createLayer: (canvasId?: string) => ILayer;\n getLayer: (name: string) => ILayer;\n sortLayer: (cb: (layer1: ILayer, layer2: ILayer) => number) => void;\n removeLayer: (layerId: number) => ILayer | false;\n\n render: (layers?: ILayer[], params?: Partial<IDrawContext>) => void;\n renderNextFrame: (layers?: ILayer[]) => void;\n tryInitInteractiveLayer: () => void;\n\n // 画布操作\n resize: (w: number, h: number, rerender?: boolean) => void;\n resizeWindow: (w: number, h: number, rerender?: boolean) => void;\n resizeView: (w: number, h: number, rerender?: boolean) => void;\n setViewBox:\n | ((viewBox: IBoundsLike, rerender: boolean) => void)\n | ((x: number, y: number, w: number, h: number, rerender: boolean) => void)\n | ((x: number | IBoundsLike, y: number | boolean, w?: number, h?: number, rerender?: boolean) => void);\n setDpr: (dpr: number) => void;\n setOrigin: (x: number, y: number) => void;\n export: (type: IExportType) => HTMLCanvasElement | ImageData;\n pick: (x: number, y: number) => { graphic: IGraphic | null; group: IGroup | null } | false;\n\n // 动画相关\n startAnimate: (t: number) => void;\n setToFrame: (t: number) => void;\n dirty: (b: IBounds, matrix?: IMatrix) => void;\n // 考虑操作回放\n\n renderTo: (window: IWindow, params: { x: number; y: number; width: number; height: number }) => void;\n\n renderToNewWindow: (fullImage?: boolean) => IWindow;\n\n toCanvas: (fullImage?: boolean, viewBox?: IAABBBounds) => HTMLCanvasElement | null;\n\n setBeforeRender: (cb: (stage: IStage) => void) => void;\n\n setAfterRender: (cb: (stage: IStage) => void) => void;\n\n afterNextRender: (cb: (stage: IStage) => void) => void;\n enableAutoRender: () => void;\n disableAutoRender: () => void;\n enableIncrementalAutoRender: () => void;\n disableIncrementalAutoRender: () => void;\n enableDirtyBounds: () => void;\n disableDirtyBounds: () => void;\n enableView3dTransform: () => void;\n disableView3dTranform: () => void;\n clearViewBox: (color?: string) => void;\n release: () => void;\n setStage: (stage?: IStage) => void;\n\n setCursor: (mode?: string) => void;\n}\n\nexport declare function combineStage(srages: IStage[], params: { canvas: string | HTMLCanvasElement }): IStage;\n"]}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type { IArc3dGraphicAttribute, IArcGraphicAttribute, IAreaGraphicAttribute, ICircleGraphicAttribute, IGlyphGraphicAttribute, IGroupGraphicAttribute, IImageGraphicAttribute, ILineGraphicAttribute, IPathGraphicAttribute, IPolygonGraphicAttribute, IPyramid3dGraphicAttribute, IRect3dGraphicAttribute, IRectGraphicAttribute, IRichTextCharacter, IRichTextGraphicAttribute, IRichTextImageCharacter, ISymbolGraphicAttribute, ITextGraphicAttribute } from '../interface';
|
|
2
|
+
import { IGroup, ISymbol } from '../interface';
|
|
3
|
+
export declare const REACT_TO_CANOPUS_EVENTS: {
|
|
4
|
+
onPointerDown: string;
|
|
5
|
+
onPointerUp: string;
|
|
6
|
+
onPointerUpOutside: string;
|
|
7
|
+
onPointerTap: string;
|
|
8
|
+
onPointerOver: string;
|
|
9
|
+
onPointerMove: string;
|
|
10
|
+
onPointerEnter: string;
|
|
11
|
+
onPointerLeave: string;
|
|
12
|
+
onPointerOut: string;
|
|
13
|
+
onMouseDown: string;
|
|
14
|
+
onMouseUp: string;
|
|
15
|
+
onMouseUpOutside: string;
|
|
16
|
+
onMouseMove: string;
|
|
17
|
+
onMouseOver: string;
|
|
18
|
+
onMouseOut: string;
|
|
19
|
+
onMouseEnter: string;
|
|
20
|
+
onMouseLeave: string;
|
|
21
|
+
onPinch: string;
|
|
22
|
+
onPinchStart: string;
|
|
23
|
+
onPinchEnd: string;
|
|
24
|
+
onPan: string;
|
|
25
|
+
onPanStart: string;
|
|
26
|
+
onPanEnd: string;
|
|
27
|
+
onDrag: string;
|
|
28
|
+
onDragStart: string;
|
|
29
|
+
onDragEnter: string;
|
|
30
|
+
onDragLeave: string;
|
|
31
|
+
onDragOver: string;
|
|
32
|
+
onDragEnd: string;
|
|
33
|
+
onRightDown: string;
|
|
34
|
+
onRightUp: string;
|
|
35
|
+
onRightUpOutside: string;
|
|
36
|
+
onTouchStart: string;
|
|
37
|
+
onTouchEnd: string;
|
|
38
|
+
onTouchEndOutside: string;
|
|
39
|
+
onTouchMove: string;
|
|
40
|
+
onTouchCancel: string;
|
|
41
|
+
onPress: string;
|
|
42
|
+
onPressUp: string;
|
|
43
|
+
onPressEnd: string;
|
|
44
|
+
onSwipe: string;
|
|
45
|
+
onDrop: string;
|
|
46
|
+
onWeel: string;
|
|
47
|
+
onClick: string;
|
|
48
|
+
onDblClick: string;
|
|
49
|
+
};
|
|
50
|
+
export declare const REACT_TO_CANOPUS_EVENTS_LIST: string[];
|
|
51
|
+
type IEventParamsType = {
|
|
52
|
+
[t in keyof typeof REACT_TO_CANOPUS_EVENTS]?: (d: any) => void;
|
|
53
|
+
};
|
|
54
|
+
type IDefaultGraphicParamsType<T> = {
|
|
55
|
+
attribute?: T;
|
|
56
|
+
} & IEventParamsType;
|
|
57
|
+
export declare function VArc(params: IDefaultGraphicParamsType<IArcGraphicAttribute>): import("../interface").IArc;
|
|
58
|
+
export declare function VArc3d(params: IDefaultGraphicParamsType<IArc3dGraphicAttribute>): import("../interface").IArc;
|
|
59
|
+
export declare function VArea(params: IDefaultGraphicParamsType<IAreaGraphicAttribute>): import("../interface").IArea;
|
|
60
|
+
export declare function VCircle(params: IDefaultGraphicParamsType<ICircleGraphicAttribute>): import("../interface").ICircle;
|
|
61
|
+
export declare function VGroup(params: IDefaultGraphicParamsType<IGroupGraphicAttribute>): IGroup;
|
|
62
|
+
export declare function VGlyph(params: IDefaultGraphicParamsType<IGlyphGraphicAttribute>): import("../interface").IGlyph<Partial<import("../interface").IGraphicAttribute>>;
|
|
63
|
+
export declare function VImage(params: IDefaultGraphicParamsType<IImageGraphicAttribute>): import("../interface").IImage;
|
|
64
|
+
export declare function VLine(params: IDefaultGraphicParamsType<ILineGraphicAttribute>): import("../interface").ILine;
|
|
65
|
+
export declare function VPath(params: IDefaultGraphicParamsType<IPathGraphicAttribute>): import("../interface").IPath;
|
|
66
|
+
export declare function VPolygon(params: IDefaultGraphicParamsType<IPolygonGraphicAttribute>): import("../interface").IPolygon;
|
|
67
|
+
export declare function VPyramid3d(params: IDefaultGraphicParamsType<IPyramid3dGraphicAttribute>): import("../interface").IPyramid3d;
|
|
68
|
+
export declare function VRect(params: IDefaultGraphicParamsType<IRectGraphicAttribute>): import("../interface").IRect;
|
|
69
|
+
export declare function VRect3d(params: IDefaultGraphicParamsType<IRect3dGraphicAttribute>): import("../interface").IRect3d;
|
|
70
|
+
export declare function VSymbol(params: IDefaultGraphicParamsType<ISymbolGraphicAttribute>): ISymbol;
|
|
71
|
+
export declare function VText(params: IDefaultGraphicParamsType<ITextGraphicAttribute>): import("../interface").IText;
|
|
72
|
+
export declare function VRichText(params: IDefaultGraphicParamsType<IRichTextGraphicAttribute>): import("../interface").IRichText;
|
|
73
|
+
export declare namespace VRichText {
|
|
74
|
+
var Text: (params: IRichTextCharacter) => {
|
|
75
|
+
lineHeight?: number;
|
|
76
|
+
textAlign?: CanvasTextAlign;
|
|
77
|
+
textBaseline?: CanvasTextBaseline;
|
|
78
|
+
direction?: import("../interface").RichTextLayoutDirectionType;
|
|
79
|
+
text: string;
|
|
80
|
+
fontSize?: number;
|
|
81
|
+
fontFamily?: string;
|
|
82
|
+
fill?: boolean | import("../interface").IColor;
|
|
83
|
+
stroke?: boolean | import("../interface").IColor;
|
|
84
|
+
fontWeight?: string;
|
|
85
|
+
fontStyle?: import("../interface").RichTextFontStyle;
|
|
86
|
+
textDecoration?: import("../interface").RichTextTextDecoration;
|
|
87
|
+
script?: import("../interface").RichTextScript;
|
|
88
|
+
underline?: boolean;
|
|
89
|
+
lineThrough?: boolean;
|
|
90
|
+
type: string;
|
|
91
|
+
} | {
|
|
92
|
+
lineHeight?: number;
|
|
93
|
+
textAlign?: CanvasTextAlign;
|
|
94
|
+
textBaseline?: CanvasTextBaseline;
|
|
95
|
+
direction?: import("../interface").RichTextLayoutDirectionType;
|
|
96
|
+
image: string | HTMLImageElement | HTMLCanvasElement;
|
|
97
|
+
width: number;
|
|
98
|
+
height: number;
|
|
99
|
+
backgroundShowMode?: "always" | "hover";
|
|
100
|
+
backgroundFill?: boolean | import("../interface").IColor;
|
|
101
|
+
backgroundFillOpacity?: number;
|
|
102
|
+
backgroundStroke?: boolean | import("../interface").IColor;
|
|
103
|
+
backgroundStrokeOpacity?: number;
|
|
104
|
+
backgroundRadius?: number;
|
|
105
|
+
backgroundWidth?: number;
|
|
106
|
+
backgroundHeight?: number;
|
|
107
|
+
id?: string;
|
|
108
|
+
margin?: number | number[];
|
|
109
|
+
funcType?: string;
|
|
110
|
+
hoverImage?: string | HTMLImageElement | HTMLCanvasElement;
|
|
111
|
+
type: string;
|
|
112
|
+
};
|
|
113
|
+
var Image: (params: IRichTextImageCharacter) => {
|
|
114
|
+
lineHeight?: number;
|
|
115
|
+
textAlign?: CanvasTextAlign;
|
|
116
|
+
textBaseline?: CanvasTextBaseline;
|
|
117
|
+
direction?: import("../interface").RichTextLayoutDirectionType;
|
|
118
|
+
image: string | HTMLImageElement | HTMLCanvasElement;
|
|
119
|
+
width: number;
|
|
120
|
+
height: number;
|
|
121
|
+
backgroundShowMode?: "always" | "hover";
|
|
122
|
+
backgroundFill?: boolean | import("../interface").IColor;
|
|
123
|
+
backgroundFillOpacity?: number;
|
|
124
|
+
backgroundStroke?: boolean | import("../interface").IColor;
|
|
125
|
+
backgroundStrokeOpacity?: number;
|
|
126
|
+
backgroundRadius?: number;
|
|
127
|
+
backgroundWidth?: number;
|
|
128
|
+
backgroundHeight?: number;
|
|
129
|
+
id?: string;
|
|
130
|
+
margin?: number | number[];
|
|
131
|
+
funcType?: string;
|
|
132
|
+
hoverImage?: string | HTMLImageElement | HTMLCanvasElement;
|
|
133
|
+
type: string;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
export {};
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { createArc, createArc3d, createArea, createCircle, createGlyph, createGroup, createImage, createLine, createPath, createPolygon, createPyramid3d, createRect, createRect3d, createRichText, createSymbol, createText } from "../graphic";
|
|
2
|
+
|
|
3
|
+
export const REACT_TO_CANOPUS_EVENTS = {
|
|
4
|
+
onPointerDown: "pointerdown",
|
|
5
|
+
onPointerUp: "pointerup",
|
|
6
|
+
onPointerUpOutside: "pointerupoutside",
|
|
7
|
+
onPointerTap: "pointertap",
|
|
8
|
+
onPointerOver: "pointerover",
|
|
9
|
+
onPointerMove: "pointermove",
|
|
10
|
+
onPointerEnter: "pointerenter",
|
|
11
|
+
onPointerLeave: "pointerleave",
|
|
12
|
+
onPointerOut: "pointerout",
|
|
13
|
+
onMouseDown: "mousedown",
|
|
14
|
+
onMouseUp: "mouseup",
|
|
15
|
+
onMouseUpOutside: "mouseupoutside",
|
|
16
|
+
onMouseMove: "mousemove",
|
|
17
|
+
onMouseOver: "mouseover",
|
|
18
|
+
onMouseOut: "mouseout",
|
|
19
|
+
onMouseEnter: "mouseenter",
|
|
20
|
+
onMouseLeave: "mouseleave",
|
|
21
|
+
onPinch: "pinch",
|
|
22
|
+
onPinchStart: "pinchstart",
|
|
23
|
+
onPinchEnd: "pinchend",
|
|
24
|
+
onPan: "pan",
|
|
25
|
+
onPanStart: "panstart",
|
|
26
|
+
onPanEnd: "panend",
|
|
27
|
+
onDrag: "drag",
|
|
28
|
+
onDragStart: "dragstart",
|
|
29
|
+
onDragEnter: "dragenter",
|
|
30
|
+
onDragLeave: "dragleave",
|
|
31
|
+
onDragOver: "dragover",
|
|
32
|
+
onDragEnd: "dragend",
|
|
33
|
+
onRightDown: "rightdown",
|
|
34
|
+
onRightUp: "rightup",
|
|
35
|
+
onRightUpOutside: "rightupoutside",
|
|
36
|
+
onTouchStart: "touchstart",
|
|
37
|
+
onTouchEnd: "touchend",
|
|
38
|
+
onTouchEndOutside: "touchendoutside",
|
|
39
|
+
onTouchMove: "touchmove",
|
|
40
|
+
onTouchCancel: "touchcancel",
|
|
41
|
+
onPress: "press",
|
|
42
|
+
onPressUp: "pressup",
|
|
43
|
+
onPressEnd: "pressend",
|
|
44
|
+
onSwipe: "swipe",
|
|
45
|
+
onDrop: "drop",
|
|
46
|
+
onWeel: "wheel",
|
|
47
|
+
onClick: "click",
|
|
48
|
+
onDblClick: "dblclick"
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
export const REACT_TO_CANOPUS_EVENTS_LIST = Object.keys(REACT_TO_CANOPUS_EVENTS);
|
|
52
|
+
|
|
53
|
+
export function VArc(params) {
|
|
54
|
+
return createArc(params ? params.attribute : {});
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function VArc3d(params) {
|
|
58
|
+
return createArc3d(params ? params.attribute : {});
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function VArea(params) {
|
|
62
|
+
return createArea(params ? params.attribute : {});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
export function VCircle(params) {
|
|
66
|
+
return createCircle(params ? params.attribute : {});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export function VGroup(params) {
|
|
70
|
+
return createGroup(params ? params.attribute : {});
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
export function VGlyph(params) {
|
|
74
|
+
return createGlyph(params ? params.attribute : {});
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
export function VImage(params) {
|
|
78
|
+
return createImage(params ? params.attribute : {});
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export function VLine(params) {
|
|
82
|
+
return createLine(params ? params.attribute : {});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export function VPath(params) {
|
|
86
|
+
return createPath(params ? params.attribute : {});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function VPolygon(params) {
|
|
90
|
+
return createPolygon(params ? params.attribute : {});
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function VPyramid3d(params) {
|
|
94
|
+
return createPyramid3d(params ? params.attribute : {});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function VRect(params) {
|
|
98
|
+
return createRect(params ? params.attribute : {});
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
export function VRect3d(params) {
|
|
102
|
+
return createRect3d(params ? params.attribute : {});
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
export function VSymbol(params) {
|
|
106
|
+
return createSymbol(params ? params.attribute : {});
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
export function VText(params) {
|
|
110
|
+
return createText(params ? params.attribute : {});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
export function VRichText(params) {
|
|
114
|
+
return createRichText(params ? params.attribute : {});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
VRichText.Text = function(params) {
|
|
118
|
+
return Object.assign({
|
|
119
|
+
type: "rich/text"
|
|
120
|
+
}, params);
|
|
121
|
+
}, VRichText.Image = function(params) {
|
|
122
|
+
return Object.assign({
|
|
123
|
+
type: "rich/image"
|
|
124
|
+
}, params);
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=graphicType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/jsx/graphicType.ts"],"names":[],"mappings":"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","file":"graphicType.js","sourcesContent":["import {\n createArc,\n createArc3d,\n createArea,\n createCircle,\n createGlyph,\n createGroup,\n createImage,\n createLine,\n createPath,\n createPolygon,\n createPyramid3d,\n createRect,\n createRect3d,\n createRichText,\n createSymbol,\n createText\n} from '../graphic';\nimport type {\n IArc3dGraphicAttribute,\n IArcGraphicAttribute,\n IAreaGraphicAttribute,\n ICircleGraphicAttribute,\n IGlyphGraphicAttribute,\n IGroupGraphicAttribute,\n IImageGraphicAttribute,\n ILineGraphicAttribute,\n IPathGraphicAttribute,\n IPolygonGraphicAttribute,\n IPyramid3dGraphicAttribute,\n IRect3dGraphicAttribute,\n IRectGraphicAttribute,\n IRichTextCharacter,\n IRichTextGraphicAttribute,\n IRichTextImageCharacter,\n ISymbolGraphicAttribute,\n ITextGraphicAttribute\n} from '../interface';\nimport { IArcAttribute, IGraphic, IGroup, ISymbol, ISymbolAttribute } from '../interface';\n\nexport const REACT_TO_CANOPUS_EVENTS = {\n onPointerDown: 'pointerdown',\n onPointerUp: 'pointerup',\n onPointerUpOutside: 'pointerupoutside',\n onPointerTap: 'pointertap',\n onPointerOver: 'pointerover',\n onPointerMove: 'pointermove',\n onPointerEnter: 'pointerenter',\n onPointerLeave: 'pointerleave',\n onPointerOut: 'pointerout',\n onMouseDown: 'mousedown',\n onMouseUp: 'mouseup',\n onMouseUpOutside: 'mouseupoutside',\n onMouseMove: 'mousemove',\n onMouseOver: 'mouseover',\n onMouseOut: 'mouseout',\n onMouseEnter: 'mouseenter',\n onMouseLeave: 'mouseleave',\n onPinch: 'pinch',\n onPinchStart: 'pinchstart',\n onPinchEnd: 'pinchend',\n onPan: 'pan',\n onPanStart: 'panstart',\n onPanEnd: 'panend',\n onDrag: 'drag',\n onDragStart: 'dragstart',\n onDragEnter: 'dragenter',\n onDragLeave: 'dragleave',\n onDragOver: 'dragover',\n onDragEnd: 'dragend',\n onRightDown: 'rightdown',\n onRightUp: 'rightup',\n onRightUpOutside: 'rightupoutside',\n onTouchStart: 'touchstart',\n onTouchEnd: 'touchend',\n onTouchEndOutside: 'touchendoutside',\n onTouchMove: 'touchmove',\n onTouchCancel: 'touchcancel',\n onPress: 'press',\n onPressUp: 'pressup',\n onPressEnd: 'pressend',\n onSwipe: 'swipe',\n onDrop: 'drop',\n onWeel: 'wheel',\n onClick: 'click',\n onDblClick: 'dblclick'\n};\n\nexport const REACT_TO_CANOPUS_EVENTS_LIST = Object.keys(REACT_TO_CANOPUS_EVENTS);\n\ntype IEventParamsType = {\n [t in keyof typeof REACT_TO_CANOPUS_EVENTS]?: (d: any) => void;\n};\n\ntype IDefaultGraphicParamsType<T> = {\n attribute?: T;\n} & IEventParamsType;\n\nexport function VArc(params: IDefaultGraphicParamsType<IArcGraphicAttribute>) {\n return createArc(params ? params.attribute : {});\n}\nexport function VArc3d(params: IDefaultGraphicParamsType<IArc3dGraphicAttribute>) {\n return createArc3d(params ? params.attribute : {});\n}\nexport function VArea(params: IDefaultGraphicParamsType<IAreaGraphicAttribute>) {\n return createArea(params ? params.attribute : {});\n}\nexport function VCircle(params: IDefaultGraphicParamsType<ICircleGraphicAttribute>) {\n return createCircle(params ? params.attribute : {});\n}\nexport function VGroup(params: IDefaultGraphicParamsType<IGroupGraphicAttribute>) {\n return createGroup(params ? params.attribute : {});\n}\nexport function VGlyph(params: IDefaultGraphicParamsType<IGlyphGraphicAttribute>) {\n return createGlyph(params ? params.attribute : {});\n}\nexport function VImage(params: IDefaultGraphicParamsType<IImageGraphicAttribute>) {\n return createImage(params ? params.attribute : {});\n}\nexport function VLine(params: IDefaultGraphicParamsType<ILineGraphicAttribute>) {\n return createLine(params ? params.attribute : {});\n}\nexport function VPath(params: IDefaultGraphicParamsType<IPathGraphicAttribute>) {\n return createPath(params ? params.attribute : {});\n}\nexport function VPolygon(params: IDefaultGraphicParamsType<IPolygonGraphicAttribute>) {\n return createPolygon(params ? params.attribute : {});\n}\nexport function VPyramid3d(params: IDefaultGraphicParamsType<IPyramid3dGraphicAttribute>) {\n return createPyramid3d(params ? params.attribute : {});\n}\nexport function VRect(params: IDefaultGraphicParamsType<IRectGraphicAttribute>) {\n return createRect(params ? params.attribute : {});\n}\nexport function VRect3d(params: IDefaultGraphicParamsType<IRect3dGraphicAttribute>) {\n return createRect3d(params ? params.attribute : {});\n}\nexport function VSymbol(params: IDefaultGraphicParamsType<ISymbolGraphicAttribute>) {\n return createSymbol(params ? params.attribute : {});\n}\nexport function VText(params: IDefaultGraphicParamsType<ITextGraphicAttribute>) {\n return createText(params ? params.attribute : {});\n}\nexport function VRichText(params: IDefaultGraphicParamsType<IRichTextGraphicAttribute>) {\n return createRichText(params ? params.attribute : {});\n}\n\nVRichText.Text = function (params: IRichTextCharacter) {\n return {\n type: 'rich/text',\n ...params\n };\n};\n\nVRichText.Image = function (params: IRichTextImageCharacter) {\n return {\n type: 'rich/image',\n ...params\n };\n};\n"]}
|
package/es/jsx/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/jsx/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC","file":"index.js","sourcesContent":["export * from './jsx-classic';\nexport * from './graphicType';\n"]}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var __rest = this && this.__rest || function(s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
|
|
4
|
+
if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
|
|
5
|
+
var i = 0;
|
|
6
|
+
for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
|
|
7
|
+
}
|
|
8
|
+
return t;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
import { isArray, isString } from "@visactor/vutils";
|
|
12
|
+
|
|
13
|
+
import { graphicCreator } from "../graphic";
|
|
14
|
+
|
|
15
|
+
import { REACT_TO_CANOPUS_EVENTS } from "./graphicType";
|
|
16
|
+
|
|
17
|
+
function flatten(list, out) {
|
|
18
|
+
if (isArray(list)) return list.forEach((i => flatten(i, out)));
|
|
19
|
+
out.push(list);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function jsx(type, config, ...children) {
|
|
23
|
+
const _a = config || {}, {key: key, attribute: attribute} = _a, props = __rest(_a, [ "key", "attribute" ]);
|
|
24
|
+
let c = type;
|
|
25
|
+
isString(type) && (c = graphicCreator[type]);
|
|
26
|
+
const childrenList = [];
|
|
27
|
+
children.length && flatten(1 === children.length ? children[0] : children, childrenList),
|
|
28
|
+
c.type;
|
|
29
|
+
const g = c.prototype.type ? new c(attribute) : c(config);
|
|
30
|
+
return parseToGraphic(g, childrenList, props), g;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function parseToGraphic(g, childrenList, props) {
|
|
34
|
+
let out, isGraphic = !1;
|
|
35
|
+
switch (g.type) {
|
|
36
|
+
case "richtext":
|
|
37
|
+
case "rich/image":
|
|
38
|
+
break;
|
|
39
|
+
|
|
40
|
+
case "rich/text":
|
|
41
|
+
out = g.attribute || {}, childrenList[0] && (out.text = childrenList[0]);
|
|
42
|
+
break;
|
|
43
|
+
|
|
44
|
+
default:
|
|
45
|
+
isGraphic = !0;
|
|
46
|
+
}
|
|
47
|
+
isGraphic ? (childrenList.forEach((c => {
|
|
48
|
+
g.add(c);
|
|
49
|
+
})), Object.keys(props).forEach((k => {
|
|
50
|
+
const en = REACT_TO_CANOPUS_EVENTS[k];
|
|
51
|
+
en && g.on(en, props[k]);
|
|
52
|
+
}))) : "richtext" === g.type && (g.attribute.textConfig = childrenList.map((item => item.attribute)).filter((item => item)));
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export class Fragment {
|
|
56
|
+
constructor() {
|
|
57
|
+
this.children = [];
|
|
58
|
+
}
|
|
59
|
+
add(g) {
|
|
60
|
+
this.children.push(g);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=jsx-classic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/jsx/jsx-classic.ts"],"names":[],"mappings":"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","file":"jsx-classic.js","sourcesContent":["import { isArray, isString } from '@visactor/vutils';\nimport { graphicCreator } from '../graphic';\nimport { REACT_TO_CANOPUS_EVENTS } from './graphicType';\n\nfunction flatten(list: any, out: any[]): void {\n if (isArray(list)) {\n return list.forEach(i => flatten(i, out));\n }\n out.push(list);\n}\n\nexport function jsx(type: string | any, config: Record<string, any>, ...children: any) {\n const { key, attribute, ...props } = config || {};\n\n let c = type;\n if (isString(type)) {\n c = graphicCreator[type];\n }\n\n const childrenList: any[] = [];\n if (children.length) {\n flatten(children.length === 1 ? children[0] : children, childrenList);\n }\n\n if (c.type === 'richtext') {\n }\n const g = c.prototype.type ? new c(attribute) : c(config);\n parseToGraphic(g, childrenList, props);\n\n return g;\n}\n\nfunction parseToGraphic(g: any, childrenList: any[], props: any) {\n let isGraphic: boolean = false;\n let out: any;\n switch (g.type) {\n case 'richtext':\n break;\n case 'rich/text':\n out = g.attribute || {};\n childrenList[0] && (out.text = childrenList[0]);\n break;\n case 'rich/image':\n break;\n default:\n isGraphic = true;\n }\n\n if (isGraphic) {\n childrenList.forEach((c: any) => {\n g.add(c);\n });\n\n Object.keys(props).forEach(k => {\n const en = REACT_TO_CANOPUS_EVENTS[k];\n if (en) {\n g.on(en, props[k]);\n }\n });\n } else {\n if (g.type === 'richtext') {\n g.attribute.textConfig = childrenList.map(item => item.attribute).filter(item => item);\n }\n }\n}\n\nexport class Fragment {\n children: any[] = [];\n add(g: any) {\n this.children.push(g);\n }\n}\n"]}
|
|
@@ -24,6 +24,10 @@ import { BasePicker } from "./base-picker";
|
|
|
24
24
|
|
|
25
25
|
import { SYMBOL_NUMBER_TYPE } from "../../../graphic/constants";
|
|
26
26
|
|
|
27
|
+
import { createRect } from "../../../graphic";
|
|
28
|
+
|
|
29
|
+
const rect = createRect({});
|
|
30
|
+
|
|
27
31
|
let DefaultCanvasSymbolPicker = class extends BasePicker {
|
|
28
32
|
constructor(canvasRenderer) {
|
|
29
33
|
super(), this.canvasRenderer = canvasRenderer, this.type = "symbol", this.numberType = SYMBOL_NUMBER_TYPE;
|
|
@@ -31,9 +35,10 @@ let DefaultCanvasSymbolPicker = class extends BasePicker {
|
|
|
31
35
|
contains(symbol, point, params) {
|
|
32
36
|
const {pickContext: pickContext} = null != params ? params : {};
|
|
33
37
|
if (!pickContext) return !1;
|
|
38
|
+
const parsedPath = symbol.getParsedPath();
|
|
34
39
|
if (!pickContext.camera) {
|
|
35
40
|
if (!symbol.AABBBounds.containsPoint(point)) return !1;
|
|
36
|
-
if ("imprecise" === symbol.attribute.pickMode) return !0;
|
|
41
|
+
if (parsedPath.isSvg || "imprecise" === symbol.attribute.pickMode) return !0;
|
|
37
42
|
}
|
|
38
43
|
pickContext.highPerformanceSave();
|
|
39
44
|
const symbolAttribute = getTheme(symbol).symbol, data = this.transform(symbol, symbolAttribute, pickContext), {x: x, y: y, z: z, lastModelMatrix: lastModelMatrix} = data;
|