@idraw/core 0.4.0-alpha.6 → 0.4.0-beta.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/index.d.ts +5 -5
- package/dist/esm/index.js +3 -4
- package/dist/esm/middleware/scroller/index.js +6 -11
- package/dist/esm/middleware/selector/config.d.ts +3 -1
- package/dist/esm/middleware/selector/config.js +3 -1
- package/dist/esm/middleware/selector/draw-wrapper.js +6 -6
- package/dist/esm/middleware/text-editor/index.js +16 -5
- package/dist/index.global.js +211 -150
- package/dist/index.global.min.js +1 -1
- package/package.json +5 -5
package/dist/esm/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export { MiddlewareScroller } from './middleware/scroller';
|
|
|
4
4
|
export { MiddlewareScaler, middlewareEventScale } from './middleware/scaler';
|
|
5
5
|
export { MiddlewareRuler, middlewareEventRuler } from './middleware/ruler';
|
|
6
6
|
export { MiddlewareTextEditor, middlewareEventTextEdit } from './middleware/text-editor';
|
|
7
|
-
export declare class Core {
|
|
7
|
+
export declare class Core<E extends CoreEvent = CoreEvent> {
|
|
8
8
|
#private;
|
|
9
9
|
constructor(container: HTMLDivElement, opts: CoreOptions);
|
|
10
10
|
use(middleware: BoardMiddleware<any, any>): void;
|
|
@@ -16,15 +16,15 @@ export declare class Core {
|
|
|
16
16
|
}): void;
|
|
17
17
|
resize(newViewSize: Partial<ViewSizeInfo>): void;
|
|
18
18
|
clear(): void;
|
|
19
|
-
on<T extends keyof
|
|
20
|
-
off<T extends keyof
|
|
21
|
-
trigger<T extends keyof
|
|
19
|
+
on<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
|
|
20
|
+
off<T extends keyof E>(name: T, callback: (e: E[T]) => void): void;
|
|
21
|
+
trigger<T extends keyof E>(name: T, e: E[T]): void;
|
|
22
22
|
getViewInfo(): {
|
|
23
23
|
viewSizeInfo: ViewSizeInfo;
|
|
24
24
|
viewScaleInfo: ViewScaleInfo;
|
|
25
25
|
};
|
|
26
26
|
refresh(): void;
|
|
27
|
-
|
|
27
|
+
setViewScale(opts: {
|
|
28
28
|
scale: number;
|
|
29
29
|
offsetX: number;
|
|
30
30
|
offsetY: number;
|
package/dist/esm/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
11
11
|
};
|
|
12
12
|
var _Core_instances, _Core_board, _Core_container, _Core_initContainer;
|
|
13
13
|
import { Board } from '@idraw/board';
|
|
14
|
-
import {
|
|
14
|
+
import { createViewContent, validateElements } from '@idraw/util';
|
|
15
15
|
import { Cursor } from './lib/cursor';
|
|
16
16
|
export { MiddlewareSelector, middlewareEventSelect } from './middleware/selector';
|
|
17
17
|
export { MiddlewareScroller } from './middleware/scroller';
|
|
@@ -28,8 +28,7 @@ export class Core {
|
|
|
28
28
|
const canvas = document.createElement('canvas');
|
|
29
29
|
__classPrivateFieldGet(this, _Core_instances, "m", _Core_initContainer).call(this);
|
|
30
30
|
container.appendChild(canvas);
|
|
31
|
-
const
|
|
32
|
-
const viewContent = createBoardContexts(ctx, { devicePixelRatio });
|
|
31
|
+
const viewContent = createViewContent(canvas, { width, height, devicePixelRatio, offscreen: true });
|
|
33
32
|
const board = new Board({ viewContent, container });
|
|
34
33
|
const sharer = board.getSharer();
|
|
35
34
|
sharer.setActiveViewSizeInfo({
|
|
@@ -95,7 +94,7 @@ export class Core {
|
|
|
95
94
|
refresh() {
|
|
96
95
|
__classPrivateFieldGet(this, _Core_board, "f").getViewer().drawFrame();
|
|
97
96
|
}
|
|
98
|
-
|
|
97
|
+
setViewScale(opts) {
|
|
99
98
|
__classPrivateFieldGet(this, _Core_board, "f").updateViewScaleInfo(opts);
|
|
100
99
|
}
|
|
101
100
|
}
|
|
@@ -43,17 +43,12 @@ export const MiddlewareScroller = (opts) => {
|
|
|
43
43
|
};
|
|
44
44
|
return {
|
|
45
45
|
mode: key,
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
wheelY: (e) => {
|
|
53
|
-
if (e.deltaY >= 0 || e.deltaY < 0) {
|
|
54
|
-
viewer.scroll({ moveY: 0 - e.deltaY });
|
|
55
|
-
viewer.drawFrame();
|
|
56
|
-
}
|
|
46
|
+
wheel: (e) => {
|
|
47
|
+
viewer.scroll({
|
|
48
|
+
moveX: 0 - e.deltaX,
|
|
49
|
+
moveY: 0 - e.deltaY
|
|
50
|
+
});
|
|
51
|
+
viewer.drawFrame();
|
|
57
52
|
},
|
|
58
53
|
pointStart: (e) => {
|
|
59
54
|
const { point } = e;
|
|
@@ -16,5 +16,7 @@ export declare const keyDebugEndVertical: unique symbol;
|
|
|
16
16
|
export declare const keyDebugStartHorizontal: unique symbol;
|
|
17
17
|
export declare const keyDebugEndHorizontal: unique symbol;
|
|
18
18
|
export declare const keyDebugEnd0: unique symbol;
|
|
19
|
-
export declare const
|
|
19
|
+
export declare const selectWrapperBorderWidth = 2;
|
|
20
|
+
export declare const resizeControllerBorderWidth = 4;
|
|
21
|
+
export declare const areaBorderWidth = 1;
|
|
20
22
|
export declare const wrapperColor = "#1973ba";
|
|
@@ -16,5 +16,7 @@ export const keyDebugEndVertical = Symbol(`${key}_debug_endVertical`);
|
|
|
16
16
|
export const keyDebugStartHorizontal = Symbol(`${key}_debug_startHorizontal`);
|
|
17
17
|
export const keyDebugEndHorizontal = Symbol(`${key}_debug_endHorizontal`);
|
|
18
18
|
export const keyDebugEnd0 = Symbol(`${key}_debug_end0`);
|
|
19
|
-
export const
|
|
19
|
+
export const selectWrapperBorderWidth = 2;
|
|
20
|
+
export const resizeControllerBorderWidth = 4;
|
|
21
|
+
export const areaBorderWidth = 1;
|
|
20
22
|
export const wrapperColor = '#1973ba';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { rotateElementVertexes, calcViewVertexes } from '@idraw/util';
|
|
2
|
-
import { resizeControllerBorderWidth, wrapperColor } from './config';
|
|
2
|
+
import { resizeControllerBorderWidth, areaBorderWidth, wrapperColor, selectWrapperBorderWidth } from './config';
|
|
3
3
|
function drawVertexes(ctx, vertexes, opts) {
|
|
4
4
|
const { borderColor, borderWidth, background, lineDash } = opts;
|
|
5
5
|
ctx.setLineDash([]);
|
|
@@ -28,8 +28,8 @@ export function drawSelectedElementControllersVertexes(ctx, controller, opts) {
|
|
|
28
28
|
if (!controller) {
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
|
-
const { elementWrapper,
|
|
32
|
-
const wrapperOpts = { borderColor: wrapperColor, borderWidth:
|
|
31
|
+
const { elementWrapper, topLeft, topRight, bottomLeft, bottomRight } = controller;
|
|
32
|
+
const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: 'transparent', lineDash: [] };
|
|
33
33
|
const ctrlOpts = Object.assign(Object.assign({}, wrapperOpts), { borderWidth: resizeControllerBorderWidth, background: '#FFFFFF' });
|
|
34
34
|
drawVertexes(ctx, calcViewVertexes(elementWrapper, opts), wrapperOpts);
|
|
35
35
|
drawVertexes(ctx, calcViewVertexes(topLeft.vertexes, opts), ctrlOpts);
|
|
@@ -70,7 +70,7 @@ export function drawElementListShadows(ctx, elements, opts) {
|
|
|
70
70
|
export function drawArea(ctx, opts) {
|
|
71
71
|
const { start, end } = opts;
|
|
72
72
|
ctx.setLineDash([]);
|
|
73
|
-
ctx.lineWidth =
|
|
73
|
+
ctx.lineWidth = areaBorderWidth;
|
|
74
74
|
ctx.strokeStyle = wrapperColor;
|
|
75
75
|
ctx.fillStyle = '#1976d24f';
|
|
76
76
|
ctx.beginPath();
|
|
@@ -86,7 +86,7 @@ export function drawListArea(ctx, opts) {
|
|
|
86
86
|
const { areaSize } = opts;
|
|
87
87
|
const { x, y, w, h } = areaSize;
|
|
88
88
|
ctx.setLineDash([]);
|
|
89
|
-
ctx.lineWidth =
|
|
89
|
+
ctx.lineWidth = areaBorderWidth;
|
|
90
90
|
ctx.strokeStyle = wrapperColor;
|
|
91
91
|
ctx.fillStyle = '#1976d21c';
|
|
92
92
|
ctx.beginPath();
|
|
@@ -101,7 +101,7 @@ export function drawListArea(ctx, opts) {
|
|
|
101
101
|
export function drawGroupQueueVertexesWrappers(ctx, vertexesList, opts) {
|
|
102
102
|
for (let i = 0; i < vertexesList.length; i++) {
|
|
103
103
|
const vertexes = vertexesList[i];
|
|
104
|
-
const wrapperOpts = { borderColor: wrapperColor, borderWidth:
|
|
104
|
+
const wrapperOpts = { borderColor: wrapperColor, borderWidth: selectWrapperBorderWidth, background: 'transparent', lineDash: [4, 4] };
|
|
105
105
|
drawVertexes(ctx, calcViewVertexes(vertexes, opts), wrapperOpts);
|
|
106
106
|
}
|
|
107
107
|
}
|
|
@@ -75,13 +75,24 @@ export const MiddlewareTextEditor = (opts) => {
|
|
|
75
75
|
parent = createBox({ size, parent });
|
|
76
76
|
}
|
|
77
77
|
const detail = Object.assign(Object.assign({}, defaultElementDetail), element.detail);
|
|
78
|
+
let elemX = element.x * scale + offsetLeft;
|
|
79
|
+
let elemY = element.y * scale + offsetTop;
|
|
80
|
+
let elemW = element.w * scale;
|
|
81
|
+
let elemH = element.h * scale;
|
|
82
|
+
if (groupQueue.length > 0) {
|
|
83
|
+
elemX = element.x * scale;
|
|
84
|
+
elemY = element.y * scale;
|
|
85
|
+
elemW = element.w * scale;
|
|
86
|
+
elemH = element.h * scale;
|
|
87
|
+
}
|
|
78
88
|
textarea.style.position = 'absolute';
|
|
79
|
-
textarea.style.left = `${
|
|
80
|
-
textarea.style.top = `${
|
|
81
|
-
textarea.style.width = `${
|
|
82
|
-
textarea.style.height = `${
|
|
89
|
+
textarea.style.left = `${elemX}px`;
|
|
90
|
+
textarea.style.top = `${elemY}px`;
|
|
91
|
+
textarea.style.width = `${elemW}px`;
|
|
92
|
+
textarea.style.height = `${elemH}px`;
|
|
83
93
|
textarea.style.transform = `rotate(${limitAngle(element.angle || 0)}deg)`;
|
|
84
|
-
textarea.style.
|
|
94
|
+
textarea.style.boxSizing = 'border-box';
|
|
95
|
+
textarea.style.border = '1px solid #1973ba';
|
|
85
96
|
textarea.style.resize = 'none';
|
|
86
97
|
textarea.style.overflow = 'hidden';
|
|
87
98
|
textarea.style.wordBreak = 'break-all';
|