@plait/draw 0.75.0 → 0.76.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/esm2022/arrow-line.component.mjs +14 -7
- package/esm2022/generators/arrow-line-auto-complete.generator.mjs +3 -3
- package/esm2022/generators/line-active.generator.mjs +14 -10
- package/esm2022/geometry.component.mjs +20 -10
- package/esm2022/image.component.mjs +12 -6
- package/esm2022/plugins/with-arrow-line-auto-complete-reaction.mjs +9 -7
- package/esm2022/plugins/with-arrow-line-auto-complete.mjs +9 -8
- package/esm2022/plugins/with-arrow-line-bound-reaction.mjs +4 -4
- package/esm2022/plugins/with-draw-resize.mjs +9 -7
- package/esm2022/plugins/with-draw-rotate.mjs +23 -18
- package/esm2022/plugins/with-geometry-create.mjs +4 -4
- package/esm2022/plugins/with-swimlane-create.mjs +4 -4
- package/esm2022/plugins/with-table-resize.mjs +5 -5
- package/esm2022/table.component.mjs +19 -11
- package/esm2022/utils/arrow-line/arrow-line-basic.mjs +3 -3
- package/esm2022/utils/common.mjs +9 -9
- package/esm2022/utils/geometry.mjs +8 -13
- package/esm2022/utils/hit.mjs +3 -3
- package/esm2022/utils/vector-line.mjs +2 -2
- package/esm2022/vector-line.component.mjs +12 -5
- package/fesm2022/plait-draw.mjs +160 -113
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/generators/line-active.generator.d.ts +5 -1
- package/package.json +1 -1
- package/utils/geometry.d.ts +1 -2
package/fesm2022/plait-draw.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH, DEFAULT_COLOR, ThemeColorMode, PlaitElement, RectangleClient, getSelectedElements, idCreator, catmullRomFitting, PlaitBoard, createG, drawLinearPath, setStrokeLinecap, setPathStrokeLinecap, getNearestPointBetweenPointAndArc, distanceBetweenPointAndPoint, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPointInPolygon, isLineHitRectangle, rotatePointsByAngle, createDebugGenerator, rotateAntiPointsByElement, getEllipseArcCenter, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, getIsRecursionFunc, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, Point, arrowPoints, createPath, rotate, findElements, createMask, createRect, getElementById, rotatePointsByElement, PlaitNode, hasValidAngle, toViewBoxPoint, toHostPoint, Direction, rotatePoints, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, isSelectionMoving, drawRectangle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRoundRectangle, isPointInRoundRectangle, getCrossingPointsBetweenEllipseAndSegment, drawLine, getNearestPointBetweenPointAndDiscreteSegments, getNearestPointBetweenPointAndSegment, Path, RgbaToHEX, SELECTION_RECTANGLE_CLASS_NAME, getHitElementByPoint, WritableClipboardOperationType, WritableClipboardType, addOrCreateClipboardContext, setAngleForG, CursorClass, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, isSelectedElement, isDragging } from '@plait/core';
|
|
2
|
-
import { DEFAULT_FILL, Alignment, WithTextPluginKey, TextManage, getMemorizedLatest, memorizeLatest, getPointOnPolyline, buildText, Generator, getStrokeLineDash, StrokeStyle, getCrossingPointsBetweenPointAndSegment, isPointOnSegment, getFirstTextEditor, sortElementsByArea, isFilled, getTextEditorsByElement, removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, getExtendPoint, getUnitVectorByPointAndPoint, getPointByVectorComponent, RESIZE_HANDLE_DIAMETER, measureElement, DEFAULT_FONT_FAMILY, getFirstTextManage,
|
|
1
|
+
import { ACTIVE_STROKE_WIDTH, DEFAULT_COLOR, ThemeColorMode, PlaitElement, RectangleClient, getSelectedElements, idCreator, catmullRomFitting, PlaitBoard, createG, drawLinearPath, setStrokeLinecap, setPathStrokeLinecap, getNearestPointBetweenPointAndArc, distanceBetweenPointAndPoint, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, isPointInPolygon, isLineHitRectangle, rotatePointsByAngle, createDebugGenerator, rotateAntiPointsByElement, getEllipseArcCenter, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, getIsRecursionFunc, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, Point, arrowPoints, createPath, rotate, findElements, createMask, createRect, toActiveRectangleFromViewBoxRectangle, getElementById, rotatePointsByElement, PlaitNode, hasValidAngle, toViewBoxPoint, toHostPoint, Direction, rotatePoints, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, isSelectionMoving, drawRectangle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRoundRectangle, isPointInRoundRectangle, getCrossingPointsBetweenEllipseAndSegment, drawLine, getNearestPointBetweenPointAndDiscreteSegments, getNearestPointBetweenPointAndSegment, Path, RgbaToHEX, SELECTION_RECTANGLE_CLASS_NAME, toActivePointFromViewBoxPoint, getHitElementByPoint, WritableClipboardOperationType, WritableClipboardType, addOrCreateClipboardContext, setAngleForG, CursorClass, toActivePoint, temporaryDisableSelection, toScreenPointFromActivePoint, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, isSelectedElement, isDragging } from '@plait/core';
|
|
2
|
+
import { DEFAULT_FILL, Alignment, WithTextPluginKey, TextManage, getMemorizedLatest, memorizeLatest, getPointOnPolyline, buildText, Generator, getStrokeLineDash, StrokeStyle, getCrossingPointsBetweenPointAndSegment, isPointOnSegment, getFirstTextEditor, sortElementsByArea, isFilled, getTextEditorsByElement, removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, getExtendPoint, getUnitVectorByPointAndPoint, getPointByVectorComponent, RESIZE_HANDLE_DIAMETER, measureElement, DEFAULT_FONT_FAMILY, getFirstTextManage, isSourceAndTargetIntersect, getPoints, DEFAULT_ROUTE_MARGIN, normalizeShapePoints, resetPointsAfterResize, getDirectionByVector, getRectangleResizeHandleRefs, getRotatedResizeCursorClassByAngle, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, isCornerHandle, getIndexByResizeHandle, withResize, drawHandle, getSymmetricHandleIndex, getResizeHandlePointByIndex, getDirectionFactorByDirectionComponent, buildClipboardData as buildClipboardData$1, insertClipboardData as insertClipboardData$1, getDirectionByPointOfRectangle, getDirectionFactor, rotateVector, getOppositeDirection, rotateVectorAnti90, getSourceAndTargetOuterRectangle, getNextPoint, PRIMARY_COLOR, CommonElementFlavour, createActiveGenerator, hasResizeHandle, ActiveGenerator, drawPrimaryHandle, drawFillPrimaryHandle, isVirtualKey, isDelete, isSpaceHotkey, isDndMode, isDrawingMode, getElementsText, acceptImageTypes, getElementOfFocusedImage, buildImage, isResizingByCondition, getRatioByPoint, getTextManages, ImageGenerator, ResizeHandle, addRotating, removeRotating, drawRotateHandle } from '@plait/common';
|
|
3
3
|
import { pointsOnBezierCurves } from 'points-on-curve';
|
|
4
4
|
import { TEXT_DEFAULT_HEIGHT, DEFAULT_FONT_SIZE, AlignEditor } from '@plait/text-plugins';
|
|
5
5
|
import { Editor, Node } from 'slate';
|
|
@@ -1012,7 +1012,7 @@ const vectorLineCreating = (board, lineShape, points, movingPoint, lineShapeG) =
|
|
|
1012
1012
|
const otherPoint = points[points.length - 1];
|
|
1013
1013
|
temporaryLineElement.points[temporaryLineElement.points.length - 1] = alignPoints(otherPoint, movingPoint);
|
|
1014
1014
|
lineGenerator.processDrawing(temporaryLineElement, lineShapeG);
|
|
1015
|
-
PlaitBoard.
|
|
1015
|
+
PlaitBoard.getElementTopHost(board).append(lineShapeG);
|
|
1016
1016
|
return temporaryLineElement;
|
|
1017
1017
|
};
|
|
1018
1018
|
const drawVectorLine = (board, element) => {
|
|
@@ -1344,7 +1344,7 @@ const debugGenerator$4 = createDebugGenerator(debugKey$4);
|
|
|
1344
1344
|
const shapes = [BasicShapes.cloud];
|
|
1345
1345
|
const isHitDrawElement = (board, element, point, isStrict = true) => {
|
|
1346
1346
|
const rectangle = board.getRectangle(element);
|
|
1347
|
-
point = rotateAntiPointsByElement(point, element) || point;
|
|
1347
|
+
point = rotateAntiPointsByElement(board, point, element) || point;
|
|
1348
1348
|
if (PlaitDrawElement.isGeometry(element) && rectangle) {
|
|
1349
1349
|
if (debugGenerator$4.isDebug() && shapes.includes(element.shape)) {
|
|
1350
1350
|
debugGenerator$4.clear();
|
|
@@ -1405,7 +1405,7 @@ const isInsideOfShape = (board, element, point, hitDistanceBuffer) => {
|
|
|
1405
1405
|
};
|
|
1406
1406
|
const isHitElementInside = (board, element, point) => {
|
|
1407
1407
|
const rectangle = board.getRectangle(element);
|
|
1408
|
-
point = rotateAntiPointsByElement(point, element) || point;
|
|
1408
|
+
point = rotateAntiPointsByElement(board, point, element) || point;
|
|
1409
1409
|
if (PlaitDrawElement.isGeometry(element) && !PlaitDrawElement.isGeometryByTable(element)) {
|
|
1410
1410
|
const engine = getEngine(getElementShape(element));
|
|
1411
1411
|
const isHitInside = engine.isInsidePoint(rectangle, point);
|
|
@@ -1473,12 +1473,12 @@ const isDrawElementIncludeText = (element) => {
|
|
|
1473
1473
|
return editors.length > 0;
|
|
1474
1474
|
}
|
|
1475
1475
|
if (PlaitDrawElement.isElementByTable(element)) {
|
|
1476
|
-
return element.cells.some(cell => isCellIncludeText(cell));
|
|
1476
|
+
return element.cells.some((cell) => isCellIncludeText(cell));
|
|
1477
1477
|
}
|
|
1478
1478
|
return true;
|
|
1479
1479
|
};
|
|
1480
1480
|
const isDrawElementsIncludeText = (elements) => {
|
|
1481
|
-
return elements.some(item => {
|
|
1481
|
+
return elements.some((item) => {
|
|
1482
1482
|
return isDrawElementIncludeText(item);
|
|
1483
1483
|
});
|
|
1484
1484
|
};
|
|
@@ -1511,7 +1511,7 @@ const getSnappingShape = (board, point) => {
|
|
|
1511
1511
|
return null;
|
|
1512
1512
|
};
|
|
1513
1513
|
const getSnappingRef = (board, hitElement, point) => {
|
|
1514
|
-
const rotatedPoint = rotateAntiPointsByElement(point, hitElement) || point;
|
|
1514
|
+
const rotatedPoint = rotateAntiPointsByElement(board, point, hitElement) || point;
|
|
1515
1515
|
const connectorPoint = getHitConnectorPoint(rotatedPoint, hitElement);
|
|
1516
1516
|
const edgePoint = getNearestPoint(hitElement, rotatedPoint);
|
|
1517
1517
|
const isHitEdge = isHitEdgeOfShape(board, hitElement, rotatedPoint, LINE_SNAPPING_BUFFER);
|
|
@@ -1520,14 +1520,14 @@ const getSnappingRef = (board, hitElement, point) => {
|
|
|
1520
1520
|
const getHitShape = (board, point, offset = LINE_HIT_GEOMETRY_BUFFER) => {
|
|
1521
1521
|
let hitShape = null;
|
|
1522
1522
|
traverseDrawShapes(board, (element) => {
|
|
1523
|
-
if (hitShape === null && isInsideOfShape(board, element, rotateAntiPointsByElement(point, element) || point, offset * 2)) {
|
|
1523
|
+
if (hitShape === null && isInsideOfShape(board, element, rotateAntiPointsByElement(board, point, element) || point, offset * 2)) {
|
|
1524
1524
|
hitShape = element;
|
|
1525
1525
|
}
|
|
1526
1526
|
});
|
|
1527
1527
|
return hitShape;
|
|
1528
1528
|
};
|
|
1529
1529
|
const traverseDrawShapes = (board, callback) => {
|
|
1530
|
-
depthFirstRecursion(board, node => {
|
|
1530
|
+
depthFirstRecursion(board, (node) => {
|
|
1531
1531
|
if (!PlaitBoard.isBoard(node) && PlaitDrawElement.isShapeElement(node)) {
|
|
1532
1532
|
callback(node);
|
|
1533
1533
|
}
|
|
@@ -1561,7 +1561,7 @@ const drawBoundReaction = (board, element, roughOptions = { hasMask: true, hasCo
|
|
|
1561
1561
|
}
|
|
1562
1562
|
if (roughOptions.hasConnector) {
|
|
1563
1563
|
const connectorPoints = getEngine(shape).getConnectorPoints(rectangle);
|
|
1564
|
-
connectorPoints.forEach(point => {
|
|
1564
|
+
connectorPoints.forEach((point) => {
|
|
1565
1565
|
const circleG = drawCircle(PlaitBoard.getRoughSVG(board), point, 8, {
|
|
1566
1566
|
stroke: SELECTION_BORDER_COLOR,
|
|
1567
1567
|
strokeWidth: ACTIVE_STROKE_WIDTH,
|
|
@@ -1583,14 +1583,14 @@ const getTextKey = (element, text) => {
|
|
|
1583
1583
|
};
|
|
1584
1584
|
const getGeometryAlign = (board, element) => {
|
|
1585
1585
|
if (isMultipleTextGeometry(element)) {
|
|
1586
|
-
const drawShapeText = element.texts.find(item => item.id.includes(GeometryCommonTextKeys.content));
|
|
1586
|
+
const drawShapeText = element.texts.find((item) => item.id.includes(GeometryCommonTextKeys.content));
|
|
1587
1587
|
return drawShapeText?.text.align || Alignment.center;
|
|
1588
1588
|
}
|
|
1589
1589
|
if (isSingleTextGeometry(element)) {
|
|
1590
1590
|
return element.text?.align || Alignment.center;
|
|
1591
1591
|
}
|
|
1592
1592
|
if (PlaitDrawElement.isElementByTable(element)) {
|
|
1593
|
-
const firstTextCell = element.cells.find(item => item.text);
|
|
1593
|
+
const firstTextCell = element.cells.find((item) => item.text);
|
|
1594
1594
|
return firstTextCell?.text?.align || Alignment.center;
|
|
1595
1595
|
}
|
|
1596
1596
|
return Alignment.center;
|
|
@@ -2155,7 +2155,7 @@ const getHitConnectorPoint = (point, hitElement) => {
|
|
|
2155
2155
|
const rectangle = RectangleClient.getRectangleByPoints(hitElement.points);
|
|
2156
2156
|
const shape = getElementShape(hitElement);
|
|
2157
2157
|
const connectorPoints = getEngine(shape).getConnectorPoints(rectangle);
|
|
2158
|
-
return connectorPoints.find(connectorPoint => {
|
|
2158
|
+
return connectorPoints.find((connectorPoint) => {
|
|
2159
2159
|
return distanceBetweenPointAndPoint(...connectorPoint, ...point) <= LINE_SNAPPING_CONNECTOR_BUFFER;
|
|
2160
2160
|
});
|
|
2161
2161
|
};
|
|
@@ -2212,7 +2212,7 @@ const handleArrowLineCreating = (board, lineShape, sourcePoint, movingPoint, sou
|
|
|
2212
2212
|
const otherPoint = linePoints[0];
|
|
2213
2213
|
temporaryLineElement.points[1] = alignPoints(otherPoint, movingPoint);
|
|
2214
2214
|
lineGenerator.processDrawing(temporaryLineElement, lineShapeG);
|
|
2215
|
-
PlaitBoard.
|
|
2215
|
+
PlaitBoard.getElementTopHost(board).append(lineShapeG);
|
|
2216
2216
|
return temporaryLineElement;
|
|
2217
2217
|
};
|
|
2218
2218
|
function drawArrowLineMask(board, element, id) {
|
|
@@ -2449,11 +2449,12 @@ const createDefaultFlowchart = (point) => {
|
|
|
2449
2449
|
], { marker: ArrowLineMarkerType.none, connection: [0.5, 1], boundId: processElement2.id }, { marker: ArrowLineMarkerType.arrow, connection: [1, 0.5], boundId: endElement.id }, [], lineOptions);
|
|
2450
2450
|
return [startElement, processElement1, decisionElement, processElement2, endElement, line1, line2, line3, line4, line5];
|
|
2451
2451
|
};
|
|
2452
|
-
const getAutoCompletePoints = (element) => {
|
|
2452
|
+
const getAutoCompletePoints = (board, element, isToActive = false) => {
|
|
2453
2453
|
const AutoCompleteMargin = (12 + RESIZE_HANDLE_DIAMETER / 2) * 2;
|
|
2454
|
-
|
|
2455
|
-
|
|
2456
|
-
|
|
2454
|
+
const rectangle = RectangleClient.getRectangleByPoints(element.points);
|
|
2455
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
2456
|
+
const targetRectangle = isToActive ? activeRectangle : rectangle;
|
|
2457
|
+
return RectangleClient.getEdgeCenterPoints(RectangleClient.inflate(targetRectangle, AutoCompleteMargin));
|
|
2457
2458
|
};
|
|
2458
2459
|
const getHitIndexOfAutoCompletePoint = (movingPoint, points) => {
|
|
2459
2460
|
return points.findIndex((point) => {
|
|
@@ -2531,12 +2532,6 @@ const editText = (board, element, text) => {
|
|
|
2531
2532
|
textManage.edit(() => { });
|
|
2532
2533
|
}
|
|
2533
2534
|
};
|
|
2534
|
-
const rerenderGeometryActive = (board, element) => {
|
|
2535
|
-
const elementRef = PlaitElement.getElementRef(element);
|
|
2536
|
-
const activeGenerator = elementRef.getGenerator(ActiveGenerator.key);
|
|
2537
|
-
const selected = getSelectedElements(board).includes(element);
|
|
2538
|
-
activeGenerator.processDrawing(element, PlaitBoard.getElementActiveHost(board), { selected });
|
|
2539
|
-
};
|
|
2540
2535
|
const isGeometryIncludeText = (element) => {
|
|
2541
2536
|
return isSingleTextGeometry(element) || isMultipleTextGeometry(element);
|
|
2542
2537
|
};
|
|
@@ -3392,7 +3387,7 @@ function withDrawResize(board) {
|
|
|
3392
3387
|
const resizeSnapRef = getSnapResizingRef(board, resizeRef.element, resizeSnapRefOptions);
|
|
3393
3388
|
resizeActivePoints = resizeSnapRef.activePoints;
|
|
3394
3389
|
snapG = resizeSnapRef.snapG;
|
|
3395
|
-
PlaitBoard.
|
|
3390
|
+
PlaitBoard.getElementTopHost(board).append(snapG);
|
|
3396
3391
|
if (bulkRotationRef) {
|
|
3397
3392
|
const boundingBoxCornerPoints = RectangleClient.getPoints(resizeRef.rectangle);
|
|
3398
3393
|
const resizedBoundingBoxCornerPoints = boundingBoxCornerPoints.map((p) => {
|
|
@@ -3491,23 +3486,25 @@ function withDrawResize(board) {
|
|
|
3491
3486
|
const boundingRectangle = needCustomActiveRectangle
|
|
3492
3487
|
? RectangleClient.getRectangleByPoints(resizeActivePoints)
|
|
3493
3488
|
: getRectangleByElements(board, elements, false);
|
|
3494
|
-
|
|
3489
|
+
const boundingActiveRectangle = toActiveRectangleFromViewBoxRectangle(board, boundingRectangle);
|
|
3490
|
+
let corners = RectangleClient.getCornerPoints(boundingActiveRectangle);
|
|
3495
3491
|
const angle = getSelectionAngle(elements);
|
|
3496
3492
|
if (angle) {
|
|
3497
|
-
const centerPoint = RectangleClient.getCenterPoint(
|
|
3493
|
+
const centerPoint = RectangleClient.getCenterPoint(boundingActiveRectangle);
|
|
3498
3494
|
corners = rotatePoints(corners, centerPoint, angle);
|
|
3499
3495
|
}
|
|
3500
3496
|
corners.forEach((corner) => {
|
|
3501
3497
|
const g = drawHandle(board, corner);
|
|
3502
3498
|
handleG && handleG.append(g);
|
|
3503
3499
|
});
|
|
3504
|
-
PlaitBoard.
|
|
3500
|
+
PlaitBoard.getActiveHost(board).append(handleG);
|
|
3505
3501
|
}
|
|
3506
3502
|
};
|
|
3507
3503
|
board.drawSelectionRectangle = () => {
|
|
3508
3504
|
if (needCustomActiveRectangle) {
|
|
3509
3505
|
const rectangle = RectangleClient.getRectangleByPoints(resizeActivePoints);
|
|
3510
|
-
|
|
3506
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
3507
|
+
return drawRectangle(board, RectangleClient.inflate(activeRectangle, ACTIVE_STROKE_WIDTH), {
|
|
3511
3508
|
stroke: SELECTION_BORDER_COLOR,
|
|
3512
3509
|
strokeWidth: ACTIVE_STROKE_WIDTH
|
|
3513
3510
|
});
|
|
@@ -7094,7 +7091,7 @@ class GeometryShapeGenerator extends Generator {
|
|
|
7094
7091
|
class ArrowLineAutoCompleteGenerator extends Generator {
|
|
7095
7092
|
static { this.key = 'line-auto-complete-generator'; }
|
|
7096
7093
|
constructor(board) {
|
|
7097
|
-
super(board);
|
|
7094
|
+
super(board, { active: true });
|
|
7098
7095
|
this.board = board;
|
|
7099
7096
|
this.hoverElement = null;
|
|
7100
7097
|
}
|
|
@@ -7109,7 +7106,7 @@ class ArrowLineAutoCompleteGenerator extends Generator {
|
|
|
7109
7106
|
}
|
|
7110
7107
|
draw(element, data) {
|
|
7111
7108
|
this.autoCompleteG = createG();
|
|
7112
|
-
const middlePoints = getAutoCompletePoints(element);
|
|
7109
|
+
const middlePoints = getAutoCompletePoints(this.board, element, true);
|
|
7113
7110
|
middlePoints.forEach((point, index) => {
|
|
7114
7111
|
const circle = drawCircle(PlaitBoard.getRoughSVG(this.board), point, LINE_AUTO_COMPLETE_DIAMETER, {
|
|
7115
7112
|
stroke: 'none',
|
|
@@ -7152,7 +7149,7 @@ class GeometryComponent extends CommonElementFlavour {
|
|
|
7152
7149
|
super();
|
|
7153
7150
|
}
|
|
7154
7151
|
initializeGenerator() {
|
|
7155
|
-
this.activeGenerator =
|
|
7152
|
+
this.activeGenerator = createActiveGenerator(this.board, {
|
|
7156
7153
|
getStrokeWidth: () => {
|
|
7157
7154
|
const selectedElements = getSelectedElements(this.board);
|
|
7158
7155
|
if (selectedElements.length === 1 && !isSelectionMoving(this.board)) {
|
|
@@ -7185,15 +7182,23 @@ class GeometryComponent extends CommonElementFlavour {
|
|
|
7185
7182
|
}
|
|
7186
7183
|
this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
|
|
7187
7184
|
this.getRef().addGenerator(ActiveGenerator.key, this.activeGenerator);
|
|
7185
|
+
this.getRef().updateActiveSection = () => {
|
|
7186
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7187
|
+
selected: this.selected
|
|
7188
|
+
});
|
|
7189
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7190
|
+
selected: this.selected
|
|
7191
|
+
});
|
|
7192
|
+
};
|
|
7188
7193
|
}
|
|
7189
7194
|
initialize() {
|
|
7190
7195
|
super.initialize();
|
|
7191
7196
|
this.initializeGenerator();
|
|
7192
7197
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7193
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7198
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7194
7199
|
selected: this.selected
|
|
7195
7200
|
});
|
|
7196
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
7201
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getElementTopHost(this.board), {
|
|
7197
7202
|
selected: this.selected
|
|
7198
7203
|
});
|
|
7199
7204
|
this.textGenerator && this.textGenerator.draw(this.getElementG());
|
|
@@ -7201,8 +7206,8 @@ class GeometryComponent extends CommonElementFlavour {
|
|
|
7201
7206
|
onContextChanged(value, previous) {
|
|
7202
7207
|
if (value.element !== previous.element || value.hasThemeChanged) {
|
|
7203
7208
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7204
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7205
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
7209
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), { selected: this.selected });
|
|
7210
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7206
7211
|
selected: this.selected
|
|
7207
7212
|
});
|
|
7208
7213
|
this.textGenerator && this.updateText(previous.element, value.element);
|
|
@@ -7210,9 +7215,11 @@ class GeometryComponent extends CommonElementFlavour {
|
|
|
7210
7215
|
else {
|
|
7211
7216
|
const hasSameSelected = value.selected === previous.selected;
|
|
7212
7217
|
const hasSameHandleState = this.activeGenerator.options.hasResizeHandle() === this.activeGenerator.hasResizeHandle;
|
|
7213
|
-
if (!hasSameSelected || !hasSameHandleState) {
|
|
7214
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7215
|
-
|
|
7218
|
+
if (!hasSameSelected || !hasSameHandleState || value.selected) {
|
|
7219
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7220
|
+
selected: this.selected
|
|
7221
|
+
});
|
|
7222
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7216
7223
|
selected: this.selected
|
|
7217
7224
|
});
|
|
7218
7225
|
}
|
|
@@ -7321,8 +7328,9 @@ function getHitPointIndex(points, movingPoint) {
|
|
|
7321
7328
|
}
|
|
7322
7329
|
|
|
7323
7330
|
class LineActiveGenerator extends Generator {
|
|
7324
|
-
constructor() {
|
|
7325
|
-
super(
|
|
7331
|
+
constructor(board, options = { active: true }) {
|
|
7332
|
+
super(board, options);
|
|
7333
|
+
this.board = board;
|
|
7326
7334
|
this.onlySelectedCurrentLine = false;
|
|
7327
7335
|
}
|
|
7328
7336
|
canDraw(element, data) {
|
|
@@ -7346,16 +7354,18 @@ class LineActiveGenerator extends Generator {
|
|
|
7346
7354
|
updatePoints = points.slice(0, 1).concat(points.slice(-1));
|
|
7347
7355
|
elbowNextRenderPoints = getNextRenderPoints(this.board, element, data.linePoints);
|
|
7348
7356
|
}
|
|
7349
|
-
updatePoints.
|
|
7357
|
+
const activePoints = updatePoints.map((point) => toActivePointFromViewBoxPoint(this.board, point));
|
|
7358
|
+
activePoints.forEach((point) => {
|
|
7350
7359
|
const updateHandle = drawPrimaryHandle(this.board, point);
|
|
7351
7360
|
activeG.appendChild(updateHandle);
|
|
7352
7361
|
});
|
|
7353
7362
|
const middlePoints = getMiddlePoints(this.board, element);
|
|
7363
|
+
const activeMiddlePoints = middlePoints.map((point) => toActivePointFromViewBoxPoint(this.board, point));
|
|
7354
7364
|
if (!PlaitBoard.hasBeenTextEditing(this.board)) {
|
|
7355
|
-
for (let i = 0; i <
|
|
7356
|
-
const point =
|
|
7365
|
+
for (let i = 0; i < activeMiddlePoints.length; i++) {
|
|
7366
|
+
const point = activeMiddlePoints[i];
|
|
7357
7367
|
if (element.shape === ArrowLineShape.elbow && elbowNextRenderPoints.length) {
|
|
7358
|
-
const handleIndex = getHitPointIndex(
|
|
7368
|
+
const handleIndex = getHitPointIndex(activeMiddlePoints, point);
|
|
7359
7369
|
const isUpdateHandleIndex = isUpdatedHandleIndex(this.board, element, [...points], elbowNextRenderPoints, handleIndex);
|
|
7360
7370
|
if (isUpdateHandleIndex) {
|
|
7361
7371
|
const updateHandle = drawPrimaryHandle(this.board, point);
|
|
@@ -7369,8 +7379,9 @@ class LineActiveGenerator extends Generator {
|
|
|
7369
7379
|
}
|
|
7370
7380
|
}
|
|
7371
7381
|
else {
|
|
7372
|
-
const
|
|
7373
|
-
if (
|
|
7382
|
+
const rectangle = this.board.getRectangle(element);
|
|
7383
|
+
if (rectangle) {
|
|
7384
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(this.board, rectangle);
|
|
7374
7385
|
let opacity = '0.5';
|
|
7375
7386
|
if (activeRectangle.height === 0 || activeRectangle.width === 0) {
|
|
7376
7387
|
opacity = '0.8';
|
|
@@ -7408,13 +7419,20 @@ class ArrowLineComponent extends CommonElementFlavour {
|
|
|
7408
7419
|
this.initializeGenerator();
|
|
7409
7420
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7410
7421
|
const linePoints = getArrowLinePoints(this.board, this.element);
|
|
7411
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7422
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7412
7423
|
selected: this.selected,
|
|
7413
7424
|
linePoints
|
|
7414
7425
|
});
|
|
7415
7426
|
super.initialize();
|
|
7416
7427
|
this.boundedElements = this.getBoundedElements();
|
|
7417
7428
|
this.drawText();
|
|
7429
|
+
this.getRef().updateActiveSection = () => {
|
|
7430
|
+
const linePoints = getArrowLinePoints(this.board, this.element);
|
|
7431
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7432
|
+
selected: this.selected,
|
|
7433
|
+
linePoints
|
|
7434
|
+
});
|
|
7435
|
+
};
|
|
7418
7436
|
debugGenerator.isDebug() && debugGenerator.drawCircles(this.board, this.element.points.slice(1, -1), 4, true);
|
|
7419
7437
|
}
|
|
7420
7438
|
getBoundedElements() {
|
|
@@ -7440,7 +7458,7 @@ class ArrowLineComponent extends CommonElementFlavour {
|
|
|
7440
7458
|
const linePoints = getArrowLinePoints(this.board, this.element);
|
|
7441
7459
|
if (value.element !== previous.element || value.hasThemeChanged) {
|
|
7442
7460
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7443
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7461
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7444
7462
|
selected: this.selected,
|
|
7445
7463
|
linePoints
|
|
7446
7464
|
});
|
|
@@ -7449,8 +7467,8 @@ class ArrowLineComponent extends CommonElementFlavour {
|
|
|
7449
7467
|
}
|
|
7450
7468
|
else {
|
|
7451
7469
|
const needUpdate = value.selected !== previous.selected || this.activeGenerator.needUpdate();
|
|
7452
|
-
if (needUpdate) {
|
|
7453
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7470
|
+
if (needUpdate || value.selected) {
|
|
7471
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7454
7472
|
selected: this.selected,
|
|
7455
7473
|
linePoints
|
|
7456
7474
|
});
|
|
@@ -7458,7 +7476,7 @@ class ArrowLineComponent extends CommonElementFlavour {
|
|
|
7458
7476
|
}
|
|
7459
7477
|
if (isBoundedElementsChanged) {
|
|
7460
7478
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7461
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7479
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7462
7480
|
selected: this.selected,
|
|
7463
7481
|
linePoints
|
|
7464
7482
|
});
|
|
@@ -7530,7 +7548,7 @@ class ArrowLineComponent extends CommonElementFlavour {
|
|
|
7530
7548
|
}
|
|
7531
7549
|
updateTextRectangle() {
|
|
7532
7550
|
const textManages = this.getRef().getTextManages();
|
|
7533
|
-
textManages.forEach(manage => {
|
|
7551
|
+
textManages.forEach((manage) => {
|
|
7534
7552
|
manage.updateRectangle();
|
|
7535
7553
|
});
|
|
7536
7554
|
}
|
|
@@ -7548,12 +7566,19 @@ class VectorLineComponent extends CommonElementFlavour {
|
|
|
7548
7566
|
initializeGenerator() {
|
|
7549
7567
|
this.shapeGenerator = new VectorLineShapeGenerator(this.board);
|
|
7550
7568
|
this.activeGenerator = new LineActiveGenerator(this.board);
|
|
7569
|
+
this.getRef().updateActiveSection = () => {
|
|
7570
|
+
const linePoints = getVectorLinePoints(this.board, this.element);
|
|
7571
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7572
|
+
selected: this.selected,
|
|
7573
|
+
linePoints
|
|
7574
|
+
});
|
|
7575
|
+
};
|
|
7551
7576
|
}
|
|
7552
7577
|
initialize() {
|
|
7553
7578
|
this.initializeGenerator();
|
|
7554
7579
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7555
7580
|
const linePoints = getVectorLinePoints(this.board, this.element);
|
|
7556
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7581
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7557
7582
|
selected: this.selected,
|
|
7558
7583
|
linePoints
|
|
7559
7584
|
});
|
|
@@ -7563,15 +7588,15 @@ class VectorLineComponent extends CommonElementFlavour {
|
|
|
7563
7588
|
const linePoints = getVectorLinePoints(this.board, this.element);
|
|
7564
7589
|
if (value.element !== previous.element || value.hasThemeChanged) {
|
|
7565
7590
|
this.shapeGenerator.processDrawing(this.element, this.getElementG());
|
|
7566
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7591
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7567
7592
|
selected: this.selected,
|
|
7568
7593
|
linePoints
|
|
7569
7594
|
});
|
|
7570
7595
|
}
|
|
7571
7596
|
else {
|
|
7572
|
-
const needUpdate = value.selected !== previous.selected || this.activeGenerator.needUpdate();
|
|
7597
|
+
const needUpdate = value.selected !== previous.selected || this.activeGenerator.needUpdate() || value.selected;
|
|
7573
7598
|
if (needUpdate) {
|
|
7574
|
-
this.activeGenerator.processDrawing(this.element, PlaitBoard.
|
|
7599
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
7575
7600
|
selected: this.selected,
|
|
7576
7601
|
linePoints
|
|
7577
7602
|
});
|
|
@@ -7707,7 +7732,7 @@ const withGeometryCreateByDrag = (board) => {
|
|
|
7707
7732
|
const points = getDefaultGeometryPoints(pointer, movingPoint);
|
|
7708
7733
|
temporaryElement = createDefaultGeometry(board, points, pointer);
|
|
7709
7734
|
geometryGenerator.processDrawing(temporaryElement, geometryShapeG);
|
|
7710
|
-
PlaitBoard.
|
|
7735
|
+
PlaitBoard.getElementTopHost(board).append(geometryShapeG);
|
|
7711
7736
|
}
|
|
7712
7737
|
}
|
|
7713
7738
|
pointerMove(event);
|
|
@@ -7783,11 +7808,11 @@ const withGeometryCreateByDrawing = (board) => {
|
|
|
7783
7808
|
isCreate: true
|
|
7784
7809
|
});
|
|
7785
7810
|
snapG = resizeSnapRef.snapG;
|
|
7786
|
-
PlaitBoard.
|
|
7811
|
+
PlaitBoard.getElementTopHost(board).append(snapG);
|
|
7787
7812
|
points = normalizeShapePoints(resizeSnapRef.activePoints, isShift);
|
|
7788
7813
|
temporaryElement = createDefaultGeometry(board, points, pointer);
|
|
7789
7814
|
geometryGenerator.processDrawing(temporaryElement, geometryShapeG);
|
|
7790
|
-
PlaitBoard.
|
|
7815
|
+
PlaitBoard.getElementTopHost(board).append(geometryShapeG);
|
|
7791
7816
|
}
|
|
7792
7817
|
pointerMove(event);
|
|
7793
7818
|
};
|
|
@@ -8112,7 +8137,7 @@ const withArrowLineBoundReaction = (board) => {
|
|
|
8112
8137
|
const linePointers = Object.keys(ArrowLineShape);
|
|
8113
8138
|
const isLinePointer = PlaitBoard.isInPointer(board, linePointers);
|
|
8114
8139
|
const movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
8115
|
-
const isLineResizing = isResizingByCondition(board, resizeRef => {
|
|
8140
|
+
const isLineResizing = isResizingByCondition(board, (resizeRef) => {
|
|
8116
8141
|
const { element, handle } = resizeRef;
|
|
8117
8142
|
const isSourceOrTarget = handle === LineResizeHandle.target || handle === LineResizeHandle.source;
|
|
8118
8143
|
return PlaitDrawElement.isArrowLine(element) && isSourceOrTarget;
|
|
@@ -8135,12 +8160,12 @@ const withArrowLineBoundReaction = (board) => {
|
|
|
8135
8160
|
if (hasValidAngle(hitElement)) {
|
|
8136
8161
|
setAngleForG(boundShapeG, RectangleClient.getCenterPointByPoints(hitElement.points), hitElement.angle);
|
|
8137
8162
|
}
|
|
8138
|
-
PlaitBoard.
|
|
8163
|
+
PlaitBoard.getElementTopHost(board).append(boundShapeG);
|
|
8139
8164
|
}
|
|
8140
8165
|
}
|
|
8141
8166
|
pointerMove(event);
|
|
8142
8167
|
};
|
|
8143
|
-
board.pointerUp = event => {
|
|
8168
|
+
board.pointerUp = (event) => {
|
|
8144
8169
|
boundShapeG?.remove();
|
|
8145
8170
|
boundShapeG = null;
|
|
8146
8171
|
pointerUp(event);
|
|
@@ -8214,7 +8239,7 @@ class ImageComponent extends CommonElementFlavour {
|
|
|
8214
8239
|
height: element.points[1][1] - element.points[0][1]
|
|
8215
8240
|
};
|
|
8216
8241
|
},
|
|
8217
|
-
getImageItem: element => {
|
|
8242
|
+
getImageItem: (element) => {
|
|
8218
8243
|
return {
|
|
8219
8244
|
url: element.url,
|
|
8220
8245
|
width: element.points[1][0] - element.points[0][0],
|
|
@@ -8224,12 +8249,18 @@ class ImageComponent extends CommonElementFlavour {
|
|
|
8224
8249
|
});
|
|
8225
8250
|
this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
|
|
8226
8251
|
this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
|
|
8252
|
+
this.getRef().updateActiveSection = () => {
|
|
8253
|
+
this.imageGenerator.setFocus(this.element, this.selected);
|
|
8254
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8255
|
+
selected: this.selected
|
|
8256
|
+
});
|
|
8257
|
+
};
|
|
8227
8258
|
}
|
|
8228
8259
|
initialize() {
|
|
8229
8260
|
super.initialize();
|
|
8230
8261
|
this.initializeGenerator();
|
|
8231
8262
|
this.imageGenerator.processDrawing(this.element, this.getElementG());
|
|
8232
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
8263
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8233
8264
|
selected: this.selected
|
|
8234
8265
|
});
|
|
8235
8266
|
}
|
|
@@ -8237,7 +8268,7 @@ class ImageComponent extends CommonElementFlavour {
|
|
|
8237
8268
|
if (value.element !== previous.element) {
|
|
8238
8269
|
this.imageGenerator.updateImage(this.getElementG(), previous.element, value.element);
|
|
8239
8270
|
this.imageGenerator.setFocus(this.element, this.selected);
|
|
8240
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
8271
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8241
8272
|
selected: this.selected
|
|
8242
8273
|
});
|
|
8243
8274
|
}
|
|
@@ -8245,9 +8276,9 @@ class ImageComponent extends CommonElementFlavour {
|
|
|
8245
8276
|
const hasSameSelected = value.selected === previous.selected;
|
|
8246
8277
|
const hasSameHandleState = this.imageGenerator.activeGenerator &&
|
|
8247
8278
|
this.imageGenerator.activeGenerator.options.hasResizeHandle() === this.imageGenerator.activeGenerator.hasResizeHandle;
|
|
8248
|
-
if (!hasSameSelected || !hasSameHandleState) {
|
|
8279
|
+
if (!hasSameSelected || !hasSameHandleState || value.selected) {
|
|
8249
8280
|
this.imageGenerator.setFocus(this.element, this.selected);
|
|
8250
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
8281
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8251
8282
|
selected: this.selected
|
|
8252
8283
|
});
|
|
8253
8284
|
}
|
|
@@ -8268,10 +8299,10 @@ const withArrowLineAutoCompleteReaction = (board) => {
|
|
|
8268
8299
|
PlaitBoard.getBoardContainer(board).classList.remove(CursorClass.crosshair);
|
|
8269
8300
|
const selectedElements = getSelectedDrawElements(board);
|
|
8270
8301
|
const targetElement = selectedElements.length === 1 && selectedElements[0];
|
|
8271
|
-
const
|
|
8302
|
+
const activePoint = toActivePoint(board, event.x, event.y);
|
|
8272
8303
|
if (!PlaitBoard.isReadonly(board) && !isSelectionMoving(board) && targetElement && PlaitDrawElement.isShapeElement(targetElement)) {
|
|
8273
|
-
const points = getAutoCompletePoints(targetElement);
|
|
8274
|
-
const hitIndex = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(
|
|
8304
|
+
const points = getAutoCompletePoints(board, targetElement, true);
|
|
8305
|
+
const hitIndex = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(board, activePoint, targetElement, true) || activePoint, points);
|
|
8275
8306
|
const hitPoint = points[hitIndex];
|
|
8276
8307
|
const ref = PlaitElement.getElementRef(targetElement);
|
|
8277
8308
|
const lineAutoCompleteGenerator = ref.getGenerator(ArrowLineAutoCompleteGenerator.key);
|
|
@@ -8283,10 +8314,12 @@ const withArrowLineAutoCompleteReaction = (board) => {
|
|
|
8283
8314
|
fill: RgbaToHEX(PRIMARY_COLOR, LINE_AUTO_COMPLETE_HOVERED_OPACITY),
|
|
8284
8315
|
fillStyle: 'solid'
|
|
8285
8316
|
});
|
|
8286
|
-
PlaitBoard.
|
|
8317
|
+
PlaitBoard.getActiveHost(board).append(reactionG);
|
|
8287
8318
|
PlaitBoard.getBoardContainer(board).classList.add(CursorClass.crosshair);
|
|
8288
8319
|
if (hasValidAngle(targetElement)) {
|
|
8289
|
-
|
|
8320
|
+
const rectangle = board.getRectangle(targetElement);
|
|
8321
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
8322
|
+
setAngleForG(reactionG, RectangleClient.getCenterPoint(activeRectangle), targetElement.angle);
|
|
8290
8323
|
}
|
|
8291
8324
|
}
|
|
8292
8325
|
}
|
|
@@ -8305,14 +8338,15 @@ const withArrowLineAutoComplete = (board) => {
|
|
|
8305
8338
|
board.pointerDown = (event) => {
|
|
8306
8339
|
const selectedElements = getSelectedDrawElements(board);
|
|
8307
8340
|
const targetElement = selectedElements.length === 1 && selectedElements[0];
|
|
8308
|
-
const
|
|
8341
|
+
const activePoint = toActivePoint(board, event.x, event.y);
|
|
8309
8342
|
if (!PlaitBoard.isReadonly(board) && targetElement && PlaitDrawElement.isShapeElement(targetElement)) {
|
|
8310
|
-
const points = getAutoCompletePoints(targetElement);
|
|
8311
|
-
const index = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(
|
|
8343
|
+
const points = getAutoCompletePoints(board, targetElement, true);
|
|
8344
|
+
const index = getHitIndexOfAutoCompletePoint(rotateAntiPointsByElement(board, activePoint, targetElement, true) || activePoint, points);
|
|
8312
8345
|
const hitPoint = points[index];
|
|
8313
8346
|
if (hitPoint) {
|
|
8314
8347
|
temporaryDisableSelection(board);
|
|
8315
|
-
|
|
8348
|
+
const screenPoint = toScreenPointFromActivePoint(board, hitPoint);
|
|
8349
|
+
autoCompletePoint = toViewBoxPoint(board, toHostPoint(board, screenPoint[0], screenPoint[1]));
|
|
8316
8350
|
sourceElement = targetElement;
|
|
8317
8351
|
BoardTransforms.updatePointerType(board, ArrowLineShape.elbow);
|
|
8318
8352
|
}
|
|
@@ -8324,7 +8358,7 @@ const withArrowLineAutoComplete = (board) => {
|
|
|
8324
8358
|
lineShapeG = createG();
|
|
8325
8359
|
let movingPoint = toViewBoxPoint(board, toHostPoint(board, event.x, event.y));
|
|
8326
8360
|
if (autoCompletePoint && sourceElement) {
|
|
8327
|
-
const distance = distanceBetweenPointAndPoint(...(rotateAntiPointsByElement(movingPoint, sourceElement) || movingPoint), ...autoCompletePoint);
|
|
8361
|
+
const distance = distanceBetweenPointAndPoint(...(rotateAntiPointsByElement(board, movingPoint, sourceElement) || movingPoint), ...autoCompletePoint);
|
|
8328
8362
|
if (distance > PRESS_AND_MOVE_BUFFER) {
|
|
8329
8363
|
const rectangle = RectangleClient.getRectangleByPoints(sourceElement.points);
|
|
8330
8364
|
const shape = getElementShape(sourceElement);
|
|
@@ -8342,7 +8376,7 @@ const withArrowLineAutoComplete = (board) => {
|
|
|
8342
8376
|
}
|
|
8343
8377
|
pointerMove(event);
|
|
8344
8378
|
};
|
|
8345
|
-
board.globalPointerUp = event => {
|
|
8379
|
+
board.globalPointerUp = (event) => {
|
|
8346
8380
|
if (temporaryElement) {
|
|
8347
8381
|
Transforms.insertNode(board, temporaryElement, [board.children.length]);
|
|
8348
8382
|
clearSelectedElement(board);
|
|
@@ -8418,7 +8452,7 @@ const withDrawRotate = (board) => {
|
|
|
8418
8452
|
const canRotate = () => {
|
|
8419
8453
|
const elements = getSelectedElements(board);
|
|
8420
8454
|
return (elements.length > 0 &&
|
|
8421
|
-
elements.every(el => (PlaitDrawElement.isDrawElement(el) && !PlaitDrawElement.isArrowLine(el)) ||
|
|
8455
|
+
elements.every((el) => (PlaitDrawElement.isDrawElement(el) && !PlaitDrawElement.isArrowLine(el)) ||
|
|
8422
8456
|
PlaitDrawElement.isCustomGeometryElement(board, el)));
|
|
8423
8457
|
};
|
|
8424
8458
|
board.pointerDown = (event) => {
|
|
@@ -8426,16 +8460,17 @@ const withDrawRotate = (board) => {
|
|
|
8426
8460
|
pointerDown(event);
|
|
8427
8461
|
return;
|
|
8428
8462
|
}
|
|
8429
|
-
const
|
|
8463
|
+
const activePoint = toActivePoint(board, event.x, event.y);
|
|
8430
8464
|
const elements = getSelectedElements(board);
|
|
8431
|
-
const
|
|
8432
|
-
const
|
|
8465
|
+
const rectangle = getRectangleByElements(board, elements, false);
|
|
8466
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
8467
|
+
const handleRectangle = getRotateHandleRectangle(activeRectangle);
|
|
8433
8468
|
const angle = getSelectionAngle(elements);
|
|
8434
|
-
const rotatedPoint = angle ? rotatePoints(
|
|
8469
|
+
const rotatedPoint = angle ? rotatePoints(activePoint, RectangleClient.getCenterPoint(activeRectangle), -angle) : activePoint;
|
|
8435
8470
|
if (handleRectangle && RectangleClient.isHit(RectangleClient.getRectangleByPoints([rotatedPoint, rotatedPoint]), handleRectangle)) {
|
|
8436
8471
|
rotateRef = {
|
|
8437
8472
|
elements: [...elements],
|
|
8438
|
-
startPoint:
|
|
8473
|
+
startPoint: activePoint
|
|
8439
8474
|
};
|
|
8440
8475
|
}
|
|
8441
8476
|
pointerDown(event);
|
|
@@ -8445,9 +8480,10 @@ const withDrawRotate = (board) => {
|
|
|
8445
8480
|
event.preventDefault();
|
|
8446
8481
|
const isShift = !!event.shiftKey;
|
|
8447
8482
|
addRotating(board, rotateRef);
|
|
8448
|
-
const endPoint =
|
|
8449
|
-
const
|
|
8450
|
-
const
|
|
8483
|
+
const endPoint = toActivePoint(board, event.x, event.y);
|
|
8484
|
+
const rectangle = getRectangleByElements(board, rotateRef.elements, false);
|
|
8485
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
8486
|
+
const selectionCenterPoint = RectangleClient.getCenterPoint(activeRectangle);
|
|
8451
8487
|
if (!getSelectionAngle(rotateRef.elements) && rotateRef.elements.length > 1) {
|
|
8452
8488
|
needCustomActiveRectangle = true;
|
|
8453
8489
|
}
|
|
@@ -8499,32 +8535,35 @@ const withDrawRotate = (board) => {
|
|
|
8499
8535
|
if (canRotate() && !isSelectionMoving(board)) {
|
|
8500
8536
|
if (needCustomActiveRectangle && rotateRef) {
|
|
8501
8537
|
const boundingRectangle = getRectangleByElements(board, rotateRef.elements, false);
|
|
8502
|
-
|
|
8538
|
+
const boundingActiveRectangle = toActiveRectangleFromViewBoxRectangle(board, boundingRectangle);
|
|
8539
|
+
rotateHandleG = drawRotateHandle(board, boundingActiveRectangle);
|
|
8503
8540
|
rotateHandleG.classList.add(ROTATE_HANDLE_CLASS_NAME);
|
|
8504
8541
|
if (rotateRef.angle) {
|
|
8505
|
-
setAngleForG(rotateHandleG, RectangleClient.getCenterPoint(
|
|
8542
|
+
setAngleForG(rotateHandleG, RectangleClient.getCenterPoint(boundingActiveRectangle), rotateRef.angle);
|
|
8506
8543
|
}
|
|
8507
8544
|
}
|
|
8508
8545
|
else {
|
|
8509
8546
|
const elements = getSelectedElements(board);
|
|
8510
8547
|
const boundingRectangle = getRectangleByElements(board, elements, false);
|
|
8511
|
-
|
|
8548
|
+
const boundingActiveRectangle = toActiveRectangleFromViewBoxRectangle(board, boundingRectangle);
|
|
8549
|
+
rotateHandleG = drawRotateHandle(board, boundingActiveRectangle);
|
|
8512
8550
|
rotateHandleG.classList.add(ROTATE_HANDLE_CLASS_NAME);
|
|
8513
|
-
setAngleForG(rotateHandleG, RectangleClient.getCenterPoint(
|
|
8551
|
+
setAngleForG(rotateHandleG, RectangleClient.getCenterPoint(boundingActiveRectangle), getSelectionAngle(elements));
|
|
8514
8552
|
}
|
|
8515
|
-
PlaitBoard.
|
|
8553
|
+
PlaitBoard.getActiveHost(board).append(rotateHandleG);
|
|
8516
8554
|
}
|
|
8517
8555
|
};
|
|
8518
8556
|
board.drawSelectionRectangle = () => {
|
|
8519
8557
|
if (needCustomActiveRectangle && rotateRef) {
|
|
8520
8558
|
const rectangle = getRectangleByElements(board, rotateRef.elements, false);
|
|
8521
|
-
const
|
|
8559
|
+
const activeRectangle = toActiveRectangleFromViewBoxRectangle(board, rectangle);
|
|
8560
|
+
const rectangleG = drawRectangle(board, RectangleClient.inflate(activeRectangle, ACTIVE_STROKE_WIDTH), {
|
|
8522
8561
|
stroke: SELECTION_BORDER_COLOR,
|
|
8523
8562
|
strokeWidth: ACTIVE_STROKE_WIDTH
|
|
8524
8563
|
});
|
|
8525
8564
|
rectangleG.classList.add(SELECTION_RECTANGLE_CLASS_NAME);
|
|
8526
8565
|
if (rotateRef.angle) {
|
|
8527
|
-
setAngleForG(rectangleG, RectangleClient.getCenterPoint(
|
|
8566
|
+
setAngleForG(rectangleG, RectangleClient.getCenterPoint(activeRectangle), rotateRef.angle);
|
|
8528
8567
|
}
|
|
8529
8568
|
return rectangleG;
|
|
8530
8569
|
}
|
|
@@ -8538,7 +8577,7 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8538
8577
|
super();
|
|
8539
8578
|
}
|
|
8540
8579
|
initializeGenerator() {
|
|
8541
|
-
this.activeGenerator =
|
|
8580
|
+
this.activeGenerator = createActiveGenerator(this.board, {
|
|
8542
8581
|
getStrokeWidth: () => {
|
|
8543
8582
|
return ACTIVE_STROKE_WIDTH;
|
|
8544
8583
|
},
|
|
@@ -8564,6 +8603,14 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8564
8603
|
this.initializeTextManage();
|
|
8565
8604
|
this.lineAutoCompleteGenerator = new ArrowLineAutoCompleteGenerator(this.board);
|
|
8566
8605
|
this.getRef().addGenerator(ArrowLineAutoCompleteGenerator.key, this.lineAutoCompleteGenerator);
|
|
8606
|
+
this.getRef().updateActiveSection = () => {
|
|
8607
|
+
this.activeGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8608
|
+
selected: this.selected
|
|
8609
|
+
});
|
|
8610
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8611
|
+
selected: this.selected
|
|
8612
|
+
});
|
|
8613
|
+
};
|
|
8567
8614
|
}
|
|
8568
8615
|
initialize() {
|
|
8569
8616
|
super.initialize();
|
|
@@ -8574,13 +8621,13 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8574
8621
|
this.tableGenerator.processDrawing(this.element, this.getElementG());
|
|
8575
8622
|
this.textGenerator.draw(this.getElementG());
|
|
8576
8623
|
this.rotateVerticalText();
|
|
8577
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
8624
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8578
8625
|
selected: this.selected
|
|
8579
8626
|
});
|
|
8580
8627
|
}
|
|
8581
8628
|
rotateVerticalText() {
|
|
8582
8629
|
const table = this.board.buildTable(this.element);
|
|
8583
|
-
table.cells.forEach(item => {
|
|
8630
|
+
table.cells.forEach((item) => {
|
|
8584
8631
|
if (PlaitTableElement.isVerticalText(item)) {
|
|
8585
8632
|
const textManage = getTextManageByCell(this.board, item);
|
|
8586
8633
|
if (textManage) {
|
|
@@ -8594,8 +8641,8 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8594
8641
|
}
|
|
8595
8642
|
getDrawShapeTexts(cells) {
|
|
8596
8643
|
return cells
|
|
8597
|
-
.filter(item => isCellIncludeText(item))
|
|
8598
|
-
.map(item => {
|
|
8644
|
+
.filter((item) => isCellIncludeText(item))
|
|
8645
|
+
.map((item) => {
|
|
8599
8646
|
return {
|
|
8600
8647
|
id: item.id,
|
|
8601
8648
|
text: item.text,
|
|
@@ -8643,7 +8690,7 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8643
8690
|
setSelectedCells(value.element, previousSelectedCells);
|
|
8644
8691
|
}
|
|
8645
8692
|
this.tableGenerator.processDrawing(value.element, this.getElementG());
|
|
8646
|
-
this.activeGenerator.processDrawing(value.element, PlaitBoard.
|
|
8693
|
+
this.activeGenerator.processDrawing(value.element, PlaitBoard.getActiveHost(this.board), { selected: this.selected });
|
|
8647
8694
|
const previousTexts = this.getDrawShapeTexts(previous.element.cells);
|
|
8648
8695
|
const currentTexts = this.getDrawShapeTexts(value.element.cells);
|
|
8649
8696
|
this.textGenerator.update(value.element, previousTexts, currentTexts, this.getElementG());
|
|
@@ -8653,8 +8700,8 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8653
8700
|
const hasSameSelected = value.selected === previous.selected;
|
|
8654
8701
|
const hasSameHandleState = this.activeGenerator.options.hasResizeHandle() === this.activeGenerator.hasResizeHandle;
|
|
8655
8702
|
const currentSelectedCells = getSelectedCells(value.element);
|
|
8656
|
-
if (!hasSameSelected || !hasSameHandleState || currentSelectedCells?.length) {
|
|
8657
|
-
this.activeGenerator.processDrawing(value.element, PlaitBoard.
|
|
8703
|
+
if (!hasSameSelected || !hasSameHandleState || currentSelectedCells?.length || value.selected) {
|
|
8704
|
+
this.activeGenerator.processDrawing(value.element, PlaitBoard.getActiveHost(this.board), {
|
|
8658
8705
|
selected: this.selected
|
|
8659
8706
|
});
|
|
8660
8707
|
}
|
|
@@ -8662,7 +8709,7 @@ class TableComponent extends CommonElementFlavour {
|
|
|
8662
8709
|
clearSelectedCells(value.element);
|
|
8663
8710
|
}
|
|
8664
8711
|
}
|
|
8665
|
-
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.
|
|
8712
|
+
this.lineAutoCompleteGenerator.processDrawing(this.element, PlaitBoard.getActiveHost(this.board), {
|
|
8666
8713
|
selected: this.selected
|
|
8667
8714
|
});
|
|
8668
8715
|
}
|
|
@@ -8728,7 +8775,7 @@ function withTableResize(board) {
|
|
|
8728
8775
|
const resizePoints = [resizeState.startPoint, resizeState.endPoint];
|
|
8729
8776
|
const { xZoom, yZoom } = getResizeZoom(resizePoints, originPoint, handlePoint, false, false);
|
|
8730
8777
|
const originPoints = resizeRef.options?.cell.points;
|
|
8731
|
-
const targetPoints = originPoints.map(p => {
|
|
8778
|
+
const targetPoints = originPoints.map((p) => {
|
|
8732
8779
|
return movePointByZoomAndOriginPoint(p, originPoint, xZoom, yZoom);
|
|
8733
8780
|
});
|
|
8734
8781
|
const offsetX = targetPoints[1][0] - originPoints[1][0];
|
|
@@ -8755,7 +8802,7 @@ function withTableResize(board) {
|
|
|
8755
8802
|
}, isAspectRatio, isFromCorner);
|
|
8756
8803
|
const resizeSnapRef = getSnapResizingRef(board, [resizeRef.element], resizeSnapRefOptions);
|
|
8757
8804
|
snapG = resizeSnapRef.snapG;
|
|
8758
|
-
PlaitBoard.
|
|
8805
|
+
PlaitBoard.getElementTopHost(board).append(snapG);
|
|
8759
8806
|
const points = resizeSnapRef.activePoints;
|
|
8760
8807
|
const originPoints = resizeRef.element.points;
|
|
8761
8808
|
const originRect = RectangleClient.getRectangleByPoints(originPoints);
|
|
@@ -8765,7 +8812,7 @@ function withTableResize(board) {
|
|
|
8765
8812
|
let columns = [...resizeRef.element.columns];
|
|
8766
8813
|
let rows = [...resizeRef.element.rows];
|
|
8767
8814
|
if (offsetWidth !== 0) {
|
|
8768
|
-
columns = columns.map(item => {
|
|
8815
|
+
columns = columns.map((item) => {
|
|
8769
8816
|
if (item.width) {
|
|
8770
8817
|
return {
|
|
8771
8818
|
...item,
|
|
@@ -8776,7 +8823,7 @@ function withTableResize(board) {
|
|
|
8776
8823
|
});
|
|
8777
8824
|
}
|
|
8778
8825
|
if (offsetHeight !== 0) {
|
|
8779
|
-
rows = rows.map(item => {
|
|
8826
|
+
rows = rows.map((item) => {
|
|
8780
8827
|
if (item.height) {
|
|
8781
8828
|
return {
|
|
8782
8829
|
...item,
|
|
@@ -8922,7 +8969,7 @@ const withSwimlaneCreateByDrag = (board) => {
|
|
|
8922
8969
|
const points = getDefaultSwimlanePoints(pointer, movingPoint);
|
|
8923
8970
|
temporaryElement = createDefaultSwimlane(pointer, points);
|
|
8924
8971
|
tableGenerator.processDrawing(temporaryElement, swimlaneG);
|
|
8925
|
-
PlaitBoard.
|
|
8972
|
+
PlaitBoard.getElementTopHost(board).append(swimlaneG);
|
|
8926
8973
|
}
|
|
8927
8974
|
pointerMove(event);
|
|
8928
8975
|
};
|
|
@@ -8985,11 +9032,11 @@ const withSwimlaneCreateByDrawing = (board) => {
|
|
|
8985
9032
|
isCreate: true
|
|
8986
9033
|
});
|
|
8987
9034
|
snapG = resizeSnapRef.snapG;
|
|
8988
|
-
PlaitBoard.
|
|
9035
|
+
PlaitBoard.getElementTopHost(board).append(snapG);
|
|
8989
9036
|
points = normalizeShapePoints(resizeSnapRef.activePoints, isShift);
|
|
8990
9037
|
temporaryElement = createDefaultSwimlane(pointer, points);
|
|
8991
9038
|
tableGenerator.processDrawing(temporaryElement, swimlaneG);
|
|
8992
|
-
PlaitBoard.
|
|
9039
|
+
PlaitBoard.getElementTopHost(board).append(swimlaneG);
|
|
8993
9040
|
}
|
|
8994
9041
|
pointerMove(event);
|
|
8995
9042
|
};
|
|
@@ -9291,5 +9338,5 @@ const withDraw = (board) => {
|
|
|
9291
9338
|
* Generated bundle index. Do not edit.
|
|
9292
9339
|
*/
|
|
9293
9340
|
|
|
9294
|
-
export { ArrowLineAutoCompleteGenerator, ArrowLineComponent, ArrowLineHandleKey, ArrowLineMarkerType, ArrowLineShape, BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultActivationProperty, DefaultActorProperty, DefaultArrowProperty, DefaultAssemblyProperty, DefaultBasicShapeProperty, DefaultBasicShapePropertyMap, DefaultClassProperty, DefaultCloudProperty, DefaultCombinedFragmentProperty, DefaultComponentBoxProperty, DefaultConnectorProperty, DefaultContainerProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDeletionProperty, DefaultDocumentProperty, DefaultDrawActiveStyle, DefaultDrawStyle, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultInterfaceProperty, DefaultInternalStorageProperty, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultObjectProperty, DefaultPackageProperty, DefaultPentagonArrowProperty, DefaultPortProperty, DefaultProvidedInterfaceProperty, DefaultRequiredInterfaceProperty, DefaultSwimlaneHorizontalProperty, DefaultSwimlaneHorizontalWithHeaderProperty, DefaultSwimlanePropertyMap, DefaultSwimlaneVerticalProperty, DefaultSwimlaneVerticalWithHeaderProperty, DefaultTextProperty, DefaultTwoWayArrowProperty, DefaultUMLPropertyMap, DrawThemeColors, DrawTransforms, FlowchartSymbols, GEOMETRY_NOT_CLOSED, GEOMETRY_WITHOUT_TEXT, GEOMETRY_WITH_MULTIPLE_TEXT, GeometryCommonTextKeys, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LineActiveGenerator, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineComponent, VectorLinePointerType, VectorLineShape, WithArrowLineAutoCompletePluginKey, WithDrawPluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildClipboardData, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, collectArrowLineUpdatedRefsByGeometry, createArrowLineElement, createCell, createDefaultCells, createDefaultFlowchart, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, createVectorLineElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, drawVectorLine, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement, getFirstTextOrLineElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryAlign, getGeometryPointers, getHitCell, getHitConnection, getHitConnectorPoint, getHitDrawElement, getHitIndexOfAutoCompletePoint, getHitMultipleGeometryText, getHitShape, getIndexAndDeleteCountByKeyPoint, getLineMemorizedLatest, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getMultipleTextGeometryTextKeys, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedArrowLineElements, getSelectedCells, getSelectedCustomGeometryElements, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedSwimlane, getSelectedTableCellsEditor, getSelectedTableElements, getSelectedVectorLineElements, getSnapResizingRef, getSnapResizingRefOptions, getSnappingRef, getSnappingShape, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getSwimlaneCount, getSwimlanePointers, getTextKey, getTextManage, getTextManageByCell, getTextRectangle, getTextShapeProperty, getUMLPointers, getVectorByConnection, getVectorLinePointers, getVectorLinePoints, handleArrowLineCreating, hasIllegalElbowPoint, insertClipboardData, insertElement, isCellIncludeText, isClosedCustomGeometry, isClosedDrawElement, isClosedPoints, isDrawElementIncludeText, isDrawElementsIncludeText, isEmptyTextElement, isFilledDrawElement, isGeometryClosed, isGeometryIncludeText, isHitArrowLine, isHitArrowLineText, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitElementText, isHitPolyLine, isHitVectorLine, isInsideOfShape, isMultipleTextGeometry, isMultipleTextShape, isRectangleHitDrawElement, isRectangleHitElementText, isRectangleHitRotatedElement, isRectangleHitRotatedPoints, isSelfLoop, isSingleSelectElementByTable, isSingleSelectLine, isSingleSelectSwimlane, isSingleSelectTable, isSingleTextGeometry, isSingleTextShape, isSwimlanePointers, isSwimlaneWithHeader, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText,
|
|
9341
|
+
export { ArrowLineAutoCompleteGenerator, ArrowLineComponent, ArrowLineHandleKey, ArrowLineMarkerType, ArrowLineShape, BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultActivationProperty, DefaultActorProperty, DefaultArrowProperty, DefaultAssemblyProperty, DefaultBasicShapeProperty, DefaultBasicShapePropertyMap, DefaultClassProperty, DefaultCloudProperty, DefaultCombinedFragmentProperty, DefaultComponentBoxProperty, DefaultConnectorProperty, DefaultContainerProperty, DefaultDataBaseProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultDeletionProperty, DefaultDocumentProperty, DefaultDrawActiveStyle, DefaultDrawStyle, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultInterfaceProperty, DefaultInternalStorageProperty, DefaultManualInputProperty, DefaultMergeProperty, DefaultMultiDocumentProperty, DefaultNoteProperty, DefaultObjectProperty, DefaultPackageProperty, DefaultPentagonArrowProperty, DefaultPortProperty, DefaultProvidedInterfaceProperty, DefaultRequiredInterfaceProperty, DefaultSwimlaneHorizontalProperty, DefaultSwimlaneHorizontalWithHeaderProperty, DefaultSwimlanePropertyMap, DefaultSwimlaneVerticalProperty, DefaultSwimlaneVerticalWithHeaderProperty, DefaultTextProperty, DefaultTwoWayArrowProperty, DefaultUMLPropertyMap, DrawThemeColors, DrawTransforms, FlowchartSymbols, GEOMETRY_NOT_CLOSED, GEOMETRY_WITHOUT_TEXT, GEOMETRY_WITH_MULTIPLE_TEXT, GeometryCommonTextKeys, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, LineActiveGenerator, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineComponent, VectorLinePointerType, VectorLineShape, WithArrowLineAutoCompletePluginKey, WithDrawPluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildClipboardData, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, collectArrowLineUpdatedRefsByGeometry, createArrowLineElement, createCell, createDefaultCells, createDefaultFlowchart, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, createVectorLineElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, drawVectorLine, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement, getFirstTextOrLineElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryAlign, getGeometryPointers, getHitCell, getHitConnection, getHitConnectorPoint, getHitDrawElement, getHitIndexOfAutoCompletePoint, getHitMultipleGeometryText, getHitShape, getIndexAndDeleteCountByKeyPoint, getLineMemorizedLatest, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getMultipleTextGeometryTextKeys, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedArrowLineElements, getSelectedCells, getSelectedCustomGeometryElements, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedSwimlane, getSelectedTableCellsEditor, getSelectedTableElements, getSelectedVectorLineElements, getSnapResizingRef, getSnapResizingRefOptions, getSnappingRef, getSnappingShape, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getSwimlaneCount, getSwimlanePointers, getTextKey, getTextManage, getTextManageByCell, getTextRectangle, getTextShapeProperty, getUMLPointers, getVectorByConnection, getVectorLinePointers, getVectorLinePoints, handleArrowLineCreating, hasIllegalElbowPoint, insertClipboardData, insertElement, isCellIncludeText, isClosedCustomGeometry, isClosedDrawElement, isClosedPoints, isDrawElementIncludeText, isDrawElementsIncludeText, isEmptyTextElement, isFilledDrawElement, isGeometryClosed, isGeometryIncludeText, isHitArrowLine, isHitArrowLineText, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitElementText, isHitPolyLine, isHitVectorLine, isInsideOfShape, isMultipleTextGeometry, isMultipleTextShape, isRectangleHitDrawElement, isRectangleHitElementText, isRectangleHitRotatedElement, isRectangleHitRotatedPoints, isSelfLoop, isSingleSelectElementByTable, isSingleSelectLine, isSingleSelectSwimlane, isSingleSelectTable, isSingleTextGeometry, isSingleTextShape, isSwimlanePointers, isSwimlaneWithHeader, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, setSelectedCells, setTextManage, traverseDrawShapes, updateCellIds, updateCellIdsByRowOrColumn, updateColumns, updateRowOrColumnIds, updateRows, vectorLineCreating, withArrowLineAutoComplete, withDraw };
|
|
9295
9342
|
//# sourceMappingURL=plait-draw.mjs.map
|