@meta2d/core 1.0.55 → 1.0.57
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/index.d.ts +9 -9
- package/index.js +9 -9
- package/package.json +38 -39
- package/src/canvas/canvas.d.ts +456 -456
- package/src/canvas/canvas.js +7583 -8186
- package/src/canvas/canvas.js.map +1 -1
- package/src/canvas/canvasImage.d.ts +27 -28
- package/src/canvas/canvasImage.js +440 -502
- package/src/canvas/canvasImage.js.map +1 -1
- package/src/canvas/canvasTemplate.d.ts +18 -19
- package/src/canvas/canvasTemplate.js +208 -228
- package/src/canvas/canvasTemplate.js.map +1 -1
- package/src/canvas/index.d.ts +2 -2
- package/src/canvas/index.js +2 -2
- package/src/canvas/magnifierCanvas.d.ts +19 -20
- package/src/canvas/magnifierCanvas.js +101 -100
- package/src/canvas/magnifierCanvas.js.map +1 -1
- package/src/canvas/offscreen.d.ts +1 -2
- package/src/canvas/offscreen.js +13 -13
- package/src/canvas/offscreen.js.map +1 -1
- package/src/core.d.ts +479 -479
- package/src/core.js +4589 -5198
- package/src/core.js.map +1 -1
- package/src/data.d.ts +34 -34
- package/src/data.js +84 -84
- package/src/data.js.map +1 -1
- package/src/diagrams/arrow.d.ts +4 -4
- package/src/diagrams/arrow.js +46 -46
- package/src/diagrams/arrow.js.map +1 -1
- package/src/diagrams/circle.d.ts +2 -2
- package/src/diagrams/circle.js +8 -8
- package/src/diagrams/circle.js.map +1 -1
- package/src/diagrams/cloud.d.ts +2 -2
- package/src/diagrams/cloud.js +11 -11
- package/src/diagrams/cloud.js.map +1 -1
- package/src/diagrams/cube.d.ts +2 -2
- package/src/diagrams/cube.js +67 -69
- package/src/diagrams/cube.js.map +1 -1
- package/src/diagrams/diamond.d.ts +2 -2
- package/src/diagrams/diamond.js +12 -12
- package/src/diagrams/diamond.js.map +1 -1
- package/src/diagrams/file.d.ts +2 -2
- package/src/diagrams/file.js +17 -17
- package/src/diagrams/file.js.map +1 -1
- package/src/diagrams/gif.d.ts +5 -5
- package/src/diagrams/gif.js +88 -89
- package/src/diagrams/gif.js.map +1 -1
- package/src/diagrams/hexagon.d.ts +2 -2
- package/src/diagrams/hexagon.js +54 -54
- package/src/diagrams/hexagon.js.map +1 -1
- package/src/diagrams/iframe.d.ts +2 -2
- package/src/diagrams/iframe.js +337 -355
- package/src/diagrams/iframe.js.map +1 -1
- package/src/diagrams/index.d.ts +71 -71
- package/src/diagrams/index.js +76 -76
- package/src/diagrams/index.js.map +1 -1
- package/src/diagrams/line/arrow.d.ts +2 -2
- package/src/diagrams/line/arrow.js +127 -127
- package/src/diagrams/line/arrow.js.map +1 -1
- package/src/diagrams/line/curve.d.ts +16 -16
- package/src/diagrams/line/curve.js +226 -235
- package/src/diagrams/line/curve.js.map +1 -1
- package/src/diagrams/line/index.d.ts +5 -5
- package/src/diagrams/line/index.js +5 -5
- package/src/diagrams/line/line.d.ts +42 -42
- package/src/diagrams/line/line.js +369 -430
- package/src/diagrams/line/line.js.map +1 -1
- package/src/diagrams/line/polyline.d.ts +10 -10
- package/src/diagrams/line/polyline.js +626 -656
- package/src/diagrams/line/polyline.js.map +1 -1
- package/src/diagrams/line/smooth.d.ts +3 -3
- package/src/diagrams/line/smooth.js +135 -173
- package/src/diagrams/line/smooth.js.map +1 -1
- package/src/diagrams/message.d.ts +2 -2
- package/src/diagrams/message.js +14 -14
- package/src/diagrams/message.js.map +1 -1
- package/src/diagrams/mindLine.d.ts +3 -3
- package/src/diagrams/mindLine.js +29 -30
- package/src/diagrams/mindLine.js.map +1 -1
- package/src/diagrams/mindNode.d.ts +3 -3
- package/src/diagrams/mindNode.js +160 -188
- package/src/diagrams/mindNode.js.map +1 -1
- package/src/diagrams/panel.d.ts +2 -2
- package/src/diagrams/panel.js +130 -130
- package/src/diagrams/panel.js.map +1 -1
- package/src/diagrams/pentagon.d.ts +3 -3
- package/src/diagrams/pentagon.js +44 -45
- package/src/diagrams/pentagon.js.map +1 -1
- package/src/diagrams/pentagram.d.ts +3 -3
- package/src/diagrams/pentagram.js +50 -76
- package/src/diagrams/pentagram.js.map +1 -1
- package/src/diagrams/people.d.ts +2 -2
- package/src/diagrams/people.js +18 -18
- package/src/diagrams/people.js.map +1 -1
- package/src/diagrams/rectangle.d.ts +3 -3
- package/src/diagrams/rectangle.js +25 -25
- package/src/diagrams/rectangle.js.map +1 -1
- package/src/diagrams/svg/parse.d.ts +15 -15
- package/src/diagrams/svg/parse.js +278 -325
- package/src/diagrams/svg/parse.js.map +1 -1
- package/src/diagrams/svgPath.d.ts +2 -2
- package/src/diagrams/svgPath.js +28 -29
- package/src/diagrams/svgPath.js.map +1 -1
- package/src/diagrams/triangle.d.ts +3 -3
- package/src/diagrams/triangle.js +39 -40
- package/src/diagrams/triangle.js.map +1 -1
- package/src/diagrams/video.d.ts +5 -5
- package/src/diagrams/video.js +183 -184
- package/src/diagrams/video.js.map +1 -1
- package/src/dialog/dialog.d.ts +21 -21
- package/src/dialog/dialog.js +156 -97
- package/src/dialog/dialog.js.map +1 -1
- package/src/dialog/index.d.ts +1 -1
- package/src/dialog/index.js +1 -1
- package/src/event/event.d.ts +102 -102
- package/src/event/event.js +21 -21
- package/src/event/index.d.ts +1 -1
- package/src/event/index.js +1 -1
- package/src/map/index.d.ts +1 -1
- package/src/map/index.js +1 -1
- package/src/map/map.d.ts +21 -21
- package/src/map/map.js +211 -209
- package/src/map/map.js.map +1 -1
- package/src/options.d.ts +130 -130
- package/src/options.js +79 -79
- package/src/options.js.map +1 -1
- package/src/pen/arrow.d.ts +4 -4
- package/src/pen/arrow.js +187 -187
- package/src/pen/arrow.js.map +1 -1
- package/src/pen/index.d.ts +6 -6
- package/src/pen/index.js +6 -6
- package/src/pen/math.d.ts +28 -28
- package/src/pen/math.js +212 -303
- package/src/pen/math.js.map +1 -1
- package/src/pen/model.d.ts +514 -514
- package/src/pen/model.js +209 -209
- package/src/pen/model.js.map +1 -1
- package/src/pen/plugin.d.ts +5 -5
- package/src/pen/plugin.js +57 -87
- package/src/pen/plugin.js.map +1 -1
- package/src/pen/render.d.ts +146 -147
- package/src/pen/render.js +3233 -3235
- package/src/pen/render.js.map +1 -1
- package/src/pen/text.d.ts +8 -8
- package/src/pen/text.js +315 -374
- package/src/pen/text.js.map +1 -1
- package/src/pen/utils.d.ts +2 -2
- package/src/pen/utils.js +18 -40
- package/src/pen/utils.js.map +1 -1
- package/src/point/index.d.ts +1 -1
- package/src/point/index.js +1 -1
- package/src/point/point.d.ts +65 -65
- package/src/point/point.js +177 -178
- package/src/point/point.js.map +1 -1
- package/src/rect/index.d.ts +1 -1
- package/src/rect/index.js +1 -1
- package/src/rect/rect.d.ts +52 -52
- package/src/rect/rect.js +426 -485
- package/src/rect/rect.js.map +1 -1
- package/src/rect/triangle.d.ts +2 -2
- package/src/rect/triangle.js +9 -9
- package/src/rect/triangle.js.map +1 -1
- package/src/scroll/index.d.ts +1 -1
- package/src/scroll/index.js +1 -1
- package/src/scroll/scroll.d.ts +35 -35
- package/src/scroll/scroll.js +233 -220
- package/src/scroll/scroll.js.map +1 -1
- package/src/store/global.d.ts +25 -25
- package/src/store/global.js +17 -17
- package/src/store/global.js.map +1 -1
- package/src/store/index.d.ts +2 -2
- package/src/store/index.js +2 -2
- package/src/store/store.d.ts +228 -228
- package/src/store/store.js +86 -120
- package/src/store/store.js.map +1 -1
- package/src/theme.d.ts +13 -13
- package/src/theme.js +22 -22
- package/src/theme.js.map +1 -1
- package/src/title/index.d.ts +1 -1
- package/src/title/index.js +1 -1
- package/src/title/title.d.ts +30 -30
- package/src/title/title.js +98 -98
- package/src/title/title.js.map +1 -1
- package/src/tooltip/index.d.ts +1 -1
- package/src/tooltip/index.js +1 -1
- package/src/tooltip/tooltip.d.ts +40 -40
- package/src/tooltip/tooltip.js +171 -166
- package/src/tooltip/tooltip.js.map +1 -1
- package/src/utils/clone.d.ts +8 -8
- package/src/utils/clone.js +83 -87
- package/src/utils/clone.js.map +1 -1
- package/src/utils/color.d.ts +3 -3
- package/src/utils/color.js +109 -125
- package/src/utils/color.js.map +1 -1
- package/src/utils/error.d.ts +2 -2
- package/src/utils/error.js +5 -5
- package/src/utils/error.js.map +1 -1
- package/src/utils/file.d.ts +3 -3
- package/src/utils/file.js +39 -91
- package/src/utils/file.js.map +1 -1
- package/src/utils/index.d.ts +9 -8
- package/src/utils/index.js +9 -8
- package/src/utils/index.js.map +1 -1
- package/src/utils/math.d.ts +18 -18
- package/src/utils/math.js +113 -151
- package/src/utils/math.js.map +1 -1
- package/src/utils/object.d.ts +2 -2
- package/src/utils/object.js +20 -20
- package/src/utils/object.js.map +1 -1
- package/src/utils/padding.d.ts +7 -7
- package/src/utils/padding.js +46 -46
- package/src/utils/padding.js.map +1 -1
- package/src/utils/time.d.ts +1 -1
- package/src/utils/time.js +16 -16
- package/src/utils/time.js.map +1 -1
- package/src/utils/url.d.ts +4 -4
- package/src/utils/url.js +26 -26
- package/src/utils/url.js.map +1 -1
- package/src/utils/uuid.d.ts +4 -4
- package/src/utils/uuid.js +12 -12
- package/src/utils/browser.d.ts +0 -1
- package/src/utils/browser.js +0 -4
- package/src/utils/browser.js.map +0 -1
package/src/canvas/canvas.d.ts
CHANGED
|
@@ -1,456 +1,456 @@
|
|
|
1
|
-
import { Pen, IValue } from '../pen';
|
|
2
|
-
import { Point } from '../point';
|
|
3
|
-
import { Rect } from '../rect';
|
|
4
|
-
import { EditAction, Fit, Meta2dStore } from '../store';
|
|
5
|
-
import { Padding } from '../utils';
|
|
6
|
-
import { HotkeyType, HoverType, MouseRight } from '../data';
|
|
7
|
-
import { curve, mind, lineSegment } from '../diagrams';
|
|
8
|
-
import { polyline } from '../diagrams/line/polyline';
|
|
9
|
-
import { Tooltip } from '../tooltip';
|
|
10
|
-
import { Scroll } from '../scroll';
|
|
11
|
-
import { CanvasImage } from './canvasImage';
|
|
12
|
-
import { MagnifierCanvas } from './magnifierCanvas';
|
|
13
|
-
import { Meta2d } from '../core';
|
|
14
|
-
import { Dialog } from '../dialog';
|
|
15
|
-
import { Title } from '../title';
|
|
16
|
-
import { CanvasTemplate } from './canvasTemplate';
|
|
17
|
-
export declare const movingSuffix: "-moving";
|
|
18
|
-
export declare class Canvas {
|
|
19
|
-
parent: Meta2d;
|
|
20
|
-
parentElement: HTMLElement;
|
|
21
|
-
store: Meta2dStore;
|
|
22
|
-
canvas: HTMLCanvasElement;
|
|
23
|
-
offscreen: HTMLCanvasElement;
|
|
24
|
-
width: number;
|
|
25
|
-
height: number;
|
|
26
|
-
externalElements: HTMLDivElement;
|
|
27
|
-
clientRect?: DOMRect;
|
|
28
|
-
canvasRect: Rect;
|
|
29
|
-
activeRect: Rect;
|
|
30
|
-
initActiveRect: Rect;
|
|
31
|
-
dragRect: Rect;
|
|
32
|
-
lastRotate: number;
|
|
33
|
-
sizeCPs: Point[];
|
|
34
|
-
activeInitPos: Point[];
|
|
35
|
-
hoverType: HoverType;
|
|
36
|
-
resizeIndex: number;
|
|
37
|
-
mouseDown: {
|
|
38
|
-
x: number;
|
|
39
|
-
y: number;
|
|
40
|
-
restore?: boolean;
|
|
41
|
-
};
|
|
42
|
-
hotkeyType: HotkeyType;
|
|
43
|
-
mouseRight: MouseRight;
|
|
44
|
-
addCaches: Pen[];
|
|
45
|
-
touchCenter?: Point;
|
|
46
|
-
initTouchDis?: number;
|
|
47
|
-
initScale?: number;
|
|
48
|
-
touchScaling?: boolean;
|
|
49
|
-
touchMoving?: boolean;
|
|
50
|
-
startTouches?: TouchList;
|
|
51
|
-
lastOffsetX: number;
|
|
52
|
-
lastOffsetY: number;
|
|
53
|
-
drawingLineName?: string;
|
|
54
|
-
drawLineFns: string[];
|
|
55
|
-
drawingLine?: Pen;
|
|
56
|
-
pencil?: boolean;
|
|
57
|
-
pencilLine?: Pen;
|
|
58
|
-
movingPens: Pen[];
|
|
59
|
-
patchFlagsLines?: Set<Pen>;
|
|
60
|
-
dock: {
|
|
61
|
-
xDock: Point;
|
|
62
|
-
yDock: Point;
|
|
63
|
-
};
|
|
64
|
-
prevAnchor: Point;
|
|
65
|
-
nextAnchor: Point;
|
|
66
|
-
private lastMouseTime;
|
|
67
|
-
private hoverTimer;
|
|
68
|
-
private fitTimer;
|
|
69
|
-
private willInactivePen;
|
|
70
|
-
patchFlags: boolean;
|
|
71
|
-
lastRender: number;
|
|
72
|
-
touchStart: number;
|
|
73
|
-
touchStartTimer: any;
|
|
74
|
-
timer: any;
|
|
75
|
-
private lastAnimateRender;
|
|
76
|
-
animateRendering: boolean;
|
|
77
|
-
renderTimer: number;
|
|
78
|
-
initPens?: Pen[];
|
|
79
|
-
pointSize: 8;
|
|
80
|
-
pasteOffset: boolean;
|
|
81
|
-
opening: boolean;
|
|
82
|
-
maxZindex: number;
|
|
83
|
-
canMoveLine: boolean;
|
|
84
|
-
randomIdObj: object;
|
|
85
|
-
keyOptions?: {
|
|
86
|
-
shiftKey?: boolean;
|
|
87
|
-
altKey?: boolean;
|
|
88
|
-
ctrlKey?: boolean;
|
|
89
|
-
metaKey?: boolean;
|
|
90
|
-
};
|
|
91
|
-
/**
|
|
92
|
-
* @deprecated 改用 beforeAddPens
|
|
93
|
-
*/
|
|
94
|
-
beforeAddPen: (pen: Pen) => boolean;
|
|
95
|
-
beforeAddPens: (pens: Pen[]) => Promise<boolean>;
|
|
96
|
-
beforeAddAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
|
|
97
|
-
beforeRemovePens: (pens: Pen[]) => Promise<boolean>;
|
|
98
|
-
beforeRemoveAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
|
|
99
|
-
customResizeDock: (store: Meta2dStore, rect: Rect, pens: Pen[], resizeIndex: number) => {
|
|
100
|
-
xDock: Point;
|
|
101
|
-
yDock: Point;
|
|
102
|
-
};
|
|
103
|
-
customMoveDock: (store: Meta2dStore, rect: Rect, pens: Pen[], offset: Point) => {
|
|
104
|
-
xDock: Point;
|
|
105
|
-
yDock: Point;
|
|
106
|
-
};
|
|
107
|
-
inputParent: HTMLDivElement;
|
|
108
|
-
inputDiv: HTMLDivElement;
|
|
109
|
-
inputRight: HTMLDivElement;
|
|
110
|
-
dropdown: HTMLUListElement;
|
|
111
|
-
tooltip: Tooltip;
|
|
112
|
-
title: Title;
|
|
113
|
-
mousePos: Point;
|
|
114
|
-
scroll: Scroll;
|
|
115
|
-
movingAnchor: Point;
|
|
116
|
-
canvasTemplate: CanvasTemplate;
|
|
117
|
-
canvasImage: CanvasImage;
|
|
118
|
-
canvasImageBottom: CanvasImage;
|
|
119
|
-
magnifierCanvas: MagnifierCanvas;
|
|
120
|
-
dialog: Dialog;
|
|
121
|
-
autoPolylineFlag: boolean;
|
|
122
|
-
stopPropagation: (e: MouseEvent) => void;
|
|
123
|
-
constructor(parent: Meta2d, parentElement: HTMLElement, store: Meta2dStore);
|
|
124
|
-
curve: typeof curve;
|
|
125
|
-
polyline: typeof polyline;
|
|
126
|
-
mind: typeof mind;
|
|
127
|
-
line: typeof lineSegment;
|
|
128
|
-
listen(): void;
|
|
129
|
-
onCopy: (event: ClipboardEvent) => void;
|
|
130
|
-
onCut: (event: ClipboardEvent) => void;
|
|
131
|
-
onPaste: (event: ClipboardEvent) => void;
|
|
132
|
-
onMessage: (e: MessageEvent) => void;
|
|
133
|
-
onwheel: (e: WheelEvent) => void;
|
|
134
|
-
onkeydown: (e: KeyboardEvent) => void;
|
|
135
|
-
/**
|
|
136
|
-
* 分割连线的锚点,变成两条线
|
|
137
|
-
* @param line 连线
|
|
138
|
-
* @param anchor 锚点,连线的某个锚点,引用相同
|
|
139
|
-
*/
|
|
140
|
-
splitLine(line: Pen, anchor: Point): void;
|
|
141
|
-
private translateAnchor;
|
|
142
|
-
onkeyup: (e: KeyboardEvent) => void;
|
|
143
|
-
fileToPen(file: File, isGif: boolean): Promise<Pen>;
|
|
144
|
-
ondrop: (event: DragEvent) => Promise<void>;
|
|
145
|
-
dropPens(pens: Pen[], e: Point): Promise<void>;
|
|
146
|
-
randomCombineId(pen: Pen, pens: Pen[], parentId?: string): Pen;
|
|
147
|
-
addPens(pens: Pen[], history?: boolean): Promise<Pen[]>;
|
|
148
|
-
ontouchstart: (e: TouchEvent) => void;
|
|
149
|
-
ontouchmove: (event: TouchEvent) => void;
|
|
150
|
-
ontouchend: (event: TouchEvent) => void;
|
|
151
|
-
onGesturestart: (e: any) => void;
|
|
152
|
-
/**
|
|
153
|
-
* 获取初始化的 pencilLine
|
|
154
|
-
* @param pt 需包含 penId
|
|
155
|
-
*/
|
|
156
|
-
private getInitPencilLine;
|
|
157
|
-
/**
|
|
158
|
-
* 获取初始化的 drawingLine
|
|
159
|
-
* @param pt 需包含 penId
|
|
160
|
-
*/
|
|
161
|
-
private createDrawingLine;
|
|
162
|
-
onMouseDown: (e: {
|
|
163
|
-
x: number;
|
|
164
|
-
y: number;
|
|
165
|
-
clientX: number;
|
|
166
|
-
clientY: number;
|
|
167
|
-
pageX: number;
|
|
168
|
-
pageY: number;
|
|
169
|
-
buttons?: number;
|
|
170
|
-
ctrlKey?: boolean;
|
|
171
|
-
shiftKey?: boolean;
|
|
172
|
-
altKey?: boolean;
|
|
173
|
-
}) => void;
|
|
174
|
-
onMouseMove: (e: {
|
|
175
|
-
x: number;
|
|
176
|
-
y: number;
|
|
177
|
-
clientX: number;
|
|
178
|
-
clientY: number;
|
|
179
|
-
pageX: number;
|
|
180
|
-
pageY: number;
|
|
181
|
-
buttons?: number;
|
|
182
|
-
ctrlKey?: boolean;
|
|
183
|
-
shiftKey?: boolean;
|
|
184
|
-
altKey?: boolean;
|
|
185
|
-
}) => void;
|
|
186
|
-
onMouseUp: (e: {
|
|
187
|
-
x: number;
|
|
188
|
-
y: number;
|
|
189
|
-
clientX: number;
|
|
190
|
-
clientY: number;
|
|
191
|
-
pageX: number;
|
|
192
|
-
pageY: number;
|
|
193
|
-
buttons?: number;
|
|
194
|
-
ctrlKey?: boolean;
|
|
195
|
-
shiftKey?: boolean;
|
|
196
|
-
altKey?: boolean;
|
|
197
|
-
button?: number;
|
|
198
|
-
}) => void;
|
|
199
|
-
private addRuleLine;
|
|
200
|
-
clearRuleLines(): void;
|
|
201
|
-
get ruleLines(): Pen[];
|
|
202
|
-
/**
|
|
203
|
-
* @description 调整pen的坐标,让pen按照网格自动对齐
|
|
204
|
-
* @author Joseph Ho
|
|
205
|
-
* @date 14/11/2023
|
|
206
|
-
* @memberof Canvas
|
|
207
|
-
*/
|
|
208
|
-
alignPenToGrid(pen: Pen): void;
|
|
209
|
-
/**
|
|
210
|
-
* 拖拽结束,数据更新到 active.pens
|
|
211
|
-
*/
|
|
212
|
-
private movedActivePens;
|
|
213
|
-
/**
|
|
214
|
-
* 复制移动后的笔
|
|
215
|
-
*/
|
|
216
|
-
private copyMovedPens;
|
|
217
|
-
/**
|
|
218
|
-
* 若本次改变的画笔存在图片,并且在上层 or 下层,需要擦除上层 or 下层
|
|
219
|
-
* 子节点中包含图片,也需要重绘
|
|
220
|
-
* @param pens 本次改变的 pens
|
|
221
|
-
*/
|
|
222
|
-
initImageCanvas(pens: Pen[]): void;
|
|
223
|
-
initTemplateCanvas(pens: Pen[]): void;
|
|
224
|
-
private hasImage;
|
|
225
|
-
private clearDock;
|
|
226
|
-
inactive(drawing?: boolean): void;
|
|
227
|
-
active(pens: Pen[], emit?: boolean): void;
|
|
228
|
-
getSizeCPs(): void;
|
|
229
|
-
getSpecialAngle(to: Point, last: Point): void;
|
|
230
|
-
onResize: () => void;
|
|
231
|
-
onScroll: () => void;
|
|
232
|
-
calibrateMouse: (pt: Point) => Point;
|
|
233
|
-
clearHover(): void;
|
|
234
|
-
private getContainerHover;
|
|
235
|
-
private getHover;
|
|
236
|
-
private inPens;
|
|
237
|
-
private dockInAnchor;
|
|
238
|
-
inAnchor(pt: Point, pen: Pen, anchor: Point): HoverType;
|
|
239
|
-
resize(w?: number, h?: number): void;
|
|
240
|
-
clearCanvas(): void;
|
|
241
|
-
addPen(pen: Pen, history?: boolean, emit?: boolean): Promise<Pen>;
|
|
242
|
-
pushHistory(action: EditAction): void;
|
|
243
|
-
undo(): void;
|
|
244
|
-
redo(): void;
|
|
245
|
-
activeHistory(): void;
|
|
246
|
-
doEditAction(action: EditAction, undo: boolean): void;
|
|
247
|
-
makePen(pen: Pen): void;
|
|
248
|
-
drawline(mouse?: Point): void;
|
|
249
|
-
initLineRect(pen: Pen): void;
|
|
250
|
-
drawingPencil(): void;
|
|
251
|
-
stopPencil(): void;
|
|
252
|
-
finishDrawline(end?: boolean): Promise<void>;
|
|
253
|
-
finishPencil(): Promise<void>;
|
|
254
|
-
/**
|
|
255
|
-
* 火狐浏览器无法绘制 svg 不存在 width height 的问题
|
|
256
|
-
* 此方法手动添加 width 和 height 解决火狐浏览器绘制 svg
|
|
257
|
-
* @param pen
|
|
258
|
-
*/
|
|
259
|
-
private firefoxLoadSvg;
|
|
260
|
-
loadImage(pen: Pen): void;
|
|
261
|
-
private imageTimer;
|
|
262
|
-
imageLoaded(): void;
|
|
263
|
-
private templateImageTimer;
|
|
264
|
-
templateImageLoaded(): void;
|
|
265
|
-
setCalculativeByScale(pen: Pen): void;
|
|
266
|
-
updatePenRect(pen: Pen, { worldRectIsReady, playingAnimate, }?: {
|
|
267
|
-
worldRectIsReady?: boolean;
|
|
268
|
-
playingAnimate?: boolean;
|
|
269
|
-
noChildren?: boolean;
|
|
270
|
-
}): void;
|
|
271
|
-
render: (patchFlags?: number | boolean) => void;
|
|
272
|
-
renderPens: () => void;
|
|
273
|
-
private renderPenContainChild;
|
|
274
|
-
renderBorder: () => void;
|
|
275
|
-
renderHoverPoint: () => void;
|
|
276
|
-
translate(x?: number, y?: number): void;
|
|
277
|
-
onMovePens(): void;
|
|
278
|
-
/**
|
|
279
|
-
* 缩放整个画布
|
|
280
|
-
* @param scale 缩放比例,最终的 data.scale
|
|
281
|
-
* @param center 中心点,引用类型,存在副作用,会更改原值
|
|
282
|
-
*/
|
|
283
|
-
scale(scale: number, center?: {
|
|
284
|
-
x: number;
|
|
285
|
-
y: number;
|
|
286
|
-
}): void;
|
|
287
|
-
templateScale(scale: number, center?: {
|
|
288
|
-
x: number;
|
|
289
|
-
y: number;
|
|
290
|
-
}): void;
|
|
291
|
-
rotatePens(e: Point): void;
|
|
292
|
-
resizePens(e: Point): void;
|
|
293
|
-
movePens(e: {
|
|
294
|
-
x: number;
|
|
295
|
-
y: number;
|
|
296
|
-
ctrlKey?: boolean;
|
|
297
|
-
shiftKey?: boolean;
|
|
298
|
-
altKey?: boolean;
|
|
299
|
-
}): void;
|
|
300
|
-
/**
|
|
301
|
-
* 初始化移动,更改画笔的 id parentId 等关联关系
|
|
302
|
-
* @param pen 要修改的画笔
|
|
303
|
-
* @param pens 本次操作的画笔们,包含子画笔
|
|
304
|
-
*/
|
|
305
|
-
private changeIdsByMoving;
|
|
306
|
-
/**
|
|
307
|
-
* 初始化 this.movingPens
|
|
308
|
-
* 修改 ids (id parentId children 等)
|
|
309
|
-
* 半透明,去图片
|
|
310
|
-
*/
|
|
311
|
-
initMovingPens(): void;
|
|
312
|
-
moveLineAnchor(pt: {
|
|
313
|
-
x: number;
|
|
314
|
-
y: number;
|
|
315
|
-
}, keyOptions: {
|
|
316
|
-
ctrlKey?: boolean;
|
|
317
|
-
shiftKey?: boolean;
|
|
318
|
-
altKey?: boolean;
|
|
319
|
-
}): void;
|
|
320
|
-
moveLineAnchorPrev(e: {
|
|
321
|
-
x: number;
|
|
322
|
-
y: number;
|
|
323
|
-
}): void;
|
|
324
|
-
moveLineAnchorNext(e: {
|
|
325
|
-
x: number;
|
|
326
|
-
y: number;
|
|
327
|
-
}): void;
|
|
328
|
-
setAnchor(e: {
|
|
329
|
-
x: number;
|
|
330
|
-
y: number;
|
|
331
|
-
}): Promise<void>;
|
|
332
|
-
/**
|
|
333
|
-
* 连线允许移动,若与其它图形有连接,但其它图形不在此次移动中,会断开连接
|
|
334
|
-
* @param line 连线
|
|
335
|
-
* @param pens 本次移动的全部图形,包含子节点
|
|
336
|
-
*/
|
|
337
|
-
private checkDisconnect;
|
|
338
|
-
/**
|
|
339
|
-
* 移动 画笔们
|
|
340
|
-
* @param pens 画笔们,不包含子节点
|
|
341
|
-
* @param x 偏移 x
|
|
342
|
-
* @param y 偏移 y
|
|
343
|
-
* @param doing 是否持续移动
|
|
344
|
-
*/
|
|
345
|
-
translatePens(pens: Pen[], x: number, y: number, doing?: boolean): void;
|
|
346
|
-
/**
|
|
347
|
-
* 移动 画笔们
|
|
348
|
-
* @param pens 画笔们,不包含子节点
|
|
349
|
-
* @param x 偏移 x
|
|
350
|
-
* @param y 偏移 y
|
|
351
|
-
* @param doing 是否持续移动
|
|
352
|
-
*/
|
|
353
|
-
templateTranslatePens(pens: Pen[], x: number, y: number): void;
|
|
354
|
-
private calcAutoAnchor;
|
|
355
|
-
restoreNodeAnimate(pen: Pen): void;
|
|
356
|
-
updateLines(pen: Pen, change?: boolean): void;
|
|
357
|
-
calcActiveRect(): void;
|
|
358
|
-
/**
|
|
359
|
-
* 旋转当前画笔包括子节点
|
|
360
|
-
* @param pen 旋转的画笔
|
|
361
|
-
* @param angle 本次的旋转值,加到 pen.calculative.rotate 上
|
|
362
|
-
*/
|
|
363
|
-
rotatePen(pen: Pen, angle: number, rect: Rect): void;
|
|
364
|
-
nextAnimate(pen: Pen): void;
|
|
365
|
-
getFrameProps(pen: Pen): {};
|
|
366
|
-
animate(): void;
|
|
367
|
-
get clipboardName(): string;
|
|
368
|
-
copy(pens?: Pen[], emit?: boolean): Promise<void>;
|
|
369
|
-
cut(pens?: Pen[]): void;
|
|
370
|
-
paste(): Promise<void>;
|
|
371
|
-
/**
|
|
372
|
-
* 获取 pens 列表中的所有节点(包含子节点)
|
|
373
|
-
* @param pens 不包含子节点
|
|
374
|
-
*/
|
|
375
|
-
getAllByPens(pens: Pen[]): Pen[];
|
|
376
|
-
getAllFollowersByPens(pens: Pen[], deep?: boolean): Pen[];
|
|
377
|
-
setFollowers(pens?: Pen[]): void;
|
|
378
|
-
/**
|
|
379
|
-
*
|
|
380
|
-
* @param pen 当前复制的画笔
|
|
381
|
-
* @param parentId 父节点 id
|
|
382
|
-
* @param clipboard 本次复制的全部画笔,包含子节点, 以及 origin 和 scale
|
|
383
|
-
* @returns 复制后的画笔
|
|
384
|
-
*/
|
|
385
|
-
private pastePen;
|
|
386
|
-
/**
|
|
387
|
-
* 修改对应连线的 anchors
|
|
388
|
-
* @param oldId 老 id
|
|
389
|
-
* @param pen 节点
|
|
390
|
-
* @param pastePens 本次复制的 pens 包含子节点
|
|
391
|
-
*/
|
|
392
|
-
changeLineAnchors(oldId: string, pen: Pen, pastePens: Pen[]): void;
|
|
393
|
-
/**
|
|
394
|
-
* 复制连线的过程,修改 与 此线连接 node 的 connectedLines
|
|
395
|
-
* @param oldId 线原 id
|
|
396
|
-
* @param line 线
|
|
397
|
-
* @param pastePens 此处复制的全部 pens (包含子节点)
|
|
398
|
-
*/
|
|
399
|
-
changeNodeConnectedLine(oldId: string, line: Pen, pastePens: Pen[]): void;
|
|
400
|
-
delete(pens?: Pen[], canDelLocked?: boolean, history?: boolean): Promise<void>;
|
|
401
|
-
private _del;
|
|
402
|
-
getDelPens(pen: Pen, delPens: Pen[]): void;
|
|
403
|
-
private getLockedParent;
|
|
404
|
-
delForce(pen: Pen): void;
|
|
405
|
-
private delConnectedLines;
|
|
406
|
-
private ondblclick;
|
|
407
|
-
showInput: (pen: Pen, rect?: Rect, background?: string) => void;
|
|
408
|
-
setInputStyle: (pen: Pen) => void;
|
|
409
|
-
convertSpecialCharacter(str: any): any;
|
|
410
|
-
hideInput: () => void;
|
|
411
|
-
private createInput;
|
|
412
|
-
clearDropdownList(): void;
|
|
413
|
-
private setDropdownList;
|
|
414
|
-
/**
|
|
415
|
-
* 添加一个选项到 dropdown dom 中
|
|
416
|
-
* @param text 选项文字
|
|
417
|
-
* @param index 选项索引
|
|
418
|
-
*/
|
|
419
|
-
private dropdownAppendOption;
|
|
420
|
-
private selectDropdown;
|
|
421
|
-
find(idOrTag: string): Pen[];
|
|
422
|
-
findOne(idOrTag: string): Pen | undefined;
|
|
423
|
-
changePenId(oldId: string, newId: string): void;
|
|
424
|
-
updateValue(pen: Pen, data: IValue): void;
|
|
425
|
-
/**
|
|
426
|
-
* 执行 pen ,以及 pen 的子孙节点的 onResize 生命周期函数
|
|
427
|
-
*/
|
|
428
|
-
private execPenResize;
|
|
429
|
-
setPenRect(pen: Pen, rect: Rect, render?: boolean): void;
|
|
430
|
-
getPenRect(pen: Pen, origin?: Point, scale?: number): {
|
|
431
|
-
x: number;
|
|
432
|
-
y: number;
|
|
433
|
-
width: number;
|
|
434
|
-
height: number;
|
|
435
|
-
};
|
|
436
|
-
toPng(padding?: Padding, callback?: BlobCallback, containBkImg?: boolean, maxWidth?: number): string;
|
|
437
|
-
activeToPng(padding?: Padding, maxWidth?: number): string;
|
|
438
|
-
pensToPng(pens?: Pen[], padding?: Padding, maxWidth?: number): string;
|
|
439
|
-
toggleAnchorMode(): void;
|
|
440
|
-
addAnchorHand(): void;
|
|
441
|
-
removeAnchorHand(): void;
|
|
442
|
-
toggleAnchorHand(): void;
|
|
443
|
-
gotoView(x: number, y: number): void;
|
|
444
|
-
showMagnifier(): void;
|
|
445
|
-
hideMagnifier(): void;
|
|
446
|
-
private inFitBorder;
|
|
447
|
-
showFit(): void;
|
|
448
|
-
hideFit(): void;
|
|
449
|
-
makeFit(): void;
|
|
450
|
-
updateFit(e: any): void;
|
|
451
|
-
updateFitRect(fit?: Fit): void;
|
|
452
|
-
deleteFit(fit?: Fit): void;
|
|
453
|
-
calcuActiveFit(): void;
|
|
454
|
-
toggleMagnifier(): void;
|
|
455
|
-
destroy(): void;
|
|
456
|
-
}
|
|
1
|
+
import { Pen, IValue } from '../pen';
|
|
2
|
+
import { Point } from '../point';
|
|
3
|
+
import { Rect } from '../rect';
|
|
4
|
+
import { EditAction, Fit, Meta2dStore } from '../store';
|
|
5
|
+
import { Padding } from '../utils';
|
|
6
|
+
import { HotkeyType, HoverType, MouseRight } from '../data';
|
|
7
|
+
import { curve, mind, lineSegment } from '../diagrams';
|
|
8
|
+
import { polyline } from '../diagrams/line/polyline';
|
|
9
|
+
import { Tooltip } from '../tooltip';
|
|
10
|
+
import { Scroll } from '../scroll';
|
|
11
|
+
import { CanvasImage } from './canvasImage';
|
|
12
|
+
import { MagnifierCanvas } from './magnifierCanvas';
|
|
13
|
+
import { Meta2d } from '../core';
|
|
14
|
+
import { Dialog } from '../dialog';
|
|
15
|
+
import { Title } from '../title';
|
|
16
|
+
import { CanvasTemplate } from './canvasTemplate';
|
|
17
|
+
export declare const movingSuffix: "-moving";
|
|
18
|
+
export declare class Canvas {
|
|
19
|
+
parent: Meta2d;
|
|
20
|
+
parentElement: HTMLElement;
|
|
21
|
+
store: Meta2dStore;
|
|
22
|
+
canvas: HTMLCanvasElement;
|
|
23
|
+
offscreen: HTMLCanvasElement;
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
externalElements: HTMLDivElement;
|
|
27
|
+
clientRect?: DOMRect;
|
|
28
|
+
canvasRect: Rect;
|
|
29
|
+
activeRect: Rect;
|
|
30
|
+
initActiveRect: Rect;
|
|
31
|
+
dragRect: Rect;
|
|
32
|
+
lastRotate: number;
|
|
33
|
+
sizeCPs: Point[];
|
|
34
|
+
activeInitPos: Point[];
|
|
35
|
+
hoverType: HoverType;
|
|
36
|
+
resizeIndex: number;
|
|
37
|
+
mouseDown: {
|
|
38
|
+
x: number;
|
|
39
|
+
y: number;
|
|
40
|
+
restore?: boolean;
|
|
41
|
+
};
|
|
42
|
+
hotkeyType: HotkeyType;
|
|
43
|
+
mouseRight: MouseRight;
|
|
44
|
+
addCaches: Pen[];
|
|
45
|
+
touchCenter?: Point;
|
|
46
|
+
initTouchDis?: number;
|
|
47
|
+
initScale?: number;
|
|
48
|
+
touchScaling?: boolean;
|
|
49
|
+
touchMoving?: boolean;
|
|
50
|
+
startTouches?: TouchList;
|
|
51
|
+
lastOffsetX: number;
|
|
52
|
+
lastOffsetY: number;
|
|
53
|
+
drawingLineName?: string;
|
|
54
|
+
drawLineFns: string[];
|
|
55
|
+
drawingLine?: Pen;
|
|
56
|
+
pencil?: boolean;
|
|
57
|
+
pencilLine?: Pen;
|
|
58
|
+
movingPens: Pen[];
|
|
59
|
+
patchFlagsLines?: Set<Pen>;
|
|
60
|
+
dock: {
|
|
61
|
+
xDock: Point;
|
|
62
|
+
yDock: Point;
|
|
63
|
+
};
|
|
64
|
+
prevAnchor: Point;
|
|
65
|
+
nextAnchor: Point;
|
|
66
|
+
private lastMouseTime;
|
|
67
|
+
private hoverTimer;
|
|
68
|
+
private fitTimer;
|
|
69
|
+
private willInactivePen;
|
|
70
|
+
patchFlags: boolean;
|
|
71
|
+
lastRender: number;
|
|
72
|
+
touchStart: number;
|
|
73
|
+
touchStartTimer: any;
|
|
74
|
+
timer: any;
|
|
75
|
+
private lastAnimateRender;
|
|
76
|
+
animateRendering: boolean;
|
|
77
|
+
renderTimer: number;
|
|
78
|
+
initPens?: Pen[];
|
|
79
|
+
pointSize: 8;
|
|
80
|
+
pasteOffset: boolean;
|
|
81
|
+
opening: boolean;
|
|
82
|
+
maxZindex: number;
|
|
83
|
+
canMoveLine: boolean;
|
|
84
|
+
randomIdObj: object;
|
|
85
|
+
keyOptions?: {
|
|
86
|
+
shiftKey?: boolean;
|
|
87
|
+
altKey?: boolean;
|
|
88
|
+
ctrlKey?: boolean;
|
|
89
|
+
metaKey?: boolean;
|
|
90
|
+
};
|
|
91
|
+
/**
|
|
92
|
+
* @deprecated 改用 beforeAddPens
|
|
93
|
+
*/
|
|
94
|
+
beforeAddPen: (pen: Pen) => boolean;
|
|
95
|
+
beforeAddPens: (pens: Pen[]) => Promise<boolean>;
|
|
96
|
+
beforeAddAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
|
|
97
|
+
beforeRemovePens: (pens: Pen[]) => Promise<boolean>;
|
|
98
|
+
beforeRemoveAnchor: (pen: Pen, anchor: Point) => Promise<boolean>;
|
|
99
|
+
customResizeDock: (store: Meta2dStore, rect: Rect, pens: Pen[], resizeIndex: number) => {
|
|
100
|
+
xDock: Point;
|
|
101
|
+
yDock: Point;
|
|
102
|
+
};
|
|
103
|
+
customMoveDock: (store: Meta2dStore, rect: Rect, pens: Pen[], offset: Point) => {
|
|
104
|
+
xDock: Point;
|
|
105
|
+
yDock: Point;
|
|
106
|
+
};
|
|
107
|
+
inputParent: HTMLDivElement;
|
|
108
|
+
inputDiv: HTMLDivElement;
|
|
109
|
+
inputRight: HTMLDivElement;
|
|
110
|
+
dropdown: HTMLUListElement;
|
|
111
|
+
tooltip: Tooltip;
|
|
112
|
+
title: Title;
|
|
113
|
+
mousePos: Point;
|
|
114
|
+
scroll: Scroll;
|
|
115
|
+
movingAnchor: Point;
|
|
116
|
+
canvasTemplate: CanvasTemplate;
|
|
117
|
+
canvasImage: CanvasImage;
|
|
118
|
+
canvasImageBottom: CanvasImage;
|
|
119
|
+
magnifierCanvas: MagnifierCanvas;
|
|
120
|
+
dialog: Dialog;
|
|
121
|
+
autoPolylineFlag: boolean;
|
|
122
|
+
stopPropagation: (e: MouseEvent) => void;
|
|
123
|
+
constructor(parent: Meta2d, parentElement: HTMLElement, store: Meta2dStore);
|
|
124
|
+
curve: typeof curve;
|
|
125
|
+
polyline: typeof polyline;
|
|
126
|
+
mind: typeof mind;
|
|
127
|
+
line: typeof lineSegment;
|
|
128
|
+
listen(): void;
|
|
129
|
+
onCopy: (event: ClipboardEvent) => void;
|
|
130
|
+
onCut: (event: ClipboardEvent) => void;
|
|
131
|
+
onPaste: (event: ClipboardEvent) => void;
|
|
132
|
+
onMessage: (e: MessageEvent) => void;
|
|
133
|
+
onwheel: (e: WheelEvent) => void;
|
|
134
|
+
onkeydown: (e: KeyboardEvent) => void;
|
|
135
|
+
/**
|
|
136
|
+
* 分割连线的锚点,变成两条线
|
|
137
|
+
* @param line 连线
|
|
138
|
+
* @param anchor 锚点,连线的某个锚点,引用相同
|
|
139
|
+
*/
|
|
140
|
+
splitLine(line: Pen, anchor: Point): void;
|
|
141
|
+
private translateAnchor;
|
|
142
|
+
onkeyup: (e: KeyboardEvent) => void;
|
|
143
|
+
fileToPen(file: File, isGif: boolean): Promise<Pen>;
|
|
144
|
+
ondrop: (event: DragEvent) => Promise<void>;
|
|
145
|
+
dropPens(pens: Pen[], e: Point): Promise<void>;
|
|
146
|
+
randomCombineId(pen: Pen, pens: Pen[], parentId?: string): Pen;
|
|
147
|
+
addPens(pens: Pen[], history?: boolean): Promise<Pen[]>;
|
|
148
|
+
ontouchstart: (e: TouchEvent) => void;
|
|
149
|
+
ontouchmove: (event: TouchEvent) => void;
|
|
150
|
+
ontouchend: (event: TouchEvent) => void;
|
|
151
|
+
onGesturestart: (e: any) => void;
|
|
152
|
+
/**
|
|
153
|
+
* 获取初始化的 pencilLine
|
|
154
|
+
* @param pt 需包含 penId
|
|
155
|
+
*/
|
|
156
|
+
private getInitPencilLine;
|
|
157
|
+
/**
|
|
158
|
+
* 获取初始化的 drawingLine
|
|
159
|
+
* @param pt 需包含 penId
|
|
160
|
+
*/
|
|
161
|
+
private createDrawingLine;
|
|
162
|
+
onMouseDown: (e: {
|
|
163
|
+
x: number;
|
|
164
|
+
y: number;
|
|
165
|
+
clientX: number;
|
|
166
|
+
clientY: number;
|
|
167
|
+
pageX: number;
|
|
168
|
+
pageY: number;
|
|
169
|
+
buttons?: number;
|
|
170
|
+
ctrlKey?: boolean;
|
|
171
|
+
shiftKey?: boolean;
|
|
172
|
+
altKey?: boolean;
|
|
173
|
+
}) => void;
|
|
174
|
+
onMouseMove: (e: {
|
|
175
|
+
x: number;
|
|
176
|
+
y: number;
|
|
177
|
+
clientX: number;
|
|
178
|
+
clientY: number;
|
|
179
|
+
pageX: number;
|
|
180
|
+
pageY: number;
|
|
181
|
+
buttons?: number;
|
|
182
|
+
ctrlKey?: boolean;
|
|
183
|
+
shiftKey?: boolean;
|
|
184
|
+
altKey?: boolean;
|
|
185
|
+
}) => void;
|
|
186
|
+
onMouseUp: (e: {
|
|
187
|
+
x: number;
|
|
188
|
+
y: number;
|
|
189
|
+
clientX: number;
|
|
190
|
+
clientY: number;
|
|
191
|
+
pageX: number;
|
|
192
|
+
pageY: number;
|
|
193
|
+
buttons?: number;
|
|
194
|
+
ctrlKey?: boolean;
|
|
195
|
+
shiftKey?: boolean;
|
|
196
|
+
altKey?: boolean;
|
|
197
|
+
button?: number;
|
|
198
|
+
}) => void;
|
|
199
|
+
private addRuleLine;
|
|
200
|
+
clearRuleLines(): void;
|
|
201
|
+
get ruleLines(): Pen[];
|
|
202
|
+
/**
|
|
203
|
+
* @description 调整pen的坐标,让pen按照网格自动对齐
|
|
204
|
+
* @author Joseph Ho
|
|
205
|
+
* @date 14/11/2023
|
|
206
|
+
* @memberof Canvas
|
|
207
|
+
*/
|
|
208
|
+
alignPenToGrid(pen: Pen): void;
|
|
209
|
+
/**
|
|
210
|
+
* 拖拽结束,数据更新到 active.pens
|
|
211
|
+
*/
|
|
212
|
+
private movedActivePens;
|
|
213
|
+
/**
|
|
214
|
+
* 复制移动后的笔
|
|
215
|
+
*/
|
|
216
|
+
private copyMovedPens;
|
|
217
|
+
/**
|
|
218
|
+
* 若本次改变的画笔存在图片,并且在上层 or 下层,需要擦除上层 or 下层
|
|
219
|
+
* 子节点中包含图片,也需要重绘
|
|
220
|
+
* @param pens 本次改变的 pens
|
|
221
|
+
*/
|
|
222
|
+
initImageCanvas(pens: Pen[]): void;
|
|
223
|
+
initTemplateCanvas(pens: Pen[]): void;
|
|
224
|
+
private hasImage;
|
|
225
|
+
private clearDock;
|
|
226
|
+
inactive(drawing?: boolean): void;
|
|
227
|
+
active(pens: Pen[], emit?: boolean): void;
|
|
228
|
+
getSizeCPs(): void;
|
|
229
|
+
getSpecialAngle(to: Point, last: Point): void;
|
|
230
|
+
onResize: () => void;
|
|
231
|
+
onScroll: () => void;
|
|
232
|
+
calibrateMouse: (pt: Point) => Point;
|
|
233
|
+
clearHover(): void;
|
|
234
|
+
private getContainerHover;
|
|
235
|
+
private getHover;
|
|
236
|
+
private inPens;
|
|
237
|
+
private dockInAnchor;
|
|
238
|
+
inAnchor(pt: Point, pen: Pen, anchor: Point): HoverType;
|
|
239
|
+
resize(w?: number, h?: number): void;
|
|
240
|
+
clearCanvas(): void;
|
|
241
|
+
addPen(pen: Pen, history?: boolean, emit?: boolean): Promise<Pen>;
|
|
242
|
+
pushHistory(action: EditAction): void;
|
|
243
|
+
undo(): void;
|
|
244
|
+
redo(): void;
|
|
245
|
+
activeHistory(): void;
|
|
246
|
+
doEditAction(action: EditAction, undo: boolean): void;
|
|
247
|
+
makePen(pen: Pen): void;
|
|
248
|
+
drawline(mouse?: Point): void;
|
|
249
|
+
initLineRect(pen: Pen): void;
|
|
250
|
+
drawingPencil(): void;
|
|
251
|
+
stopPencil(): void;
|
|
252
|
+
finishDrawline(end?: boolean): Promise<void>;
|
|
253
|
+
finishPencil(): Promise<void>;
|
|
254
|
+
/**
|
|
255
|
+
* 火狐浏览器无法绘制 svg 不存在 width height 的问题
|
|
256
|
+
* 此方法手动添加 width 和 height 解决火狐浏览器绘制 svg
|
|
257
|
+
* @param pen
|
|
258
|
+
*/
|
|
259
|
+
private firefoxLoadSvg;
|
|
260
|
+
loadImage(pen: Pen): void;
|
|
261
|
+
private imageTimer;
|
|
262
|
+
imageLoaded(): void;
|
|
263
|
+
private templateImageTimer;
|
|
264
|
+
templateImageLoaded(): void;
|
|
265
|
+
setCalculativeByScale(pen: Pen): void;
|
|
266
|
+
updatePenRect(pen: Pen, { worldRectIsReady, playingAnimate, }?: {
|
|
267
|
+
worldRectIsReady?: boolean;
|
|
268
|
+
playingAnimate?: boolean;
|
|
269
|
+
noChildren?: boolean;
|
|
270
|
+
}): void;
|
|
271
|
+
render: (patchFlags?: number | boolean) => void;
|
|
272
|
+
renderPens: () => void;
|
|
273
|
+
private renderPenContainChild;
|
|
274
|
+
renderBorder: () => void;
|
|
275
|
+
renderHoverPoint: () => void;
|
|
276
|
+
translate(x?: number, y?: number): void;
|
|
277
|
+
onMovePens(): void;
|
|
278
|
+
/**
|
|
279
|
+
* 缩放整个画布
|
|
280
|
+
* @param scale 缩放比例,最终的 data.scale
|
|
281
|
+
* @param center 中心点,引用类型,存在副作用,会更改原值
|
|
282
|
+
*/
|
|
283
|
+
scale(scale: number, center?: {
|
|
284
|
+
x: number;
|
|
285
|
+
y: number;
|
|
286
|
+
}): void;
|
|
287
|
+
templateScale(scale: number, center?: {
|
|
288
|
+
x: number;
|
|
289
|
+
y: number;
|
|
290
|
+
}): void;
|
|
291
|
+
rotatePens(e: Point): void;
|
|
292
|
+
resizePens(e: Point): void;
|
|
293
|
+
movePens(e: {
|
|
294
|
+
x: number;
|
|
295
|
+
y: number;
|
|
296
|
+
ctrlKey?: boolean;
|
|
297
|
+
shiftKey?: boolean;
|
|
298
|
+
altKey?: boolean;
|
|
299
|
+
}): void;
|
|
300
|
+
/**
|
|
301
|
+
* 初始化移动,更改画笔的 id parentId 等关联关系
|
|
302
|
+
* @param pen 要修改的画笔
|
|
303
|
+
* @param pens 本次操作的画笔们,包含子画笔
|
|
304
|
+
*/
|
|
305
|
+
private changeIdsByMoving;
|
|
306
|
+
/**
|
|
307
|
+
* 初始化 this.movingPens
|
|
308
|
+
* 修改 ids (id parentId children 等)
|
|
309
|
+
* 半透明,去图片
|
|
310
|
+
*/
|
|
311
|
+
initMovingPens(): void;
|
|
312
|
+
moveLineAnchor(pt: {
|
|
313
|
+
x: number;
|
|
314
|
+
y: number;
|
|
315
|
+
}, keyOptions: {
|
|
316
|
+
ctrlKey?: boolean;
|
|
317
|
+
shiftKey?: boolean;
|
|
318
|
+
altKey?: boolean;
|
|
319
|
+
}): void;
|
|
320
|
+
moveLineAnchorPrev(e: {
|
|
321
|
+
x: number;
|
|
322
|
+
y: number;
|
|
323
|
+
}): void;
|
|
324
|
+
moveLineAnchorNext(e: {
|
|
325
|
+
x: number;
|
|
326
|
+
y: number;
|
|
327
|
+
}): void;
|
|
328
|
+
setAnchor(e: {
|
|
329
|
+
x: number;
|
|
330
|
+
y: number;
|
|
331
|
+
}): Promise<void>;
|
|
332
|
+
/**
|
|
333
|
+
* 连线允许移动,若与其它图形有连接,但其它图形不在此次移动中,会断开连接
|
|
334
|
+
* @param line 连线
|
|
335
|
+
* @param pens 本次移动的全部图形,包含子节点
|
|
336
|
+
*/
|
|
337
|
+
private checkDisconnect;
|
|
338
|
+
/**
|
|
339
|
+
* 移动 画笔们
|
|
340
|
+
* @param pens 画笔们,不包含子节点
|
|
341
|
+
* @param x 偏移 x
|
|
342
|
+
* @param y 偏移 y
|
|
343
|
+
* @param doing 是否持续移动
|
|
344
|
+
*/
|
|
345
|
+
translatePens(pens: Pen[], x: number, y: number, doing?: boolean): void;
|
|
346
|
+
/**
|
|
347
|
+
* 移动 画笔们
|
|
348
|
+
* @param pens 画笔们,不包含子节点
|
|
349
|
+
* @param x 偏移 x
|
|
350
|
+
* @param y 偏移 y
|
|
351
|
+
* @param doing 是否持续移动
|
|
352
|
+
*/
|
|
353
|
+
templateTranslatePens(pens: Pen[], x: number, y: number): void;
|
|
354
|
+
private calcAutoAnchor;
|
|
355
|
+
restoreNodeAnimate(pen: Pen): void;
|
|
356
|
+
updateLines(pen: Pen, change?: boolean): void;
|
|
357
|
+
calcActiveRect(): void;
|
|
358
|
+
/**
|
|
359
|
+
* 旋转当前画笔包括子节点
|
|
360
|
+
* @param pen 旋转的画笔
|
|
361
|
+
* @param angle 本次的旋转值,加到 pen.calculative.rotate 上
|
|
362
|
+
*/
|
|
363
|
+
rotatePen(pen: Pen, angle: number, rect: Rect): void;
|
|
364
|
+
nextAnimate(pen: Pen): void;
|
|
365
|
+
getFrameProps(pen: Pen): {};
|
|
366
|
+
animate(): void;
|
|
367
|
+
get clipboardName(): string;
|
|
368
|
+
copy(pens?: Pen[], emit?: boolean): Promise<void>;
|
|
369
|
+
cut(pens?: Pen[]): void;
|
|
370
|
+
paste(): Promise<void>;
|
|
371
|
+
/**
|
|
372
|
+
* 获取 pens 列表中的所有节点(包含子节点)
|
|
373
|
+
* @param pens 不包含子节点
|
|
374
|
+
*/
|
|
375
|
+
getAllByPens(pens: Pen[]): Pen[];
|
|
376
|
+
getAllFollowersByPens(pens: Pen[], deep?: boolean): Pen[];
|
|
377
|
+
setFollowers(pens?: Pen[]): void;
|
|
378
|
+
/**
|
|
379
|
+
*
|
|
380
|
+
* @param pen 当前复制的画笔
|
|
381
|
+
* @param parentId 父节点 id
|
|
382
|
+
* @param clipboard 本次复制的全部画笔,包含子节点, 以及 origin 和 scale
|
|
383
|
+
* @returns 复制后的画笔
|
|
384
|
+
*/
|
|
385
|
+
private pastePen;
|
|
386
|
+
/**
|
|
387
|
+
* 修改对应连线的 anchors
|
|
388
|
+
* @param oldId 老 id
|
|
389
|
+
* @param pen 节点
|
|
390
|
+
* @param pastePens 本次复制的 pens 包含子节点
|
|
391
|
+
*/
|
|
392
|
+
changeLineAnchors(oldId: string, pen: Pen, pastePens: Pen[]): void;
|
|
393
|
+
/**
|
|
394
|
+
* 复制连线的过程,修改 与 此线连接 node 的 connectedLines
|
|
395
|
+
* @param oldId 线原 id
|
|
396
|
+
* @param line 线
|
|
397
|
+
* @param pastePens 此处复制的全部 pens (包含子节点)
|
|
398
|
+
*/
|
|
399
|
+
changeNodeConnectedLine(oldId: string, line: Pen, pastePens: Pen[]): void;
|
|
400
|
+
delete(pens?: Pen[], canDelLocked?: boolean, history?: boolean): Promise<void>;
|
|
401
|
+
private _del;
|
|
402
|
+
getDelPens(pen: Pen, delPens: Pen[]): void;
|
|
403
|
+
private getLockedParent;
|
|
404
|
+
delForce(pen: Pen): void;
|
|
405
|
+
private delConnectedLines;
|
|
406
|
+
private ondblclick;
|
|
407
|
+
showInput: (pen: Pen, rect?: Rect, background?: string) => void;
|
|
408
|
+
setInputStyle: (pen: Pen) => void;
|
|
409
|
+
convertSpecialCharacter(str: any): any;
|
|
410
|
+
hideInput: () => void;
|
|
411
|
+
private createInput;
|
|
412
|
+
clearDropdownList(): void;
|
|
413
|
+
private setDropdownList;
|
|
414
|
+
/**
|
|
415
|
+
* 添加一个选项到 dropdown dom 中
|
|
416
|
+
* @param text 选项文字
|
|
417
|
+
* @param index 选项索引
|
|
418
|
+
*/
|
|
419
|
+
private dropdownAppendOption;
|
|
420
|
+
private selectDropdown;
|
|
421
|
+
find(idOrTag: string): Pen[];
|
|
422
|
+
findOne(idOrTag: string): Pen | undefined;
|
|
423
|
+
changePenId(oldId: string, newId: string): void;
|
|
424
|
+
updateValue(pen: Pen, data: IValue): void;
|
|
425
|
+
/**
|
|
426
|
+
* 执行 pen ,以及 pen 的子孙节点的 onResize 生命周期函数
|
|
427
|
+
*/
|
|
428
|
+
private execPenResize;
|
|
429
|
+
setPenRect(pen: Pen, rect: Rect, render?: boolean): void;
|
|
430
|
+
getPenRect(pen: Pen, origin?: Point, scale?: number): {
|
|
431
|
+
x: number;
|
|
432
|
+
y: number;
|
|
433
|
+
width: number;
|
|
434
|
+
height: number;
|
|
435
|
+
};
|
|
436
|
+
toPng(padding?: Padding, callback?: BlobCallback, containBkImg?: boolean, maxWidth?: number): string;
|
|
437
|
+
activeToPng(padding?: Padding, maxWidth?: number): string;
|
|
438
|
+
pensToPng(pens?: Pen[], padding?: Padding, maxWidth?: number): string;
|
|
439
|
+
toggleAnchorMode(): void;
|
|
440
|
+
addAnchorHand(): void;
|
|
441
|
+
removeAnchorHand(): void;
|
|
442
|
+
toggleAnchorHand(): void;
|
|
443
|
+
gotoView(x: number, y: number): void;
|
|
444
|
+
showMagnifier(): void;
|
|
445
|
+
hideMagnifier(): void;
|
|
446
|
+
private inFitBorder;
|
|
447
|
+
showFit(): void;
|
|
448
|
+
hideFit(): void;
|
|
449
|
+
makeFit(): void;
|
|
450
|
+
updateFit(e: any): void;
|
|
451
|
+
updateFitRect(fit?: Fit): void;
|
|
452
|
+
deleteFit(fit?: Fit): void;
|
|
453
|
+
calcuActiveFit(): void;
|
|
454
|
+
toggleMagnifier(): void;
|
|
455
|
+
destroy(): void;
|
|
456
|
+
}
|