@plait/common 0.1.0-next.0 → 0.1.0-next.10
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/constants/default.d.ts +2 -1
- package/constants/media.d.ts +3 -0
- package/constants/resize.d.ts +1 -1
- package/core/image-base.component.d.ts +29 -0
- package/core/plugin-element.d.ts +7 -0
- package/{esm2020 → esm2022}/constants/default.mjs +3 -2
- package/esm2022/constants/media.mjs +8 -0
- package/esm2022/constants/resize.mjs +19 -0
- package/esm2022/core/image-base.component.mjs +93 -0
- package/esm2022/core/plugin-element.mjs +14 -0
- package/esm2022/generators/active.generator.mjs +46 -0
- package/esm2022/generators/generator.mjs +42 -0
- package/esm2022/generators/image.generator.mjs +54 -0
- package/esm2022/generators/index.mjs +4 -0
- package/esm2022/plugins/index.mjs +3 -0
- package/esm2022/plugins/text-options.mjs +2 -0
- package/esm2022/plugins/with-resize.mjs +101 -0
- package/esm2022/public-api.mjs +12 -0
- package/esm2022/shapes/common.mjs +14 -0
- package/esm2022/shapes/index.mjs +2 -0
- package/esm2022/transforms/common.mjs +15 -0
- package/esm2022/transforms/index.mjs +2 -0
- package/esm2022/transforms/property.mjs +21 -0
- package/esm2022/utils/creation-mode.mjs +19 -0
- package/esm2022/utils/direction.mjs +95 -0
- package/esm2022/utils/hot-key.mjs +29 -0
- package/esm2022/utils/image.mjs +40 -0
- package/esm2022/utils/index.mjs +9 -0
- package/esm2022/utils/line-path.mjs +146 -0
- package/esm2022/utils/rectangle.mjs +16 -0
- package/esm2022/utils/resize.mjs +61 -0
- package/esm2022/utils/text.mjs +11 -0
- package/fesm2022/plait-common.mjs +840 -0
- package/fesm2022/plait-common.mjs.map +1 -0
- package/{generator → generators}/active.generator.d.ts +4 -2
- package/{generator → generators}/generator.d.ts +1 -0
- package/generators/image.generator.d.ts +23 -0
- package/{generator → generators}/index.d.ts +1 -0
- package/package.json +7 -12
- package/plugins/index.d.ts +1 -0
- package/plugins/text-options.d.ts +5 -0
- package/plugins/with-resize.d.ts +12 -14
- package/public-api.d.ts +4 -3
- package/{shape → shapes}/common.d.ts +1 -1
- package/transforms/common.d.ts +2 -0
- package/transforms/index.d.ts +1 -3
- package/transforms/property.d.ts +8 -0
- package/utils/creation-mode.d.ts +9 -0
- package/utils/direction.d.ts +29 -0
- package/utils/hot-key.d.ts +6 -0
- package/utils/image.d.ts +12 -0
- package/utils/index.d.ts +7 -0
- package/utils/line-path.d.ts +17 -0
- package/utils/rectangle.d.ts +7 -0
- package/utils/resize.d.ts +12 -10
- package/utils/text.d.ts +3 -0
- package/esm2020/constants/media.mjs +0 -5
- package/esm2020/constants/resize.mjs +0 -19
- package/esm2020/generator/active.generator.mjs +0 -40
- package/esm2020/generator/generator.mjs +0 -29
- package/esm2020/generator/index.mjs +0 -3
- package/esm2020/plugins/index.mjs +0 -2
- package/esm2020/plugins/with-resize.mjs +0 -93
- package/esm2020/public-api.mjs +0 -11
- package/esm2020/rectangle.mjs +0 -16
- package/esm2020/shape/common.mjs +0 -6
- package/esm2020/shape/index.mjs +0 -2
- package/esm2020/transforms/element.mjs +0 -17
- package/esm2020/transforms/index.mjs +0 -5
- package/esm2020/utils/index.mjs +0 -2
- package/esm2020/utils/resize.mjs +0 -69
- package/fesm2015/plait-common.mjs +0 -304
- package/fesm2015/plait-common.mjs.map +0 -1
- package/fesm2020/plait-common.mjs +0 -304
- package/fesm2020/plait-common.mjs.map +0 -1
- package/rectangle.d.ts +0 -4
- package/transforms/element.d.ts +0 -2
- /package/{esm2020 → esm2022}/constants/index.mjs +0 -0
- /package/{esm2020 → esm2022}/plait-common.mjs +0 -0
- /package/{shape → shapes}/index.d.ts +0 -0
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export class Generator {
|
|
2
|
-
constructor(board, options) {
|
|
3
|
-
this.board = board;
|
|
4
|
-
}
|
|
5
|
-
draw(element, parentG, data) {
|
|
6
|
-
this.destroy();
|
|
7
|
-
if (this.canDraw && this.canDraw(element, data)) {
|
|
8
|
-
const g = this.baseDraw(element, data);
|
|
9
|
-
if (g) {
|
|
10
|
-
parentG.append(g);
|
|
11
|
-
}
|
|
12
|
-
if (hasAfterDraw(this)) {
|
|
13
|
-
this.afterDraw(element);
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
destroy() {
|
|
18
|
-
if (this.g) {
|
|
19
|
-
this.g.remove();
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
export function hasAfterDraw(value) {
|
|
24
|
-
if (value.afterDraw) {
|
|
25
|
-
return true;
|
|
26
|
-
}
|
|
27
|
-
return false;
|
|
28
|
-
}
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9nZW5lcmF0b3IvZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE1BQU0sT0FBZ0IsU0FBUztJQU8zQixZQUFzQixLQUFpQixFQUFFLE9BQVc7UUFBOUIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUFnQixDQUFDO0lBRXhELElBQUksQ0FBQyxPQUFVLEVBQUUsT0FBb0IsRUFBRSxJQUFRO1FBQzNDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsRUFBRTtZQUM3QyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsRUFBRTtnQkFDSCxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ3JCO1lBQ0QsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3BCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDM0I7U0FDSjtJQUNMLENBQUM7SUFNRCxPQUFPO1FBQ0gsSUFBSSxJQUFJLENBQUMsQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUNuQjtJQUNMLENBQUM7Q0FDSjtBQU1ELE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBVTtJQUNuQyxJQUFJLEtBQUssQ0FBQyxTQUFTLEVBQUU7UUFDakIsT0FBTyxJQUFJLENBQUM7S0FDZjtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yRXh0cmFEYXRhIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2VuZXJhdG9yT3B0aW9ucyB7fVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJhdG9yPFxuICAgIFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQsXG4gICAgSyBleHRlbmRzIEdlbmVyYXRvckV4dHJhRGF0YSA9IEdlbmVyYXRvckV4dHJhRGF0YSxcbiAgICBWIGV4dGVuZHMgR2VuZXJhdG9yT3B0aW9ucyA9IEdlbmVyYXRvck9wdGlvbnNcbj4ge1xuICAgIGc/OiBTVkdHRWxlbWVudDtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBib2FyZDogUGxhaXRCb2FyZCwgb3B0aW9ucz86IFYpIHt9XG5cbiAgICBkcmF3KGVsZW1lbnQ6IFQsIHBhcmVudEc6IFNWR0dFbGVtZW50LCBkYXRhPzogSykge1xuICAgICAgICB0aGlzLmRlc3Ryb3koKTtcbiAgICAgICAgaWYgKHRoaXMuY2FuRHJhdyAmJiB0aGlzLmNhbkRyYXcoZWxlbWVudCwgZGF0YSkpIHtcbiAgICAgICAgICAgIGNvbnN0IGcgPSB0aGlzLmJhc2VEcmF3KGVsZW1lbnQsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGcpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRHLmFwcGVuZChnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChoYXNBZnRlckRyYXcodGhpcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFmdGVyRHJhdyhlbGVtZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGFic3RyYWN0IGNhbkRyYXcoZWxlbWVudDogVCwgZGF0YT86IEspOiBib29sZWFuO1xuXG4gICAgYWJzdHJhY3QgYmFzZURyYXcoZWxlbWVudDogVCwgZGF0YT86IEspOiBTVkdHRWxlbWVudCB8IHVuZGVmaW5lZDtcblxuICAgIGRlc3Ryb3koKSB7XG4gICAgICAgIGlmICh0aGlzLmcpIHtcbiAgICAgICAgICAgIHRoaXMuZy5yZW1vdmUoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBBZnRlckRyYXc8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4ge1xuICAgIGFmdGVyRHJhdyhlbGVtZW50OiBUKTogdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc0FmdGVyRHJhdyh2YWx1ZTogYW55KTogdmFsdWUgaXMgQWZ0ZXJEcmF3IHtcbiAgICBpZiAodmFsdWUuYWZ0ZXJEcmF3KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export * from './generator';
|
|
2
|
-
export * from './active.generator';
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL2dlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9nZW5lcmF0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9hY3RpdmUuZ2VuZXJhdG9yJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './with-resize';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3dpdGgtcmVzaXplJztcbiJdfQ==
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { MERGING, PRESS_AND_MOVE_BUFFER, PlaitBoard, PlaitPointerType, distanceBetweenPointAndPoint, isMainPointer, preventTouchMove, throttleRAF, toPoint, transformPoint } from '@plait/core';
|
|
2
|
-
import { addResizing, isResizing, removeResizing } from '../utils/resize';
|
|
3
|
-
const generalCanResize = (board, event) => {
|
|
4
|
-
return (PlaitBoard.isReadonly(board) ||
|
|
5
|
-
PlaitBoard.hasBeenTextEditing(board) ||
|
|
6
|
-
!PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
|
|
7
|
-
!isMainPointer(event));
|
|
8
|
-
};
|
|
9
|
-
export const withResize = (board, options) => {
|
|
10
|
-
const { pointerDown, pointerMove, globalPointerUp } = board;
|
|
11
|
-
let resizeDetectResult = null;
|
|
12
|
-
let resizeRef = null;
|
|
13
|
-
let startPoint = null;
|
|
14
|
-
let hoveDetectResult = null;
|
|
15
|
-
board.pointerDown = (event) => {
|
|
16
|
-
if (!options.canResize() || !generalCanResize(board, event)) {
|
|
17
|
-
pointerDown(event);
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
21
|
-
resizeDetectResult = options.detect(point);
|
|
22
|
-
if (resizeDetectResult) {
|
|
23
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${resizeDetectResult.cursorClass}`);
|
|
24
|
-
startPoint = [event.x, event.y];
|
|
25
|
-
resizeRef = {
|
|
26
|
-
path: PlaitBoard.findPath(board, resizeDetectResult.element),
|
|
27
|
-
element: resizeDetectResult.element,
|
|
28
|
-
direction: resizeDetectResult.direction
|
|
29
|
-
};
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
pointerDown(event);
|
|
33
|
-
};
|
|
34
|
-
board.pointerMove = (event) => {
|
|
35
|
-
if (!options.canResize() || !generalCanResize(board, event)) {
|
|
36
|
-
pointerMove(event);
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (startPoint && resizeDetectResult && !isResizing(board)) {
|
|
40
|
-
// prevent text from being selected
|
|
41
|
-
event.preventDefault();
|
|
42
|
-
preventTouchMove(board, true);
|
|
43
|
-
const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
44
|
-
const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
|
|
45
|
-
if (distance > PRESS_AND_MOVE_BUFFER) {
|
|
46
|
-
addResizing(board, options.key);
|
|
47
|
-
MERGING.set(board, true);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (isResizing(board) && startPoint) {
|
|
51
|
-
// prevent text from being selected
|
|
52
|
-
event.preventDefault();
|
|
53
|
-
preventTouchMove(board, true);
|
|
54
|
-
throttleRAF(() => {
|
|
55
|
-
const endPoint = [event.x, event.y];
|
|
56
|
-
if (startPoint && resizeRef) {
|
|
57
|
-
const offsetX = endPoint[0] - startPoint[0];
|
|
58
|
-
const offsetY = endPoint[1] - startPoint[1];
|
|
59
|
-
options.onResize(resizeRef, { offsetX, offsetY });
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
return;
|
|
63
|
-
}
|
|
64
|
-
else {
|
|
65
|
-
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
66
|
-
const resizeDetectResult = options.detect(point);
|
|
67
|
-
if (resizeDetectResult) {
|
|
68
|
-
hoveDetectResult = resizeDetectResult;
|
|
69
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${hoveDetectResult.cursorClass}`);
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
if (hoveDetectResult) {
|
|
73
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${hoveDetectResult.cursorClass}`);
|
|
74
|
-
hoveDetectResult = null;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
pointerMove(event);
|
|
79
|
-
};
|
|
80
|
-
board.globalPointerUp = (event) => {
|
|
81
|
-
globalPointerUp(event);
|
|
82
|
-
if (isResizing(board) || resizeDetectResult) {
|
|
83
|
-
removeResizing(board, options.key);
|
|
84
|
-
startPoint = null;
|
|
85
|
-
resizeDetectResult = null;
|
|
86
|
-
resizeRef = null;
|
|
87
|
-
MERGING.set(board, false);
|
|
88
|
-
preventTouchMove(board, false);
|
|
89
|
-
}
|
|
90
|
-
};
|
|
91
|
-
return board;
|
|
92
|
-
};
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1yZXNpemUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3BsdWdpbnMvd2l0aC1yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILE9BQU8sRUFDUCxxQkFBcUIsRUFFckIsVUFBVSxFQUVWLGdCQUFnQixFQUVoQiw0QkFBNEIsRUFDNUIsYUFBYSxFQUNiLGdCQUFnQixFQUNoQixXQUFXLEVBQ1gsT0FBTyxFQUNQLGNBQWMsRUFDakIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUEwQjFFLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxLQUFpQixFQUFFLEtBQW1CLEVBQUUsRUFBRTtJQUNoRSxPQUFPLENBQ0gsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDNUIsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQztRQUNwQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLGdCQUFnQixDQUFDLElBQUksQ0FBQztRQUNuRCxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FDeEIsQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUF3QyxLQUFpQixFQUFFLE9BQTZCLEVBQUUsRUFBRTtJQUNsSCxNQUFNLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDNUQsSUFBSSxrQkFBa0IsR0FBaUMsSUFBSSxDQUFDO0lBQzVELElBQUksU0FBUyxHQUF3QixJQUFJLENBQUM7SUFDMUMsSUFBSSxVQUFVLEdBQWlCLElBQUksQ0FBQztJQUNwQyxJQUFJLGdCQUFnQixHQUFpQyxJQUFJLENBQUM7SUFFMUQsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLEtB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SUFBSSxrQkFBa0IsRUFBRTtZQUN6QyxjQUFjLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNuQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLGtCQUFrQixHQUFHLElBQUksQ0FBQztZQUMxQixTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzFCLGdCQUFnQixDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUMsQ0FBQztJQUVGLE9BQU8sS0FBSyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgTUVSR0lORyxcbiAgICBQUkVTU19BTkRfTU9WRV9CVUZGRVIsXG4gICAgUGF0aCxcbiAgICBQbGFpdEJvYXJkLFxuICAgIFBsYWl0RWxlbWVudCxcbiAgICBQbGFpdFBvaW50ZXJUeXBlLFxuICAgIFBvaW50LFxuICAgIGRpc3RhbmNlQmV0d2VlblBvaW50QW5kUG9pbnQsXG4gICAgaXNNYWluUG9pbnRlcixcbiAgICBwcmV2ZW50VG91Y2hNb3ZlLFxuICAgIHRocm90dGxlUkFGLFxuICAgIHRvUG9pbnQsXG4gICAgdHJhbnNmb3JtUG9pbnRcbn0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgUmVzaXplRGlyZWN0aW9uLCBSZXNpemVDdXJzb3JDbGFzcyB9IGZyb20gJy4uL2NvbnN0YW50cy9yZXNpemUnO1xuaW1wb3J0IHsgYWRkUmVzaXppbmcsIGlzUmVzaXppbmcsIHJlbW92ZVJlc2l6aW5nIH0gZnJvbSAnLi4vdXRpbHMvcmVzaXplJztcblxuZXhwb3J0IGludGVyZmFjZSBXaXRoUmVzaXplT3B0aW9uczxUIGV4dGVuZHMgUGxhaXRFbGVtZW50ID0gUGxhaXRFbGVtZW50PiB7XG4gICAga2V5OiBzdHJpbmc7XG4gICAgY2FuUmVzaXplOiAoKSA9PiBib29sZWFuO1xuICAgIGRldGVjdDogKHBvaW50OiBQb2ludCkgPT4gUmVzaXplRGV0ZWN0UmVzdWx0PFQ+IHwgbnVsbDtcbiAgICBvblJlc2l6ZTogKHJlc2l6ZVJlZjogUmVzaXplUmVmPFQ+LCByZXNpemVTdGF0ZTogUmVzaXplU3RhdGUpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzaXplRGV0ZWN0UmVzdWx0PFQgZXh0ZW5kcyBQbGFpdEVsZW1lbnQgPSBQbGFpdEVsZW1lbnQ+IHtcbiAgICBlbGVtZW50OiBUO1xuICAgIGRpcmVjdGlvbjogUmVzaXplRGlyZWN0aW9uO1xuICAgIGN1cnNvckNsYXNzOiBSZXNpemVDdXJzb3JDbGFzcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVSZWY8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4ge1xuICAgIGVsZW1lbnQ6IFQ7XG4gICAgcGF0aDogUGF0aDtcbiAgICBkaXJlY3Rpb246IFJlc2l6ZURpcmVjdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZXNpemVTdGF0ZSB7XG4gICAgb2Zmc2V0WDogbnVtYmVyO1xuICAgIG9mZnNldFk6IG51bWJlcjtcbn1cblxuY29uc3QgZ2VuZXJhbENhblJlc2l6ZSA9IChib2FyZDogUGxhaXRCb2FyZCwgZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIFBsYWl0Qm9hcmQuaXNSZWFkb25seShib2FyZCkgfHxcbiAgICAgICAgUGxhaXRCb2FyZC5oYXNCZWVuVGV4dEVkaXRpbmcoYm9hcmQpIHx8XG4gICAgICAgICFQbGFpdEJvYXJkLmlzUG9pbnRlcihib2FyZCwgUGxhaXRQb2ludGVyVHlwZS5oYW5kKSB8fFxuICAgICAgICAhaXNNYWluUG9pbnRlcihldmVudClcbiAgICApO1xufTtcblxuZXhwb3J0IGNvbnN0IHdpdGhSZXNpemUgPSA8VCBleHRlbmRzIFBsYWl0RWxlbWVudCA9IFBsYWl0RWxlbWVudD4oYm9hcmQ6IFBsYWl0Qm9hcmQsIG9wdGlvbnM6IFdpdGhSZXNpemVPcHRpb25zPFQ+KSA9PiB7XG4gICAgY29uc3QgeyBwb2ludGVyRG93biwgcG9pbnRlck1vdmUsIGdsb2JhbFBvaW50ZXJVcCB9ID0gYm9hcmQ7XG4gICAgbGV0IHJlc2l6ZURldGVjdFJlc3VsdDogUmVzaXplRGV0ZWN0UmVzdWx0PFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHJlc2l6ZVJlZjogUmVzaXplUmVmPFQ+IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IHN0YXJ0UG9pbnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGhvdmVEZXRlY3RSZXN1bHQ6IFJlc2l6ZURldGVjdFJlc3VsdDxUPiB8IG51bGwgPSBudWxsO1xuXG4gICAgYm9hcmQucG9pbnRlckRvd24gPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlckRvd24oZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICByZXNpemVEZXRlY3RSZXN1bHQgPSBvcHRpb25zLmRldGVjdChwb2ludCk7XG4gICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7cmVzaXplRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IFtldmVudC54LCBldmVudC55XTtcbiAgICAgICAgICAgIHJlc2l6ZVJlZiA9IHtcbiAgICAgICAgICAgICAgICBwYXRoOiBQbGFpdEJvYXJkLmZpbmRQYXRoKGJvYXJkLCByZXNpemVEZXRlY3RSZXN1bHQuZWxlbWVudCksXG4gICAgICAgICAgICAgICAgZWxlbWVudDogcmVzaXplRGV0ZWN0UmVzdWx0LmVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZGlyZWN0aW9uOiByZXNpemVEZXRlY3RSZXN1bHQuZGlyZWN0aW9uXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHBvaW50ZXJEb3duKGV2ZW50KTtcbiAgICB9O1xuXG4gICAgYm9hcmQucG9pbnRlck1vdmUgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMuY2FuUmVzaXplKCkgfHwgIWdlbmVyYWxDYW5SZXNpemUoYm9hcmQsIGV2ZW50KSkge1xuICAgICAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydFBvaW50ICYmIHJlc2l6ZURldGVjdFJlc3VsdCAmJiAhaXNSZXNpemluZyhib2FyZCkpIHtcbiAgICAgICAgICAgIC8vIHByZXZlbnQgdGV4dCBmcm9tIGJlaW5nIHNlbGVjdGVkXG4gICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcHJldmVudFRvdWNoTW92ZShib2FyZCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGNvbnN0IGVuZFBvaW50ID0gdHJhbnNmb3JtUG9pbnQoYm9hcmQsIHRvUG9pbnQoZXZlbnQueCwgZXZlbnQueSwgUGxhaXRCb2FyZC5nZXRIb3N0KGJvYXJkKSkpO1xuICAgICAgICAgICAgY29uc3QgZGlzdGFuY2UgPSBkaXN0YW5jZUJldHdlZW5Qb2ludEFuZFBvaW50KHN0YXJ0UG9pbnRbMF0sIHN0YXJ0UG9pbnRbMV0sIGVuZFBvaW50WzBdLCBlbmRQb2ludFsxXSk7XG4gICAgICAgICAgICBpZiAoZGlzdGFuY2UgPiBQUkVTU19BTkRfTU9WRV9CVUZGRVIpIHtcbiAgICAgICAgICAgICAgICBhZGRSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpc1Jlc2l6aW5nKGJvYXJkKSAmJiBzdGFydFBvaW50KSB7XG4gICAgICAgICAgICAvLyBwcmV2ZW50IHRleHQgZnJvbSBiZWluZyBzZWxlY3RlZFxuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgIHByZXZlbnRUb3VjaE1vdmUoYm9hcmQsIHRydWUpO1xuXG4gICAgICAgICAgICB0aHJvdHRsZVJBRigoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZW5kUG9pbnQgPSBbZXZlbnQueCwgZXZlbnQueV07XG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0UG9pbnQgJiYgcmVzaXplUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFggPSBlbmRQb2ludFswXSAtIHN0YXJ0UG9pbnRbMF07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9mZnNldFkgPSBlbmRQb2ludFsxXSAtIHN0YXJ0UG9pbnRbMV07XG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMub25SZXNpemUocmVzaXplUmVmLCB7IG9mZnNldFgsIG9mZnNldFkgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBwb2ludCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIGNvbnN0IHJlc2l6ZURldGVjdFJlc3VsdCA9IG9wdGlvbnMuZGV0ZWN0KHBvaW50KTtcbiAgICAgICAgICAgIGlmIChyZXNpemVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICBob3ZlRGV0ZWN0UmVzdWx0ID0gcmVzaXplRGV0ZWN0UmVzdWx0O1xuICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7aG92ZURldGVjdFJlc3VsdC5jdXJzb3JDbGFzc31gKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKGhvdmVEZXRlY3RSZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtob3ZlRGV0ZWN0UmVzdWx0LmN1cnNvckNsYXNzfWApO1xuICAgICAgICAgICAgICAgICAgICBob3ZlRGV0ZWN0UmVzdWx0ID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcG9pbnRlck1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nbG9iYWxQb2ludGVyVXAgPSAoZXZlbnQ6IFBvaW50ZXJFdmVudCkgPT4ge1xuICAgICAgICBnbG9iYWxQb2ludGVyVXAoZXZlbnQpO1xuICAgICAgICBpZiAoaXNSZXNpemluZyhib2FyZCkgfHwgcmVzaXplRGV0ZWN0UmVzdWx0KSB7XG4gICAgICAgICAgICByZW1vdmVSZXNpemluZyhib2FyZCwgb3B0aW9ucy5rZXkpO1xuICAgICAgICAgICAgc3RhcnRQb2ludCA9IG51bGw7XG4gICAgICAgICAgICByZXNpemVEZXRlY3RSZXN1bHQgPSBudWxsO1xuICAgICAgICAgICAgcmVzaXplUmVmID0gbnVsbDtcbiAgICAgICAgICAgIE1FUkdJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG4gICAgICAgICAgICBwcmV2ZW50VG91Y2hNb3ZlKGJvYXJkLCBmYWxzZSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufTtcbiJdfQ==
|
package/esm2020/public-api.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Public API Surface of utils
|
|
3
|
-
*/
|
|
4
|
-
export * from './constants';
|
|
5
|
-
export * from './rectangle';
|
|
6
|
-
export * from './generator';
|
|
7
|
-
export * from './transforms';
|
|
8
|
-
export * from './shape';
|
|
9
|
-
export * from './plugins';
|
|
10
|
-
export * from './utils';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB1dGlsc1xuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVjdGFuZ2xlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2VuZXJhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNmb3Jtcyc7XG5leHBvcnQgKiBmcm9tICcuL3NoYXBlJztcbmV4cG9ydCAqIGZyb20gJy4vcGx1Z2lucyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbiJdfQ==
|
package/esm2020/rectangle.mjs
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard } from '@plait/core';
|
|
2
|
-
export const drawRectangle = (board, rectangle, options) => {
|
|
3
|
-
const roughSVG = PlaitBoard.getRoughSVG(board);
|
|
4
|
-
const rectangleG = roughSVG.rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height, options);
|
|
5
|
-
rectangleG.querySelector('path').setAttribute('stroke-linecap', 'square');
|
|
6
|
-
return rectangleG;
|
|
7
|
-
};
|
|
8
|
-
export const getRectangleByPoints = (points) => {
|
|
9
|
-
return {
|
|
10
|
-
x: points[0][0],
|
|
11
|
-
y: points[0][1],
|
|
12
|
-
width: points[1][0] - points[0][0],
|
|
13
|
-
height: points[1][1] - points[0][1]
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdGFuZ2xlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9yZWN0YW5nbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFHakUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsS0FBaUIsRUFBRSxTQUEwQixFQUFFLE9BQWdCLEVBQUUsRUFBRTtJQUM3RixNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9DLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM1RyxVQUFVLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBRSxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzRSxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQXNCLEVBQUUsRUFBRTtJQUMzRCxPQUFPO1FBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDZixDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNsQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDbkIsQ0FBQztBQUN6QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQbGFpdEJvYXJkLCBQb2ludCwgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuaW1wb3J0IHsgT3B0aW9ucyB9IGZyb20gJ3JvdWdoanMvYmluL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgZHJhd1JlY3RhbmdsZSA9IChib2FyZDogUGxhaXRCb2FyZCwgcmVjdGFuZ2xlOiBSZWN0YW5nbGVDbGllbnQsIG9wdGlvbnM6IE9wdGlvbnMpID0+IHtcbiAgICBjb25zdCByb3VnaFNWRyA9IFBsYWl0Qm9hcmQuZ2V0Um91Z2hTVkcoYm9hcmQpO1xuICAgIGNvbnN0IHJlY3RhbmdsZUcgPSByb3VnaFNWRy5yZWN0YW5nbGUocmVjdGFuZ2xlLngsIHJlY3RhbmdsZS55LCByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS5oZWlnaHQsIG9wdGlvbnMpO1xuICAgIHJlY3RhbmdsZUcucXVlcnlTZWxlY3RvcigncGF0aCcpIS5zZXRBdHRyaWJ1dGUoJ3N0cm9rZS1saW5lY2FwJywgJ3NxdWFyZScpO1xuICAgIHJldHVybiByZWN0YW5nbGVHO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldFJlY3RhbmdsZUJ5UG9pbnRzID0gKHBvaW50czogW1BvaW50LCBQb2ludF0pID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgICB4OiBwb2ludHNbMF1bMF0sXG4gICAgICAgIHk6IHBvaW50c1swXVsxXSxcbiAgICAgICAgd2lkdGg6IHBvaW50c1sxXVswXSAtIHBvaW50c1swXVswXSxcbiAgICAgICAgaGVpZ2h0OiBwb2ludHNbMV1bMV0gLSBwb2ludHNbMF1bMV1cbiAgICB9IGFzIFJlY3RhbmdsZUNsaWVudDtcbn07XG4iXX0=
|
package/esm2020/shape/common.mjs
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
export const normalizeShapePoints = (points) => {
|
|
2
|
-
const leftTopPoint = [Math.min(points[0][0], points[1][0]), Math.min(points[0][1], points[1][1])];
|
|
3
|
-
const rightBottomPoint = [Math.max(points[0][0], points[1][0]), Math.max(points[0][1], points[1][1])];
|
|
4
|
-
return [leftTopPoint, rightBottomPoint];
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy9zaGFwZS9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFzQixFQUFrQixFQUFFO0lBQzNFLE1BQU0sWUFBWSxHQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RyxNQUFNLGdCQUFnQixHQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RyxPQUFPLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFDNUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9pbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBub3JtYWxpemVTaGFwZVBvaW50cyA9IChwb2ludHM6IFtQb2ludCwgUG9pbnRdKTogW1BvaW50LCBQb2ludF0gPT4ge1xuICAgIGNvbnN0IGxlZnRUb3BQb2ludDogUG9pbnQgPSBbTWF0aC5taW4ocG9pbnRzWzBdWzBdLCBwb2ludHNbMV1bMF0pLCBNYXRoLm1pbihwb2ludHNbMF1bMV0sIHBvaW50c1sxXVsxXSldO1xuICAgIGNvbnN0IHJpZ2h0Qm90dG9tUG9pbnQ6IFBvaW50ID0gW01hdGgubWF4KHBvaW50c1swXVswXSwgcG9pbnRzWzFdWzBdKSwgTWF0aC5tYXgocG9pbnRzWzBdWzFdLCBwb2ludHNbMV1bMV0pXTtcbiAgICByZXR1cm4gW2xlZnRUb3BQb2ludCwgcmlnaHRCb3R0b21Qb2ludF07XG59O1xuIl19
|
package/esm2020/shape/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './common';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3NoYXBlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21tb24nO1xuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, Transforms, removeSelectedElement } from '@plait/core';
|
|
2
|
-
export const removeElements = (board, elements) => {
|
|
3
|
-
elements
|
|
4
|
-
.map(element => {
|
|
5
|
-
const path = PlaitBoard.findPath(board, element);
|
|
6
|
-
const ref = board.pathRef(path);
|
|
7
|
-
return () => {
|
|
8
|
-
Transforms.removeNode(board, ref.current);
|
|
9
|
-
ref.unref();
|
|
10
|
-
removeSelectedElement(board, element);
|
|
11
|
-
};
|
|
12
|
-
})
|
|
13
|
-
.forEach(action => {
|
|
14
|
-
action();
|
|
15
|
-
});
|
|
16
|
-
};
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbW1vbi9zcmMvdHJhbnNmb3Jtcy9lbGVtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQWdCLFVBQVUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsQ0FBQyxLQUFpQixFQUFFLFFBQXdCLEVBQUUsRUFBRTtJQUMxRSxRQUFRO1NBQ0gsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1gsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDakQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxPQUFPLEdBQUcsRUFBRTtZQUNSLFVBQVUsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxPQUFRLENBQUMsQ0FBQztZQUMzQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWixxQkFBcUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQyxDQUFDO1NBQ0QsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ2QsTUFBTSxFQUFFLENBQUM7SUFDYixDQUFDLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudCwgVHJhbnNmb3JtcywgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50IH0gZnJvbSAnQHBsYWl0L2NvcmUnO1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlRWxlbWVudHMgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkgPT4ge1xuICAgIGVsZW1lbnRzXG4gICAgICAgIC5tYXAoZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gUGxhaXRCb2FyZC5maW5kUGF0aChib2FyZCwgZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCByZWYgPSBib2FyZC5wYXRoUmVmKHBhdGgpO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnJlbW92ZU5vZGUoYm9hcmQsIHJlZi5jdXJyZW50ISk7XG4gICAgICAgICAgICAgICAgcmVmLnVucmVmKCk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlU2VsZWN0ZWRFbGVtZW50KGJvYXJkLCBlbGVtZW50KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICAgIC5mb3JFYWNoKGFjdGlvbiA9PiB7XG4gICAgICAgICAgICBhY3Rpb24oKTtcbiAgICAgICAgfSk7XG59O1xuIl19
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import { removeElements } from './element';
|
|
2
|
-
export const CommonTransforms = {
|
|
3
|
-
removeElements
|
|
4
|
-
};
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3RyYW5zZm9ybXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUUzQyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixjQUFjO0NBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByZW1vdmVFbGVtZW50cyB9IGZyb20gJy4vZWxlbWVudCc7XG5cbmV4cG9ydCBjb25zdCBDb21tb25UcmFuc2Zvcm1zID0ge1xuICAgIHJlbW92ZUVsZW1lbnRzXG59O1xuIl19
|
package/esm2020/utils/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './resize';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21tb24vc3JjL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9yZXNpemUnO1xuIl19
|
package/esm2020/utils/resize.mjs
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard } from '@plait/core';
|
|
2
|
-
import { ResizeCursorClass, ResizeDirection } from '../constants/resize';
|
|
3
|
-
/**
|
|
4
|
-
* @returns [left-top,right-top,right-bottom,left-bottom]: [Point, Point, Point, Point]
|
|
5
|
-
*/
|
|
6
|
-
export const getHandleCenters = (rectangle) => {
|
|
7
|
-
return [
|
|
8
|
-
[rectangle.x, rectangle.y],
|
|
9
|
-
[rectangle.x + rectangle.width, rectangle.y],
|
|
10
|
-
[rectangle.x + rectangle.width, rectangle.y + rectangle.height],
|
|
11
|
-
[rectangle.x, rectangle.y + rectangle.height]
|
|
12
|
-
];
|
|
13
|
-
};
|
|
14
|
-
const getResizeDirectionByIndex = (index) => {
|
|
15
|
-
switch (index) {
|
|
16
|
-
case 0:
|
|
17
|
-
return ResizeDirection.nw;
|
|
18
|
-
case 1:
|
|
19
|
-
return ResizeDirection.ne;
|
|
20
|
-
case 2:
|
|
21
|
-
return ResizeDirection.se;
|
|
22
|
-
case 3:
|
|
23
|
-
return ResizeDirection.sw;
|
|
24
|
-
default:
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
};
|
|
28
|
-
const getResizeCursorClassByIndex = (index) => {
|
|
29
|
-
switch (index) {
|
|
30
|
-
case 0:
|
|
31
|
-
return ResizeCursorClass.nwse;
|
|
32
|
-
case 1:
|
|
33
|
-
return ResizeCursorClass.nesw;
|
|
34
|
-
case 2:
|
|
35
|
-
return ResizeCursorClass.nwse;
|
|
36
|
-
case 3:
|
|
37
|
-
return ResizeCursorClass.nesw;
|
|
38
|
-
default:
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
export const getRectangleResizeTargets = (rectangle, diameter) => {
|
|
43
|
-
const centers = getHandleCenters(rectangle);
|
|
44
|
-
return centers.map((center, index) => {
|
|
45
|
-
return {
|
|
46
|
-
rectangle: {
|
|
47
|
-
x: center[0] - diameter / 2,
|
|
48
|
-
y: center[1] - diameter / 2,
|
|
49
|
-
width: diameter,
|
|
50
|
-
height: diameter
|
|
51
|
-
},
|
|
52
|
-
direction: getResizeDirectionByIndex(index),
|
|
53
|
-
cursorClass: getResizeCursorClassByIndex(index)
|
|
54
|
-
};
|
|
55
|
-
});
|
|
56
|
-
};
|
|
57
|
-
export const IS_RESIZING = new WeakMap();
|
|
58
|
-
export const isResizing = (board) => {
|
|
59
|
-
return !!IS_RESIZING.get(board);
|
|
60
|
-
};
|
|
61
|
-
export const addResizing = (board, key) => {
|
|
62
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${key}-resizing`);
|
|
63
|
-
IS_RESIZING.set(board, true);
|
|
64
|
-
};
|
|
65
|
-
export const removeResizing = (board, key) => {
|
|
66
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${key}-resizing`);
|
|
67
|
-
IS_RESIZING.set(board, false);
|
|
68
|
-
};
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tbW9uL3NyYy91dGlscy9yZXNpemUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBMEIsTUFBTSxhQUFhLENBQUM7QUFDakUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXpFOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxTQUEwQixFQUFFLEVBQUU7SUFDM0QsT0FBTztRQUNILENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzFCLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDO1FBQy9ELENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUM7S0FDaEIsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFRixNQUFNLHlCQUF5QixHQUFHLENBQUMsS0FBYSxFQUFFLEVBQUU7SUFDaEQsUUFBUSxLQUFLLEVBQUU7UUFDWCxLQUFLLENBQUM7WUFDRixPQUFPLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsS0FBSyxDQUFDO1lBQ0YsT0FBTyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQzlCLEtBQUssQ0FBQztZQUNGLE9BQU8sZUFBZSxDQUFDLEVBQUUsQ0FBQztRQUM5QixLQUFLLENBQUM7WUFDRixPQUFPLGVBQWUsQ0FBQyxFQUFFLENBQUM7UUFDOUI7WUFDSSxPQUFPLElBQUksQ0FBQztLQUNuQjtBQUNMLENBQUMsQ0FBQztBQUVGLE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxLQUFhLEVBQUUsRUFBRTtJQUNsRCxRQUFRLEtBQUssRUFBRTtRQUNYLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDLEtBQUssQ0FBQztZQUNGLE9BQU8saUJBQWlCLENBQUMsSUFBSSxDQUFDO1FBQ2xDO1lBQ0ksT0FBTyxJQUFJLENBQUM7S0FDbkI7QUFDTCxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFNBQTBCLEVBQUUsUUFBZ0IsRUFBRSxFQUFFO0lBQ3RGLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFhLEVBQUUsRUFBRTtRQUN6QyxPQUFPO1lBQ0gsU0FBUyxFQUFFO2dCQUNQLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUM7Z0JBQzNCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxHQUFHLENBQUM7Z0JBQzNCLEtBQUssRUFBRSxRQUFRO2dCQUNmLE1BQU0sRUFBRSxRQUFRO2FBQ25CO1lBQ0QsU0FBUyxFQUFFLHlCQUF5QixDQUFDLEtBQUssQ0FBb0I7WUFDOUQsV0FBVyxFQUFFLDJCQUEyQixDQUFDLEtBQUssQ0FBc0I7U0FDdkUsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDO0FBR0YsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRTlELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtJQUM1QyxPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQWlCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDMUQsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3JFLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ2pDLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsR0FBVyxFQUFFLEVBQUU7SUFDN0QsVUFBVSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxDQUFDO0lBQ3hFLFdBQVcsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO0FBQ2xDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQsIFBvaW50LCBSZWN0YW5nbGVDbGllbnQgfSBmcm9tICdAcGxhaXQvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVDdXJzb3JDbGFzcywgUmVzaXplRGlyZWN0aW9uIH0gZnJvbSAnLi4vY29uc3RhbnRzL3Jlc2l6ZSc7XG5cbi8qKlxuICogQHJldHVybnMgW2xlZnQtdG9wLHJpZ2h0LXRvcCxyaWdodC1ib3R0b20sbGVmdC1ib3R0b21dOiBbUG9pbnQsIFBvaW50LCBQb2ludCwgUG9pbnRdXG4gKi9cbmV4cG9ydCBjb25zdCBnZXRIYW5kbGVDZW50ZXJzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50KSA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgW3JlY3RhbmdsZS54LCByZWN0YW5nbGUueV0sXG4gICAgICAgIFtyZWN0YW5nbGUueCArIHJlY3RhbmdsZS53aWR0aCwgcmVjdGFuZ2xlLnldLFxuICAgICAgICBbcmVjdGFuZ2xlLnggKyByZWN0YW5nbGUud2lkdGgsIHJlY3RhbmdsZS55ICsgcmVjdGFuZ2xlLmhlaWdodF0sXG4gICAgICAgIFtyZWN0YW5nbGUueCwgcmVjdGFuZ2xlLnkgKyByZWN0YW5nbGUuaGVpZ2h0XVxuICAgIF0gYXMgW1BvaW50LCBQb2ludCwgUG9pbnQsIFBvaW50XTtcbn07XG5cbmNvbnN0IGdldFJlc2l6ZURpcmVjdGlvbkJ5SW5kZXggPSAoaW5kZXg6IG51bWJlcikgPT4ge1xuICAgIHN3aXRjaCAoaW5kZXgpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5udztcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5uZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5zZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZURpcmVjdGlvbi5zdztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmNvbnN0IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleCA9IChpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgc3dpdGNoIChpbmRleCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MubndzZTtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgICAgcmV0dXJuIFJlc2l6ZUN1cnNvckNsYXNzLm5lc3c7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICAgIHJldHVybiBSZXNpemVDdXJzb3JDbGFzcy5ud3NlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgICByZXR1cm4gUmVzaXplQ3Vyc29yQ2xhc3MubmVzdztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBnZXRSZWN0YW5nbGVSZXNpemVUYXJnZXRzID0gKHJlY3RhbmdsZTogUmVjdGFuZ2xlQ2xpZW50LCBkaWFtZXRlcjogbnVtYmVyKSA9PiB7XG4gICAgY29uc3QgY2VudGVycyA9IGdldEhhbmRsZUNlbnRlcnMocmVjdGFuZ2xlKTtcbiAgICByZXR1cm4gY2VudGVycy5tYXAoKGNlbnRlciwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVjdGFuZ2xlOiB7XG4gICAgICAgICAgICAgICAgeDogY2VudGVyWzBdIC0gZGlhbWV0ZXIgLyAyLFxuICAgICAgICAgICAgICAgIHk6IGNlbnRlclsxXSAtIGRpYW1ldGVyIC8gMixcbiAgICAgICAgICAgICAgICB3aWR0aDogZGlhbWV0ZXIsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBkaWFtZXRlclxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRpcmVjdGlvbjogZ2V0UmVzaXplRGlyZWN0aW9uQnlJbmRleChpbmRleCkgYXMgUmVzaXplRGlyZWN0aW9uLFxuICAgICAgICAgICAgY3Vyc29yQ2xhc3M6IGdldFJlc2l6ZUN1cnNvckNsYXNzQnlJbmRleChpbmRleCkgYXMgUmVzaXplQ3Vyc29yQ2xhc3NcbiAgICAgICAgfTtcbiAgICB9KTtcbn07XG5cblxuZXhwb3J0IGNvbnN0IElTX1JFU0laSU5HID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgYm9vbGVhbj4oKTtcblxuZXhwb3J0IGNvbnN0IGlzUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQpID0+IHtcbiAgICByZXR1cm4gISFJU19SRVNJWklORy5nZXQoYm9hcmQpO1xufTtcblxuZXhwb3J0IGNvbnN0IGFkZFJlc2l6aW5nID0gKGJvYXJkOiBQbGFpdEJvYXJkLCBrZXk6IHN0cmluZykgPT4ge1xuICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmRDb250YWluZXIoYm9hcmQpLmNsYXNzTGlzdC5hZGQoYCR7a2V5fS1yZXNpemluZ2ApO1xuICAgIElTX1JFU0laSU5HLnNldChib2FyZCwgdHJ1ZSk7XG59O1xuXG5leHBvcnQgY29uc3QgcmVtb3ZlUmVzaXppbmcgPSAoYm9hcmQ6IFBsYWl0Qm9hcmQsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgUGxhaXRCb2FyZC5nZXRCb2FyZENvbnRhaW5lcihib2FyZCkuY2xhc3NMaXN0LnJlbW92ZShgJHtrZXl9LXJlc2l6aW5nYCk7XG4gICAgSVNfUkVTSVpJTkcuc2V0KGJvYXJkLCBmYWxzZSk7XG59OyJdfQ==
|
|
@@ -1,304 +0,0 @@
|
|
|
1
|
-
import { PlaitBoard, createG, RectangleClient, drawCircle, Transforms, removeSelectedElement, PlaitPointerType, isMainPointer, transformPoint, toPoint, preventTouchMove, distanceBetweenPointAndPoint, PRESS_AND_MOVE_BUFFER, MERGING, throttleRAF } from '@plait/core';
|
|
2
|
-
|
|
3
|
-
const BASE = 4;
|
|
4
|
-
const PRIMARY_COLOR = '#6698FF';
|
|
5
|
-
const RESIZE_HANDLE_DIAMETER = 10;
|
|
6
|
-
|
|
7
|
-
var MediaKeys;
|
|
8
|
-
(function (MediaKeys) {
|
|
9
|
-
MediaKeys["image"] = "image";
|
|
10
|
-
})(MediaKeys || (MediaKeys = {}));
|
|
11
|
-
|
|
12
|
-
var ResizeCursorClass;
|
|
13
|
-
(function (ResizeCursorClass) {
|
|
14
|
-
ResizeCursorClass["ew"] = "ew-resize";
|
|
15
|
-
ResizeCursorClass["ns"] = "ns-resize";
|
|
16
|
-
ResizeCursorClass["nesw"] = "nesw-resize";
|
|
17
|
-
ResizeCursorClass["nwse"] = "nwse-resize";
|
|
18
|
-
})(ResizeCursorClass || (ResizeCursorClass = {}));
|
|
19
|
-
var ResizeDirection;
|
|
20
|
-
(function (ResizeDirection) {
|
|
21
|
-
ResizeDirection["ne"] = "ne";
|
|
22
|
-
ResizeDirection["n"] = "n";
|
|
23
|
-
ResizeDirection["nw"] = "nw";
|
|
24
|
-
ResizeDirection["e"] = "w";
|
|
25
|
-
ResizeDirection["se"] = "se";
|
|
26
|
-
ResizeDirection["s"] = "s";
|
|
27
|
-
ResizeDirection["sw"] = "sw";
|
|
28
|
-
ResizeDirection["w"] = "w";
|
|
29
|
-
})(ResizeDirection || (ResizeDirection = {}));
|
|
30
|
-
|
|
31
|
-
const drawRectangle = (board, rectangle, options) => {
|
|
32
|
-
const roughSVG = PlaitBoard.getRoughSVG(board);
|
|
33
|
-
const rectangleG = roughSVG.rectangle(rectangle.x, rectangle.y, rectangle.width, rectangle.height, options);
|
|
34
|
-
rectangleG.querySelector('path').setAttribute('stroke-linecap', 'square');
|
|
35
|
-
return rectangleG;
|
|
36
|
-
};
|
|
37
|
-
const getRectangleByPoints = (points) => {
|
|
38
|
-
return {
|
|
39
|
-
x: points[0][0],
|
|
40
|
-
y: points[0][1],
|
|
41
|
-
width: points[1][0] - points[0][0],
|
|
42
|
-
height: points[1][1] - points[0][1]
|
|
43
|
-
};
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
class Generator {
|
|
47
|
-
constructor(board, options) {
|
|
48
|
-
this.board = board;
|
|
49
|
-
}
|
|
50
|
-
draw(element, parentG, data) {
|
|
51
|
-
this.destroy();
|
|
52
|
-
if (this.canDraw && this.canDraw(element, data)) {
|
|
53
|
-
const g = this.baseDraw(element, data);
|
|
54
|
-
if (g) {
|
|
55
|
-
parentG.append(g);
|
|
56
|
-
}
|
|
57
|
-
if (hasAfterDraw(this)) {
|
|
58
|
-
this.afterDraw(element);
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
destroy() {
|
|
63
|
-
if (this.g) {
|
|
64
|
-
this.g.remove();
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
function hasAfterDraw(value) {
|
|
69
|
-
if (value.afterDraw) {
|
|
70
|
-
return true;
|
|
71
|
-
}
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
class ActiveGenerator extends Generator {
|
|
76
|
-
constructor(board, options) {
|
|
77
|
-
super(board, options);
|
|
78
|
-
this.board = board;
|
|
79
|
-
this.options = options;
|
|
80
|
-
}
|
|
81
|
-
canDraw(element, data) {
|
|
82
|
-
if (data.selected) {
|
|
83
|
-
return true;
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return false;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
baseDraw(element, data) {
|
|
90
|
-
const activeG = createG();
|
|
91
|
-
this.g = activeG;
|
|
92
|
-
const rectangle = this.options.getRectangle(element);
|
|
93
|
-
// add 0.1 to avoid white gap
|
|
94
|
-
const offset = (this.options.getStrokeWidthByElement(element) + this.options.activeStrokeWidth) / 2 - 0.1;
|
|
95
|
-
const activeRectangle = RectangleClient.getOutlineRectangle(rectangle, -offset);
|
|
96
|
-
const strokeG = drawRectangle(this.board, activeRectangle, {
|
|
97
|
-
stroke: PRIMARY_COLOR,
|
|
98
|
-
strokeWidth: this.options.activeStrokeWidth
|
|
99
|
-
});
|
|
100
|
-
// resize handle
|
|
101
|
-
const options = { stroke: '#999999', strokeWidth: 1, fill: '#FFF', fillStyle: 'solid' };
|
|
102
|
-
const leftTopHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x, activeRectangle.y], RESIZE_HANDLE_DIAMETER, options);
|
|
103
|
-
const rightTopHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x + activeRectangle.width, activeRectangle.y], RESIZE_HANDLE_DIAMETER, options);
|
|
104
|
-
const rightBottomHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x + activeRectangle.width, activeRectangle.y + activeRectangle.height], RESIZE_HANDLE_DIAMETER, options);
|
|
105
|
-
const leftBottomHandleG = drawCircle(PlaitBoard.getRoughSVG(this.board), [activeRectangle.x, activeRectangle.y + activeRectangle.height], RESIZE_HANDLE_DIAMETER, options);
|
|
106
|
-
this.g.append(...[strokeG, leftTopHandleG, rightTopHandleG, rightBottomHandleG, leftBottomHandleG]);
|
|
107
|
-
return activeG;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const removeElements = (board, elements) => {
|
|
112
|
-
elements
|
|
113
|
-
.map(element => {
|
|
114
|
-
const path = PlaitBoard.findPath(board, element);
|
|
115
|
-
const ref = board.pathRef(path);
|
|
116
|
-
return () => {
|
|
117
|
-
Transforms.removeNode(board, ref.current);
|
|
118
|
-
ref.unref();
|
|
119
|
-
removeSelectedElement(board, element);
|
|
120
|
-
};
|
|
121
|
-
})
|
|
122
|
-
.forEach(action => {
|
|
123
|
-
action();
|
|
124
|
-
});
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
const CommonTransforms = {
|
|
128
|
-
removeElements
|
|
129
|
-
};
|
|
130
|
-
|
|
131
|
-
const normalizeShapePoints = (points) => {
|
|
132
|
-
const leftTopPoint = [Math.min(points[0][0], points[1][0]), Math.min(points[0][1], points[1][1])];
|
|
133
|
-
const rightBottomPoint = [Math.max(points[0][0], points[1][0]), Math.max(points[0][1], points[1][1])];
|
|
134
|
-
return [leftTopPoint, rightBottomPoint];
|
|
135
|
-
};
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* @returns [left-top,right-top,right-bottom,left-bottom]: [Point, Point, Point, Point]
|
|
139
|
-
*/
|
|
140
|
-
const getHandleCenters = (rectangle) => {
|
|
141
|
-
return [
|
|
142
|
-
[rectangle.x, rectangle.y],
|
|
143
|
-
[rectangle.x + rectangle.width, rectangle.y],
|
|
144
|
-
[rectangle.x + rectangle.width, rectangle.y + rectangle.height],
|
|
145
|
-
[rectangle.x, rectangle.y + rectangle.height]
|
|
146
|
-
];
|
|
147
|
-
};
|
|
148
|
-
const getResizeDirectionByIndex = (index) => {
|
|
149
|
-
switch (index) {
|
|
150
|
-
case 0:
|
|
151
|
-
return ResizeDirection.nw;
|
|
152
|
-
case 1:
|
|
153
|
-
return ResizeDirection.ne;
|
|
154
|
-
case 2:
|
|
155
|
-
return ResizeDirection.se;
|
|
156
|
-
case 3:
|
|
157
|
-
return ResizeDirection.sw;
|
|
158
|
-
default:
|
|
159
|
-
return null;
|
|
160
|
-
}
|
|
161
|
-
};
|
|
162
|
-
const getResizeCursorClassByIndex = (index) => {
|
|
163
|
-
switch (index) {
|
|
164
|
-
case 0:
|
|
165
|
-
return ResizeCursorClass.nwse;
|
|
166
|
-
case 1:
|
|
167
|
-
return ResizeCursorClass.nesw;
|
|
168
|
-
case 2:
|
|
169
|
-
return ResizeCursorClass.nwse;
|
|
170
|
-
case 3:
|
|
171
|
-
return ResizeCursorClass.nesw;
|
|
172
|
-
default:
|
|
173
|
-
return null;
|
|
174
|
-
}
|
|
175
|
-
};
|
|
176
|
-
const getRectangleResizeTargets = (rectangle, diameter) => {
|
|
177
|
-
const centers = getHandleCenters(rectangle);
|
|
178
|
-
return centers.map((center, index) => {
|
|
179
|
-
return {
|
|
180
|
-
rectangle: {
|
|
181
|
-
x: center[0] - diameter / 2,
|
|
182
|
-
y: center[1] - diameter / 2,
|
|
183
|
-
width: diameter,
|
|
184
|
-
height: diameter
|
|
185
|
-
},
|
|
186
|
-
direction: getResizeDirectionByIndex(index),
|
|
187
|
-
cursorClass: getResizeCursorClassByIndex(index)
|
|
188
|
-
};
|
|
189
|
-
});
|
|
190
|
-
};
|
|
191
|
-
const IS_RESIZING = new WeakMap();
|
|
192
|
-
const isResizing = (board) => {
|
|
193
|
-
return !!IS_RESIZING.get(board);
|
|
194
|
-
};
|
|
195
|
-
const addResizing = (board, key) => {
|
|
196
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${key}-resizing`);
|
|
197
|
-
IS_RESIZING.set(board, true);
|
|
198
|
-
};
|
|
199
|
-
const removeResizing = (board, key) => {
|
|
200
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${key}-resizing`);
|
|
201
|
-
IS_RESIZING.set(board, false);
|
|
202
|
-
};
|
|
203
|
-
|
|
204
|
-
const generalCanResize = (board, event) => {
|
|
205
|
-
return (PlaitBoard.isReadonly(board) ||
|
|
206
|
-
PlaitBoard.hasBeenTextEditing(board) ||
|
|
207
|
-
!PlaitBoard.isPointer(board, PlaitPointerType.hand) ||
|
|
208
|
-
!isMainPointer(event));
|
|
209
|
-
};
|
|
210
|
-
const withResize = (board, options) => {
|
|
211
|
-
const { pointerDown, pointerMove, globalPointerUp } = board;
|
|
212
|
-
let resizeDetectResult = null;
|
|
213
|
-
let resizeRef = null;
|
|
214
|
-
let startPoint = null;
|
|
215
|
-
let hoveDetectResult = null;
|
|
216
|
-
board.pointerDown = (event) => {
|
|
217
|
-
if (!options.canResize() || !generalCanResize(board, event)) {
|
|
218
|
-
pointerDown(event);
|
|
219
|
-
return;
|
|
220
|
-
}
|
|
221
|
-
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
222
|
-
resizeDetectResult = options.detect(point);
|
|
223
|
-
if (resizeDetectResult) {
|
|
224
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${resizeDetectResult.cursorClass}`);
|
|
225
|
-
startPoint = [event.x, event.y];
|
|
226
|
-
resizeRef = {
|
|
227
|
-
path: PlaitBoard.findPath(board, resizeDetectResult.element),
|
|
228
|
-
element: resizeDetectResult.element,
|
|
229
|
-
direction: resizeDetectResult.direction
|
|
230
|
-
};
|
|
231
|
-
return;
|
|
232
|
-
}
|
|
233
|
-
pointerDown(event);
|
|
234
|
-
};
|
|
235
|
-
board.pointerMove = (event) => {
|
|
236
|
-
if (!options.canResize() || !generalCanResize(board, event)) {
|
|
237
|
-
pointerMove(event);
|
|
238
|
-
return;
|
|
239
|
-
}
|
|
240
|
-
if (startPoint && resizeDetectResult && !isResizing(board)) {
|
|
241
|
-
// prevent text from being selected
|
|
242
|
-
event.preventDefault();
|
|
243
|
-
preventTouchMove(board, true);
|
|
244
|
-
const endPoint = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
245
|
-
const distance = distanceBetweenPointAndPoint(startPoint[0], startPoint[1], endPoint[0], endPoint[1]);
|
|
246
|
-
if (distance > PRESS_AND_MOVE_BUFFER) {
|
|
247
|
-
addResizing(board, options.key);
|
|
248
|
-
MERGING.set(board, true);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
if (isResizing(board) && startPoint) {
|
|
252
|
-
// prevent text from being selected
|
|
253
|
-
event.preventDefault();
|
|
254
|
-
preventTouchMove(board, true);
|
|
255
|
-
throttleRAF(() => {
|
|
256
|
-
const endPoint = [event.x, event.y];
|
|
257
|
-
if (startPoint && resizeRef) {
|
|
258
|
-
const offsetX = endPoint[0] - startPoint[0];
|
|
259
|
-
const offsetY = endPoint[1] - startPoint[1];
|
|
260
|
-
options.onResize(resizeRef, { offsetX, offsetY });
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
return;
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
const point = transformPoint(board, toPoint(event.x, event.y, PlaitBoard.getHost(board)));
|
|
267
|
-
const resizeDetectResult = options.detect(point);
|
|
268
|
-
if (resizeDetectResult) {
|
|
269
|
-
hoveDetectResult = resizeDetectResult;
|
|
270
|
-
PlaitBoard.getBoardContainer(board).classList.add(`${hoveDetectResult.cursorClass}`);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
if (hoveDetectResult) {
|
|
274
|
-
PlaitBoard.getBoardContainer(board).classList.remove(`${hoveDetectResult.cursorClass}`);
|
|
275
|
-
hoveDetectResult = null;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
pointerMove(event);
|
|
280
|
-
};
|
|
281
|
-
board.globalPointerUp = (event) => {
|
|
282
|
-
globalPointerUp(event);
|
|
283
|
-
if (isResizing(board) || resizeDetectResult) {
|
|
284
|
-
removeResizing(board, options.key);
|
|
285
|
-
startPoint = null;
|
|
286
|
-
resizeDetectResult = null;
|
|
287
|
-
resizeRef = null;
|
|
288
|
-
MERGING.set(board, false);
|
|
289
|
-
preventTouchMove(board, false);
|
|
290
|
-
}
|
|
291
|
-
};
|
|
292
|
-
return board;
|
|
293
|
-
};
|
|
294
|
-
|
|
295
|
-
/*
|
|
296
|
-
* Public API Surface of utils
|
|
297
|
-
*/
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* Generated bundle index. Do not edit.
|
|
301
|
-
*/
|
|
302
|
-
|
|
303
|
-
export { ActiveGenerator, BASE, CommonTransforms, Generator, IS_RESIZING, MediaKeys, PRIMARY_COLOR, RESIZE_HANDLE_DIAMETER, ResizeCursorClass, ResizeDirection, addResizing, drawRectangle, getHandleCenters, getRectangleByPoints, getRectangleResizeTargets, hasAfterDraw, isResizing, normalizeShapePoints, removeResizing, withResize };
|
|
304
|
-
//# sourceMappingURL=plait-common.mjs.map
|