orcasvn-react-diagrams 0.1.57 → 0.1.59
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/dist/cjs/index.js +122 -73
- package/dist/cjs/types/components/paper.d.ts +2 -0
- package/dist/cjs/types/models/IEditorContext.d.ts +4 -0
- package/dist/cjs/types/models/IElementSelectorProps.d.ts +1 -0
- package/dist/cjs/types/models/callbackTypes.d.ts +1 -0
- package/dist/cjs/types/models/implementations/EditorContext.d.ts +4 -0
- package/dist/cjs/types/utils/constants.d.ts +1 -0
- package/dist/cjs/types/utils/index.d.ts +1 -0
- package/dist/esm/index.js +122 -74
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/paper.d.ts +2 -0
- package/dist/esm/types/models/IEditorContext.d.ts +4 -0
- package/dist/esm/types/models/IElementSelectorProps.d.ts +1 -0
- package/dist/esm/types/models/callbackTypes.d.ts +1 -0
- package/dist/esm/types/models/implementations/EditorContext.d.ts +4 -0
- package/dist/esm/types/utils/constants.d.ts +1 -0
- package/dist/esm/types/utils/index.d.ts +1 -0
- package/dist/index.d.ts +13 -1
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -817,6 +817,8 @@ var EVENT_ELEMENT_MOUSE_MOVE = 'elementMouseMove';
|
|
|
817
817
|
var EVENT_ELEMENT_MOUSE_LEAVE = 'elementMouseLeave';
|
|
818
818
|
var EVENT_ELEMENT_MOUSE_UP = 'elementMouseUp';
|
|
819
819
|
var EVENT_ELEMENT_MOUSE_DOWN = 'elementMouseDown';
|
|
820
|
+
var EVENT_MANUALLY_SELECT_ELEMENT = 'manuallySelectElement';
|
|
821
|
+
var EVENT_MANUALLY_TRIGGER_DRAGGING_ELEMENT = 'manuallyTriggerDraggingElement';
|
|
820
822
|
var EVENT_LINK_SELECTED = 'linkSelected';
|
|
821
823
|
var EVENT_TEXT_SELECTED = 'textSelected';
|
|
822
824
|
var EditorContext = /** @class */ (function () {
|
|
@@ -1071,6 +1073,18 @@ var EditorContext = /** @class */ (function () {
|
|
|
1071
1073
|
EditorContext.prototype.onManuallyTriggerRenderPort = function (callback) {
|
|
1072
1074
|
return this.addEventListener(EVENT_MANUALLY_RENDER_PORT, callback);
|
|
1073
1075
|
};
|
|
1076
|
+
EditorContext.prototype.setSelectedElement = function (element) {
|
|
1077
|
+
this._eventEmitter.emit(EVENT_MANUALLY_SELECT_ELEMENT, element);
|
|
1078
|
+
};
|
|
1079
|
+
EditorContext.prototype.onManuallySelectElement = function (callback) {
|
|
1080
|
+
return this.addEventListener(EVENT_MANUALLY_SELECT_ELEMENT, callback);
|
|
1081
|
+
};
|
|
1082
|
+
EditorContext.prototype.triggerDraggingElement = function (element) {
|
|
1083
|
+
this._eventEmitter.emit(EVENT_MANUALLY_TRIGGER_DRAGGING_ELEMENT, element);
|
|
1084
|
+
};
|
|
1085
|
+
EditorContext.prototype.onManuallyTriggerDraggingElement = function (callback) {
|
|
1086
|
+
return this.addEventListener(EVENT_MANUALLY_TRIGGER_DRAGGING_ELEMENT, callback);
|
|
1087
|
+
};
|
|
1074
1088
|
return EditorContext;
|
|
1075
1089
|
}());
|
|
1076
1090
|
|
|
@@ -1215,6 +1229,7 @@ var EVENT_NAME = {
|
|
|
1215
1229
|
ELEMENT_DELETED: 'element_deleted',
|
|
1216
1230
|
ELEMENT_SELECTED: 'element_selected',
|
|
1217
1231
|
COMMAND_RENDER_ELEMENT: 'command_render_element',
|
|
1232
|
+
START_DRAGGING_ELEMENT: 'start_dragging_element',
|
|
1218
1233
|
//PORT
|
|
1219
1234
|
PORT_MOUSE_DOWN: 'port_mouse_down',
|
|
1220
1235
|
PORT_MOUSE_UP: 'port_mouse_up',
|
|
@@ -7599,10 +7614,71 @@ var getRotatedSVGBBox = function (svgElement) {
|
|
|
7599
7614
|
}
|
|
7600
7615
|
};
|
|
7601
7616
|
|
|
7617
|
+
//Automatically add points on the link so that the link does not cross elements, default maximum 10 points
|
|
7618
|
+
var automationAddPointsToLink = function (eleLink, elements, limitPoint) {
|
|
7619
|
+
if (limitPoint === void 0) { limitPoint = 10; }
|
|
7620
|
+
if (!eleLink.targetElement || !eleLink.targetPort) {
|
|
7621
|
+
throw new Error("Target element is not found in element link");
|
|
7622
|
+
}
|
|
7623
|
+
var sourceElement = eleLink.sourceElement, sourcePort = eleLink.sourcePort, targetElement = eleLink.targetElement, targetPort = eleLink.targetPort;
|
|
7624
|
+
var absolutePositionOfSourceEle = getAbsolutePosition(sourceElement);
|
|
7625
|
+
var absolutePositionOfTargetEle = getAbsolutePosition(targetElement);
|
|
7626
|
+
var sourcePosition = {
|
|
7627
|
+
x: absolutePositionOfSourceEle.x + sourcePort.position.x,
|
|
7628
|
+
y: absolutePositionOfSourceEle.y + sourcePort.position.y
|
|
7629
|
+
};
|
|
7630
|
+
var targetPosition = {
|
|
7631
|
+
x: absolutePositionOfTargetEle.x + targetPort.position.x,
|
|
7632
|
+
y: absolutePositionOfTargetEle.y + targetPort.position.y
|
|
7633
|
+
};
|
|
7634
|
+
var fourVertexesOfSourceEleBBox = getFourVertexesOfBBoxFromElement(sourceElement);
|
|
7635
|
+
var fourVertexesOfTargetEleBBox = getFourVertexesOfBBoxFromElement(targetElement);
|
|
7636
|
+
var projectedSourcePositionOnBBox = findNearestProjectedPoint(sourcePosition, [
|
|
7637
|
+
[fourVertexesOfSourceEleBBox[0], fourVertexesOfSourceEleBBox[1]],
|
|
7638
|
+
[fourVertexesOfSourceEleBBox[1], fourVertexesOfSourceEleBBox[2]],
|
|
7639
|
+
[fourVertexesOfSourceEleBBox[2], fourVertexesOfSourceEleBBox[3]],
|
|
7640
|
+
[fourVertexesOfSourceEleBBox[3], fourVertexesOfSourceEleBBox[0]],
|
|
7641
|
+
]);
|
|
7642
|
+
var projectedTargetPositionOnBBox = findNearestProjectedPoint(targetPosition, [
|
|
7643
|
+
[fourVertexesOfTargetEleBBox[0], fourVertexesOfTargetEleBBox[1]],
|
|
7644
|
+
[fourVertexesOfTargetEleBBox[1], fourVertexesOfTargetEleBBox[2]],
|
|
7645
|
+
[fourVertexesOfTargetEleBBox[2], fourVertexesOfTargetEleBBox[3]],
|
|
7646
|
+
[fourVertexesOfTargetEleBBox[3], fourVertexesOfTargetEleBBox[0]],
|
|
7647
|
+
]);
|
|
7648
|
+
var numberOfPoints = 0;
|
|
7649
|
+
//create points between the start and end points, to create a line segment that passes through the points without intersecting the elements
|
|
7650
|
+
function generatePositions(sourcePosition, targetPosition, elements) {
|
|
7651
|
+
var firstIntersection = getFirstIntersection(sourcePosition, targetPosition, elements);
|
|
7652
|
+
//If there is no intersection point, then the line connecting the two points does not intersect any element.
|
|
7653
|
+
if (!firstIntersection || limitPoint === numberOfPoints)
|
|
7654
|
+
return [];
|
|
7655
|
+
var nearestIntersection = firstIntersection.nearestIntersection; firstIntersection.intersectionPointsList; var intersectedElement = firstIntersection.element;
|
|
7656
|
+
//Calculate to create a replacement point
|
|
7657
|
+
var replacementPosition = generateSubstitutePosition(nearestIntersection, targetPosition, intersectedElement);
|
|
7658
|
+
if (!replacementPosition) {
|
|
7659
|
+
replacementPosition = {
|
|
7660
|
+
x: nearestIntersection.x,
|
|
7661
|
+
y: nearestIntersection.y
|
|
7662
|
+
};
|
|
7663
|
+
}
|
|
7664
|
+
//Increases the number of points found by 1
|
|
7665
|
+
numberOfPoints += 1;
|
|
7666
|
+
//Create points with the starting point being the sourcePosition and the ending point being the newly created point
|
|
7667
|
+
var prependedPoints = generatePositions(sourcePosition, replacementPosition, elements);
|
|
7668
|
+
//Create points with the starting point being the new newly created point and the ending point being the targetPosition
|
|
7669
|
+
var appendedPoints = generatePositions(replacementPosition, targetPosition, elements);
|
|
7670
|
+
return __spreadArray(__spreadArray(__spreadArray([], prependedPoints, true), [replacementPosition], false), appendedPoints, true);
|
|
7671
|
+
}
|
|
7672
|
+
var points = generatePositions(projectedSourcePositionOnBBox, projectedTargetPositionOnBBox, elements);
|
|
7673
|
+
eleLink.points = points;
|
|
7674
|
+
return eleLink;
|
|
7675
|
+
};
|
|
7676
|
+
|
|
7677
|
+
// import { paperEventEmitterContext } from '../../contexts/paperEventEmitterContext';
|
|
7602
7678
|
var SelectionFrame = function (props) {
|
|
7603
7679
|
var propTargetSVGElement = props.targetSVGElement, propWidth = props.width, propHeight = props.height, propFramePadding = props.framePadding, objectX = props.objectX, objectY = props.objectY,
|
|
7604
7680
|
// movingOffsetThreshold: propMovingOffsetThreshold,
|
|
7605
|
-
propMovingRate = props.movingRate, propOnMouseDown = props.onMouseDown, propOnMouseUp = props.onMouseUp, propOnMove = props.onMove, propContainer = props.container, propResizability = props.resizability, propOnResize = props.onResize, PropDragDropHandlerElement = props.dragDropHandlerElement, propStrokeWidth = props.strokeWidth, propAnchor = props.anchor, zoom = props.zoom;
|
|
7681
|
+
propMovingRate = props.movingRate, propOnMouseDown = props.onMouseDown, propOnMouseUp = props.onMouseUp, propOnMove = props.onMove, propContainer = props.container, propResizability = props.resizability, propOnResize = props.onResize, draggingByDefault = props.draggingByDefault, PropDragDropHandlerElement = props.dragDropHandlerElement, propStrokeWidth = props.strokeWidth, propAnchor = props.anchor, zoom = props.zoom;
|
|
7606
7682
|
var bbox = propTargetSVGElement === null || propTargetSVGElement === void 0 ? void 0 : propTargetSVGElement.getBBox();
|
|
7607
7683
|
var _a = React.useState(propWidth || (bbox === null || bbox === void 0 ? void 0 : bbox.width) || MIN_ELEMENT_SIZE), width = _a[0], setWidth = _a[1];
|
|
7608
7684
|
var _b = React.useState(propHeight || (bbox === null || bbox === void 0 ? void 0 : bbox.height) || MIN_ELEMENT_SIZE), height = _b[0], setHeight = _b[1];
|
|
@@ -7630,13 +7706,22 @@ var SelectionFrame = function (props) {
|
|
|
7630
7706
|
}, [objectY]);
|
|
7631
7707
|
var framePadding = propFramePadding || 0;
|
|
7632
7708
|
var r = 5;
|
|
7633
|
-
var _e = React.useState(false), draggingRect = _e[0], setDraggingRect = _e[1];
|
|
7709
|
+
var _e = React.useState(draggingByDefault || false), draggingRect = _e[0], setDraggingRect = _e[1];
|
|
7634
7710
|
var _f = React.useState(false), draggingCircle = _f[0], setDraggingCircle = _f[1];
|
|
7635
7711
|
var _g = React.useState(0), startX = _g[0], setStartX = _g[1];
|
|
7636
7712
|
var _h = React.useState(0), startY = _h[0], setStartY = _h[1];
|
|
7637
7713
|
var _j = React.useState(0), xFromMouse = _j[0], setXFromMouse = _j[1];
|
|
7638
7714
|
var _k = React.useState(0), yFromMouse = _k[0], setYFromMouse = _k[1];
|
|
7639
7715
|
var _l = React.useState(0), lastMoveTime = _l[0], setLastMoveTime = _l[1];
|
|
7716
|
+
// const { onStartDraggingElement } = useContext(paperEventEmitterContext);
|
|
7717
|
+
// useEffect(() => {
|
|
7718
|
+
// const { off } = onStartDraggingElement((element) => {
|
|
7719
|
+
// setDraggingRect(true);
|
|
7720
|
+
// });
|
|
7721
|
+
// return () => {
|
|
7722
|
+
// off();
|
|
7723
|
+
// }
|
|
7724
|
+
// }, [])
|
|
7640
7725
|
var getMousePosition = function (event) {
|
|
7641
7726
|
var position = windowsPositionToPaperPosition({
|
|
7642
7727
|
x: event.clientX,
|
|
@@ -9300,65 +9385,6 @@ function useKeyboardCommands(_a) {
|
|
|
9300
9385
|
}, [element]);
|
|
9301
9386
|
}
|
|
9302
9387
|
|
|
9303
|
-
//Automatically add points on the link so that the link does not cross elements, default maximum 10 points
|
|
9304
|
-
var automationAddPointsToLink = function (eleLink, elements, limitPoint) {
|
|
9305
|
-
if (!eleLink.targetElement || !eleLink.targetPort) {
|
|
9306
|
-
throw new Error("Target element is not found in element link");
|
|
9307
|
-
}
|
|
9308
|
-
var sourceElement = eleLink.sourceElement, sourcePort = eleLink.sourcePort, targetElement = eleLink.targetElement, targetPort = eleLink.targetPort;
|
|
9309
|
-
var absolutePositionOfSourceEle = getAbsolutePosition(sourceElement);
|
|
9310
|
-
var absolutePositionOfTargetEle = getAbsolutePosition(targetElement);
|
|
9311
|
-
var sourcePosition = {
|
|
9312
|
-
x: absolutePositionOfSourceEle.x + sourcePort.position.x,
|
|
9313
|
-
y: absolutePositionOfSourceEle.y + sourcePort.position.y
|
|
9314
|
-
};
|
|
9315
|
-
var targetPosition = {
|
|
9316
|
-
x: absolutePositionOfTargetEle.x + targetPort.position.x,
|
|
9317
|
-
y: absolutePositionOfTargetEle.y + targetPort.position.y
|
|
9318
|
-
};
|
|
9319
|
-
var fourVertexesOfSourceEleBBox = getFourVertexesOfBBoxFromElement(sourceElement);
|
|
9320
|
-
var fourVertexesOfTargetEleBBox = getFourVertexesOfBBoxFromElement(targetElement);
|
|
9321
|
-
var projectedSourcePositionOnBBox = findNearestProjectedPoint(sourcePosition, [
|
|
9322
|
-
[fourVertexesOfSourceEleBBox[0], fourVertexesOfSourceEleBBox[1]],
|
|
9323
|
-
[fourVertexesOfSourceEleBBox[1], fourVertexesOfSourceEleBBox[2]],
|
|
9324
|
-
[fourVertexesOfSourceEleBBox[2], fourVertexesOfSourceEleBBox[3]],
|
|
9325
|
-
[fourVertexesOfSourceEleBBox[3], fourVertexesOfSourceEleBBox[0]],
|
|
9326
|
-
]);
|
|
9327
|
-
var projectedTargetPositionOnBBox = findNearestProjectedPoint(targetPosition, [
|
|
9328
|
-
[fourVertexesOfTargetEleBBox[0], fourVertexesOfTargetEleBBox[1]],
|
|
9329
|
-
[fourVertexesOfTargetEleBBox[1], fourVertexesOfTargetEleBBox[2]],
|
|
9330
|
-
[fourVertexesOfTargetEleBBox[2], fourVertexesOfTargetEleBBox[3]],
|
|
9331
|
-
[fourVertexesOfTargetEleBBox[3], fourVertexesOfTargetEleBBox[0]],
|
|
9332
|
-
]);
|
|
9333
|
-
var numberOfPoints = 0;
|
|
9334
|
-
//create points between the start and end points, to create a line segment that passes through the points without intersecting the elements
|
|
9335
|
-
function generatePositions(sourcePosition, targetPosition, elements) {
|
|
9336
|
-
var firstIntersection = getFirstIntersection(sourcePosition, targetPosition, elements);
|
|
9337
|
-
//If there is no intersection point, then the line connecting the two points does not intersect any element.
|
|
9338
|
-
if (!firstIntersection || limitPoint === numberOfPoints)
|
|
9339
|
-
return [];
|
|
9340
|
-
var nearestIntersection = firstIntersection.nearestIntersection; firstIntersection.intersectionPointsList; var intersectedElement = firstIntersection.element;
|
|
9341
|
-
//Calculate to create a replacement point
|
|
9342
|
-
var replacementPosition = generateSubstitutePosition(nearestIntersection, targetPosition, intersectedElement);
|
|
9343
|
-
if (!replacementPosition) {
|
|
9344
|
-
replacementPosition = {
|
|
9345
|
-
x: nearestIntersection.x,
|
|
9346
|
-
y: nearestIntersection.y
|
|
9347
|
-
};
|
|
9348
|
-
}
|
|
9349
|
-
//Increases the number of points found by 1
|
|
9350
|
-
numberOfPoints += 1;
|
|
9351
|
-
//Create points with the starting point being the sourcePosition and the ending point being the newly created point
|
|
9352
|
-
var prependedPoints = generatePositions(sourcePosition, replacementPosition, elements);
|
|
9353
|
-
//Create points with the starting point being the new newly created point and the ending point being the targetPosition
|
|
9354
|
-
var appendedPoints = generatePositions(replacementPosition, targetPosition, elements);
|
|
9355
|
-
return __spreadArray(__spreadArray(__spreadArray([], prependedPoints, true), [replacementPosition], false), appendedPoints, true);
|
|
9356
|
-
}
|
|
9357
|
-
var points = generatePositions(projectedSourcePositionOnBBox, projectedTargetPositionOnBBox, elements);
|
|
9358
|
-
eleLink.points = points;
|
|
9359
|
-
return eleLink;
|
|
9360
|
-
};
|
|
9361
|
-
|
|
9362
9388
|
function adjustElementPositionOnParentPortArea(element, toBeAdjustedPosition, isAbsolutePosition) {
|
|
9363
9389
|
var _a;
|
|
9364
9390
|
if (isAbsolutePosition === void 0) { isAbsolutePosition = false; }
|
|
@@ -9408,13 +9434,14 @@ var Paper = function (props) {
|
|
|
9408
9434
|
var _a = React.useState([]), elements = _a[0], setElements = _a[1];
|
|
9409
9435
|
var _b = React.useState([]), elementsInTree = _b[0], setElementsInTree = _b[1];
|
|
9410
9436
|
var _c = React.useState(), selectedElement = _c[0], setSelectedElement = _c[1];
|
|
9411
|
-
var _d = React.useState(
|
|
9412
|
-
var _e = React.useState(),
|
|
9413
|
-
var _f = React.useState(
|
|
9414
|
-
var _g = React.useState(
|
|
9415
|
-
var _h = React.useState(),
|
|
9416
|
-
var _j = React.useState(
|
|
9417
|
-
var _k = React.useState(
|
|
9437
|
+
var _d = React.useState(false), autoEnabledDraggingSelectedElement = _d[0], setAutoEnabledDraggingSelectedElement = _d[1];
|
|
9438
|
+
var _e = React.useState([]), links = _e[0], setLinks = _e[1];
|
|
9439
|
+
var _f = React.useState(), selectedLink = _f[0], setSelectedLink = _f[1];
|
|
9440
|
+
var _g = React.useState(null), tempLink = _g[0], setTempLink = _g[1];
|
|
9441
|
+
var _h = React.useState([]), texts = _h[0], setTexts = _h[1];
|
|
9442
|
+
var _j = React.useState(), selectedText = _j[0], setSelectedText = _j[1];
|
|
9443
|
+
var _k = React.useState(null), selectedElementSVG = _k[0], setSelectedElementSVG = _k[1];
|
|
9444
|
+
var _l = React.useState(false), mouseDownedOnPaper = _l[0], setMouseDownedOnPaper = _l[1];
|
|
9418
9445
|
var paperEventEmitter = React.useContext(paperEventEmitterContext);
|
|
9419
9446
|
var zoom = useZoomContext().zoom;
|
|
9420
9447
|
var zoomRef = React.useRef(zoom);
|
|
@@ -9448,6 +9475,26 @@ var Paper = function (props) {
|
|
|
9448
9475
|
off();
|
|
9449
9476
|
};
|
|
9450
9477
|
}, [props.onManuallyTriggerRenderElement, props.onElementsChanged, elements, selectedElement]);
|
|
9478
|
+
React.useEffect(function () {
|
|
9479
|
+
var _a, _b;
|
|
9480
|
+
var offs = [];
|
|
9481
|
+
offs.push((_a = props.onManuallySelectElement) === null || _a === void 0 ? void 0 : _a.call(props, function (element) {
|
|
9482
|
+
var _a;
|
|
9483
|
+
setSelectedElement(element || undefined);
|
|
9484
|
+
if (element) {
|
|
9485
|
+
(_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, element);
|
|
9486
|
+
}
|
|
9487
|
+
}));
|
|
9488
|
+
offs.push((_b = props.onManuallyTriggerDraggingElement) === null || _b === void 0 ? void 0 : _b.call(props, function (element) {
|
|
9489
|
+
var _a;
|
|
9490
|
+
setSelectedElement(element);
|
|
9491
|
+
(_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, element);
|
|
9492
|
+
setAutoEnabledDraggingSelectedElement(true);
|
|
9493
|
+
}));
|
|
9494
|
+
return function () {
|
|
9495
|
+
offs.forEach(function (off) { return off(); });
|
|
9496
|
+
};
|
|
9497
|
+
}, [props.onManuallySelectElement, props.onManuallyTriggerDraggingElement, props.onElementSelected]);
|
|
9451
9498
|
//Cache elements to avoid re-render when elements changed
|
|
9452
9499
|
React.useEffect(function () {
|
|
9453
9500
|
elementsRef.current = elements;
|
|
@@ -10046,6 +10093,7 @@ var Paper = function (props) {
|
|
|
10046
10093
|
setSelectedElementSVG(ref);
|
|
10047
10094
|
if (element) {
|
|
10048
10095
|
setSelectedElement(element);
|
|
10096
|
+
setAutoEnabledDraggingSelectedElement(false);
|
|
10049
10097
|
paperEventEmitter.emitElementSelected(element);
|
|
10050
10098
|
}
|
|
10051
10099
|
}
|
|
@@ -10121,10 +10169,10 @@ var Paper = function (props) {
|
|
|
10121
10169
|
onMouseUpAtLinkedPortPlaceholder: handleMouseUpAtLinkedPortPlaceholder, onTextUpdated: handleElementTextChange, onManuallyTriggerRenderPort: props.onManuallyTriggerRenderPort, textsPlaceHolderClassName: element.textsPlaceHolderClassName, textsPlaceHolderFlexStyle: element.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition: element.textsPlaceHolderFlexboxPosition, parentAbsolutePosition: element.parentElement ? getAbsolutePosition(element.parentElement) : undefined },
|
|
10122
10170
|
element.childrenElementsInTree && element.childrenElementsInTree.map(renderElementInTree),
|
|
10123
10171
|
!!paperContainerRef.current && !!selectedElement && selectedElement.id === element.id &&
|
|
10124
|
-
React.createElement(SelectionFrame, { container: paperContainerRef.current, targetSVGElement: selectedElementSVG || undefined, resizability: (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.resizability) || {
|
|
10172
|
+
React.createElement(SelectionFrame, { key: selectedElement.id, container: paperContainerRef.current, targetSVGElement: selectedElementSVG || undefined, resizability: (selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.resizability) || {
|
|
10125
10173
|
enabled: true,
|
|
10126
10174
|
keepRatio: true
|
|
10127
|
-
}, objectX: selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.x, objectY: selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.y, width: selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.size.width, height: selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.size.height, zoom: zoom,
|
|
10175
|
+
}, objectX: selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.x, objectY: selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.y, width: selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.size.width, height: selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.size.height, zoom: zoom, draggingByDefault: autoEnabledDraggingSelectedElement,
|
|
10128
10176
|
//movingOffsetThreshold: ELEMENT_MOVING_OFFSET_THRESHOLD,
|
|
10129
10177
|
onMouseDown: function (ev) {
|
|
10130
10178
|
var _a;
|
|
@@ -10210,12 +10258,12 @@ var Paper = function (props) {
|
|
|
10210
10258
|
paperEventEmitter.emitElementResized(selectedElement, oldSize, newSize);
|
|
10211
10259
|
setMouseDownedOnPaper(false);
|
|
10212
10260
|
} }))));
|
|
10213
|
-
}, [
|
|
10261
|
+
}, [handleElementClicked, handleContextMenu, handleMouseUp, handleMouseDown, handleMouseMove, handleMouseLeave, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handlePortsChanged, handlePortContextMenu, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, props, selectedElement, selectedElementSVG, selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.x, selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.y, zoom, autoEnabledDraggingSelectedElement, elements, getChildOfElement, paperEventEmitter]);
|
|
10214
10262
|
var ElementsInTree = React.useMemo(function () {
|
|
10215
10263
|
return elementsInTree.map(function (element, index) {
|
|
10216
10264
|
return renderElementInTree(element);
|
|
10217
10265
|
});
|
|
10218
|
-
}, [elementsInTree, renderElementInTree
|
|
10266
|
+
}, [elementsInTree, renderElementInTree]);
|
|
10219
10267
|
return (React.createElement("div", { style: { position: "relative" } },
|
|
10220
10268
|
React.createElement(Ruler, { squareSize: 100, border: '1px dashed grey' }),
|
|
10221
10269
|
React.createElement("svg", { tabIndex: 0, width: size.width, height: size.height, ref: paperContainerRef, id: "paper-container", onMouseMove: handlePaperMouseMove, onMouseDown: handleMouseDownOnPaper, onMouseUp: handleMouseUpOnPaper },
|
|
@@ -10359,7 +10407,7 @@ var Editor = function (_a) {
|
|
|
10359
10407
|
}, [editorContext]);
|
|
10360
10408
|
return (React.createElement(EditorConfigurationContextProvider, { value: editorContext.configuration },
|
|
10361
10409
|
React.createElement(ZoomContextProvider, null,
|
|
10362
|
-
React.createElement(Paper$1, { key: "paper", size: { width: width, height: height }, elements: elements, links: links, texts: texts, onPaperClicked: handlePaperClicked, onPortMouseDown: handlePortMouseDown, onPortMouseUp: handlePortMouseUp, onPortMoved: handlePortMoved, onPortSelected: handlePortSelected, onPortsChanged: handlePortsChanged, onPortContextMenu: handlePortContextMenu, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, onElementMouseDown: handleElementMouseDown, onElementMouseUp: handleElementMouseUp, onElementsChanged: handleElementsChanged, onCreatingLink: handleOnCreatingLink, onCreatingPortByLinking: handleOnCreatingPortByLinking, onLinkSelected: handleLinkSelected, onLinksChanged: handleLinksChanged, onTextSelected: handleTextSelected, onTextsChanged: handleTextsChanged, onPaperMouseMoved: handlePaperMouseMoved, onPaperMouseUp: handlePaperMouseUp, onPaperMouseDown: handlePaperMouseDown, onManuallyTriggerRenderElement: editorContext.onManuallyTriggerRenderElement.bind(editorContext), onManuallyTriggerRenderPort: editorContext.onManuallyTriggerRenderPort.bind(editorContext) }))));
|
|
10410
|
+
React.createElement(Paper$1, { key: "paper", size: { width: width, height: height }, elements: elements, links: links, texts: texts, onPaperClicked: handlePaperClicked, onPortMouseDown: handlePortMouseDown, onPortMouseUp: handlePortMouseUp, onPortMoved: handlePortMoved, onPortSelected: handlePortSelected, onPortsChanged: handlePortsChanged, onPortContextMenu: handlePortContextMenu, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, onElementMouseDown: handleElementMouseDown, onElementMouseUp: handleElementMouseUp, onElementsChanged: handleElementsChanged, onCreatingLink: handleOnCreatingLink, onCreatingPortByLinking: handleOnCreatingPortByLinking, onLinkSelected: handleLinkSelected, onLinksChanged: handleLinksChanged, onTextSelected: handleTextSelected, onTextsChanged: handleTextsChanged, onPaperMouseMoved: handlePaperMouseMoved, onPaperMouseUp: handlePaperMouseUp, onPaperMouseDown: handlePaperMouseDown, onManuallyTriggerRenderElement: editorContext.onManuallyTriggerRenderElement.bind(editorContext), onManuallyTriggerRenderPort: editorContext.onManuallyTriggerRenderPort.bind(editorContext), onManuallySelectElement: editorContext.onManuallySelectElement.bind(editorContext), onManuallyTriggerDraggingElement: editorContext.onManuallyTriggerDraggingElement.bind(editorContext) }))));
|
|
10363
10411
|
};
|
|
10364
10412
|
|
|
10365
10413
|
exports.CircleRC = Circle;
|
|
@@ -10377,6 +10425,7 @@ exports.ShapeWrapperRC = ShapeWrapper;
|
|
|
10377
10425
|
exports.Text = Text$2;
|
|
10378
10426
|
exports.TextRC = Text$1;
|
|
10379
10427
|
exports.addPointToList = addPointToList;
|
|
10428
|
+
exports.automationAddPointsToLink = automationAddPointsToLink;
|
|
10380
10429
|
exports.calculateAngleWithOx = calculateAngleWithOx;
|
|
10381
10430
|
exports.checkPointContainsPolygon = checkPointContainsPolygon;
|
|
10382
10431
|
exports.checkPositionOnLine = checkPositionOnLine;
|
|
@@ -41,6 +41,8 @@ interface PaperProps {
|
|
|
41
41
|
onManuallyTriggerRenderPort: (callback: (portId: string, elementId: string) => void) => () => void;
|
|
42
42
|
onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
|
|
43
43
|
onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
|
|
44
|
+
onManuallySelectElement?: (callback: (element: IElement | null) => void) => (() => void);
|
|
45
|
+
onManuallyTriggerDraggingElement?: (callback: (element: IElement) => void) => (() => void);
|
|
44
46
|
}
|
|
45
47
|
declare const _default: React.NamedExoticComponent<PaperProps>;
|
|
46
48
|
export default _default;
|
|
@@ -41,6 +41,10 @@ export default interface IEditorContext {
|
|
|
41
41
|
getText(textId: string): IPaperText | undefined;
|
|
42
42
|
addText(text: IPaperText): void;
|
|
43
43
|
removeText(textId: string): void;
|
|
44
|
+
setSelectedElement: (element: IElement | null) => void;
|
|
45
|
+
onManuallySelectElement: (callback: (element: IElement | null) => void) => (() => void);
|
|
46
|
+
triggerDraggingElement: (element: IElement) => void;
|
|
47
|
+
onManuallyTriggerDraggingElement: (callback: (element: IElement) => void) => (() => void);
|
|
44
48
|
triggerRenderElement(elementId: string): void;
|
|
45
49
|
triggerRenderPort(portId: string, elementId: string): void;
|
|
46
50
|
onManuallyTriggerRenderElement: (callback: (elementId: string) => void) => (() => void);
|
|
@@ -11,6 +11,7 @@ export type onPortMouseUpHandler = (ev: React.MouseEvent<SVGElement>, port: IPor
|
|
|
11
11
|
export type onElementMovedHandler = (element: IElement, oldPosition: IPosition, newPosition: IPosition) => void;
|
|
12
12
|
export type onElementResizedHandler = (element: IElement, oldSize: ISize, newSize: ISize) => void;
|
|
13
13
|
export type OnElementSelected = (element: IElement) => void;
|
|
14
|
+
export type OnStartDraggingElement = (element: IElement) => void;
|
|
14
15
|
export type OnCommandRenderElement = (elementId: string) => void;
|
|
15
16
|
export type onCommandDeleteSelectedHandler = () => void;
|
|
16
17
|
export type OnCommandRenderPort = (portId: string, elementId: string) => void;
|
|
@@ -56,4 +56,8 @@ export declare class EditorContext implements IEditorContext {
|
|
|
56
56
|
onManuallyTriggerRenderElement(callback: (elementId: string) => void): () => void;
|
|
57
57
|
triggerRenderPort(portId: string, elementId: string): void;
|
|
58
58
|
onManuallyTriggerRenderPort(callback: (portId: string, elementId: string) => void): () => void;
|
|
59
|
+
setSelectedElement(element: IElement | null): void;
|
|
60
|
+
onManuallySelectElement(callback: (element: IElement | null) => void): () => void;
|
|
61
|
+
triggerDraggingElement(element: IElement): void;
|
|
62
|
+
onManuallyTriggerDraggingElement(callback: (element: IElement) => void): () => void;
|
|
59
63
|
}
|