@plait/draw 0.62.0-next.7 → 0.62.0-next.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/constants/geometry.d.ts +1 -0
- package/esm2022/constants/geometry.mjs +8 -1
- package/esm2022/engines/basic-shapes/ellipse.mjs +5 -3
- package/esm2022/engines/basic-shapes/round-comment.mjs +5 -3
- package/esm2022/engines/flowchart/or.mjs +5 -3
- package/esm2022/engines/flowchart/summing-junction.mjs +5 -3
- package/esm2022/engines/table/table.mjs +48 -26
- package/esm2022/engines/uml/deletion.mjs +3 -2
- package/esm2022/plugins/with-swimlane-create.mjs +4 -7
- package/esm2022/plugins/with-table.mjs +15 -6
- package/esm2022/transforms/arrow-line.mjs +5 -39
- package/esm2022/transforms/common.mjs +36 -0
- package/esm2022/transforms/geometry.mjs +4 -26
- package/esm2022/transforms/index.mjs +7 -6
- package/esm2022/transforms/swimlane.mjs +1 -1
- package/esm2022/utils/arrow-line/arrow-line-common.mjs +38 -3
- package/esm2022/utils/common.mjs +12 -3
- package/esm2022/utils/geometry.mjs +5 -2
- package/esm2022/utils/style/stroke.mjs +6 -4
- package/esm2022/utils/swimlane.mjs +6 -3
- package/esm2022/utils/table.mjs +13 -5
- package/fesm2022/plait-draw.mjs +246 -165
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +11 -1
- package/transforms/arrow-line.d.ts +2 -6
- package/transforms/common.d.ts +3 -0
- package/transforms/geometry.d.ts +1 -2
- package/transforms/index.d.ts +2 -2
- package/utils/arrow-line/arrow-line-common.d.ts +5 -1
- package/utils/clipboard.d.ts +1 -1
- package/utils/common.d.ts +1 -0
- package/utils/geometry.d.ts +17 -16
- package/utils/hit.d.ts +1 -1
- package/utils/swimlane.d.ts +2 -1
package/fesm2022/plait-draw.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ACTIVE_STROKE_WIDTH, ThemeColorMode, RectangleClient, getSelectedElements, idCreator, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, rotatePointsByElement, isPolylineHitRectangle, rotateAntiPointsByElement, distanceBetweenPointAndPoint, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, PlaitBoard, getIsRecursionFunc, createG, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, createDebugGenerator, Point, arrowPoints, createPath, drawLinearPath, rotate, catmullRomFitting, setStrokeLinecap, findElements, createMask, createRect, PlaitElement, getElementById,
|
|
2
|
-
import { DEFAULT_FILL, Alignment, WithTextPluginKey, ELEMENT_TO_TEXT_MANAGES, TextManage, getMemorizedLatest, memorizeLatest, RESIZE_HANDLE_DIAMETER, getPointOnPolyline, buildText, sortElementsByArea, isFilled, getTextEditorsByElement, Generator, removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, getExtendPoint, getUnitVectorByPointAndPoint, getPointByVectorComponent, measureElement, DEFAULT_FONT_FAMILY, getFirstTextManage, ActiveGenerator, isSourceAndTargetIntersect, getPoints, DEFAULT_ROUTE_MARGIN,
|
|
1
|
+
import { ACTIVE_STROKE_WIDTH, ThemeColorMode, RectangleClient, getSelectedElements, idCreator, distanceBetweenPointAndSegments, HIT_DISTANCE_BUFFER, rotatePointsByElement, isPolylineHitRectangle, rotateAntiPointsByElement, distanceBetweenPointAndPoint, Transforms, clearSelectedElement, addSelectedElement, BoardTransforms, PlaitPointerType, depthFirstRecursion, PlaitBoard, getIsRecursionFunc, createG, SNAPPING_STROKE_WIDTH, SELECTION_BORDER_COLOR, SELECTION_FILL_COLOR, drawCircle, createDebugGenerator, Point, arrowPoints, createPath, drawLinearPath, rotate, catmullRomFitting, setStrokeLinecap, findElements, createMask, createRect, PlaitElement, getElementById, PlaitNode, hasValidAngle, toViewBoxPoint, toHostPoint, Direction, rotatePoints, getRectangleByElements, getSelectionAngle, rotatedDataPoints, isAxisChangedByAngle, isSelectionMoving, drawRectangle, getRectangleByAngle, getSnapRectangles, getTripleAxis, getMinPointDelta, SNAP_TOLERANCE, drawPointSnapLines, drawSolidLines, isPointInPolygon, getNearestPointBetweenPointAndSegments, isPointInEllipse, getNearestPointBetweenPointAndEllipse, getEllipseTangentSlope, getVectorFromPointAndSlope, drawRoundRectangle, isPointInRoundRectangle, setPathStrokeLinecap, getCrossingPointsBetweenEllipseAndSegment, drawLine, Path, RgbaToHEX, getHitElementByPoint, preventTouchMove, WritableClipboardOperationType, createClipboardContext, WritableClipboardType, addClipboardContext, setAngleForG, CursorClass, temporaryDisableSelection, PRESS_AND_MOVE_BUFFER, isMainPointer, throttleRAF, getAngleBetweenPoints, normalizeAngle, degreesToRadians, rotateElements, MERGING, ROTATE_HANDLE_CLASS_NAME, SELECTION_RECTANGLE_CLASS_NAME, isSelectedElement, isDragging } from '@plait/core';
|
|
2
|
+
import { DEFAULT_FILL, Alignment, WithTextPluginKey, ELEMENT_TO_TEXT_MANAGES, TextManage, getMemorizedLatest, memorizeLatest, RESIZE_HANDLE_DIAMETER, getPointOnPolyline, buildText, sortElementsByArea, isFilled, getTextEditorsByElement, Generator, removeDuplicatePoints, generateElbowLineRoute, simplifyOrthogonalPoints, getExtendPoint, getUnitVectorByPointAndPoint, getPointByVectorComponent, measureElement, DEFAULT_FONT_FAMILY, getFirstTextManage, ActiveGenerator, isSourceAndTargetIntersect, getPoints, DEFAULT_ROUTE_MARGIN, normalizeShapePoints, getFirstTextEditor, resetPointsAfterResize, getDirectionByVector, getRectangleResizeHandleRefs, getRotatedResizeCursorClassByAngle, ROTATE_HANDLE_DISTANCE_TO_ELEMENT, ROTATE_HANDLE_SIZE, isCornerHandle, getIndexByResizeHandle, withResize, drawHandle, getSymmetricHandleIndex, getResizeHandlePointByIndex, getDirectionFactorByDirectionComponent, getCrossingPointsBetweenPointAndSegment, isPointOnSegment, getDirectionByPointOfRectangle, getDirectionFactor, rotateVector, getOppositeDirection, rotateVectorAnti90, getSourceAndTargetOuterRectangle, getNextPoint, PRIMARY_COLOR, CommonElementFlavour, canResize, 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 { isKeyHotkey } from 'is-hotkey';
|
|
@@ -374,6 +374,13 @@ const GEOMETRY_WITHOUT_TEXT = [
|
|
|
374
374
|
UMLSymbols.requiredInterface
|
|
375
375
|
];
|
|
376
376
|
const GEOMETRY_WITH_MULTIPLE_TEXT = [UMLSymbols.package, UMLSymbols.combinedFragment];
|
|
377
|
+
const GEOMETRY_NOT_CLOSED = [
|
|
378
|
+
FlowchartSymbols.noteCurlyLeft,
|
|
379
|
+
FlowchartSymbols.noteCurlyRight,
|
|
380
|
+
FlowchartSymbols.noteSquare,
|
|
381
|
+
UMLSymbols.requiredInterface,
|
|
382
|
+
UMLSymbols.deletion
|
|
383
|
+
];
|
|
377
384
|
|
|
378
385
|
const getGeometryPointers = () => {
|
|
379
386
|
return [...Object.keys(BasicShapes), ...Object.keys(FlowchartSymbols), ...Object.keys(UMLSymbols)];
|
|
@@ -602,7 +609,10 @@ function clearSelectedCells(element) {
|
|
|
602
609
|
}
|
|
603
610
|
|
|
604
611
|
function getCellsWithPoints(board, element) {
|
|
605
|
-
const table = board
|
|
612
|
+
const table = board?.buildTable(element);
|
|
613
|
+
if (!table || !table.points || !table.columns || !table.rows) {
|
|
614
|
+
throw new Error('can not get table cells points');
|
|
615
|
+
}
|
|
606
616
|
const rectangle = RectangleClient.getRectangleByPoints(table.points);
|
|
607
617
|
const columnsCount = table.columns.length;
|
|
608
618
|
const rowsCount = table.rows.length;
|
|
@@ -634,9 +644,14 @@ function getCellsWithPoints(board, element) {
|
|
|
634
644
|
return cells;
|
|
635
645
|
}
|
|
636
646
|
function getCellWithPoints(board, table, cellId) {
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
647
|
+
try {
|
|
648
|
+
const cells = getCellsWithPoints(board, table);
|
|
649
|
+
const cellIndex = cells && table.cells.findIndex(item => item.id === cellId);
|
|
650
|
+
return cells[cellIndex];
|
|
651
|
+
}
|
|
652
|
+
catch (error) {
|
|
653
|
+
throw new Error('can not get table cell points');
|
|
654
|
+
}
|
|
640
655
|
}
|
|
641
656
|
function calculateCellsSize(items, tableSize, count, isWidth) {
|
|
642
657
|
const cellSizes = [];
|
|
@@ -1187,6 +1202,15 @@ const isDrawElementsIncludeText = (elements) => {
|
|
|
1187
1202
|
return isDrawElementIncludeText(item);
|
|
1188
1203
|
});
|
|
1189
1204
|
};
|
|
1205
|
+
const isDrawElementClosed = (element) => {
|
|
1206
|
+
if (PlaitDrawElement.isText(element) || PlaitDrawElement.isArrowLine(element) || PlaitDrawElement.isImage(element)) {
|
|
1207
|
+
return false;
|
|
1208
|
+
}
|
|
1209
|
+
if (PlaitDrawElement.isGeometry(element)) {
|
|
1210
|
+
return isGeometryClosed(element);
|
|
1211
|
+
}
|
|
1212
|
+
return true;
|
|
1213
|
+
};
|
|
1190
1214
|
const getSnappingShape = (board, point) => {
|
|
1191
1215
|
let hitElement = getHitShape(board, point);
|
|
1192
1216
|
if (hitElement) {
|
|
@@ -1241,7 +1265,7 @@ const drawBoundReaction = (board, element, roughOptions = { hasMask: true, hasCo
|
|
|
1241
1265
|
const maskG = drawShape(board, activeRectangle, shape, {
|
|
1242
1266
|
stroke: SELECTION_BORDER_COLOR,
|
|
1243
1267
|
strokeWidth: 0,
|
|
1244
|
-
fill: SELECTION_FILL_COLOR,
|
|
1268
|
+
fill: isDrawElementClosed(element) ? SELECTION_FILL_COLOR : DefaultDrawStyle.fill,
|
|
1245
1269
|
fillStyle: 'solid'
|
|
1246
1270
|
}, drawOptions);
|
|
1247
1271
|
g.appendChild(maskG);
|
|
@@ -1289,7 +1313,9 @@ const getStrokeColorByElement = (board, element) => {
|
|
|
1289
1313
|
return strokeColor;
|
|
1290
1314
|
};
|
|
1291
1315
|
const getFillByElement = (board, element) => {
|
|
1292
|
-
const defaultFill = PlaitDrawElement.isFlowchart(element)
|
|
1316
|
+
const defaultFill = PlaitDrawElement.isFlowchart(element) && isDrawElementClosed(element)
|
|
1317
|
+
? getFlowchartDefaultFill(board.theme.themeColorMode)
|
|
1318
|
+
: DefaultDrawStyle.fill;
|
|
1293
1319
|
const fill = element.fill || defaultFill;
|
|
1294
1320
|
return fill;
|
|
1295
1321
|
};
|
|
@@ -1298,7 +1324,7 @@ const getLineDashByElement = (element) => {
|
|
|
1298
1324
|
case StrokeStyle.dashed:
|
|
1299
1325
|
return [8, 8 + getStrokeWidthByElement(element)];
|
|
1300
1326
|
case StrokeStyle.dotted:
|
|
1301
|
-
return [
|
|
1327
|
+
return [2, 4 + getStrokeWidthByElement(element)];
|
|
1302
1328
|
default:
|
|
1303
1329
|
return undefined;
|
|
1304
1330
|
}
|
|
@@ -2306,6 +2332,9 @@ const isSingleTextShape = (shape) => {
|
|
|
2306
2332
|
const isSingleTextGeometry = (element) => {
|
|
2307
2333
|
return PlaitDrawElement.isGeometry(element) && isSingleTextShape(element.shape);
|
|
2308
2334
|
};
|
|
2335
|
+
const isGeometryClosed = (element) => {
|
|
2336
|
+
return !GEOMETRY_NOT_CLOSED.includes(element.shape);
|
|
2337
|
+
};
|
|
2309
2338
|
|
|
2310
2339
|
const isSelfLoop = (element) => {
|
|
2311
2340
|
return element.source.boundId && element.source.boundId === element.target.boundId;
|
|
@@ -2439,126 +2468,11 @@ const getSelectedSwimlane = (board) => {
|
|
|
2439
2468
|
return selectedElements.find(item => PlaitDrawElement.isSwimlane(item));
|
|
2440
2469
|
};
|
|
2441
2470
|
|
|
2442
|
-
const resizeArrowLine = (board, options, path) => {
|
|
2443
|
-
Transforms.setNode(board, options, path);
|
|
2444
|
-
};
|
|
2445
|
-
const setArrowLineTexts = (board, element, texts) => {
|
|
2446
|
-
const path = PlaitBoard.findPath(board, element);
|
|
2447
|
-
Transforms.setNode(board, { texts }, path);
|
|
2448
|
-
};
|
|
2449
|
-
const removeArrowLineText = (board, element, index) => {
|
|
2450
|
-
const path = PlaitBoard.findPath(board, element);
|
|
2451
|
-
const texts = element.texts?.length ? [...element.texts] : [];
|
|
2452
|
-
const newTexts = [...texts];
|
|
2453
|
-
newTexts.splice(index, 1);
|
|
2454
|
-
Transforms.setNode(board, { texts: newTexts }, path);
|
|
2455
|
-
};
|
|
2456
|
-
const setArrowLineMark = (board, handleKey, marker) => {
|
|
2457
|
-
memorizeLatest(MemorizeKey.arrowLine, handleKey, marker);
|
|
2458
|
-
const selectedElements = getSelectedArrowLineElements(board);
|
|
2459
|
-
selectedElements.forEach((element) => {
|
|
2460
|
-
const path = PlaitBoard.findPath(board, element);
|
|
2461
|
-
let handle = handleKey === ArrowLineHandleKey.source ? element.source : element.target;
|
|
2462
|
-
handle = { ...handle, marker };
|
|
2463
|
-
Transforms.setNode(board, { [handleKey]: handle }, path);
|
|
2464
|
-
});
|
|
2465
|
-
};
|
|
2466
|
-
const setArrowLineShape = (board, newProperties) => {
|
|
2467
|
-
const elements = getSelectedArrowLineElements(board);
|
|
2468
|
-
elements.map(element => {
|
|
2469
|
-
const _properties = { ...newProperties };
|
|
2470
|
-
if (element.shape === newProperties.shape) {
|
|
2471
|
-
return;
|
|
2472
|
-
}
|
|
2473
|
-
const path = PlaitBoard.findPath(board, element);
|
|
2474
|
-
Transforms.setNode(board, _properties, path);
|
|
2475
|
-
});
|
|
2476
|
-
};
|
|
2477
|
-
const collectArrowLineUpdatedRefsByGeometry = (board, geometry, refs) => {
|
|
2478
|
-
const lines = findElements(board, {
|
|
2479
|
-
match: (element) => {
|
|
2480
|
-
if (PlaitDrawElement.isArrowLine(element)) {
|
|
2481
|
-
return element.source.boundId === geometry.id || element.target.boundId === geometry.id;
|
|
2482
|
-
}
|
|
2483
|
-
return false;
|
|
2484
|
-
},
|
|
2485
|
-
recursion: element => true
|
|
2486
|
-
});
|
|
2487
|
-
if (lines.length) {
|
|
2488
|
-
lines.forEach(line => {
|
|
2489
|
-
const isSourceBound = line.source.boundId === geometry.id;
|
|
2490
|
-
const handle = isSourceBound ? 'source' : 'target';
|
|
2491
|
-
const object = { ...line[handle] };
|
|
2492
|
-
const linePoints = getArrowLinePoints(board, line);
|
|
2493
|
-
const point = isSourceBound ? linePoints[0] : linePoints[linePoints.length - 1];
|
|
2494
|
-
object.connection = getHitConnection(board, point, geometry);
|
|
2495
|
-
const path = PlaitBoard.findPath(board, line);
|
|
2496
|
-
const index = refs.findIndex(obj => Path.equals(obj.path, path));
|
|
2497
|
-
if (index === -1) {
|
|
2498
|
-
refs.push({
|
|
2499
|
-
property: {
|
|
2500
|
-
[handle]: object
|
|
2501
|
-
},
|
|
2502
|
-
path
|
|
2503
|
-
});
|
|
2504
|
-
}
|
|
2505
|
-
else {
|
|
2506
|
-
refs[index].property = { ...refs[index].property, [handle]: object };
|
|
2507
|
-
}
|
|
2508
|
-
});
|
|
2509
|
-
}
|
|
2510
|
-
};
|
|
2511
|
-
const connectArrowLineToGeometry = (board, lineElement, handle, geometryElement) => {
|
|
2512
|
-
const linePoints = PlaitArrowLine.getPoints(board, lineElement);
|
|
2513
|
-
const point = handle === ArrowLineHandleKey.source ? linePoints[0] : linePoints[linePoints.length - 1];
|
|
2514
|
-
const connection = getHitConnection(board, point, geometryElement);
|
|
2515
|
-
if (connection) {
|
|
2516
|
-
let source = lineElement.source;
|
|
2517
|
-
let target = lineElement.target;
|
|
2518
|
-
if (handle === ArrowLineHandleKey.source) {
|
|
2519
|
-
source = {
|
|
2520
|
-
...source,
|
|
2521
|
-
boundId: geometryElement.id,
|
|
2522
|
-
connection
|
|
2523
|
-
};
|
|
2524
|
-
}
|
|
2525
|
-
else {
|
|
2526
|
-
target = {
|
|
2527
|
-
...target,
|
|
2528
|
-
boundId: geometryElement.id,
|
|
2529
|
-
connection
|
|
2530
|
-
};
|
|
2531
|
-
}
|
|
2532
|
-
const path = PlaitBoard.findPath(board, lineElement);
|
|
2533
|
-
resizeArrowLine(board, { source, target }, path);
|
|
2534
|
-
}
|
|
2535
|
-
};
|
|
2536
|
-
|
|
2537
2471
|
const insertGeometry = (board, points, shape) => {
|
|
2538
2472
|
const newElement = createDefaultGeometry(board, points, shape);
|
|
2539
2473
|
insertElement(board, newElement);
|
|
2540
2474
|
return newElement;
|
|
2541
2475
|
};
|
|
2542
|
-
const insertGeometryByVector = (board, point, shape, vector) => {
|
|
2543
|
-
const shapeProperty = DefaultFlowchartPropertyMap[shape] ||
|
|
2544
|
-
DefaultBasicShapePropertyMap[shape] ||
|
|
2545
|
-
DefaultUMLPropertyMap[shape] ||
|
|
2546
|
-
DefaultBasicShapeProperty;
|
|
2547
|
-
const direction = getDirectionByVector(vector);
|
|
2548
|
-
if (direction) {
|
|
2549
|
-
let offset = 0;
|
|
2550
|
-
if ([Direction.left, Direction.right].includes(direction)) {
|
|
2551
|
-
offset = -shapeProperty.width / 2;
|
|
2552
|
-
}
|
|
2553
|
-
else {
|
|
2554
|
-
offset = -shapeProperty.height / 2;
|
|
2555
|
-
}
|
|
2556
|
-
const vectorPoint = getPointByVectorComponent(point, vector, offset);
|
|
2557
|
-
const points = RectangleClient.getPoints(RectangleClient.getRectangleByCenterPoint(vectorPoint, shapeProperty.width, shapeProperty.height));
|
|
2558
|
-
return insertGeometry(board, points, shape);
|
|
2559
|
-
}
|
|
2560
|
-
return null;
|
|
2561
|
-
};
|
|
2562
2476
|
const insertText = (board, point, text) => {
|
|
2563
2477
|
const memorizedLatest = getMemorizedLatestByPointer(BasicShapes.text);
|
|
2564
2478
|
const property = getTextShapeProperty(board, text, memorizedLatest.textProperties['font-size']);
|
|
@@ -2668,6 +2582,67 @@ const insertImage = (board, imageItem, startPoint) => {
|
|
|
2668
2582
|
Transforms.addSelectionWithTemporaryElements(board, [imageElement]);
|
|
2669
2583
|
};
|
|
2670
2584
|
|
|
2585
|
+
const resizeArrowLine = (board, options, path) => {
|
|
2586
|
+
Transforms.setNode(board, options, path);
|
|
2587
|
+
};
|
|
2588
|
+
const setArrowLineTexts = (board, element, texts) => {
|
|
2589
|
+
const path = PlaitBoard.findPath(board, element);
|
|
2590
|
+
Transforms.setNode(board, { texts }, path);
|
|
2591
|
+
};
|
|
2592
|
+
const removeArrowLineText = (board, element, index) => {
|
|
2593
|
+
const path = PlaitBoard.findPath(board, element);
|
|
2594
|
+
const texts = element.texts?.length ? [...element.texts] : [];
|
|
2595
|
+
const newTexts = [...texts];
|
|
2596
|
+
newTexts.splice(index, 1);
|
|
2597
|
+
Transforms.setNode(board, { texts: newTexts }, path);
|
|
2598
|
+
};
|
|
2599
|
+
const setArrowLineMark = (board, handleKey, marker) => {
|
|
2600
|
+
memorizeLatest(MemorizeKey.arrowLine, handleKey, marker);
|
|
2601
|
+
const selectedElements = getSelectedArrowLineElements(board);
|
|
2602
|
+
selectedElements.forEach((element) => {
|
|
2603
|
+
const path = PlaitBoard.findPath(board, element);
|
|
2604
|
+
let handle = handleKey === ArrowLineHandleKey.source ? element.source : element.target;
|
|
2605
|
+
handle = { ...handle, marker };
|
|
2606
|
+
Transforms.setNode(board, { [handleKey]: handle }, path);
|
|
2607
|
+
});
|
|
2608
|
+
};
|
|
2609
|
+
const setArrowLineShape = (board, newProperties) => {
|
|
2610
|
+
const elements = getSelectedArrowLineElements(board);
|
|
2611
|
+
elements.map(element => {
|
|
2612
|
+
const _properties = { ...newProperties };
|
|
2613
|
+
if (element.shape === newProperties.shape) {
|
|
2614
|
+
return;
|
|
2615
|
+
}
|
|
2616
|
+
const path = PlaitBoard.findPath(board, element);
|
|
2617
|
+
Transforms.setNode(board, _properties, path);
|
|
2618
|
+
});
|
|
2619
|
+
};
|
|
2620
|
+
const connectArrowLineToDraw = (board, lineElement, handle, geometryElement) => {
|
|
2621
|
+
const linePoints = PlaitArrowLine.getPoints(board, lineElement);
|
|
2622
|
+
const point = handle === ArrowLineHandleKey.source ? linePoints[0] : linePoints[linePoints.length - 1];
|
|
2623
|
+
const connection = getHitConnection(board, point, geometryElement);
|
|
2624
|
+
if (connection) {
|
|
2625
|
+
let source = lineElement.source;
|
|
2626
|
+
let target = lineElement.target;
|
|
2627
|
+
if (handle === ArrowLineHandleKey.source) {
|
|
2628
|
+
source = {
|
|
2629
|
+
...source,
|
|
2630
|
+
boundId: geometryElement.id,
|
|
2631
|
+
connection
|
|
2632
|
+
};
|
|
2633
|
+
}
|
|
2634
|
+
else {
|
|
2635
|
+
target = {
|
|
2636
|
+
...target,
|
|
2637
|
+
boundId: geometryElement.id,
|
|
2638
|
+
connection
|
|
2639
|
+
};
|
|
2640
|
+
}
|
|
2641
|
+
const path = PlaitBoard.findPath(board, lineElement);
|
|
2642
|
+
resizeArrowLine(board, { source, target }, path);
|
|
2643
|
+
}
|
|
2644
|
+
};
|
|
2645
|
+
|
|
2671
2646
|
function buildSwimlaneTable(element) {
|
|
2672
2647
|
const swimlaneElement = { ...element };
|
|
2673
2648
|
if (PlaitDrawElement.isHorizontalSwimlane(element)) {
|
|
@@ -2784,6 +2759,9 @@ const adjustSwimlaneShape = (shape) => {
|
|
|
2784
2759
|
? SwimlaneSymbols.swimlaneHorizontal
|
|
2785
2760
|
: SwimlaneSymbols.swimlaneVertical;
|
|
2786
2761
|
};
|
|
2762
|
+
const isSwimlanePointers = (board) => {
|
|
2763
|
+
return PlaitBoard.isInPointer(board, getSwimlanePointers());
|
|
2764
|
+
};
|
|
2787
2765
|
|
|
2788
2766
|
const updateSwimlaneCount = (board, swimlane, count) => {
|
|
2789
2767
|
if (count > 0 && PlaitDrawElement.isSwimlane(swimlane)) {
|
|
@@ -3026,6 +3004,37 @@ const setTableFill = (board, element, fill, path) => {
|
|
|
3026
3004
|
Transforms.setNode(board, { cells: newCells }, path);
|
|
3027
3005
|
};
|
|
3028
3006
|
|
|
3007
|
+
const insertDrawByVector = (board, point, shape, vector) => {
|
|
3008
|
+
const swimlanePointers = getSwimlanePointers();
|
|
3009
|
+
const isSwimlanePointer = swimlanePointers.includes(shape);
|
|
3010
|
+
let shapeProperty = DefaultFlowchartPropertyMap[shape] ||
|
|
3011
|
+
DefaultBasicShapePropertyMap[shape] ||
|
|
3012
|
+
DefaultUMLPropertyMap[shape] ||
|
|
3013
|
+
DefaultBasicShapeProperty;
|
|
3014
|
+
if (isSwimlanePointer) {
|
|
3015
|
+
shapeProperty = DefaultSwimlanePropertyMap[shape];
|
|
3016
|
+
}
|
|
3017
|
+
const direction = getDirectionByVector(vector);
|
|
3018
|
+
if (direction) {
|
|
3019
|
+
let offset = 0;
|
|
3020
|
+
if ([Direction.left, Direction.right].includes(direction)) {
|
|
3021
|
+
offset = -shapeProperty.width / 2;
|
|
3022
|
+
}
|
|
3023
|
+
else {
|
|
3024
|
+
offset = -shapeProperty.height / 2;
|
|
3025
|
+
}
|
|
3026
|
+
const vectorPoint = getPointByVectorComponent(point, vector, offset);
|
|
3027
|
+
const points = RectangleClient.getPoints(RectangleClient.getRectangleByCenterPoint(vectorPoint, shapeProperty.width, shapeProperty.height));
|
|
3028
|
+
if (isSwimlanePointer) {
|
|
3029
|
+
const swimlane = createDefaultSwimlane(shape, points);
|
|
3030
|
+
insertElement(board, swimlane);
|
|
3031
|
+
return swimlane;
|
|
3032
|
+
}
|
|
3033
|
+
return insertGeometry(board, points, shape);
|
|
3034
|
+
}
|
|
3035
|
+
return null;
|
|
3036
|
+
};
|
|
3037
|
+
|
|
3029
3038
|
const DrawTransforms = {
|
|
3030
3039
|
setText,
|
|
3031
3040
|
setDrawShapeText,
|
|
@@ -3039,16 +3048,16 @@ const DrawTransforms = {
|
|
|
3039
3048
|
setArrowLineMark,
|
|
3040
3049
|
setArrowLineShape,
|
|
3041
3050
|
insertImage,
|
|
3051
|
+
connectArrowLineToDraw,
|
|
3042
3052
|
switchGeometryShape,
|
|
3043
|
-
connectArrowLineToGeometry,
|
|
3044
|
-
insertGeometryByVector,
|
|
3045
3053
|
setTableText,
|
|
3046
3054
|
addSwimlaneRow,
|
|
3047
3055
|
addSwimlaneColumn,
|
|
3048
3056
|
removeSwimlaneRow,
|
|
3049
3057
|
removeSwimlaneColumn,
|
|
3050
3058
|
updateSwimlaneCount,
|
|
3051
|
-
setTableFill
|
|
3059
|
+
setTableFill,
|
|
3060
|
+
insertDrawByVector
|
|
3052
3061
|
};
|
|
3053
3062
|
|
|
3054
3063
|
const getHitRectangleResizeHandleRef = (board, rectangle, point, angle = 0) => {
|
|
@@ -3694,7 +3703,9 @@ function createEllipseEngine(createOptions) {
|
|
|
3694
3703
|
draw(board, rectangle, options) {
|
|
3695
3704
|
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
3696
3705
|
const rs = PlaitBoard.getRoughSVG(board);
|
|
3697
|
-
|
|
3706
|
+
const shape = rs.ellipse(centerPoint[0], centerPoint[1], rectangle.width, rectangle.height, { ...options, fillStyle: 'solid' });
|
|
3707
|
+
setStrokeLinecap(shape, 'round');
|
|
3708
|
+
return shape;
|
|
3698
3709
|
},
|
|
3699
3710
|
isInsidePoint(rectangle, point) {
|
|
3700
3711
|
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
@@ -4037,7 +4048,9 @@ const RoundCommentEngine = {
|
|
|
4037
4048
|
const point9 = [x1 + rectangle.width / 4, y2];
|
|
4038
4049
|
const point10 = [x1 + rectangle.width / 4, rectangle.y + rectangle.height];
|
|
4039
4050
|
const point11 = [x1 + rectangle.width / 2, y2];
|
|
4040
|
-
|
|
4051
|
+
const shape = rs.path(`M${point2[0]} ${point2[1]} A ${radius} ${radius}, 0, 0, 1, ${point3[0]} ${point3[1]} L ${point4[0]} ${point4[1]} A ${radius} ${radius}, 0, 0, 1, ${point5[0]} ${point5[1]} L ${point11[0]} ${point11[1]} ${point10[0]} ${point10[1]} ${point9[0]} ${point9[1]} ${point6[0]} ${point6[1]} A ${radius} ${radius}, 0, 0, 1, ${point7[0]} ${point7[1]} L ${point8[0]} ${point8[1]} A ${radius} ${radius}, 0, 0, 1, ${point1[0]} ${point1[1]} Z`, { ...options, fillStyle: 'solid' });
|
|
4052
|
+
setStrokeLinecap(shape, 'round');
|
|
4053
|
+
return shape;
|
|
4041
4054
|
},
|
|
4042
4055
|
isInsidePoint(rectangle, point) {
|
|
4043
4056
|
const points = [
|
|
@@ -4621,13 +4634,15 @@ const OrEngine = createEllipseEngine({
|
|
|
4621
4634
|
const rx = rectangle.width / 2;
|
|
4622
4635
|
const ry = rectangle.height / 2;
|
|
4623
4636
|
const startPoint = [rectangle.x + rectangle.width, rectangle.y + rectangle.height / 2];
|
|
4624
|
-
|
|
4637
|
+
const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
4625
4638
|
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
4626
4639
|
M${rectangle.x} ${rectangle.y + rectangle.height / 2}
|
|
4627
4640
|
L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height / 2}
|
|
4628
4641
|
M${rectangle.x + rectangle.width / 2} ${rectangle.y}
|
|
4629
4642
|
L${rectangle.x + rectangle.width / 2} ${rectangle.y + rectangle.height}
|
|
4630
4643
|
`, { ...options, fillStyle: 'solid' });
|
|
4644
|
+
setStrokeLinecap(shape, 'round');
|
|
4645
|
+
return shape;
|
|
4631
4646
|
}
|
|
4632
4647
|
});
|
|
4633
4648
|
|
|
@@ -4640,13 +4655,15 @@ const SummingJunctionEngine = createEllipseEngine({
|
|
|
4640
4655
|
const centerPoint = [rectangle.x + rectangle.width / 2, rectangle.y + rectangle.height / 2];
|
|
4641
4656
|
const line1Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x, rectangle.y], [rectangle.x + rectangle.width, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
4642
4657
|
const line2Points = getCrossingPointsBetweenEllipseAndSegment([rectangle.x + rectangle.width, rectangle.y], [rectangle.x, rectangle.y + rectangle.height], centerPoint[0], centerPoint[1], rx, ry);
|
|
4643
|
-
|
|
4658
|
+
const shape = rs.path(`M${startPoint[0]} ${startPoint[1]}
|
|
4644
4659
|
A${rx},${ry} 0 1,1 ${startPoint[0]} ${startPoint[1] - 0.01}
|
|
4645
4660
|
M${line1Points[0][0]} ${line1Points[0][1]}
|
|
4646
4661
|
L${line1Points[1][0]} ${line1Points[1][1]}
|
|
4647
4662
|
M${line2Points[0][0]} ${line2Points[0][1]}
|
|
4648
4663
|
L${line2Points[1][0]} ${line2Points[1][1]}
|
|
4649
4664
|
`, { ...options, fillStyle: 'solid' });
|
|
4665
|
+
setStrokeLinecap(shape, 'round');
|
|
4666
|
+
return shape;
|
|
4650
4667
|
}
|
|
4651
4668
|
});
|
|
4652
4669
|
|
|
@@ -5269,27 +5286,34 @@ const DisplayEngine = {
|
|
|
5269
5286
|
|
|
5270
5287
|
const TableEngine = {
|
|
5271
5288
|
draw(board, rectangle, roughOptions, options) {
|
|
5272
|
-
const rs = PlaitBoard.getRoughSVG(board);
|
|
5273
5289
|
const g = createG();
|
|
5274
|
-
|
|
5275
|
-
|
|
5276
|
-
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
|
|
5286
|
-
|
|
5287
|
-
|
|
5288
|
-
|
|
5289
|
-
|
|
5290
|
-
|
|
5291
|
-
|
|
5292
|
-
|
|
5290
|
+
try {
|
|
5291
|
+
const pointCells = getCellsWithPoints(board, { ...options?.element });
|
|
5292
|
+
if (pointCells) {
|
|
5293
|
+
const rs = PlaitBoard.getRoughSVG(board);
|
|
5294
|
+
const { x, y, width, height } = rectangle;
|
|
5295
|
+
const tableTopBorder = drawLine(rs, [x, y], [x + width, y], roughOptions);
|
|
5296
|
+
const tableLeftBorder = drawLine(rs, [x, y], [x, y + height], roughOptions);
|
|
5297
|
+
g.append(tableTopBorder, tableLeftBorder);
|
|
5298
|
+
pointCells.forEach(cell => {
|
|
5299
|
+
const rectangle = RectangleClient.getRectangleByPoints(cell.points);
|
|
5300
|
+
const { x, y, width, height } = rectangle;
|
|
5301
|
+
const cellRectangle = drawRectangle(board, {
|
|
5302
|
+
x: x + ACTIVE_STROKE_WIDTH,
|
|
5303
|
+
y: y + ACTIVE_STROKE_WIDTH,
|
|
5304
|
+
width: width - ACTIVE_STROKE_WIDTH * 2,
|
|
5305
|
+
height: height - ACTIVE_STROKE_WIDTH * 2
|
|
5306
|
+
}, { fill: cell.fill, fillStyle: 'solid', strokeWidth: 0 });
|
|
5307
|
+
const cellRightBorder = drawLine(rs, [x + width, y], [x + width, y + height], roughOptions);
|
|
5308
|
+
const cellBottomBorder = drawLine(rs, [x, y + height], [x + width, y + height], roughOptions);
|
|
5309
|
+
g.append(cellRectangle, cellRightBorder, cellBottomBorder);
|
|
5310
|
+
});
|
|
5311
|
+
setStrokeLinecap(g, 'round');
|
|
5312
|
+
}
|
|
5313
|
+
}
|
|
5314
|
+
catch (error) {
|
|
5315
|
+
console.error(error);
|
|
5316
|
+
}
|
|
5293
5317
|
return g;
|
|
5294
5318
|
},
|
|
5295
5319
|
isInsidePoint(rectangle, point) {
|
|
@@ -5306,13 +5330,28 @@ const TableEngine = {
|
|
|
5306
5330
|
return RectangleClient.getEdgeCenterPoints(rectangle);
|
|
5307
5331
|
},
|
|
5308
5332
|
getTextRectangle(element, options) {
|
|
5309
|
-
|
|
5310
|
-
|
|
5311
|
-
|
|
5333
|
+
try {
|
|
5334
|
+
if (options && options.key) {
|
|
5335
|
+
const cell = getCellWithPoints(options?.board, element, options.key);
|
|
5336
|
+
if (cell) {
|
|
5337
|
+
if (PlaitTableElement.isVerticalText(cell)) {
|
|
5338
|
+
return getVerticalTextRectangle(cell);
|
|
5339
|
+
}
|
|
5340
|
+
else {
|
|
5341
|
+
return getHorizontalTextRectangle(cell);
|
|
5342
|
+
}
|
|
5343
|
+
}
|
|
5344
|
+
}
|
|
5312
5345
|
}
|
|
5313
|
-
|
|
5314
|
-
|
|
5346
|
+
catch (error) {
|
|
5347
|
+
console.error(error);
|
|
5315
5348
|
}
|
|
5349
|
+
return {
|
|
5350
|
+
x: 0,
|
|
5351
|
+
y: 0,
|
|
5352
|
+
width: 0,
|
|
5353
|
+
height: 0
|
|
5354
|
+
};
|
|
5316
5355
|
}
|
|
5317
5356
|
};
|
|
5318
5357
|
function getVerticalTextRectangle(cell) {
|
|
@@ -5613,6 +5652,7 @@ const DeletionEngine = {
|
|
|
5613
5652
|
const shape = rs.path(`M${rectangle.x} ${rectangle.y} L${rectangle.x + rectangle.width} ${rectangle.y + rectangle.height}
|
|
5614
5653
|
M${rectangle.x + rectangle.width} ${rectangle.y} L${rectangle.x} ${rectangle.y + rectangle.height}
|
|
5615
5654
|
`, { ...options, fillStyle: 'solid', strokeWidth: 4 });
|
|
5655
|
+
setStrokeLinecap(shape, 'round');
|
|
5616
5656
|
return shape;
|
|
5617
5657
|
},
|
|
5618
5658
|
isInsidePoint(rectangle, point) {
|
|
@@ -6220,6 +6260,40 @@ const getElbowLineRouteOptions = (board, element, handleRefPair) => {
|
|
|
6220
6260
|
targetOuterRectangle
|
|
6221
6261
|
};
|
|
6222
6262
|
};
|
|
6263
|
+
const collectArrowLineUpdatedRefsByGeometry = (board, element, refs) => {
|
|
6264
|
+
const lines = findElements(board, {
|
|
6265
|
+
match: (element) => {
|
|
6266
|
+
if (PlaitDrawElement.isArrowLine(element)) {
|
|
6267
|
+
return element.source.boundId === element.id || element.target.boundId === element.id;
|
|
6268
|
+
}
|
|
6269
|
+
return false;
|
|
6270
|
+
},
|
|
6271
|
+
recursion: element => true
|
|
6272
|
+
});
|
|
6273
|
+
if (lines.length) {
|
|
6274
|
+
lines.forEach(line => {
|
|
6275
|
+
const isSourceBound = line.source.boundId === element.id;
|
|
6276
|
+
const handle = isSourceBound ? 'source' : 'target';
|
|
6277
|
+
const object = { ...line[handle] };
|
|
6278
|
+
const linePoints = getArrowLinePoints(board, line);
|
|
6279
|
+
const point = isSourceBound ? linePoints[0] : linePoints[linePoints.length - 1];
|
|
6280
|
+
object.connection = getHitConnection(board, point, element);
|
|
6281
|
+
const path = PlaitBoard.findPath(board, line);
|
|
6282
|
+
const index = refs.findIndex(obj => Path.equals(obj.path, path));
|
|
6283
|
+
if (index === -1) {
|
|
6284
|
+
refs.push({
|
|
6285
|
+
property: {
|
|
6286
|
+
[handle]: object
|
|
6287
|
+
},
|
|
6288
|
+
path
|
|
6289
|
+
});
|
|
6290
|
+
}
|
|
6291
|
+
else {
|
|
6292
|
+
refs[index].property = { ...refs[index].property, [handle]: object };
|
|
6293
|
+
}
|
|
6294
|
+
});
|
|
6295
|
+
}
|
|
6296
|
+
};
|
|
6223
6297
|
|
|
6224
6298
|
var ArrowLineMarkerType;
|
|
6225
6299
|
(function (ArrowLineMarkerType) {
|
|
@@ -8203,12 +8277,21 @@ const withTable = (board) => {
|
|
|
8203
8277
|
const selectedElements = getSelectedElements(board);
|
|
8204
8278
|
const isSingleSelection = selectedElements.length === 1;
|
|
8205
8279
|
const targetElement = selectedElements[0];
|
|
8206
|
-
if (!PlaitBoard.isReadonly(board) &&
|
|
8280
|
+
if (!PlaitBoard.isReadonly(board) &&
|
|
8281
|
+
!PlaitBoard.hasBeenTextEditing(tableBoard) &&
|
|
8282
|
+
!isVirtualKey(event) &&
|
|
8283
|
+
!isDelete(event) &&
|
|
8284
|
+
!isSpaceHotkey(event) &&
|
|
8285
|
+
isSingleSelection) {
|
|
8207
8286
|
event.preventDefault();
|
|
8208
8287
|
if (PlaitDrawElement.isElementByTable(targetElement)) {
|
|
8209
|
-
const
|
|
8210
|
-
|
|
8211
|
-
|
|
8288
|
+
const cells = getSelectedCells(targetElement);
|
|
8289
|
+
let cell = targetElement.cells.find(item => item.text && item.textHeight);
|
|
8290
|
+
if (cells?.length) {
|
|
8291
|
+
cell = cells.find(item => item.text && item.textHeight);
|
|
8292
|
+
}
|
|
8293
|
+
if (cell) {
|
|
8294
|
+
editCell(cell);
|
|
8212
8295
|
return;
|
|
8213
8296
|
}
|
|
8214
8297
|
}
|
|
@@ -8254,14 +8337,12 @@ const withTable = (board) => {
|
|
|
8254
8337
|
};
|
|
8255
8338
|
|
|
8256
8339
|
const isSwimlaneDndMode = (board) => {
|
|
8257
|
-
const
|
|
8258
|
-
const isSwimlanePointer = PlaitBoard.isInPointer(board, swimlanePointers);
|
|
8340
|
+
const isSwimlanePointer = isSwimlanePointers(board);
|
|
8259
8341
|
const dndMode = isSwimlanePointer && isDndMode(board);
|
|
8260
8342
|
return dndMode;
|
|
8261
8343
|
};
|
|
8262
8344
|
const isSwimlaneDrawingMode = (board) => {
|
|
8263
|
-
const
|
|
8264
|
-
const isSwimlanePointer = PlaitBoard.isInPointer(board, swimlanePointers);
|
|
8345
|
+
const isSwimlanePointer = isSwimlanePointers(board);
|
|
8265
8346
|
const drawingMode = isSwimlanePointer && isDrawingMode(board);
|
|
8266
8347
|
return drawingMode;
|
|
8267
8348
|
};
|
|
@@ -8506,5 +8587,5 @@ const withDraw = (board) => {
|
|
|
8506
8587
|
* Generated bundle index. Do not edit.
|
|
8507
8588
|
*/
|
|
8508
8589
|
|
|
8509
|
-
export { ArrowLineActiveGenerator, 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_WITHOUT_TEXT, GEOMETRY_WITH_MULTIPLE_TEXT, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryCommonTextKeys, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, StrokeStyle, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineShape, WithArrowLineAutoCompletePluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, createArrowLineElement, createCell, createDefaultCells, createDefaultFlowchart, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon$1 as getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getDrawHitElement, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement, getFirstTextOrLineElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryAlign, getGeometryPointers, getHitCell, getHitConnection, getHitConnectorPoint, getHitIndexOfAutoCompletePoint, getHitMultipleGeometryText, getHitShape, getIndexAndDeleteCountByKeyPoint, getLineDashByElement, getLineMemorizedLatest, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getMultipleTextGeometryTextKeys, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedArrowLineElements, getSelectedCells, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedSwimlane, getSelectedTableCellsEditor, getSelectedTableElements, getSnapResizingRef, getSnapResizingRefOptions, getSnappingRef, getSnappingShape, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getSwimlaneCount, getSwimlanePointers, getTextKey, getTextManage, getTextManageByCell, getTextRectangle, getTextShapeProperty, getUMLPointers, getVectorByConnection, handleArrowLineCreating, hasIllegalElbowPoint, insertElement, isCellIncludeText, isDrawElementIncludeText, isDrawElementsIncludeText, isGeometryIncludeText, isHitArrowLine, isHitArrowLineText, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitElementText, isHitPolyLine, isInsideOfShape, isMultipleTextGeometry, isMultipleTextShape, isRectangleHitDrawElement, isRectangleHitElementText, isSelfLoop, isSingleSelectElementByTable, isSingleSelectSwimlane, isSingleSelectTable, isSingleTextGeometry, isSingleTextShape, isSwimlaneWithHeader, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, rerenderGeometryActive, setSelectedCells, setTextManage, traverseDrawShapes, updateCellIds, updateCellIdsByRowOrColumn, updateColumns, updateRowOrColumnIds, updateRows, withArrowLineAutoComplete, withDraw };
|
|
8590
|
+
export { ArrowLineActiveGenerator, 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, GeometryComponent, GeometryShapeGenerator, GeometryThreshold, KEY_TO_TEXT_MANAGE, LINE_HIT_GEOMETRY_BUFFER, LINE_SNAPPING_BUFFER, LINE_SNAPPING_CONNECTOR_BUFFER, MIN_TEXT_WIDTH, MemorizeKey, MultipleTextGeometryCommonTextKeys, MultipleTextGeometryTextKeys, PlaitArrowLine, PlaitDrawElement, PlaitGeometry, PlaitTableElement, Q2C, SELECTED_CELLS, SWIMLANE_HEADER_SIZE, ShapeDefaultSpace, SingleTextGenerator, StrokeStyle, SwimlaneDrawSymbols, SwimlaneSymbols, TableGenerator, TableSymbols, TextGenerator, UMLSymbols, VectorLineShape, WithArrowLineAutoCompletePluginKey, adjustSwimlaneShape, alignElbowSegment, alignPoints, buildDefaultTextsByShape, buildSwimlaneTable, clearSelectedCells, collectArrowLineUpdatedRefsByGeometry, createArrowLineElement, createCell, createDefaultCells, createDefaultFlowchart, createDefaultGeometry, createDefaultRowsOrColumns, createDefaultSwimlane, createGeometryElement, createGeometryElementWithText, createGeometryElementWithoutText, createMultipleTextGeometryElement, createTextElement, createUMLClassOrInterfaceGeometryElement, debugGenerator$1 as debugGenerator, deleteTextManage, drawArrowLine, drawArrowLineArrow, drawBoundReaction, drawGeometry, drawShape, editCell, editText, getArrowLineHandleRefPair, getArrowLinePointers, getArrowLinePoints, getArrowLineTextRectangle, getArrowLines, getAutoCompletePoints, getBasicPointers, getCellWithPoints, getCellsRectangle, getCellsWithPoints, getCenterPointsOnPolygon$1 as getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultBasicShapeProperty, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultSwimlanePoints, getDefaultTextPoints, getDefaultUMLProperty, getDrawDefaultStrokeColor, getDrawHitElement, getElbowLineRouteOptions, getElbowPoints, getFillByElement, getFirstFilledDrawElement, getFirstTextOrLineElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryAlign, getGeometryPointers, getHitCell, getHitConnection, getHitConnectorPoint, getHitIndexOfAutoCompletePoint, getHitMultipleGeometryText, getHitShape, getIndexAndDeleteCountByKeyPoint, getLineDashByElement, getLineMemorizedLatest, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getMidKeyPoints, getMiddlePoints, getMirrorDataPoints, getMultipleTextGeometryTextKeys, getNearestPoint, getNextRenderPoints, getNextSourceAndTargetPoints, getResizedPreviousAndNextPoint, getSelectedArrowLineElements, getSelectedCells, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedSwimlane, getSelectedTableCellsEditor, getSelectedTableElements, getSnapResizingRef, getSnapResizingRefOptions, getSnappingRef, getSnappingShape, getSourceAndTargetRectangle, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getSwimlaneCount, getSwimlanePointers, getTextKey, getTextManage, getTextManageByCell, getTextRectangle, getTextShapeProperty, getUMLPointers, getVectorByConnection, handleArrowLineCreating, hasIllegalElbowPoint, insertElement, isCellIncludeText, isDrawElementClosed, isDrawElementIncludeText, isDrawElementsIncludeText, isGeometryClosed, isGeometryIncludeText, isHitArrowLine, isHitArrowLineText, isHitDrawElement, isHitEdgeOfShape, isHitElementInside, isHitElementText, isHitPolyLine, isInsideOfShape, isMultipleTextGeometry, isMultipleTextShape, isRectangleHitDrawElement, isRectangleHitElementText, isSelfLoop, isSingleSelectElementByTable, isSingleSelectSwimlane, isSingleSelectTable, isSingleTextGeometry, isSingleTextShape, isSwimlanePointers, isSwimlaneWithHeader, isTextExceedingBounds, isUpdatedHandleIndex, isUseDefaultOrthogonalRoute, memorizeLatestShape, memorizeLatestText, rerenderGeometryActive, setSelectedCells, setTextManage, traverseDrawShapes, updateCellIds, updateCellIdsByRowOrColumn, updateColumns, updateRowOrColumnIds, updateRows, withArrowLineAutoComplete, withDraw };
|
|
8510
8591
|
//# sourceMappingURL=plait-draw.mjs.map
|