@plait/draw 0.41.0 → 0.43.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/geometry.component.mjs +1 -1
- package/esm2022/plugins/with-draw-fragment.mjs +3 -4
- package/esm2022/plugins/with-geometry-create.mjs +7 -7
- package/esm2022/transforms/geometry.mjs +8 -5
- package/esm2022/transforms/line.mjs +2 -2
- package/esm2022/utils/geometry.mjs +12 -10
- package/esm2022/utils/line.mjs +10 -4
- package/fesm2022/plait-draw.mjs +32 -22
- package/fesm2022/plait-draw.mjs.map +1 -1
- package/package.json +1 -1
- package/transforms/geometry.d.ts +1 -1
- package/transforms/index.d.ts +1 -1
- package/utils/clipboard.d.ts +1 -1
- package/utils/geometry.d.ts +3 -4
- package/utils/line.d.ts +1 -1
package/fesm2022/plait-draw.mjs
CHANGED
|
@@ -1456,13 +1456,12 @@ const getDrawDefaultStrokeColor = (theme) => {
|
|
|
1456
1456
|
const getFlowchartDefaultFill = (theme) => {
|
|
1457
1457
|
return DrawThemeColors[theme].fill;
|
|
1458
1458
|
};
|
|
1459
|
-
const
|
|
1459
|
+
const getTextShapeProperty = (board, text = DefaultTextProperty.text, fontSize) => {
|
|
1460
1460
|
fontSize = fontSize ? Number(fontSize) : DEFAULT_FONT_SIZE;
|
|
1461
|
-
const textSize = getTextSize(board,
|
|
1461
|
+
const textSize = getTextSize(board, text, Infinity, { fontSize });
|
|
1462
1462
|
return {
|
|
1463
1463
|
width: textSize.width + ShapeDefaultSpace.rectangleAndText * 2,
|
|
1464
|
-
height: textSize.height
|
|
1465
|
-
text: '文本'
|
|
1464
|
+
height: textSize.height
|
|
1466
1465
|
};
|
|
1467
1466
|
};
|
|
1468
1467
|
const getDefaultGeometryPoints = (pointer, centerPoint) => {
|
|
@@ -1479,7 +1478,7 @@ const getDefaultGeometryProperty = (pointer) => {
|
|
|
1479
1478
|
}
|
|
1480
1479
|
};
|
|
1481
1480
|
const getDefaultTextPoints = (board, centerPoint, fontSize) => {
|
|
1482
|
-
const property =
|
|
1481
|
+
const property = getTextShapeProperty(board, DefaultTextProperty.text, fontSize);
|
|
1483
1482
|
return getPointsByCenterPoint(centerPoint, property.width, property.height);
|
|
1484
1483
|
};
|
|
1485
1484
|
const insertElement = (board, element) => {
|
|
@@ -1489,14 +1488,17 @@ const insertElement = (board, element) => {
|
|
|
1489
1488
|
addSelectedElement(board, element);
|
|
1490
1489
|
BoardTransforms.updatePointerType(board, PlaitPointerType.selection);
|
|
1491
1490
|
};
|
|
1492
|
-
const
|
|
1491
|
+
const createTextElement = (board, points, text = DefaultTextProperty.text, textHeight) => {
|
|
1493
1492
|
const memorizedLatest = getMemorizedLatestByPointer(BasicShapes.text);
|
|
1494
|
-
|
|
1495
|
-
return createGeometryElement(BasicShapes.text, points,
|
|
1493
|
+
textHeight = textHeight ? textHeight : getRectangleByPoints(points).height;
|
|
1494
|
+
return createGeometryElement(BasicShapes.text, points, text, memorizedLatest.geometryProperties, {
|
|
1495
|
+
...memorizedLatest.textProperties,
|
|
1496
|
+
textHeight
|
|
1497
|
+
});
|
|
1496
1498
|
};
|
|
1497
1499
|
const createDefaultGeometry = (board, points, shape) => {
|
|
1498
1500
|
const memorizedLatest = getMemorizedLatestByPointer(shape);
|
|
1499
|
-
const textHeight =
|
|
1501
|
+
const textHeight = getTextShapeProperty(board, DefaultTextProperty.text, memorizedLatest.textProperties['font-size']).height;
|
|
1500
1502
|
return createGeometryElement(shape, points, '', {
|
|
1501
1503
|
strokeWidth: DefaultBasicShapeProperty.strokeWidth,
|
|
1502
1504
|
...memorizedLatest.geometryProperties
|
|
@@ -1918,14 +1920,20 @@ const getConnectionPoint = (geometry, connection, direction, delta) => {
|
|
|
1918
1920
|
return RectangleClient.getConnectionPoint(rectangle, connection);
|
|
1919
1921
|
}
|
|
1920
1922
|
};
|
|
1921
|
-
const transformPointToConnection = (board, point, hitElement
|
|
1923
|
+
const transformPointToConnection = (board, point, hitElement) => {
|
|
1922
1924
|
let rectangle = getRectangleByPoints(hitElement.points);
|
|
1923
|
-
rectangle = RectangleClient.inflate(rectangle,
|
|
1924
|
-
let nearestPoint = getNearestPoint(hitElement, point,
|
|
1925
|
+
rectangle = RectangleClient.inflate(rectangle, ACTIVE_STROKE_WIDTH);
|
|
1926
|
+
let nearestPoint = getNearestPoint(hitElement, point, ACTIVE_STROKE_WIDTH);
|
|
1925
1927
|
const hitConnector = getHitConnectorPoint(nearestPoint, hitElement, rectangle);
|
|
1926
1928
|
nearestPoint = hitConnector ? hitConnector : nearestPoint;
|
|
1927
1929
|
return [(nearestPoint[0] - rectangle.x) / rectangle.width, (nearestPoint[1] - rectangle.y) / rectangle.height];
|
|
1928
1930
|
};
|
|
1931
|
+
// export const getConnectionByPointOnRectangleEdge = (board: PlaitBoard, point: Point, hitElement: PlaitShape): Point => {
|
|
1932
|
+
// let rectangle = getRectangleByPoints(hitElement.points);
|
|
1933
|
+
// const hitConnector = getHitConnectorPoint(point, hitElement, rectangle);
|
|
1934
|
+
// const newPoint = hitConnector ?? point;
|
|
1935
|
+
// return [(newPoint[0] - rectangle.x) / rectangle.width, (newPoint[1] - rectangle.y) / rectangle.height];
|
|
1936
|
+
// };
|
|
1929
1937
|
const getHitConnectorPoint = (movingPoint, hitElement, rectangle) => {
|
|
1930
1938
|
const shape = getShape(hitElement);
|
|
1931
1939
|
const connector = getEngine(shape).getConnectorPoints(rectangle);
|
|
@@ -2303,7 +2311,7 @@ const collectLineUpdatedRefsByGeometry = (board, geometry, refs) => {
|
|
|
2303
2311
|
const connectLineToGeometry = (board, lineElement, handle, geometryElement) => {
|
|
2304
2312
|
const linePoints = PlaitLine.getPoints(board, lineElement);
|
|
2305
2313
|
const point = handle === LineHandleKey.source ? linePoints[0] : linePoints[linePoints.length - 1];
|
|
2306
|
-
const connection = transformPointToConnection(board, point, geometryElement
|
|
2314
|
+
const connection = transformPointToConnection(board, point, geometryElement);
|
|
2307
2315
|
if (connection) {
|
|
2308
2316
|
let source = lineElement.source;
|
|
2309
2317
|
let target = lineElement.target;
|
|
@@ -2348,8 +2356,11 @@ const insertGeometryByVector = (board, point, shape, vector) => {
|
|
|
2348
2356
|
}
|
|
2349
2357
|
return null;
|
|
2350
2358
|
};
|
|
2351
|
-
const insertText = (board,
|
|
2352
|
-
const
|
|
2359
|
+
const insertText = (board, point, text) => {
|
|
2360
|
+
const memorizedLatest = getMemorizedLatestByPointer(BasicShapes.text);
|
|
2361
|
+
const property = getTextShapeProperty(board, text, memorizedLatest.textProperties['font-size']);
|
|
2362
|
+
const points = [point, [point[0] + property.width, point[1] + property.height]];
|
|
2363
|
+
const newElement = createTextElement(board, points, text);
|
|
2353
2364
|
insertElement(board, newElement);
|
|
2354
2365
|
};
|
|
2355
2366
|
const resizeGeometry = (board, points, textHeight, path) => {
|
|
@@ -2934,9 +2945,9 @@ const withGeometryCreateByDrag = (board) => {
|
|
|
2934
2945
|
if (dragMode) {
|
|
2935
2946
|
const memorizedLatest = getMemorizedLatestByPointer(pointer);
|
|
2936
2947
|
if (pointer === BasicShapes.text) {
|
|
2937
|
-
const property =
|
|
2948
|
+
const property = getTextShapeProperty(board, DefaultTextProperty.text, memorizedLatest.textProperties['font-size']);
|
|
2938
2949
|
const points = getPointsByCenterPoint(movingPoint, property.width, property.height);
|
|
2939
|
-
temporaryElement =
|
|
2950
|
+
temporaryElement = createTextElement(board, points);
|
|
2940
2951
|
if (!fakeCreateTextRef) {
|
|
2941
2952
|
const textManage = new TextManage(board, PlaitBoard.getComponent(board).viewContainerRef, {
|
|
2942
2953
|
getRectangle: () => {
|
|
@@ -3010,9 +3021,9 @@ const withGeometryCreateByDrawing = (board) => {
|
|
|
3010
3021
|
preventTouchMove(board, event, true);
|
|
3011
3022
|
if (pointer === BasicShapes.text) {
|
|
3012
3023
|
const memorizedLatest = getMemorizedLatestByPointer(pointer);
|
|
3013
|
-
const property =
|
|
3024
|
+
const property = getTextShapeProperty(board, DefaultTextProperty.text, memorizedLatest.textProperties['font-size']);
|
|
3014
3025
|
const points = getPointsByCenterPoint(point, property.width, property.height);
|
|
3015
|
-
const textElement =
|
|
3026
|
+
const textElement = createTextElement(board, points);
|
|
3016
3027
|
insertElement(board, textElement);
|
|
3017
3028
|
start = null;
|
|
3018
3029
|
}
|
|
@@ -3161,8 +3172,7 @@ const withDrawFragment = (baseBoard) => {
|
|
|
3161
3172
|
const insertAsChildren = selectedElements.length === 1 && selectedElements[0].children;
|
|
3162
3173
|
const insertAsFreeText = !insertAsChildren;
|
|
3163
3174
|
if (text && insertAsFreeText) {
|
|
3164
|
-
|
|
3165
|
-
DrawTransforms.insertText(board, [targetPoint, [targetPoint[0] + width, targetPoint[1] + height]], text);
|
|
3175
|
+
DrawTransforms.insertText(board, targetPoint, text);
|
|
3166
3176
|
return;
|
|
3167
3177
|
}
|
|
3168
3178
|
}
|
|
@@ -3831,5 +3841,5 @@ const withDraw = (board) => {
|
|
|
3831
3841
|
* Generated bundle index. Do not edit.
|
|
3832
3842
|
*/
|
|
3833
3843
|
|
|
3834
|
-
export { BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultBasicShapeProperty, DefaultConnectorProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultGeometryActiveStyle, DefaultGeometryStyle, DefaultManualInputProperty, DefaultMergeProperty, DefaultTextProperty, DrawThemeColors, DrawTransforms, FlowchartSymbols, GeometryComponent, GeometryThreshold, LineComponent, LineHandleKey, LineMarkerType, LineShape, MemorizeKey, PlaitDrawElement, PlaitGeometry, PlaitLine, Q2C, REACTION_MARGIN, ShapeDefaultSpace, StrokeStyle, WithLineAutoCompletePluginKey, alignPoints, createDefaultFlowchart, createDefaultGeometry,
|
|
3844
|
+
export { BasicShapes, DEFAULT_IMAGE_WIDTH, DefaultBasicShapeProperty, DefaultConnectorProperty, DefaultDataProperty, DefaultDecisionProperty, DefaultFlowchartProperty, DefaultFlowchartPropertyMap, DefaultGeometryActiveStyle, DefaultGeometryStyle, DefaultManualInputProperty, DefaultMergeProperty, DefaultTextProperty, DrawThemeColors, DrawTransforms, FlowchartSymbols, GeometryComponent, GeometryThreshold, LineComponent, LineHandleKey, LineMarkerType, LineShape, MemorizeKey, PlaitDrawElement, PlaitGeometry, PlaitLine, Q2C, REACTION_MARGIN, ShapeDefaultSpace, StrokeStyle, WithLineAutoCompletePluginKey, alignPoints, createDefaultFlowchart, createDefaultGeometry, createGeometryElement, createLineElement, createTextElement, drawBoundMask, drawGeometry, drawLine, getAutoCompletePoints, getBasicPointers, getBoardLines, getCenterPointsOnPolygon, getConnectionPoint, getCurvePoints, getDefaultFlowchartProperty, getDefaultGeometryPoints, getDefaultGeometryProperty, getDefaultTextPoints, getDrawDefaultStrokeColor, getEdgeOnPolygonByPoint, getElbowPoints, getFillByElement, getFlowchartDefaultFill, getFlowchartPointers, getGeometryPointers, getHitConnectorPoint, getHitIndexOfAutoCompletePoint, getHitLineTextIndex, getLineDashByElement, getLineHandleRefPair, getLineMemorizedLatest, getLinePointers, getLinePoints, getLineTextRectangle, getMemorizeKey, getMemorizedLatestByPointer, getMemorizedLatestShape, getNearestPoint, getPointsByCenterPoint, getSelectedDrawElements, getSelectedGeometryElements, getSelectedImageElements, getSelectedLineElements, getStrokeColorByElement, getStrokeStyleByElement, getStrokeWidthByElement, getTextRectangle, getTextShapeProperty, getVectorByConnection, handleLineCreating, insertElement, isHitDrawElement, isHitLineText, isHitPolyLine, isRectangleHitDrawElement, isTextExceedingBounds, memorizeLatestShape, memorizeLatestText, transformOpsToPoints, transformPointToConnection, withDraw, withLineAutoComplete };
|
|
3835
3845
|
//# sourceMappingURL=plait-draw.mjs.map
|