@plait/core 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/plugins/with-selection.mjs +16 -6
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/transforms/selection.mjs +10 -2
- package/esm2020/utils/weak-maps.mjs +3 -1
- package/fesm2015/plait-core.mjs +36 -18
- package/fesm2015/plait-core.mjs.map +1 -1
- package/fesm2020/plait-core.mjs +36 -18
- package/fesm2020/plait-core.mjs.map +1 -1
- package/package.json +1 -1
- package/plugins/with-selection.d.ts +2 -0
- package/public-api.d.ts +1 -0
- package/transforms/selection.d.ts +3 -0
- package/utils/weak-maps.d.ts +1 -0
|
@@ -6,6 +6,7 @@ import { RectangleClient } from '../interfaces/rectangle-client';
|
|
|
6
6
|
import { cacheSelectedElements, calcElementIntersectionSelection } from '../utils/selected-element';
|
|
7
7
|
import { SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR } from '../interfaces';
|
|
8
8
|
import { getRectangleByElements } from '../utils/element';
|
|
9
|
+
import { BOARD_TO_TEMPORARY_ELEMENTS } from '../utils/weak-maps';
|
|
9
10
|
export function withSelection(board) {
|
|
10
11
|
const { mousedown, globalMousemove, globalMouseup, onChange } = board;
|
|
11
12
|
let start = null;
|
|
@@ -28,8 +29,8 @@ export function withSelection(board) {
|
|
|
28
29
|
const { x, y, width, height } = RectangleClient.toRectangleClient([start, movedTarget]);
|
|
29
30
|
if (Math.hypot(width, height) > 5) {
|
|
30
31
|
end = movedTarget;
|
|
31
|
-
if (
|
|
32
|
-
Transforms.setSelection(board, { ranges: [{ anchor: start, focus:
|
|
32
|
+
if (end) {
|
|
33
|
+
Transforms.setSelection(board, { ranges: [{ anchor: start, focus: end }] });
|
|
33
34
|
}
|
|
34
35
|
PlaitBoard.getBoardNativeElement(board).classList.add('selection-moving');
|
|
35
36
|
selectionMovingG?.remove();
|
|
@@ -58,11 +59,13 @@ export function withSelection(board) {
|
|
|
58
59
|
// calc selected elements entry
|
|
59
60
|
try {
|
|
60
61
|
if (board.operations.find(value => value.type === 'set_selection')) {
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
const temporaryElements = getTemporaryElements(board);
|
|
63
|
+
const elements = temporaryElements ? temporaryElements : calcElementIntersectionSelection(board);
|
|
64
|
+
cacheSelectedElements(board, elements);
|
|
65
|
+
const { x, y, width, height } = getRectangleByElements(board, elements, false);
|
|
64
66
|
if (width > 0 && height > 0) {
|
|
65
67
|
const rough = PlaitBoard.getRoughSVG(board);
|
|
68
|
+
selectionOuterG?.remove();
|
|
66
69
|
selectionOuterG = rough.rectangle(x - 2, y - 2, width + 4, height + 4, {
|
|
67
70
|
stroke: SELECTION_BORDER_COLOR,
|
|
68
71
|
strokeWidth: 1,
|
|
@@ -71,6 +74,7 @@ export function withSelection(board) {
|
|
|
71
74
|
PlaitBoard.getHost(board).append(selectionOuterG);
|
|
72
75
|
}
|
|
73
76
|
}
|
|
77
|
+
deleteTemporaryElements(board);
|
|
74
78
|
}
|
|
75
79
|
catch (error) {
|
|
76
80
|
console.error(error);
|
|
@@ -79,4 +83,10 @@ export function withSelection(board) {
|
|
|
79
83
|
};
|
|
80
84
|
return board;
|
|
81
85
|
}
|
|
82
|
-
|
|
86
|
+
export function getTemporaryElements(board) {
|
|
87
|
+
return BOARD_TO_TEMPORARY_ELEMENTS.get(board);
|
|
88
|
+
}
|
|
89
|
+
export function deleteTemporaryElements(board) {
|
|
90
|
+
BOARD_TO_TEMPORARY_ELEMENTS.delete(board);
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1zZWxlY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFpdC9zcmMvcGx1Z2lucy93aXRoLXNlbGVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDcEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpFLE1BQU0sVUFBVSxhQUFhLENBQXVCLEtBQVE7SUFDeEQsTUFBTSxFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxHQUFHLEtBQUssQ0FBQztJQUV0RSxJQUFJLEtBQUssR0FBaUIsSUFBSSxDQUFDO0lBQy9CLElBQUksR0FBRyxHQUFpQixJQUFJLENBQUM7SUFDN0IsSUFBSSxnQkFBNkIsQ0FBQztJQUNsQyxJQUFJLGVBQTRCLENBQUM7SUFFakMsS0FBSyxDQUFDLFNBQVMsR0FBRyxDQUFDLEtBQWlCLEVBQUUsRUFBRTtRQUNwQyxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNwQixL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QUFFRCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsS0FBaUI7SUFDbEQsT0FBTywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsQ0FBQztBQUVELE1BQU0sVUFBVSx1QkFBdUIsQ0FBQyxLQUFpQjtJQUNyRCwyQkFBMkIsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5pbXBvcnQgeyBUcmFuc2Zvcm1zIH0gZnJvbSAnLi4vdHJhbnNmb3Jtcyc7XG5pbXBvcnQgeyB0cmFuc2Zvcm1Qb2ludCB9IGZyb20gJy4uL3V0aWxzL2JvYXJkJztcbmltcG9ydCB7IHRvUG9pbnQgfSBmcm9tICcuLi91dGlscy9kb20nO1xuaW1wb3J0IHsgUmVjdGFuZ2xlQ2xpZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZWN0YW5nbGUtY2xpZW50JztcbmltcG9ydCB7IGNhY2hlU2VsZWN0ZWRFbGVtZW50cywgY2FsY0VsZW1lbnRJbnRlcnNlY3Rpb25TZWxlY3Rpb24gfSBmcm9tICcuLi91dGlscy9zZWxlY3RlZC1lbGVtZW50JztcbmltcG9ydCB7IFNFTEVDVElPTl9CT1JERVJfQ09MT1IsIFNFTEVDVElPTl9GSUxMX0NPTE9SIH0gZnJvbSAnLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBnZXRSZWN0YW5nbGVCeUVsZW1lbnRzIH0gZnJvbSAnLi4vdXRpbHMvZWxlbWVudCc7XG5pbXBvcnQgeyBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgfSBmcm9tICcuLi91dGlscy93ZWFrLW1hcHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gd2l0aFNlbGVjdGlvbjxUIGV4dGVuZHMgUGxhaXRCb2FyZD4oYm9hcmQ6IFQpIHtcbiAgICBjb25zdCB7IG1vdXNlZG93biwgZ2xvYmFsTW91c2Vtb3ZlLCBnbG9iYWxNb3VzZXVwLCBvbkNoYW5nZSB9ID0gYm9hcmQ7XG5cbiAgICBsZXQgc3RhcnQ6IFBvaW50IHwgbnVsbCA9IG51bGw7XG4gICAgbGV0IGVuZDogUG9pbnQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgc2VsZWN0aW9uTW92aW5nRzogU1ZHR0VsZW1lbnQ7XG4gICAgbGV0IHNlbGVjdGlvbk91dGVyRzogU1ZHR0VsZW1lbnQ7XG5cbiAgICBib2FyZC5tb3VzZWRvd24gPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgc2VsZWN0aW9uT3V0ZXJHPy5yZW1vdmUoKTtcbiAgICAgICAgaWYgKGV2ZW50LmJ1dHRvbiA9PT0gMCkge1xuICAgICAgICAgICAgc3RhcnQgPSB0cmFuc2Zvcm1Qb2ludChib2FyZCwgdG9Qb2ludChldmVudC54LCBldmVudC55LCBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBUcmFuc2Zvcm1zLnNldFNlbGVjdGlvbihib2FyZCwgeyByYW5nZXM6IFt7IGFuY2hvcjogc3RhcnQsIGZvY3VzOiBzdGFydCB9XSB9KTtcbiAgICAgICAgfVxuICAgICAgICBtb3VzZWRvd24oZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nbG9iYWxNb3VzZW1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgaWYgKHN0YXJ0KSB7XG4gICAgICAgICAgICBjb25zdCBtb3ZlZFRhcmdldCA9IHRyYW5zZm9ybVBvaW50KGJvYXJkLCB0b1BvaW50KGV2ZW50LngsIGV2ZW50LnksIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkpKTtcbiAgICAgICAgICAgIGNvbnN0IHsgeCwgeSwgd2lkdGgsIGhlaWdodCB9ID0gUmVjdGFuZ2xlQ2xpZW50LnRvUmVjdGFuZ2xlQ2xpZW50KFtzdGFydCwgbW92ZWRUYXJnZXRdKTtcbiAgICAgICAgICAgIGlmIChNYXRoLmh5cG90KHdpZHRoLCBoZWlnaHQpID4gNSkge1xuICAgICAgICAgICAgICAgIGVuZCA9IG1vdmVkVGFyZ2V0O1xuICAgICAgICAgICAgICAgIGlmIChlbmQpIHtcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXRTZWxlY3Rpb24oYm9hcmQsIHsgcmFuZ2VzOiBbeyBhbmNob3I6IHN0YXJ0LCBmb2N1czogZW5kIH1dIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEJvYXJkTmF0aXZlRWxlbWVudChib2FyZCkuY2xhc3NMaXN0LmFkZCgnc2VsZWN0aW9uLW1vdmluZycpO1xuICAgICAgICAgICAgICAgIHNlbGVjdGlvbk1vdmluZ0c/LnJlbW92ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJvdWdoID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgc2VsZWN0aW9uTW92aW5nRyA9IHJvdWdoLnJlY3RhbmdsZSh4LCB5LCB3aWR0aCwgaGVpZ2h0LCB7XG4gICAgICAgICAgICAgICAgICAgIHN0cm9rZTogU0VMRUNUSU9OX0JPUkRFUl9DT0xPUixcbiAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICAgICAgICAgIGZpbGw6IFNFTEVDVElPTl9GSUxMX0NPTE9SLFxuICAgICAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBQbGFpdEJvYXJkLmdldEhvc3QoYm9hcmQpLmFwcGVuZChzZWxlY3Rpb25Nb3ZpbmdHKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBnbG9iYWxNb3VzZW1vdmUoZXZlbnQpO1xuICAgIH07XG5cbiAgICBib2FyZC5nbG9iYWxNb3VzZXVwID0gKGV2ZW50OiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChzdGFydCAmJiBlbmQpIHtcbiAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0Qm9hcmROYXRpdmVFbGVtZW50KGJvYXJkKS5jbGFzc0xpc3QucmVtb3ZlKCdzZWxlY3Rpb24tbW92aW5nJyk7XG4gICAgICAgICAgICBzZWxlY3Rpb25Nb3ZpbmdHPy5yZW1vdmUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN0YXJ0ID0gbnVsbDtcbiAgICAgICAgZW5kID0gbnVsbDtcbiAgICAgICAgZ2xvYmFsTW91c2V1cChldmVudCk7XG4gICAgfTtcblxuICAgIGJvYXJkLm9uQ2hhbmdlID0gKCkgPT4ge1xuICAgICAgICAvLyBjYWxjIHNlbGVjdGVkIGVsZW1lbnRzIGVudHJ5XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBpZiAoYm9hcmQub3BlcmF0aW9ucy5maW5kKHZhbHVlID0+IHZhbHVlLnR5cGUgPT09ICdzZXRfc2VsZWN0aW9uJykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB0ZW1wb3JhcnlFbGVtZW50cyA9IGdldFRlbXBvcmFyeUVsZW1lbnRzKGJvYXJkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50cyA9IHRlbXBvcmFyeUVsZW1lbnRzID8gdGVtcG9yYXJ5RWxlbWVudHMgOiBjYWxjRWxlbWVudEludGVyc2VjdGlvblNlbGVjdGlvbihib2FyZCk7XG5cbiAgICAgICAgICAgICAgICBjYWNoZVNlbGVjdGVkRWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCB7IHgsIHksIHdpZHRoLCBoZWlnaHQgfSA9IGdldFJlY3RhbmdsZUJ5RWxlbWVudHMoYm9hcmQsIGVsZW1lbnRzLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgaWYgKHdpZHRoID4gMCAmJiBoZWlnaHQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJvdWdoID0gUGxhaXRCb2FyZC5nZXRSb3VnaFNWRyhib2FyZCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk91dGVyRz8ucmVtb3ZlKCk7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbk91dGVyRyA9IHJvdWdoLnJlY3RhbmdsZSh4IC0gMiwgeSAtIDIsIHdpZHRoICsgNCwgaGVpZ2h0ICsgNCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlOiBTRUxFQ1RJT05fQk9SREVSX0NPTE9SLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsU3R5bGU6ICdzb2xpZCdcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIFBsYWl0Qm9hcmQuZ2V0SG9zdChib2FyZCkuYXBwZW5kKHNlbGVjdGlvbk91dGVyRyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVsZXRlVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgb25DaGFuZ2UoKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIGJvYXJkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQ6IFBsYWl0Qm9hcmQpIHtcbiAgICByZXR1cm4gQk9BUkRfVE9fVEVNUE9SQVJZX0VMRU1FTlRTLmdldChib2FyZCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkZWxldGVUZW1wb3JhcnlFbGVtZW50cyhib2FyZDogUGxhaXRCb2FyZCkge1xuICAgIEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUy5kZWxldGUoYm9hcmQpO1xufVxuIl19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -12,4 +12,5 @@ export * from './interfaces';
|
|
|
12
12
|
export * from './plait.module';
|
|
13
13
|
export * from './transforms';
|
|
14
14
|
export * from './utils';
|
|
15
|
-
|
|
15
|
+
export * from './plugins/with-selection';
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYWl0L3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGFBQWEsQ0FBQztBQUM1QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBwbGFpdFxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vYm9hcmQvYm9hcmQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29uc3RhbnRzJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9iYXNlL2RldGVjdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9lbGVtZW50L3BsdWdpbi1lbGVtZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9lbGVtZW50L2VsZW1lbnQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY29yZS9lbGVtZW50L2JlZm9yZS1jb250ZXh0LWNoYW5nZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUvdG9vbGJhci90b29sYmFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2ludGVyZmFjZXMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbGFpdC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90cmFuc2Zvcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wbHVnaW5zL3dpdGgtc2VsZWN0aW9uJztcbiJdfQ==
|
|
@@ -1,8 +1,16 @@
|
|
|
1
|
+
import { BOARD_TO_TEMPORARY_ELEMENTS } from '../utils/weak-maps';
|
|
1
2
|
export function setSelection(board, selection) {
|
|
2
3
|
const operation = { type: 'set_selection', properties: board.selection, newProperties: selection };
|
|
3
4
|
board.apply(operation);
|
|
4
5
|
}
|
|
5
6
|
export const SelectionTransforms = {
|
|
6
|
-
setSelection
|
|
7
|
+
setSelection,
|
|
8
|
+
setSelectionWithTemporaryElements
|
|
7
9
|
};
|
|
8
|
-
|
|
10
|
+
export function setSelectionWithTemporaryElements(board, elements) {
|
|
11
|
+
setTimeout(() => {
|
|
12
|
+
BOARD_TO_TEMPORARY_ELEMENTS.set(board, elements);
|
|
13
|
+
setSelection(board, { ranges: [] });
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3RyYW5zZm9ybXMvc2VsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR2pFLE1BQU0sVUFBVSxZQUFZLENBQUMsS0FBaUIsRUFBRSxTQUEyQjtJQUN2RSxNQUFNLFNBQVMsR0FBMEIsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsU0FBUyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsQ0FBQztJQUMxSCxLQUFLLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzNCLENBQUM7QUFPRCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBd0I7SUFDcEQsWUFBWTtJQUNaLGlDQUFpQztDQUNwQyxDQUFDO0FBR0YsTUFBTSxVQUFVLGlDQUFpQyxDQUFDLEtBQWlCLEVBQUUsUUFBd0I7SUFDekYsVUFBVSxDQUFDLEdBQUcsRUFBRTtRQUNaLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDakQsWUFBWSxDQUFDLEtBQUssRUFBRSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldFNlbGVjdGlvbk9wZXJhdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvb3BlcmF0aW9uJztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFNlbGVjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvc2VsZWN0aW9uJztcbmltcG9ydCB7IEJPQVJEX1RPX1RFTVBPUkFSWV9FTEVNRU5UUyB9IGZyb20gJy4uL3V0aWxzL3dlYWstbWFwcyc7XG5pbXBvcnQgeyBQbGFpdEVsZW1lbnQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2VsZW1lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0U2VsZWN0aW9uKGJvYXJkOiBQbGFpdEJvYXJkLCBzZWxlY3Rpb246IFNlbGVjdGlvbiB8IG51bGwpIHtcbiAgICBjb25zdCBvcGVyYXRpb246IFNldFNlbGVjdGlvbk9wZXJhdGlvbiA9IHsgdHlwZTogJ3NldF9zZWxlY3Rpb24nLCBwcm9wZXJ0aWVzOiBib2FyZC5zZWxlY3Rpb24sIG5ld1Byb3BlcnRpZXM6IHNlbGVjdGlvbiB9O1xuICAgIGJvYXJkLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0aW9uVHJhbnNmb3JtcyB7XG4gICAgc2V0U2VsZWN0aW9uOiAoYm9hcmQ6IFBsYWl0Qm9hcmQsIHNlbGVjdGlvbjogU2VsZWN0aW9uIHwgbnVsbCkgPT4gdm9pZDtcbiAgICBzZXRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHM6IChib2FyZDogUGxhaXRCb2FyZCwgZWxlbWVudHM6IFBsYWl0RWxlbWVudFtdKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgY29uc3QgU2VsZWN0aW9uVHJhbnNmb3JtczogU2VsZWN0aW9uVHJhbnNmb3JtcyA9IHtcbiAgICBzZXRTZWxlY3Rpb24sXG4gICAgc2V0U2VsZWN0aW9uV2l0aFRlbXBvcmFyeUVsZW1lbnRzXG59O1xuXG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTZWxlY3Rpb25XaXRoVGVtcG9yYXJ5RWxlbWVudHMoYm9hcmQ6IFBsYWl0Qm9hcmQsIGVsZW1lbnRzOiBQbGFpdEVsZW1lbnRbXSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMuc2V0KGJvYXJkLCBlbGVtZW50cyk7XG4gICAgICAgIHNldFNlbGVjdGlvbihib2FyZCwgeyByYW5nZXM6IFtdIH0pO1xuICAgIH0pO1xufSJdfQ==
|
|
@@ -8,4 +8,6 @@ export const BOARD_TO_HOST = new WeakMap();
|
|
|
8
8
|
export const BOARD_TO_ELEMENT_HOST = new WeakMap();
|
|
9
9
|
export const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
|
|
10
10
|
export const BOARD_TO_MOVING_POINT = new WeakMap();
|
|
11
|
-
|
|
11
|
+
// save no standard selected elements
|
|
12
|
+
export const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vhay1tYXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhaXQvc3JjL3V0aWxzL3dlYWstbWFwcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFpQyxJQUFJLE9BQU8sRUFBRSxDQUFDO0FBRXBFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLElBQUksT0FBTyxFQUF1QixDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUEwQixDQUFDO0FBRXhFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF1QyxDQUFDO0FBRXJGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxJQUFJLE9BQU8sRUFBNkIsQ0FBQztBQUV0RSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztBQUU1RSxNQUFNLENBQUMsTUFBTSx5QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBOEIsQ0FBQztBQUVuRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBcUIsQ0FBQztBQUV0RSxxQ0FBcUM7QUFDckMsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3VnaFNWRyB9IGZyb20gJ3JvdWdoanMvYmluL3N2Zyc7XG5pbXBvcnQgeyBCb2FyZENvbXBvbmVudEludGVyZmFjZSB9IGZyb20gJy4uL2JvYXJkL2JvYXJkLmNvbXBvbmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGxhaXRFbGVtZW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9lbGVtZW50JztcbmltcG9ydCB7IFBsYWl0Qm9hcmQgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2JvYXJkJztcbmltcG9ydCB7IFBvaW50IH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9wb2ludCc7XG5cbi8vIHJlY29yZCByaWNodGV4dCB0eXBlIHN0YXR1c1xuZXhwb3J0IGNvbnN0IEZMVVNISU5HOiBXZWFrTWFwPFBsYWl0Qm9hcmQsIGJvb2xlYW4+ID0gbmV3IFdlYWtNYXAoKTtcblxuZXhwb3J0IGNvbnN0IElTX1RFWFRfRURJVEFCTEUgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBib29sZWFuPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fT05fQ0hBTkdFID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgKCkgPT4gdm9pZD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0NPTVBPTkVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIEJvYXJkQ29tcG9uZW50SW50ZXJmYWNlPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fUk9VR0hfU1ZHID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUm91Z2hTVkc+KCk7XG5cbmV4cG9ydCBjb25zdCBCT0FSRF9UT19IT1NUID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgU1ZHU1ZHRWxlbWVudD4oKTtcblxuZXhwb3J0IGNvbnN0IEJPQVJEX1RPX0VMRU1FTlRfSE9TVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFNWR0dFbGVtZW50PigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fU0VMRUNURURfRUxFTUVOVCA9IG5ldyBXZWFrTWFwPFBsYWl0Qm9hcmQsIFBsYWl0RWxlbWVudFtdPigpO1xuXG5leHBvcnQgY29uc3QgQk9BUkRfVE9fTU9WSU5HX1BPSU5UID0gbmV3IFdlYWtNYXA8UGxhaXRCb2FyZCwgUG9pbnQ+KCk7XG5cbi8vIHNhdmUgbm8gc3RhbmRhcmQgc2VsZWN0ZWQgZWxlbWVudHNcbmV4cG9ydCBjb25zdCBCT0FSRF9UT19URU1QT1JBUllfRUxFTUVOVFMgPSBuZXcgV2Vha01hcDxQbGFpdEJvYXJkLCBQbGFpdEVsZW1lbnRbXT4oKTtcbiJdfQ==
|
package/fesm2015/plait-core.mjs
CHANGED
|
@@ -356,13 +356,33 @@ const NodeTransforms = {
|
|
|
356
356
|
moveNode
|
|
357
357
|
};
|
|
358
358
|
|
|
359
|
+
// record richtext type status
|
|
360
|
+
const FLUSHING = new WeakMap();
|
|
361
|
+
const IS_TEXT_EDITABLE = new WeakMap();
|
|
362
|
+
const BOARD_TO_ON_CHANGE = new WeakMap();
|
|
363
|
+
const BOARD_TO_COMPONENT = new WeakMap();
|
|
364
|
+
const BOARD_TO_ROUGH_SVG = new WeakMap();
|
|
365
|
+
const BOARD_TO_HOST = new WeakMap();
|
|
366
|
+
const BOARD_TO_ELEMENT_HOST = new WeakMap();
|
|
367
|
+
const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
|
|
368
|
+
const BOARD_TO_MOVING_POINT = new WeakMap();
|
|
369
|
+
// save no standard selected elements
|
|
370
|
+
const BOARD_TO_TEMPORARY_ELEMENTS = new WeakMap();
|
|
371
|
+
|
|
359
372
|
function setSelection(board, selection) {
|
|
360
373
|
const operation = { type: 'set_selection', properties: board.selection, newProperties: selection };
|
|
361
374
|
board.apply(operation);
|
|
362
375
|
}
|
|
363
376
|
const SelectionTransforms = {
|
|
364
|
-
setSelection
|
|
377
|
+
setSelection,
|
|
378
|
+
setSelectionWithTemporaryElements
|
|
365
379
|
};
|
|
380
|
+
function setSelectionWithTemporaryElements(board, elements) {
|
|
381
|
+
setTimeout(() => {
|
|
382
|
+
BOARD_TO_TEMPORARY_ELEMENTS.set(board, elements);
|
|
383
|
+
setSelection(board, { ranges: [] });
|
|
384
|
+
});
|
|
385
|
+
}
|
|
366
386
|
|
|
367
387
|
function setViewport(board, viewport) {
|
|
368
388
|
const operation = { type: 'set_viewport', properties: board.viewport, newProperties: viewport };
|
|
@@ -372,17 +392,6 @@ const ViewportTransforms = {
|
|
|
372
392
|
setViewport
|
|
373
393
|
};
|
|
374
394
|
|
|
375
|
-
// record richtext type status
|
|
376
|
-
const FLUSHING = new WeakMap();
|
|
377
|
-
const IS_TEXT_EDITABLE = new WeakMap();
|
|
378
|
-
const BOARD_TO_ON_CHANGE = new WeakMap();
|
|
379
|
-
const BOARD_TO_COMPONENT = new WeakMap();
|
|
380
|
-
const BOARD_TO_ROUGH_SVG = new WeakMap();
|
|
381
|
-
const BOARD_TO_HOST = new WeakMap();
|
|
382
|
-
const BOARD_TO_ELEMENT_HOST = new WeakMap();
|
|
383
|
-
const BOARD_TO_SELECTED_ELEMENT = new WeakMap();
|
|
384
|
-
const BOARD_TO_MOVING_POINT = new WeakMap();
|
|
385
|
-
|
|
386
395
|
function depthFirstRecursion(node, callback) {
|
|
387
396
|
var _a;
|
|
388
397
|
(_a = node.children) === null || _a === void 0 ? void 0 : _a.forEach(child => {
|
|
@@ -1332,8 +1341,8 @@ function withSelection(board) {
|
|
|
1332
1341
|
const { x, y, width, height } = RectangleClient.toRectangleClient([start, movedTarget]);
|
|
1333
1342
|
if (Math.hypot(width, height) > 5) {
|
|
1334
1343
|
end = movedTarget;
|
|
1335
|
-
if (
|
|
1336
|
-
Transforms.setSelection(board, { ranges: [{ anchor: start, focus:
|
|
1344
|
+
if (end) {
|
|
1345
|
+
Transforms.setSelection(board, { ranges: [{ anchor: start, focus: end }] });
|
|
1337
1346
|
}
|
|
1338
1347
|
PlaitBoard.getBoardNativeElement(board).classList.add('selection-moving');
|
|
1339
1348
|
selectionMovingG === null || selectionMovingG === void 0 ? void 0 : selectionMovingG.remove();
|
|
@@ -1362,11 +1371,13 @@ function withSelection(board) {
|
|
|
1362
1371
|
// calc selected elements entry
|
|
1363
1372
|
try {
|
|
1364
1373
|
if (board.operations.find(value => value.type === 'set_selection')) {
|
|
1365
|
-
const
|
|
1366
|
-
|
|
1367
|
-
|
|
1374
|
+
const temporaryElements = getTemporaryElements(board);
|
|
1375
|
+
const elements = temporaryElements ? temporaryElements : calcElementIntersectionSelection(board);
|
|
1376
|
+
cacheSelectedElements(board, elements);
|
|
1377
|
+
const { x, y, width, height } = getRectangleByElements(board, elements, false);
|
|
1368
1378
|
if (width > 0 && height > 0) {
|
|
1369
1379
|
const rough = PlaitBoard.getRoughSVG(board);
|
|
1380
|
+
selectionOuterG === null || selectionOuterG === void 0 ? void 0 : selectionOuterG.remove();
|
|
1370
1381
|
selectionOuterG = rough.rectangle(x - 2, y - 2, width + 4, height + 4, {
|
|
1371
1382
|
stroke: SELECTION_BORDER_COLOR,
|
|
1372
1383
|
strokeWidth: 1,
|
|
@@ -1375,6 +1386,7 @@ function withSelection(board) {
|
|
|
1375
1386
|
PlaitBoard.getHost(board).append(selectionOuterG);
|
|
1376
1387
|
}
|
|
1377
1388
|
}
|
|
1389
|
+
deleteTemporaryElements(board);
|
|
1378
1390
|
}
|
|
1379
1391
|
catch (error) {
|
|
1380
1392
|
console.error(error);
|
|
@@ -1383,6 +1395,12 @@ function withSelection(board) {
|
|
|
1383
1395
|
};
|
|
1384
1396
|
return board;
|
|
1385
1397
|
}
|
|
1398
|
+
function getTemporaryElements(board) {
|
|
1399
|
+
return BOARD_TO_TEMPORARY_ELEMENTS.get(board);
|
|
1400
|
+
}
|
|
1401
|
+
function deleteTemporaryElements(board) {
|
|
1402
|
+
BOARD_TO_TEMPORARY_ELEMENTS.delete(board);
|
|
1403
|
+
}
|
|
1386
1404
|
|
|
1387
1405
|
class PlaitElementComponent {
|
|
1388
1406
|
constructor(renderer2, viewContainerRef) {
|
|
@@ -2123,5 +2141,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
|
|
|
2123
2141
|
* Generated bundle index. Do not edit.
|
|
2124
2142
|
*/
|
|
2125
2143
|
|
|
2126
|
-
export { BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_MOVING_POINT, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BoardTransforms, CLIP_BOARD_FORMAT_KEY, ELEMENT_TO_PLUGIN_COMPONENT, FLUSHING, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_SAFARI, IS_TEXT_EDITABLE, MAX_RADIUS, MERGING, NS, Path, PlaitBoard, PlaitBoardComponent, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPointerType, PlaitToolbarComponent, RectangleClient, SAVING, SCROLL_BAR_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, Selection, Transforms, Viewport, addSelectedElement, arrowPoints, cacheSelectedElements, calcElementIntersectionSelection, clampZoomLevel, convertToViewportCoordinates, createG, createSVG, createText, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, drawArrow, drawRoundRectangle, getBoardClientBox, getBoardRectangle, getRectangleByElements, getRootGroupBBox, getSelectedElements, getViewportContainerBox, hasBeforeContextChange, hotkeys, idCreator, inverse, invertMatrix, invertViewportCoordinates, isNoSelectionElement, isNullOrUndefined, isSelectedElement, isSetViewportOperation, normalizePoint, removeSelectedElement, rotate, shouldClear, shouldMerge, shouldSave, toPoint, transformMat3, transformPoint, transformPoints };
|
|
2144
|
+
export { BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_MOVING_POINT, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BoardTransforms, CLIP_BOARD_FORMAT_KEY, ELEMENT_TO_PLUGIN_COMPONENT, FLUSHING, IS_APPLE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_SAFARI, IS_TEXT_EDITABLE, MAX_RADIUS, MERGING, NS, Path, PlaitBoard, PlaitBoardComponent, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitModule, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPointerType, PlaitToolbarComponent, RectangleClient, SAVING, SCROLL_BAR_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, Selection, Transforms, Viewport, addSelectedElement, arrowPoints, cacheSelectedElements, calcElementIntersectionSelection, clampZoomLevel, convertToViewportCoordinates, createG, createSVG, createText, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, drawArrow, drawRoundRectangle, getBoardClientBox, getBoardRectangle, getRectangleByElements, getRootGroupBBox, getSelectedElements, getTemporaryElements, getViewportContainerBox, hasBeforeContextChange, hotkeys, idCreator, inverse, invertMatrix, invertViewportCoordinates, isNoSelectionElement, isNullOrUndefined, isSelectedElement, isSetViewportOperation, normalizePoint, removeSelectedElement, rotate, shouldClear, shouldMerge, shouldSave, toPoint, transformMat3, transformPoint, transformPoints, withSelection };
|
|
2127
2145
|
//# sourceMappingURL=plait-core.mjs.map
|