@plait/core 0.39.0 → 0.40.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/board/board.component.d.ts +2 -2
- package/esm2022/board/board.component.mjs +6 -4
- package/esm2022/interfaces/board.mjs +1 -1
- package/esm2022/interfaces/rectangle-client.mjs +3 -3
- package/esm2022/plugins/create-board.mjs +4 -2
- package/esm2022/plugins/with-board.mjs +10 -3
- package/esm2022/plugins/with-selection.mjs +55 -48
- package/esm2022/utils/common.mjs +4 -2
- package/esm2022/utils/dom/common.mjs +21 -3
- package/esm2022/utils/math.mjs +4 -2
- package/esm2022/utils/to-image.mjs +6 -6
- package/esm2022/utils/viewport.mjs +14 -7
- package/esm2022/utils/weak-maps.mjs +2 -1
- package/fesm2022/plait-core.mjs +116 -69
- package/fesm2022/plait-core.mjs.map +1 -1
- package/interfaces/board.d.ts +1 -0
- package/package.json +1 -1
- package/plugins/with-selection.d.ts +2 -0
- package/utils/dom/common.d.ts +15 -2
- package/utils/math.d.ts +1 -1
- package/utils/viewport.d.ts +1 -0
- package/utils/weak-maps.d.ts +1 -0
package/fesm2022/plait-core.mjs
CHANGED
|
@@ -14,6 +14,7 @@ const NODE_TO_INDEX = new WeakMap();
|
|
|
14
14
|
const NODE_TO_PARENT = new WeakMap();
|
|
15
15
|
const IS_TEXT_EDITABLE = new WeakMap();
|
|
16
16
|
const BOARD_TO_ON_CHANGE = new WeakMap();
|
|
17
|
+
const BOARD_TO_AFTER_CHANGE = new WeakMap();
|
|
17
18
|
const BOARD_TO_COMPONENT = new WeakMap();
|
|
18
19
|
const BOARD_TO_ROUGH_SVG = new WeakMap();
|
|
19
20
|
const BOARD_TO_HOST = new WeakMap();
|
|
@@ -325,10 +326,27 @@ const POINTER_BUTTON = {
|
|
|
325
326
|
const PRESS_AND_MOVE_BUFFER = 3;
|
|
326
327
|
|
|
327
328
|
const NS = 'http://www.w3.org/2000/svg';
|
|
328
|
-
|
|
329
|
-
|
|
329
|
+
/**
|
|
330
|
+
* Get the screen coordinates starting from the upper left corner of the svg element (based on the svg screen coordinate system)
|
|
331
|
+
* @param x screen x
|
|
332
|
+
* @param y screen x
|
|
333
|
+
* @returns
|
|
334
|
+
*/
|
|
335
|
+
function toPoint(x, y, svg) {
|
|
336
|
+
const rect = svg.getBoundingClientRect();
|
|
330
337
|
return [x - rect.x, y - rect.y];
|
|
331
338
|
}
|
|
339
|
+
/**
|
|
340
|
+
* `toPoint` reverse processing
|
|
341
|
+
* Get the screen coordinate starting from the upper left corner of the browser window (based on the screen coordinate system)
|
|
342
|
+
* @param point screen coordinates based on the upper left corner of the svg
|
|
343
|
+
* @returns
|
|
344
|
+
*/
|
|
345
|
+
function toScreenPoint(board, point) {
|
|
346
|
+
const host = PlaitBoard.getHost(board);
|
|
347
|
+
const rect = host.getBoundingClientRect();
|
|
348
|
+
return [point[0] + rect.x, point[1] + rect.y];
|
|
349
|
+
}
|
|
332
350
|
function createG() {
|
|
333
351
|
const newG = document.createElementNS(NS, 'g');
|
|
334
352
|
return newG;
|
|
@@ -568,8 +586,8 @@ const RectangleClient = {
|
|
|
568
586
|
};
|
|
569
587
|
},
|
|
570
588
|
getGapCenter(rectangle1, rectangle2, isHorizontal) {
|
|
571
|
-
const axis = isHorizontal ? '
|
|
572
|
-
const side = isHorizontal ? '
|
|
589
|
+
const axis = isHorizontal ? 'x' : 'y';
|
|
590
|
+
const side = isHorizontal ? 'width' : 'height';
|
|
573
591
|
const align = [rectangle1[axis], rectangle1[axis] + rectangle1[side], rectangle2[axis], rectangle2[axis] + rectangle2[side]];
|
|
574
592
|
const sortArr = align.sort((a, b) => a - b);
|
|
575
593
|
return (sortArr[1] + sortArr[2]) / 2;
|
|
@@ -651,12 +669,14 @@ function distanceBetweenPointAndSegments(points, point) {
|
|
|
651
669
|
}
|
|
652
670
|
return distance;
|
|
653
671
|
}
|
|
654
|
-
function getNearestPointBetweenPointAndSegments(point, points) {
|
|
672
|
+
function getNearestPointBetweenPointAndSegments(point, points, isClose = true) {
|
|
655
673
|
const len = points.length;
|
|
656
674
|
let distance = Infinity;
|
|
657
675
|
let result = point;
|
|
658
676
|
for (let i = 0; i < len; i++) {
|
|
659
677
|
const p = points[i];
|
|
678
|
+
if (i === len - 1 && !isClose)
|
|
679
|
+
continue;
|
|
660
680
|
const p2 = i === len - 1 ? points[0] : points[i + 1];
|
|
661
681
|
const currentDistance = distanceBetweenPointAndSegment(point[0], point[1], p[0], p[1], p2[0], p2[1]);
|
|
662
682
|
if (currentDistance < distance) {
|
|
@@ -1303,6 +1323,13 @@ const BoardTransforms = {
|
|
|
1303
1323
|
|
|
1304
1324
|
const IS_FROM_SCROLLING = new WeakMap();
|
|
1305
1325
|
const IS_FROM_VIEWPORT_CHANGE = new WeakMap();
|
|
1326
|
+
function toSVGScreenPoint(board, point) {
|
|
1327
|
+
const { zoom } = board.viewport;
|
|
1328
|
+
const viewBox = getViewBox(board, zoom);
|
|
1329
|
+
const x = (point[0] - viewBox[0]) * zoom;
|
|
1330
|
+
const y = (point[1] - viewBox[1]) * zoom;
|
|
1331
|
+
return [x, y];
|
|
1332
|
+
}
|
|
1306
1333
|
function getViewportContainerRect(board) {
|
|
1307
1334
|
const { hideScrollbar } = board.options;
|
|
1308
1335
|
const scrollBarWidth = hideScrollbar ? SCROLL_BAR_WIDTH : 0;
|
|
@@ -1390,17 +1417,17 @@ function updateViewportOffset(board) {
|
|
|
1390
1417
|
if (!origination) {
|
|
1391
1418
|
return;
|
|
1392
1419
|
}
|
|
1393
|
-
const
|
|
1394
|
-
const viewBox = getViewBox(board, zoom);
|
|
1395
|
-
const scrollLeft = (origination[0] - viewBox[0]) * zoom;
|
|
1396
|
-
const scrollTop = (origination[1] - viewBox[1]) * zoom;
|
|
1420
|
+
const [scrollLeft, scrollTop] = toSVGScreenPoint(board, origination);
|
|
1397
1421
|
updateViewportContainerScroll(board, scrollLeft, scrollTop);
|
|
1398
1422
|
}
|
|
1399
1423
|
function updateViewportContainerScroll(board, left, top, isFromViewportChange = true) {
|
|
1400
1424
|
const viewportContainer = PlaitBoard.getViewportContainer(board);
|
|
1401
1425
|
const previousScrollLeft = viewportContainer.scrollLeft;
|
|
1402
1426
|
const previousScrollTop = viewportContainer.scrollTop;
|
|
1403
|
-
|
|
1427
|
+
// scrollTop assign 11.8 will get 11.5 in chrome
|
|
1428
|
+
// scrollTop assign 11.8 will get 11 in firefox, safari
|
|
1429
|
+
// scrollTop assign 11.4 will get 11 in chrome, firefox, safari
|
|
1430
|
+
if (viewportContainer.scrollLeft !== Math.floor(left) || viewportContainer.scrollTop !== Math.floor(top)) {
|
|
1404
1431
|
viewportContainer.scrollLeft = left;
|
|
1405
1432
|
viewportContainer.scrollTop = top;
|
|
1406
1433
|
const offsetWidth = viewportContainer.offsetWidth;
|
|
@@ -1424,7 +1451,7 @@ function updateViewportByScrolling(board, scrollLeft, scrollTop) {
|
|
|
1424
1451
|
const zoom = board.viewport.zoom;
|
|
1425
1452
|
const viewBox = getViewBox(board, zoom);
|
|
1426
1453
|
const origination = [scrollLeft / zoom + viewBox[0], scrollTop / zoom + viewBox[1]];
|
|
1427
|
-
if (Point.isEquals(origination, board
|
|
1454
|
+
if (Point.isEquals(origination, getViewportOrigination(board))) {
|
|
1428
1455
|
return;
|
|
1429
1456
|
}
|
|
1430
1457
|
BoardTransforms.updateViewport(board, origination);
|
|
@@ -1509,7 +1536,9 @@ const debounce = (func, wait, options) => {
|
|
|
1509
1536
|
}
|
|
1510
1537
|
else {
|
|
1511
1538
|
if (options?.leading) {
|
|
1512
|
-
|
|
1539
|
+
timer(0).subscribe(() => {
|
|
1540
|
+
func();
|
|
1541
|
+
});
|
|
1513
1542
|
}
|
|
1514
1543
|
timerSubscription = timer(wait).subscribe();
|
|
1515
1544
|
}
|
|
@@ -1551,7 +1580,7 @@ function isElementNode(node) {
|
|
|
1551
1580
|
function loadImage(src) {
|
|
1552
1581
|
return new Promise((resolve, reject) => {
|
|
1553
1582
|
const img = new Image();
|
|
1554
|
-
img.crossOrigin = '
|
|
1583
|
+
img.crossOrigin = 'Anonymous';
|
|
1555
1584
|
img.onload = () => resolve(img);
|
|
1556
1585
|
img.onerror = () => reject(new Error('Failed to load image'));
|
|
1557
1586
|
img.src = src;
|
|
@@ -1666,7 +1695,7 @@ async function batchConvertImage(sourceNode, cloneNode) {
|
|
|
1666
1695
|
* @param options parameter configuration
|
|
1667
1696
|
* @returns clone svg element
|
|
1668
1697
|
*/
|
|
1669
|
-
function cloneSvg(board, elements, rectangle, options) {
|
|
1698
|
+
async function cloneSvg(board, elements, rectangle, options) {
|
|
1670
1699
|
const { width, height, x, y } = rectangle;
|
|
1671
1700
|
const { padding = 4, inlineStyleClassNames } = options;
|
|
1672
1701
|
const sourceSvg = PlaitBoard.getHost(board);
|
|
@@ -1679,12 +1708,12 @@ function cloneSvg(board, elements, rectangle, options) {
|
|
|
1679
1708
|
cloneSvgElement.setAttribute('width', `${width}`);
|
|
1680
1709
|
cloneSvgElement.setAttribute('height', `${height}`);
|
|
1681
1710
|
cloneSvgElement.setAttribute('viewBox', [x - padding, y - padding, width + 2 * padding, height + 2 * padding].join(','));
|
|
1682
|
-
selectedGElements.
|
|
1711
|
+
await Promise.all(selectedGElements.map(async (child, i) => {
|
|
1683
1712
|
const cloneChild = child.cloneNode(true);
|
|
1684
1713
|
batchCloneCSSStyle(child, cloneChild, inlineStyleClassNames);
|
|
1685
|
-
batchConvertImage(child, cloneChild);
|
|
1714
|
+
await batchConvertImage(child, cloneChild);
|
|
1686
1715
|
newHostElement.appendChild(cloneChild);
|
|
1687
|
-
});
|
|
1716
|
+
}));
|
|
1688
1717
|
cloneSvgElement.appendChild(newHostElement);
|
|
1689
1718
|
return cloneSvgElement;
|
|
1690
1719
|
}
|
|
@@ -2557,7 +2586,7 @@ const NodeTransforms = {
|
|
|
2557
2586
|
};
|
|
2558
2587
|
|
|
2559
2588
|
function withSelection(board) {
|
|
2560
|
-
const { pointerDown, globalPointerMove, globalPointerUp, onChange,
|
|
2589
|
+
const { pointerDown, globalPointerMove, globalPointerUp, keyup, onChange, afterChange } = board;
|
|
2561
2590
|
let start = null;
|
|
2562
2591
|
let end = null;
|
|
2563
2592
|
let selectionMovingG;
|
|
@@ -2656,10 +2685,6 @@ function withSelection(board) {
|
|
|
2656
2685
|
globalPointerUp(event);
|
|
2657
2686
|
};
|
|
2658
2687
|
board.onChange = () => {
|
|
2659
|
-
if (PlaitBoard.isReadonly(board)) {
|
|
2660
|
-
onChange();
|
|
2661
|
-
return;
|
|
2662
|
-
}
|
|
2663
2688
|
const options = board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
2664
2689
|
if (options.isDisabledSelect) {
|
|
2665
2690
|
clearSelectedElement(board);
|
|
@@ -2670,59 +2695,63 @@ function withSelection(board) {
|
|
|
2670
2695
|
removeSelectedElement(board, op.node);
|
|
2671
2696
|
}
|
|
2672
2697
|
});
|
|
2673
|
-
|
|
2674
|
-
if (board.pointer !== PlaitPointerType.hand && !options.isDisabledSelect) {
|
|
2675
|
-
const isSetSelection = board.operations.find(value => value.type === 'set_selection');
|
|
2698
|
+
if (isHandleSelection(board) && isSetSelectionOperation(board)) {
|
|
2676
2699
|
try {
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
elements = [elements[0]];
|
|
2683
|
-
}
|
|
2684
|
-
if (isShift && board.selection && Selection.isCollapsed(board.selection)) {
|
|
2685
|
-
const newSelectedElements = [...getSelectedElements(board)];
|
|
2686
|
-
elements.forEach(element => {
|
|
2687
|
-
if (newSelectedElements.includes(element)) {
|
|
2688
|
-
newSelectedElements.splice(newSelectedElements.indexOf(element), 1);
|
|
2689
|
-
}
|
|
2690
|
-
else {
|
|
2691
|
-
newSelectedElements.push(element);
|
|
2692
|
-
}
|
|
2693
|
-
});
|
|
2694
|
-
cacheSelectedElements(board, newSelectedElements);
|
|
2695
|
-
}
|
|
2696
|
-
else {
|
|
2697
|
-
cacheSelectedElements(board, elements);
|
|
2698
|
-
}
|
|
2699
|
-
const newElements = getSelectedElements(board);
|
|
2700
|
-
previousSelectedElements = newElements;
|
|
2701
|
-
deleteTemporaryElements(board);
|
|
2702
|
-
if (!isSelectionMoving(board) && newElements.length > 1) {
|
|
2703
|
-
selectionRectangleG = createSelectionRectangleG(board);
|
|
2704
|
-
}
|
|
2700
|
+
selectionRectangleG?.remove();
|
|
2701
|
+
const temporaryElements = getTemporaryElements(board);
|
|
2702
|
+
let elements = temporaryElements ? temporaryElements : getHitElementsBySelection(board);
|
|
2703
|
+
if (!options.isMultiple && elements.length > 1) {
|
|
2704
|
+
elements = [elements[0]];
|
|
2705
2705
|
}
|
|
2706
|
-
|
|
2707
|
-
const
|
|
2708
|
-
|
|
2709
|
-
if (
|
|
2710
|
-
|
|
2711
|
-
selectionRectangleG?.remove();
|
|
2712
|
-
selectionRectangleG = createSelectionRectangleG(board);
|
|
2713
|
-
previousSelectedElements = currentSelectedElements;
|
|
2706
|
+
if (isShift && board.selection && Selection.isCollapsed(board.selection)) {
|
|
2707
|
+
const newSelectedElements = [...getSelectedElements(board)];
|
|
2708
|
+
elements.forEach(element => {
|
|
2709
|
+
if (newSelectedElements.includes(element)) {
|
|
2710
|
+
newSelectedElements.splice(newSelectedElements.indexOf(element), 1);
|
|
2714
2711
|
}
|
|
2715
|
-
|
|
2716
|
-
|
|
2712
|
+
else {
|
|
2713
|
+
newSelectedElements.push(element);
|
|
2714
|
+
}
|
|
2715
|
+
});
|
|
2716
|
+
cacheSelectedElements(board, newSelectedElements);
|
|
2717
|
+
}
|
|
2718
|
+
else {
|
|
2719
|
+
cacheSelectedElements(board, elements);
|
|
2720
|
+
}
|
|
2721
|
+
const newElements = getSelectedElements(board);
|
|
2722
|
+
previousSelectedElements = newElements;
|
|
2723
|
+
deleteTemporaryElements(board);
|
|
2724
|
+
if (!isSelectionMoving(board) && newElements.length > 1) {
|
|
2725
|
+
selectionRectangleG = createSelectionRectangleG(board);
|
|
2726
|
+
}
|
|
2727
|
+
}
|
|
2728
|
+
catch (error) {
|
|
2729
|
+
console.error(error);
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
onChange();
|
|
2733
|
+
};
|
|
2734
|
+
board.afterChange = () => {
|
|
2735
|
+
if (isHandleSelection(board) && !isSetSelectionOperation(board)) {
|
|
2736
|
+
try {
|
|
2737
|
+
const currentSelectedElements = getSelectedElements(board);
|
|
2738
|
+
if (currentSelectedElements.length && currentSelectedElements.length > 1) {
|
|
2739
|
+
if (currentSelectedElements.length !== previousSelectedElements.length ||
|
|
2740
|
+
currentSelectedElements.some((c, index) => c !== previousSelectedElements[index])) {
|
|
2717
2741
|
selectionRectangleG?.remove();
|
|
2742
|
+
selectionRectangleG = createSelectionRectangleG(board);
|
|
2743
|
+
previousSelectedElements = currentSelectedElements;
|
|
2718
2744
|
}
|
|
2719
2745
|
}
|
|
2746
|
+
else {
|
|
2747
|
+
selectionRectangleG?.remove();
|
|
2748
|
+
}
|
|
2720
2749
|
}
|
|
2721
2750
|
catch (error) {
|
|
2722
2751
|
console.error(error);
|
|
2723
2752
|
}
|
|
2724
2753
|
}
|
|
2725
|
-
|
|
2754
|
+
afterChange();
|
|
2726
2755
|
};
|
|
2727
2756
|
board.setPluginOptions(PlaitPluginKey.withSelection, {
|
|
2728
2757
|
isMultiple: true,
|
|
@@ -2730,6 +2759,13 @@ function withSelection(board) {
|
|
|
2730
2759
|
});
|
|
2731
2760
|
return board;
|
|
2732
2761
|
}
|
|
2762
|
+
function isHandleSelection(board) {
|
|
2763
|
+
const options = board.getPluginOptions(PlaitPluginKey.withSelection);
|
|
2764
|
+
return board.pointer !== PlaitPointerType.hand && !options.isDisabledSelect && !PlaitBoard.isReadonly(board);
|
|
2765
|
+
}
|
|
2766
|
+
function isSetSelectionOperation(board) {
|
|
2767
|
+
return !!board.operations.find(value => value.type === 'set_selection');
|
|
2768
|
+
}
|
|
2733
2769
|
function getTemporaryElements(board) {
|
|
2734
2770
|
const ref = BOARD_TO_TEMPORARY_ELEMENTS.get(board);
|
|
2735
2771
|
if (ref) {
|
|
@@ -2868,6 +2904,7 @@ function createBoard(children, options) {
|
|
|
2868
2904
|
Promise.resolve().then(() => {
|
|
2869
2905
|
FLUSHING.set(board, false);
|
|
2870
2906
|
board.onChange();
|
|
2907
|
+
board.afterChange();
|
|
2871
2908
|
board.operations = [];
|
|
2872
2909
|
});
|
|
2873
2910
|
}
|
|
@@ -2898,6 +2935,7 @@ function createBoard(children, options) {
|
|
|
2898
2935
|
return refs;
|
|
2899
2936
|
},
|
|
2900
2937
|
onChange: () => { },
|
|
2938
|
+
afterChange: () => { },
|
|
2901
2939
|
mousedown: (event) => { },
|
|
2902
2940
|
mousemove: (event) => { },
|
|
2903
2941
|
mouseleave: (event) => { },
|
|
@@ -2934,13 +2972,13 @@ function createBoard(children, options) {
|
|
|
2934
2972
|
pointerLeave: pointer => { },
|
|
2935
2973
|
globalPointerMove: pointer => { },
|
|
2936
2974
|
globalPointerUp: pointer => { },
|
|
2937
|
-
isImageBindingAllowed: (element) => false
|
|
2975
|
+
isImageBindingAllowed: (element) => false
|
|
2938
2976
|
};
|
|
2939
2977
|
return board;
|
|
2940
2978
|
}
|
|
2941
2979
|
|
|
2942
2980
|
function withBoard(board) {
|
|
2943
|
-
const { onChange } = board;
|
|
2981
|
+
const { onChange, afterChange } = board;
|
|
2944
2982
|
board.onChange = () => {
|
|
2945
2983
|
const onContextChange = BOARD_TO_ON_CHANGE.get(board);
|
|
2946
2984
|
if (onContextChange) {
|
|
@@ -2948,6 +2986,13 @@ function withBoard(board) {
|
|
|
2948
2986
|
}
|
|
2949
2987
|
onChange();
|
|
2950
2988
|
};
|
|
2989
|
+
board.afterChange = () => {
|
|
2990
|
+
const afterContextChange = BOARD_TO_AFTER_CHANGE.get(board);
|
|
2991
|
+
if (afterContextChange) {
|
|
2992
|
+
afterContextChange();
|
|
2993
|
+
}
|
|
2994
|
+
afterChange();
|
|
2995
|
+
};
|
|
2951
2996
|
return board;
|
|
2952
2997
|
}
|
|
2953
2998
|
|
|
@@ -3996,8 +4041,10 @@ class PlaitBoardComponent {
|
|
|
3996
4041
|
activeHost: elementActiveHost
|
|
3997
4042
|
});
|
|
3998
4043
|
BOARD_TO_ON_CHANGE.set(this.board, () => {
|
|
4044
|
+
this.update();
|
|
4045
|
+
});
|
|
4046
|
+
BOARD_TO_AFTER_CHANGE.set(this.board, () => {
|
|
3999
4047
|
this.ngZone.run(() => {
|
|
4000
|
-
this.detect();
|
|
4001
4048
|
const changeEvent = {
|
|
4002
4049
|
children: this.board.children,
|
|
4003
4050
|
operations: this.board.operations,
|
|
@@ -4014,7 +4061,7 @@ class PlaitBoardComponent {
|
|
|
4014
4061
|
ngAfterContentInit() {
|
|
4015
4062
|
this.initializeIslands();
|
|
4016
4063
|
}
|
|
4017
|
-
|
|
4064
|
+
update() {
|
|
4018
4065
|
this.effect = {};
|
|
4019
4066
|
this.cdr.detectChanges();
|
|
4020
4067
|
}
|
|
@@ -4484,5 +4531,5 @@ function createModModifierKeys() {
|
|
|
4484
4531
|
* Generated bundle index. Do not edit.
|
|
4485
4532
|
*/
|
|
4486
4533
|
|
|
4487
|
-
export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, RgbaToHEX, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, catmullRomFitting, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downScale, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getTextFromClipboard, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isInPlaitBoard, isLineHitLine, isMainPointer, isMovingElements, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setClipboardDataByMedia, setClipboardDataByText, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, temporaryDisableSelection, throttleRAF, toImage, toPoint, transformPoint, transformPoints, updateForeignObject, updateForeignObjectWidth, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
4534
|
+
export { A, ACTIVE_MOVING_CLASS_NAME, ACTIVE_STROKE_WIDTH, ALT, APOSTROPHE, ATTACHED_ELEMENT_CLASS_NAME, AT_SIGN, B, BACKSLASH, BACKSPACE, BOARD_TO_AFTER_CHANGE, BOARD_TO_COMPONENT, BOARD_TO_ELEMENT_HOST, BOARD_TO_HOST, BOARD_TO_IS_SELECTION_MOVING, BOARD_TO_MOVING_ELEMENT, BOARD_TO_MOVING_POINT, BOARD_TO_MOVING_POINT_IN_BOARD, BOARD_TO_ON_CHANGE, BOARD_TO_ROUGH_SVG, BOARD_TO_SELECTED_ELEMENT, BOARD_TO_TEMPORARY_ELEMENTS, BOARD_TO_TOUCH_REF, BOARD_TO_VIEWPORT_ORIGINATION, BoardTransforms, C, CAPS_LOCK, CLIP_BOARD_FORMAT_KEY, CLOSE_SQUARE_BRACKET, COMMA, CONTEXT_MENU, CONTROL, ColorfulThemeColor, CoreTransforms, CursorClass, D, DASH, DELETE, DOWN_ARROW, DarkThemeColor, DefaultThemeColor, Direction, E, EIGHT, ELEMENT_TO_COMPONENT, END, ENTER, EQUALS, ESCAPE, F, F1, F10, F11, F12, F2, F3, F4, F5, F6, F7, F8, F9, FF_EQUALS, FF_MINUS, FF_MUTE, FF_SEMICOLON, FF_VOLUME_DOWN, FF_VOLUME_UP, FIRST_MEDIA, FIVE, FLUSHING, FOUR, G, H, HOME, HOST_CLASS_NAME, I, INSERT, IS_APPLE, IS_BOARD_CACHE, IS_CHROME, IS_CHROME_LEGACY, IS_EDGE_LEGACY, IS_FIREFOX, IS_IOS, IS_MAC, IS_SAFARI, IS_TEXT_EDITABLE, J, K, L, LAST_MEDIA, LEFT_ARROW, M, MAC_ENTER, MAC_META, MAC_WK_CMD_LEFT, MAC_WK_CMD_RIGHT, MAX_RADIUS, MERGING, META, MUTE, N, NINE, NODE_TO_INDEX, NODE_TO_PARENT, NS, NUMPAD_DIVIDE, NUMPAD_EIGHT, NUMPAD_FIVE, NUMPAD_FOUR, NUMPAD_MINUS, NUMPAD_MULTIPLY, NUMPAD_NINE, NUMPAD_ONE, NUMPAD_PERIOD, NUMPAD_PLUS, NUMPAD_SEVEN, NUMPAD_SIX, NUMPAD_THREE, NUMPAD_TWO, NUMPAD_ZERO, NUM_CENTER, NUM_LOCK, O, ONE, OPEN_SQUARE_BRACKET, P, PAGE_DOWN, PAGE_UP, PATH_REFS, PAUSE, PERIOD, PLUS_SIGN, POINTER_BUTTON, PRESS_AND_MOVE_BUFFER, PRINT_SCREEN, Path, PlaitBoard, PlaitBoardComponent, PlaitChildrenElementComponent, PlaitContextService, PlaitElement, PlaitElementComponent, PlaitHistoryBoard, PlaitIslandBaseComponent, PlaitIslandPopoverBaseComponent, PlaitNode, PlaitOperation, PlaitPluginElementComponent, PlaitPluginKey, PlaitPointerType, Point, Q, QUESTION_MARK, R, RIGHT_ARROW, RectangleClient, ResizeCursorClass, RetroThemeColor, RgbaToHEX, S, SAVING, SCROLL_BAR_WIDTH, SCROLL_LOCK, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, SELECTION_RECTANGLE_CLASS_NAME, SEMICOLON, SEVEN, SHIFT, SINGLE_QUOTE, SIX, SLASH, SPACE, Selection, SoftThemeColor, StarryThemeColor, T, TAB, THREE, TILDE, TWO, ThemeColorMode, ThemeColors, Transforms, U, UP_ARROW, V, VOLUME_DOWN, VOLUME_UP, Viewport, W, X, Y, Z, ZERO, addMovingElements, addSelectedElement, arrowPoints, cacheMovingElements, cacheSelectedElements, catmullRomFitting, clampZoomLevel, clearNodeWeakMap, clearSelectedElement, clearSelectionMoving, clearViewportOrigination, createFakeEvent, createForeignObject, createG, createKeyboardEvent, createMask, createModModifierKeys, createMouseEvent, createPath, createPointerEvent, createRect, createSVG, createSelectionRectangleG, createTestingBoard, createText, createTouchEvent, debounce, deleteTemporaryElements, depthFirstRecursion, distanceBetweenPointAndPoint, distanceBetweenPointAndRectangle, distanceBetweenPointAndSegment, distanceBetweenPointAndSegments, downScale, downloadImage, drawArrow, drawBezierPath, drawCircle, drawLine, drawLinearPath, drawRectangle, drawRoundRectangle, fakeNodeWeakMap, findElements, getBoardRectangle, getClipboardByKey, getClipboardDataByMedia, getDataFromClipboard, getElementById, getElementHostBBox, getHitElementByPoint, getHitElementsBySelection, getIsRecursionFunc, getMovingElements, getNearestPointBetweenPointAndSegment, getNearestPointBetweenPointAndSegments, getRealScrollBarWidth, getRectangleByElements, getSelectedElements, getTemporaryElements, getTemporaryRef, getTextFromClipboard, getViewBox, getViewBoxCenterPoint, getViewportContainerRect, getViewportOrigination, handleTouchTarget, hasBeforeContextChange, hasInputOrTextareaTarget, hasOnBoardChange, hasOnContextChanged, hotkeys, idCreator, initializeViewBox, initializeViewportContainer, initializeViewportOffset, inverse, isDOMElement, isDOMNode, isFromScrolling, isFromViewportChange, isHandleSelection, isInPlaitBoard, isLineHitLine, isMainPointer, isMovingElements, isNullOrUndefined, isPointInEllipse, isPointInPolygon, isPointInRoundRectangle, isPolylineHitRectangle, isPreventTouchMove, isSecondaryPointer, isSelectedElement, isSelectionMoving, isSetSelectionOperation, isSetViewportOperation, normalizePoint, preventTouchMove, removeMovingElements, removeSelectedElement, rotate, scrollToRectangle, setClipboardData, setClipboardDataByMedia, setClipboardDataByText, setIsFromScrolling, setIsFromViewportChange, setPathStrokeLinecap, setSVGViewBox, setSelectionMoving, setStrokeLinecap, shouldClear, shouldMerge, shouldSave, temporaryDisableSelection, throttleRAF, toImage, toPoint, toSVGScreenPoint, toScreenPoint, transformPoint, transformPoints, updateForeignObject, updateForeignObjectWidth, updateViewportByScrolling, updateViewportContainerScroll, updateViewportOffset, updateViewportOrigination, withMoving, withOptions, withSelection };
|
|
4488
4535
|
//# sourceMappingURL=plait-core.mjs.map
|