@idraw/core 0.4.0-beta.9 → 0.4.0
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/dist/esm/board/index.d.ts +44 -0
- package/dist/esm/board/index.js +366 -0
- package/dist/esm/board/sharer.d.ts +21 -0
- package/dist/esm/board/sharer.js +101 -0
- package/dist/esm/board/viewer.d.ts +32 -0
- package/dist/esm/board/viewer.js +165 -0
- package/dist/esm/board/watcher.d.ts +15 -0
- package/dist/esm/board/watcher.js +218 -0
- package/dist/esm/config.d.ts +28 -0
- package/dist/esm/config.js +34 -0
- package/dist/esm/{lib → cursor}/cursor-image.d.ts +1 -0
- package/dist/esm/{lib → cursor}/cursor-image.js +1 -0
- package/dist/esm/cursor/cursor.d.ts +7 -0
- package/dist/esm/cursor/cursor.js +154 -0
- package/dist/esm/index.d.ts +39 -10
- package/dist/esm/index.js +296 -17
- package/dist/esm/middlewares/dragger/index.d.ts +7 -0
- package/dist/esm/{middleware → middlewares}/dragger/index.js +4 -3
- package/dist/esm/middlewares/info/config.d.ts +5 -0
- package/dist/esm/middlewares/info/config.js +9 -0
- package/dist/esm/middlewares/info/draw-info.d.ts +29 -0
- package/dist/esm/middlewares/info/draw-info.js +113 -0
- package/dist/esm/middlewares/info/index.d.ts +9 -0
- package/dist/esm/middlewares/info/index.js +131 -0
- package/dist/esm/middlewares/info/types.d.ts +3 -0
- package/dist/esm/middlewares/info/types.js +1 -0
- package/dist/esm/middlewares/layout-selector/config.d.ts +11 -0
- package/dist/esm/middlewares/layout-selector/config.js +12 -0
- package/dist/esm/middlewares/layout-selector/index.d.ts +5 -0
- package/dist/esm/middlewares/layout-selector/index.js +371 -0
- package/dist/esm/middlewares/layout-selector/types.d.ts +17 -0
- package/dist/esm/middlewares/layout-selector/types.js +2 -0
- package/dist/esm/middlewares/layout-selector/util.d.ts +9 -0
- package/dist/esm/middlewares/layout-selector/util.js +78 -0
- package/dist/esm/middlewares/pointer/index.d.ts +3 -0
- package/dist/esm/middlewares/pointer/index.js +42 -0
- package/dist/esm/middlewares/pointer/types.d.ts +3 -0
- package/dist/esm/middlewares/pointer/types.js +1 -0
- package/dist/esm/middlewares/ruler/config.d.ts +7 -0
- package/dist/esm/middlewares/ruler/config.js +21 -0
- package/dist/esm/middlewares/ruler/index.d.ts +3 -0
- package/dist/esm/middlewares/ruler/index.js +66 -0
- package/dist/esm/middlewares/ruler/types.d.ts +3 -0
- package/dist/esm/middlewares/ruler/types.js +1 -0
- package/dist/esm/{middleware → middlewares}/ruler/util.d.ts +20 -4
- package/dist/esm/{middleware → middlewares}/ruler/util.js +99 -26
- package/dist/esm/middlewares/scaler/index.d.ts +2 -0
- package/dist/esm/{middleware → middlewares}/scaler/index.js +2 -2
- package/dist/esm/{middleware → middlewares}/scroller/config.d.ts +4 -0
- package/dist/esm/middlewares/scroller/config.js +16 -0
- package/dist/esm/middlewares/scroller/index.d.ts +3 -0
- package/dist/esm/{middleware → middlewares}/scroller/index.js +47 -6
- package/dist/esm/middlewares/scroller/types.d.ts +11 -0
- package/dist/esm/middlewares/scroller/types.js +1 -0
- package/dist/esm/{middleware → middlewares}/scroller/util.d.ts +3 -2
- package/dist/esm/{middleware → middlewares}/scroller/util.js +33 -44
- package/dist/esm/{middleware → middlewares}/selector/config.d.ts +9 -1
- package/dist/esm/{middleware → middlewares}/selector/config.js +17 -1
- package/dist/esm/middlewares/selector/draw-auxiliary.d.ts +1 -0
- package/dist/esm/middlewares/selector/draw-auxiliary.js +12 -0
- package/dist/esm/middlewares/selector/draw-base.d.ts +30 -0
- package/dist/esm/middlewares/selector/draw-base.js +100 -0
- package/dist/esm/middlewares/selector/draw-debug.d.ts +5 -0
- package/dist/esm/middlewares/selector/draw-debug.js +30 -0
- package/dist/esm/middlewares/selector/draw-reference.d.ts +7 -0
- package/dist/esm/middlewares/selector/draw-reference.js +31 -0
- package/dist/esm/{middleware → middlewares}/selector/draw-wrapper.d.ts +16 -1
- package/dist/esm/middlewares/selector/draw-wrapper.js +139 -0
- package/dist/esm/middlewares/selector/index.d.ts +11 -0
- package/dist/esm/middlewares/selector/index.js +879 -0
- package/dist/esm/middlewares/selector/pattern/icon-rotate.d.ts +4 -0
- package/dist/esm/middlewares/selector/pattern/icon-rotate.js +88 -0
- package/dist/esm/middlewares/selector/pattern/index.d.ts +8 -0
- package/dist/esm/middlewares/selector/pattern/index.js +38 -0
- package/dist/esm/middlewares/selector/reference.d.ts +13 -0
- package/dist/esm/middlewares/selector/reference.js +267 -0
- package/dist/esm/{middleware → middlewares}/selector/types.d.ts +11 -5
- package/dist/esm/middlewares/selector/types.js +2 -0
- package/dist/esm/{middleware → middlewares}/selector/util.d.ts +14 -7
- package/dist/esm/{middleware → middlewares}/selector/util.js +46 -43
- package/dist/esm/middlewares/text-editor/index.d.ts +20 -0
- package/dist/esm/middlewares/text-editor/index.js +286 -0
- package/dist/esm/record.d.ts +5 -0
- package/dist/esm/record.js +38 -0
- package/dist/index.global.js +5740 -1632
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -6
- package/dist/esm/lib/cursor.d.ts +0 -16
- package/dist/esm/lib/cursor.js +0 -129
- package/dist/esm/middleware/dragger/index.d.ts +0 -7
- package/dist/esm/middleware/ruler/index.d.ts +0 -3
- package/dist/esm/middleware/ruler/index.js +0 -48
- package/dist/esm/middleware/scaler/index.d.ts +0 -3
- package/dist/esm/middleware/scroller/config.js +0 -6
- package/dist/esm/middleware/scroller/index.d.ts +0 -2
- package/dist/esm/middleware/selector/draw-wrapper.js +0 -107
- package/dist/esm/middleware/selector/index.d.ts +0 -5
- package/dist/esm/middleware/selector/index.js +0 -510
- package/dist/esm/middleware/selector/types.js +0 -1
- package/dist/esm/middleware/text-editor/index.d.ts +0 -3
- package/dist/esm/middleware/text-editor/index.js +0 -147
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _Cursor_instances, _Cursor_eventHub, _Cursor_container, _Cursor_cursorType, _Cursor_resizeCursorBaseImage, _Cursor_cursorImageMap, _Cursor_init, _Cursor_loadResizeCursorBaseImage, _Cursor_resetCursor, _Cursor_setCursorResize, _Cursor_appendRotateResizeImage;
|
|
13
|
+
import { limitAngle, loadImage, parseAngleToRadian } from '@idraw/util';
|
|
14
|
+
import { CURSOR, CURSOR_RESIZE, CURSOR_DRAG_DEFAULT, CURSOR_DRAG_ACTIVE, CURSOR_RESIZE_ROTATE } from './cursor-image';
|
|
15
|
+
import { coreEventKeys } from '../config';
|
|
16
|
+
export class Cursor {
|
|
17
|
+
constructor(container, opts) {
|
|
18
|
+
_Cursor_instances.add(this);
|
|
19
|
+
_Cursor_eventHub.set(this, void 0);
|
|
20
|
+
_Cursor_container.set(this, void 0);
|
|
21
|
+
_Cursor_cursorType.set(this, null);
|
|
22
|
+
_Cursor_resizeCursorBaseImage.set(this, null);
|
|
23
|
+
_Cursor_cursorImageMap.set(this, {
|
|
24
|
+
auto: CURSOR,
|
|
25
|
+
'drag-default': CURSOR_DRAG_DEFAULT,
|
|
26
|
+
'drag-active': CURSOR_DRAG_ACTIVE,
|
|
27
|
+
'rotate-0': CURSOR_RESIZE,
|
|
28
|
+
rotate: CURSOR_RESIZE_ROTATE
|
|
29
|
+
});
|
|
30
|
+
__classPrivateFieldSet(this, _Cursor_container, container, "f");
|
|
31
|
+
__classPrivateFieldSet(this, _Cursor_eventHub, opts.eventHub, "f");
|
|
32
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_init).call(this);
|
|
33
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_loadResizeCursorBaseImage).call(this);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
_Cursor_eventHub = new WeakMap(), _Cursor_container = new WeakMap(), _Cursor_cursorType = new WeakMap(), _Cursor_resizeCursorBaseImage = new WeakMap(), _Cursor_cursorImageMap = new WeakMap(), _Cursor_instances = new WeakSet(), _Cursor_init = function _Cursor_init() {
|
|
37
|
+
const eventHub = __classPrivateFieldGet(this, _Cursor_eventHub, "f");
|
|
38
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'default');
|
|
39
|
+
eventHub.on(coreEventKeys.CURSOR, (e) => {
|
|
40
|
+
var _a;
|
|
41
|
+
if (e.type === 'over-element' || !e.type) {
|
|
42
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'auto');
|
|
43
|
+
}
|
|
44
|
+
else if (e.type === 'resize-rotate') {
|
|
45
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'rotate');
|
|
46
|
+
}
|
|
47
|
+
else if (typeof e.type === 'string' && ((_a = e.type) === null || _a === void 0 ? void 0 : _a.startsWith('resize-'))) {
|
|
48
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_setCursorResize).call(this, e);
|
|
49
|
+
}
|
|
50
|
+
else if (e.type === 'drag-default') {
|
|
51
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'drag-default');
|
|
52
|
+
}
|
|
53
|
+
else if (e.type === 'drag-active') {
|
|
54
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'drag-active');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, 'auto');
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}, _Cursor_loadResizeCursorBaseImage = function _Cursor_loadResizeCursorBaseImage() {
|
|
61
|
+
loadImage(CURSOR_RESIZE)
|
|
62
|
+
.then((img) => {
|
|
63
|
+
__classPrivateFieldSet(this, _Cursor_resizeCursorBaseImage, img, "f");
|
|
64
|
+
})
|
|
65
|
+
.catch((err) => {
|
|
66
|
+
console.error(err);
|
|
67
|
+
});
|
|
68
|
+
}, _Cursor_resetCursor = function _Cursor_resetCursor(cursorKey) {
|
|
69
|
+
if (__classPrivateFieldGet(this, _Cursor_cursorType, "f") === cursorKey) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
__classPrivateFieldSet(this, _Cursor_cursorType, cursorKey, "f");
|
|
73
|
+
const image = __classPrivateFieldGet(this, _Cursor_cursorImageMap, "f")[__classPrivateFieldGet(this, _Cursor_cursorType, "f")] || __classPrivateFieldGet(this, _Cursor_cursorImageMap, "f")['auto'];
|
|
74
|
+
let offsetX = 0;
|
|
75
|
+
let offsetY = 0;
|
|
76
|
+
if (cursorKey.startsWith('rotate-') && __classPrivateFieldGet(this, _Cursor_cursorImageMap, "f")[__classPrivateFieldGet(this, _Cursor_cursorType, "f")]) {
|
|
77
|
+
offsetX = 10;
|
|
78
|
+
offsetY = 10;
|
|
79
|
+
}
|
|
80
|
+
else if (cursorKey === 'rotate') {
|
|
81
|
+
offsetX = 10;
|
|
82
|
+
offsetY = 10;
|
|
83
|
+
}
|
|
84
|
+
if (cursorKey === 'default') {
|
|
85
|
+
__classPrivateFieldGet(this, _Cursor_container, "f").style.cursor = 'default';
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
__classPrivateFieldGet(this, _Cursor_container, "f").style.cursor = `image-set(url(${image})2x) ${offsetX} ${offsetY}, auto`;
|
|
89
|
+
}
|
|
90
|
+
}, _Cursor_setCursorResize = function _Cursor_setCursorResize(e) {
|
|
91
|
+
var _a;
|
|
92
|
+
let totalAngle = 0;
|
|
93
|
+
if (e.type === 'resize-top') {
|
|
94
|
+
totalAngle += 0;
|
|
95
|
+
}
|
|
96
|
+
else if (e.type === 'resize-top-right') {
|
|
97
|
+
totalAngle += 45;
|
|
98
|
+
}
|
|
99
|
+
else if (e.type === 'resize-right') {
|
|
100
|
+
totalAngle += 90;
|
|
101
|
+
}
|
|
102
|
+
else if (e.type === 'resize-bottom-right') {
|
|
103
|
+
totalAngle += 135;
|
|
104
|
+
}
|
|
105
|
+
else if (e.type === 'resize-bottom') {
|
|
106
|
+
totalAngle += 180;
|
|
107
|
+
}
|
|
108
|
+
else if (e.type === 'resize-bottom-left') {
|
|
109
|
+
totalAngle += 225;
|
|
110
|
+
}
|
|
111
|
+
else if (e.type === 'resize-left') {
|
|
112
|
+
totalAngle += 270;
|
|
113
|
+
}
|
|
114
|
+
else if (e.type === 'resize-top-left') {
|
|
115
|
+
totalAngle += 315;
|
|
116
|
+
}
|
|
117
|
+
totalAngle += limitAngle(((_a = e === null || e === void 0 ? void 0 : e.element) === null || _a === void 0 ? void 0 : _a.angle) || 0);
|
|
118
|
+
if (Array.isArray(e.groupQueue) && e.groupQueue.length > 0) {
|
|
119
|
+
e.groupQueue.forEach((group) => {
|
|
120
|
+
totalAngle += limitAngle(group.angle || 0);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
totalAngle = limitAngle(totalAngle);
|
|
124
|
+
const cursorKey = __classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_appendRotateResizeImage).call(this, totalAngle);
|
|
125
|
+
__classPrivateFieldGet(this, _Cursor_instances, "m", _Cursor_resetCursor).call(this, cursorKey);
|
|
126
|
+
}, _Cursor_appendRotateResizeImage = function _Cursor_appendRotateResizeImage(angle) {
|
|
127
|
+
const key = `rotate-${angle}`;
|
|
128
|
+
if (!__classPrivateFieldGet(this, _Cursor_cursorImageMap, "f")[key]) {
|
|
129
|
+
const baseImage = __classPrivateFieldGet(this, _Cursor_resizeCursorBaseImage, "f");
|
|
130
|
+
if (baseImage) {
|
|
131
|
+
const canvas = document.createElement('canvas');
|
|
132
|
+
const w = baseImage.width;
|
|
133
|
+
const h = baseImage.height;
|
|
134
|
+
const center = {
|
|
135
|
+
x: w / 2,
|
|
136
|
+
y: h / 2
|
|
137
|
+
};
|
|
138
|
+
canvas.width = w;
|
|
139
|
+
canvas.height = h;
|
|
140
|
+
const ctx = canvas.getContext('2d');
|
|
141
|
+
const radian = parseAngleToRadian(angle);
|
|
142
|
+
ctx.translate(center.x, center.y);
|
|
143
|
+
ctx.rotate(radian);
|
|
144
|
+
ctx.translate(-center.x, -center.y);
|
|
145
|
+
ctx.drawImage(baseImage, 0, 0, w, h);
|
|
146
|
+
ctx.translate(center.x, center.y);
|
|
147
|
+
ctx.rotate(-radian);
|
|
148
|
+
ctx.translate(-center.x, -center.y);
|
|
149
|
+
const base = canvas.toDataURL('image/png');
|
|
150
|
+
__classPrivateFieldGet(this, _Cursor_cursorImageMap, "f")[key] = base;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return key;
|
|
154
|
+
};
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,16 +1,25 @@
|
|
|
1
|
-
import type { Data, PointSize, CoreOptions,
|
|
2
|
-
|
|
3
|
-
export {
|
|
4
|
-
export {
|
|
5
|
-
export {
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export
|
|
1
|
+
import type { Data, PointSize, CoreOptions, Middleware, ViewSizeInfo, CoreEventMap, ViewScaleInfo, LoadItemMap, ElementType, RecursivePartial, Element, ModifyRecord, ElementPosition, DataLayout, DataGlobal } from '@idraw/types';
|
|
2
|
+
import { Board, Sharer, Calculator } from './board';
|
|
3
|
+
export { coreEventKeys } from './config';
|
|
4
|
+
export type { CoreEventKeys } from './config';
|
|
5
|
+
export { Board, Sharer, Calculator };
|
|
6
|
+
export { MiddlewareSelector } from './middlewares/selector';
|
|
7
|
+
export { MiddlewareScroller } from './middlewares/scroller';
|
|
8
|
+
export { MiddlewareScaler } from './middlewares/scaler';
|
|
9
|
+
export { MiddlewareRuler } from './middlewares/ruler';
|
|
10
|
+
export { MiddlewareTextEditor } from './middlewares/text-editor';
|
|
11
|
+
export { MiddlewareDragger } from './middlewares/dragger';
|
|
12
|
+
export { MiddlewareInfo } from './middlewares/info';
|
|
13
|
+
export { MiddlewareLayoutSelector } from './middlewares/layout-selector';
|
|
14
|
+
export { MiddlewarePointer } from './middlewares/pointer';
|
|
15
|
+
export declare class Core<E extends CoreEventMap = CoreEventMap> {
|
|
9
16
|
#private;
|
|
10
17
|
constructor(container: HTMLDivElement, opts: CoreOptions);
|
|
18
|
+
isDestroyed(): boolean;
|
|
11
19
|
destroy(): void;
|
|
12
|
-
use(middleware:
|
|
13
|
-
disuse(middleware:
|
|
20
|
+
use<C extends any = any>(middleware: Middleware<any, any, any>, config?: C): void;
|
|
21
|
+
disuse(middleware: Middleware<any, any, any>): void;
|
|
22
|
+
resetMiddlewareConfig<C extends any = any>(middleware: Middleware<any, any, any>, config?: Partial<C>): void;
|
|
14
23
|
setData(data: Data): void;
|
|
15
24
|
getData(): Data | null;
|
|
16
25
|
scale(opts: {
|
|
@@ -27,10 +36,30 @@ export declare class Core<E extends CoreEvent = CoreEvent> {
|
|
|
27
36
|
viewScaleInfo: ViewScaleInfo;
|
|
28
37
|
};
|
|
29
38
|
refresh(): void;
|
|
39
|
+
forceRender(): void;
|
|
30
40
|
setViewScale(opts: {
|
|
31
41
|
scale: number;
|
|
32
42
|
offsetX: number;
|
|
33
43
|
offsetY: number;
|
|
34
44
|
}): void;
|
|
35
45
|
getLoadItemMap(): LoadItemMap;
|
|
46
|
+
onBoardWatcherEvents(): void;
|
|
47
|
+
offBoardWatcherEvents(): void;
|
|
48
|
+
createElement<T extends ElementType = ElementType>(type: T, element: RecursivePartial<Element<T>>, opts?: {
|
|
49
|
+
viewCenter?: boolean;
|
|
50
|
+
}): Element<T>;
|
|
51
|
+
updateElement(element: Element): ModifyRecord<'updateElement'> | null;
|
|
52
|
+
modifyElement(element: RecursivePartial<Omit<Element, 'uuid'>> & Pick<Element, 'uuid'>): ModifyRecord<'modifyElement'> | null;
|
|
53
|
+
modifyElements(elements: Array<RecursivePartial<Omit<Element, 'uuid'>> & Pick<Element, 'uuid'>>): ModifyRecord<'modifyElements'> | null;
|
|
54
|
+
addElement(element: Element, opts?: {
|
|
55
|
+
position: ElementPosition;
|
|
56
|
+
}): ModifyRecord<'addElement'>;
|
|
57
|
+
deleteElement(uuid: string): ModifyRecord<'deleteElement'>;
|
|
58
|
+
moveElement(uuid: string, to: ElementPosition): ModifyRecord<'moveElement'>;
|
|
59
|
+
modifyLayout(layout: RecursivePartial<DataLayout> | null): ModifyRecord<'modifyLayout'>;
|
|
60
|
+
modifyGlobal(global: RecursivePartial<DataGlobal> | null): {
|
|
61
|
+
type: "modifyGlobal";
|
|
62
|
+
time: number;
|
|
63
|
+
content: import("@idraw/types").ModifyContentMap["modifyGlobal"];
|
|
64
|
+
};
|
|
36
65
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -9,28 +9,49 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
var
|
|
13
|
-
|
|
12
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
13
|
+
var t = {};
|
|
14
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
15
|
+
t[p] = s[p];
|
|
16
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
17
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
18
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
19
|
+
t[p[i]] = s[p[i]];
|
|
20
|
+
}
|
|
21
|
+
return t;
|
|
22
|
+
};
|
|
23
|
+
var _Core_instances, _Core_board, _Core_canvas, _Core_container, _Core_initContainer, _Core_resetData;
|
|
24
|
+
import { deepClone, createElement, getElementPositionFromList, toFlattenElement, deleteElementInList, findElementFromListByPosition, updateElementInListByPosition, insertElementToListByPosition, moveElementPosition, toFlattenLayout, toFlattenGlobal, get, mergeLayout, mergeGlobal } from '@idraw/util';
|
|
25
|
+
import { Board, Sharer, Calculator } from './board';
|
|
14
26
|
import { createBoardContent, validateElements } from '@idraw/util';
|
|
15
|
-
import { Cursor } from './
|
|
16
|
-
|
|
17
|
-
export {
|
|
18
|
-
export {
|
|
19
|
-
export {
|
|
20
|
-
export {
|
|
21
|
-
export {
|
|
27
|
+
import { Cursor } from './cursor/cursor';
|
|
28
|
+
import { getModifyElementRecord } from './record';
|
|
29
|
+
export { coreEventKeys } from './config';
|
|
30
|
+
export { Board, Sharer, Calculator };
|
|
31
|
+
export { MiddlewareSelector } from './middlewares/selector';
|
|
32
|
+
export { MiddlewareScroller } from './middlewares/scroller';
|
|
33
|
+
export { MiddlewareScaler } from './middlewares/scaler';
|
|
34
|
+
export { MiddlewareRuler } from './middlewares/ruler';
|
|
35
|
+
export { MiddlewareTextEditor } from './middlewares/text-editor';
|
|
36
|
+
export { MiddlewareDragger } from './middlewares/dragger';
|
|
37
|
+
export { MiddlewareInfo } from './middlewares/info';
|
|
38
|
+
export { MiddlewareLayoutSelector } from './middlewares/layout-selector';
|
|
39
|
+
export { MiddlewarePointer } from './middlewares/pointer';
|
|
22
40
|
export class Core {
|
|
23
41
|
constructor(container, opts) {
|
|
24
42
|
_Core_instances.add(this);
|
|
25
43
|
_Core_board.set(this, void 0);
|
|
44
|
+
_Core_canvas.set(this, void 0);
|
|
26
45
|
_Core_container.set(this, void 0);
|
|
27
|
-
const { devicePixelRatio = 1, width, height } = opts;
|
|
46
|
+
const { devicePixelRatio = 1, width, height, disableWatcher = false } = opts;
|
|
28
47
|
__classPrivateFieldSet(this, _Core_container, container, "f");
|
|
29
48
|
const canvas = document.createElement('canvas');
|
|
49
|
+
canvas.setAttribute('tabindex', '0');
|
|
50
|
+
__classPrivateFieldSet(this, _Core_canvas, canvas, "f");
|
|
30
51
|
__classPrivateFieldGet(this, _Core_instances, "m", _Core_initContainer).call(this);
|
|
31
52
|
container.appendChild(canvas);
|
|
32
|
-
const boardContent = createBoardContent(canvas, { width, height, devicePixelRatio
|
|
33
|
-
const board = new Board({ boardContent, container });
|
|
53
|
+
const boardContent = createBoardContent(canvas, { width, height, devicePixelRatio });
|
|
54
|
+
const board = new Board({ boardContent, container, disableWatcher });
|
|
34
55
|
const sharer = board.getSharer();
|
|
35
56
|
sharer.setActiveViewSizeInfo({
|
|
36
57
|
width,
|
|
@@ -46,18 +67,26 @@ export class Core {
|
|
|
46
67
|
eventHub
|
|
47
68
|
});
|
|
48
69
|
}
|
|
70
|
+
isDestroyed() {
|
|
71
|
+
return __classPrivateFieldGet(this, _Core_board, "f").isDestroyed();
|
|
72
|
+
}
|
|
49
73
|
destroy() {
|
|
50
74
|
__classPrivateFieldGet(this, _Core_board, "f").destroy();
|
|
75
|
+
__classPrivateFieldGet(this, _Core_canvas, "f").remove();
|
|
51
76
|
}
|
|
52
|
-
use(middleware) {
|
|
53
|
-
__classPrivateFieldGet(this, _Core_board, "f").use(middleware);
|
|
77
|
+
use(middleware, config) {
|
|
78
|
+
__classPrivateFieldGet(this, _Core_board, "f").use(middleware, config);
|
|
54
79
|
}
|
|
55
80
|
disuse(middleware) {
|
|
56
81
|
__classPrivateFieldGet(this, _Core_board, "f").disuse(middleware);
|
|
57
82
|
}
|
|
83
|
+
resetMiddlewareConfig(middleware, config) {
|
|
84
|
+
__classPrivateFieldGet(this, _Core_board, "f").resetMiddlewareConfig(middleware, config);
|
|
85
|
+
}
|
|
58
86
|
setData(data) {
|
|
59
|
-
|
|
60
|
-
|
|
87
|
+
const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
|
|
88
|
+
loader.reset();
|
|
89
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
61
90
|
}
|
|
62
91
|
getData() {
|
|
63
92
|
return __classPrivateFieldGet(this, _Core_board, "f").getData();
|
|
@@ -101,14 +130,264 @@ export class Core {
|
|
|
101
130
|
refresh() {
|
|
102
131
|
__classPrivateFieldGet(this, _Core_board, "f").getViewer().drawFrame();
|
|
103
132
|
}
|
|
133
|
+
forceRender() {
|
|
134
|
+
const renderer = __classPrivateFieldGet(this, _Core_board, "f").getRenderer();
|
|
135
|
+
const calculator = renderer.getCalculator();
|
|
136
|
+
const loader = renderer.getLoader();
|
|
137
|
+
const data = this.getData();
|
|
138
|
+
if (data) {
|
|
139
|
+
const { viewScaleInfo, viewSizeInfo } = this.getViewInfo();
|
|
140
|
+
calculator.resetVirtualFlatItemMap(data, {
|
|
141
|
+
viewScaleInfo,
|
|
142
|
+
viewSizeInfo
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
loader.reset();
|
|
146
|
+
this.refresh();
|
|
147
|
+
}
|
|
104
148
|
setViewScale(opts) {
|
|
105
149
|
__classPrivateFieldGet(this, _Core_board, "f").updateViewScaleInfo(opts);
|
|
106
150
|
}
|
|
107
151
|
getLoadItemMap() {
|
|
108
152
|
return __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoadItemMap();
|
|
109
153
|
}
|
|
154
|
+
onBoardWatcherEvents() {
|
|
155
|
+
__classPrivateFieldGet(this, _Core_board, "f").onWatcherEvents();
|
|
156
|
+
}
|
|
157
|
+
offBoardWatcherEvents() {
|
|
158
|
+
__classPrivateFieldGet(this, _Core_board, "f").offWatcherEvents();
|
|
159
|
+
}
|
|
160
|
+
createElement(type, element, opts) {
|
|
161
|
+
const { viewScaleInfo, viewSizeInfo } = this.getViewInfo();
|
|
162
|
+
return createElement(type, element || {}, (opts === null || opts === void 0 ? void 0 : opts.viewCenter) === true
|
|
163
|
+
? {
|
|
164
|
+
viewScaleInfo,
|
|
165
|
+
viewSizeInfo
|
|
166
|
+
}
|
|
167
|
+
: undefined);
|
|
168
|
+
}
|
|
169
|
+
updateElement(element) {
|
|
170
|
+
const data = this.getData() || { elements: [] };
|
|
171
|
+
const uuid = element.uuid;
|
|
172
|
+
const position = getElementPositionFromList(uuid, data.elements);
|
|
173
|
+
const beforeElem = findElementFromListByPosition(position, data.elements);
|
|
174
|
+
if (!beforeElem) {
|
|
175
|
+
return null;
|
|
176
|
+
}
|
|
177
|
+
const before = toFlattenElement(beforeElem);
|
|
178
|
+
const updatedElement = updateElementInListByPosition(position, element, data.elements, { strict: true });
|
|
179
|
+
const after = toFlattenElement(updatedElement);
|
|
180
|
+
const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
|
|
181
|
+
loader.resetElementAsset(element);
|
|
182
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
183
|
+
this.refresh();
|
|
184
|
+
const modifyRecord = {
|
|
185
|
+
type: 'updateElement',
|
|
186
|
+
time: Date.now(),
|
|
187
|
+
content: { method: 'updateElement', uuid, before, after }
|
|
188
|
+
};
|
|
189
|
+
return modifyRecord;
|
|
190
|
+
}
|
|
191
|
+
modifyElement(element) {
|
|
192
|
+
const { uuid } = element, restElement = __rest(element, ["uuid"]);
|
|
193
|
+
const data = this.getData() || { elements: [] };
|
|
194
|
+
const position = getElementPositionFromList(uuid, data.elements);
|
|
195
|
+
const beforeElem = findElementFromListByPosition(position, data.elements);
|
|
196
|
+
if (!beforeElem) {
|
|
197
|
+
return null;
|
|
198
|
+
}
|
|
199
|
+
const modifyRecord = getModifyElementRecord({
|
|
200
|
+
modifiedElement: element,
|
|
201
|
+
beforeElement: beforeElem
|
|
202
|
+
});
|
|
203
|
+
updateElementInListByPosition(position, restElement, data.elements);
|
|
204
|
+
const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
|
|
205
|
+
loader.resetElementAsset(Object.assign(Object.assign({}, element), { type: beforeElem.type }));
|
|
206
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
207
|
+
this.refresh();
|
|
208
|
+
return modifyRecord;
|
|
209
|
+
}
|
|
210
|
+
modifyElements(elements) {
|
|
211
|
+
const data = this.getData() || { elements: [] };
|
|
212
|
+
let modifyRecord = null;
|
|
213
|
+
const before = [];
|
|
214
|
+
const after = [];
|
|
215
|
+
elements.forEach((element) => {
|
|
216
|
+
const { uuid } = element, restElement = __rest(element, ["uuid"]);
|
|
217
|
+
const position = getElementPositionFromList(uuid, data.elements);
|
|
218
|
+
const beforeElem = findElementFromListByPosition(position, data.elements);
|
|
219
|
+
if (!beforeElem) {
|
|
220
|
+
return null;
|
|
221
|
+
}
|
|
222
|
+
const tempRecord = getModifyElementRecord({
|
|
223
|
+
modifiedElement: element,
|
|
224
|
+
beforeElement: beforeElem
|
|
225
|
+
});
|
|
226
|
+
if (tempRecord.content) {
|
|
227
|
+
before.push(Object.assign(Object.assign({}, tempRecord.content.before), { uuid }));
|
|
228
|
+
after.push(Object.assign(Object.assign({}, tempRecord.content.after), { uuid }));
|
|
229
|
+
}
|
|
230
|
+
updateElementInListByPosition(position, restElement, data.elements);
|
|
231
|
+
});
|
|
232
|
+
modifyRecord = {
|
|
233
|
+
type: 'modifyElements',
|
|
234
|
+
time: Date.now(),
|
|
235
|
+
content: {
|
|
236
|
+
method: 'modifyElements',
|
|
237
|
+
before,
|
|
238
|
+
after
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
242
|
+
this.refresh();
|
|
243
|
+
return modifyRecord;
|
|
244
|
+
}
|
|
245
|
+
addElement(element, opts) {
|
|
246
|
+
var _a;
|
|
247
|
+
const data = this.getData() || { elements: [] };
|
|
248
|
+
if (!opts || !((_a = opts === null || opts === void 0 ? void 0 : opts.position) === null || _a === void 0 ? void 0 : _a.length)) {
|
|
249
|
+
data.elements.push(element);
|
|
250
|
+
}
|
|
251
|
+
else if (opts === null || opts === void 0 ? void 0 : opts.position) {
|
|
252
|
+
const position = [...((opts === null || opts === void 0 ? void 0 : opts.position) || [])];
|
|
253
|
+
insertElementToListByPosition(element, position, data.elements);
|
|
254
|
+
}
|
|
255
|
+
const position = getElementPositionFromList(element.uuid, data.elements);
|
|
256
|
+
const modifyRecord = {
|
|
257
|
+
type: 'addElement',
|
|
258
|
+
time: Date.now(),
|
|
259
|
+
content: { method: 'addElement', uuid: element.uuid, position, element: deepClone(element) }
|
|
260
|
+
};
|
|
261
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
262
|
+
this.refresh();
|
|
263
|
+
return modifyRecord;
|
|
264
|
+
}
|
|
265
|
+
deleteElement(uuid) {
|
|
266
|
+
const data = this.getData() || { elements: [] };
|
|
267
|
+
const position = getElementPositionFromList(uuid, data.elements);
|
|
268
|
+
const element = findElementFromListByPosition(position, data.elements);
|
|
269
|
+
const modifyRecord = {
|
|
270
|
+
type: 'deleteElement',
|
|
271
|
+
time: Date.now(),
|
|
272
|
+
content: { method: 'deleteElement', uuid, position, element: element ? deepClone(element) : null }
|
|
273
|
+
};
|
|
274
|
+
if (element) {
|
|
275
|
+
const loader = __classPrivateFieldGet(this, _Core_board, "f").getRenderer().getLoader();
|
|
276
|
+
loader.resetElementAsset(element);
|
|
277
|
+
}
|
|
278
|
+
deleteElementInList(uuid, data.elements);
|
|
279
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
280
|
+
this.refresh();
|
|
281
|
+
return modifyRecord;
|
|
282
|
+
}
|
|
283
|
+
moveElement(uuid, to) {
|
|
284
|
+
const data = this.getData() || { elements: [] };
|
|
285
|
+
const from = getElementPositionFromList(uuid, data.elements);
|
|
286
|
+
const modifyRecord = {
|
|
287
|
+
type: 'moveElement',
|
|
288
|
+
time: Date.now(),
|
|
289
|
+
content: { method: 'moveElement', uuid, from: [...from], to: [...to] }
|
|
290
|
+
};
|
|
291
|
+
const { elements: list } = moveElementPosition(data.elements, { from, to });
|
|
292
|
+
data.elements = list;
|
|
293
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
294
|
+
this.refresh();
|
|
295
|
+
return modifyRecord;
|
|
296
|
+
}
|
|
297
|
+
modifyLayout(layout) {
|
|
298
|
+
const data = this.getData() || { elements: [] };
|
|
299
|
+
const modifyRecord = {
|
|
300
|
+
type: 'modifyLayout',
|
|
301
|
+
time: Date.now(),
|
|
302
|
+
content: {
|
|
303
|
+
method: 'modifyLayout',
|
|
304
|
+
before: null,
|
|
305
|
+
after: null
|
|
306
|
+
}
|
|
307
|
+
};
|
|
308
|
+
if (layout === null) {
|
|
309
|
+
if (data.layout) {
|
|
310
|
+
modifyRecord.content.before = toFlattenLayout(data.layout);
|
|
311
|
+
delete data['layout'];
|
|
312
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
313
|
+
this.refresh();
|
|
314
|
+
return modifyRecord;
|
|
315
|
+
}
|
|
316
|
+
else {
|
|
317
|
+
return modifyRecord;
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
const beforeLayout = data.layout;
|
|
321
|
+
let before = {};
|
|
322
|
+
const after = toFlattenLayout(layout);
|
|
323
|
+
if (data.layout) {
|
|
324
|
+
Object.keys(after).forEach((key) => {
|
|
325
|
+
let val = get(beforeLayout, key);
|
|
326
|
+
if (val === undefined && /(borderRadius|borderWidth)\[[0-9]{1,}\]$/.test(key)) {
|
|
327
|
+
key = key.replace(/\[[0-9]{1,}\]$/, '');
|
|
328
|
+
val = get(beforeLayout, key);
|
|
329
|
+
}
|
|
330
|
+
before[key] = val;
|
|
331
|
+
});
|
|
332
|
+
before = toFlattenLayout(before);
|
|
333
|
+
modifyRecord.content.before = before;
|
|
334
|
+
}
|
|
335
|
+
else {
|
|
336
|
+
data.layout = {};
|
|
337
|
+
}
|
|
338
|
+
modifyRecord.content.after = after;
|
|
339
|
+
mergeLayout(data.layout, layout);
|
|
340
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
341
|
+
this.refresh();
|
|
342
|
+
return modifyRecord;
|
|
343
|
+
}
|
|
344
|
+
modifyGlobal(global) {
|
|
345
|
+
const data = this.getData() || { elements: [] };
|
|
346
|
+
const modifyRecord = {
|
|
347
|
+
type: 'modifyGlobal',
|
|
348
|
+
time: Date.now(),
|
|
349
|
+
content: {
|
|
350
|
+
method: 'modifyGlobal',
|
|
351
|
+
before: null,
|
|
352
|
+
after: null
|
|
353
|
+
}
|
|
354
|
+
};
|
|
355
|
+
if (global === null) {
|
|
356
|
+
if (data.global) {
|
|
357
|
+
modifyRecord.content.before = toFlattenGlobal(data.global);
|
|
358
|
+
delete data['global'];
|
|
359
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
360
|
+
this.refresh();
|
|
361
|
+
return modifyRecord;
|
|
362
|
+
}
|
|
363
|
+
else {
|
|
364
|
+
return modifyRecord;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
const beforeGlobal = data.global;
|
|
368
|
+
let before = {};
|
|
369
|
+
const after = toFlattenGlobal(global);
|
|
370
|
+
if (data.global) {
|
|
371
|
+
Object.keys(after).forEach((key) => {
|
|
372
|
+
before[key] = get(beforeGlobal, key);
|
|
373
|
+
});
|
|
374
|
+
before = toFlattenGlobal(before);
|
|
375
|
+
modifyRecord.content.before = before;
|
|
376
|
+
}
|
|
377
|
+
else {
|
|
378
|
+
data.global = {};
|
|
379
|
+
}
|
|
380
|
+
modifyRecord.content.after = after;
|
|
381
|
+
mergeGlobal(data.global, global);
|
|
382
|
+
__classPrivateFieldGet(this, _Core_instances, "m", _Core_resetData).call(this, data);
|
|
383
|
+
this.refresh();
|
|
384
|
+
return modifyRecord;
|
|
385
|
+
}
|
|
110
386
|
}
|
|
111
|
-
_Core_board = new WeakMap(), _Core_container = new WeakMap(), _Core_instances = new WeakSet(), _Core_initContainer = function _Core_initContainer() {
|
|
387
|
+
_Core_board = new WeakMap(), _Core_canvas = new WeakMap(), _Core_container = new WeakMap(), _Core_instances = new WeakSet(), _Core_initContainer = function _Core_initContainer() {
|
|
112
388
|
const container = __classPrivateFieldGet(this, _Core_container, "f");
|
|
113
389
|
container.style.position = 'relative';
|
|
390
|
+
}, _Core_resetData = function _Core_resetData(data) {
|
|
391
|
+
validateElements((data === null || data === void 0 ? void 0 : data.elements) || []);
|
|
392
|
+
__classPrivateFieldGet(this, _Core_board, "f").setData(data);
|
|
114
393
|
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Middleware, CoreEventMap, Point } from '@idraw/types';
|
|
2
|
+
declare const keyPrevPoint: unique symbol;
|
|
3
|
+
type DraggerSharedStorage = {
|
|
4
|
+
[keyPrevPoint]: Point | null;
|
|
5
|
+
};
|
|
6
|
+
export declare const MiddlewareDragger: Middleware<DraggerSharedStorage, CoreEventMap>;
|
|
7
|
+
export {};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { coreEventKeys } from '../../config';
|
|
1
2
|
const key = 'DRAG';
|
|
2
3
|
const keyPrevPoint = Symbol(`${key}_prevPoint`);
|
|
3
4
|
export const MiddlewareDragger = (opts) => {
|
|
@@ -9,7 +10,7 @@ export const MiddlewareDragger = (opts) => {
|
|
|
9
10
|
if (isDragging === true) {
|
|
10
11
|
return;
|
|
11
12
|
}
|
|
12
|
-
eventHub.trigger(
|
|
13
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
13
14
|
type: 'drag-default'
|
|
14
15
|
});
|
|
15
16
|
},
|
|
@@ -17,7 +18,7 @@ export const MiddlewareDragger = (opts) => {
|
|
|
17
18
|
const { point } = e;
|
|
18
19
|
sharer.setSharedStorage(keyPrevPoint, point);
|
|
19
20
|
isDragging = true;
|
|
20
|
-
eventHub.trigger(
|
|
21
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
21
22
|
type: 'drag-active'
|
|
22
23
|
});
|
|
23
24
|
},
|
|
@@ -35,7 +36,7 @@ export const MiddlewareDragger = (opts) => {
|
|
|
35
36
|
pointEnd() {
|
|
36
37
|
isDragging = false;
|
|
37
38
|
sharer.setSharedStorage(keyPrevPoint, null);
|
|
38
|
-
eventHub.trigger(
|
|
39
|
+
eventHub.trigger(coreEventKeys.CURSOR, {
|
|
39
40
|
type: 'drag-default'
|
|
40
41
|
});
|
|
41
42
|
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { MiddlewareInfoStyle } from '@idraw/types';
|
|
2
|
+
export declare const infoFontSize = 10;
|
|
3
|
+
export declare const infoLineHeight = 16;
|
|
4
|
+
export declare const MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE = "@middleware/internal-event/show-info-angle";
|
|
5
|
+
export declare const defaltStyle: MiddlewareInfoStyle;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const infoBackground = '#1973bac6';
|
|
2
|
+
const infoTextColor = '#ffffff';
|
|
3
|
+
export const infoFontSize = 10;
|
|
4
|
+
export const infoLineHeight = 16;
|
|
5
|
+
export const MIDDLEWARE_INTERNAL_EVENT_SHOW_INFO_ANGLE = '@middleware/internal-event/show-info-angle';
|
|
6
|
+
export const defaltStyle = {
|
|
7
|
+
textBackground: infoBackground,
|
|
8
|
+
textColor: infoTextColor
|
|
9
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { PointSize, ViewContext2D } from '@idraw/types';
|
|
2
|
+
import type { MiddlewareInfoStyle } from '@idraw/types';
|
|
3
|
+
export declare function drawSizeInfoText(ctx: ViewContext2D, opts: {
|
|
4
|
+
point: PointSize;
|
|
5
|
+
rotateCenter: PointSize;
|
|
6
|
+
angle: number;
|
|
7
|
+
text: string;
|
|
8
|
+
fontSize: number;
|
|
9
|
+
lineHeight: number;
|
|
10
|
+
style: MiddlewareInfoStyle;
|
|
11
|
+
}): void;
|
|
12
|
+
export declare function drawPositionInfoText(ctx: ViewContext2D, opts: {
|
|
13
|
+
point: PointSize;
|
|
14
|
+
rotateCenter: PointSize;
|
|
15
|
+
angle: number;
|
|
16
|
+
text: string;
|
|
17
|
+
fontSize: number;
|
|
18
|
+
lineHeight: number;
|
|
19
|
+
style: MiddlewareInfoStyle;
|
|
20
|
+
}): void;
|
|
21
|
+
export declare function drawAngleInfoText(ctx: ViewContext2D, opts: {
|
|
22
|
+
point: PointSize;
|
|
23
|
+
rotateCenter: PointSize;
|
|
24
|
+
angle: number;
|
|
25
|
+
text: string;
|
|
26
|
+
fontSize: number;
|
|
27
|
+
lineHeight: number;
|
|
28
|
+
style: MiddlewareInfoStyle;
|
|
29
|
+
}): void;
|