orcasvn-react-diagrams 0.1.66 → 0.1.67
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
CHANGED
|
@@ -9010,7 +9010,9 @@ var Element = React.forwardRef(function (props, forwardedRef) {
|
|
|
9010
9010
|
selectedPort.position = newPosition;
|
|
9011
9011
|
onPortMoved === null || onPortMoved === void 0 ? void 0 : onPortMoved(selectedPort, id, oldPosition, newPosition);
|
|
9012
9012
|
setPorts(__spreadArray([], portsRef.current, true));
|
|
9013
|
-
_paperEventEmitterContext.
|
|
9013
|
+
if (_paperEventEmitterContext.emitter.listenerCount(EVENT_NAME.PORT_MOVED) > 0) {
|
|
9014
|
+
_paperEventEmitterContext.emitPortMoved(selectedPort, id, oldPosition, newPosition);
|
|
9015
|
+
}
|
|
9014
9016
|
}
|
|
9015
9017
|
};
|
|
9016
9018
|
//Handle when mouse down on port
|
|
@@ -9199,11 +9201,11 @@ var Element = React.forwardRef(function (props, forwardedRef) {
|
|
|
9199
9201
|
//Re-render port again after rendered to automation rotate port
|
|
9200
9202
|
//Because elementRef.current equals null in first render so automation rotate port is incorrect.
|
|
9201
9203
|
//TODO: check if this is still needed -> Still needed
|
|
9202
|
-
|
|
9203
|
-
|
|
9204
|
-
|
|
9205
|
-
|
|
9206
|
-
}, [])
|
|
9204
|
+
// useLayoutEffect(() => {
|
|
9205
|
+
// if (elementRef.current) {
|
|
9206
|
+
// setPorts(prev => [...prev])
|
|
9207
|
+
// }
|
|
9208
|
+
// }, [])
|
|
9207
9209
|
//log element render
|
|
9208
9210
|
logger.debug('Rendering Element', id, x, y, width, height, cssClass, portPlaceholderShape, children, container, parentAbsolutePosition, textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition, textsPlaceHolderClassName, texts, ports, portSlideRailSVGClassName, portMoveableAreas, portDirection, defaultPortSize);
|
|
9209
9211
|
return (React.createElement(React.Fragment, null,
|
|
@@ -9477,34 +9479,45 @@ function convertElementsToTree(elements) {
|
|
|
9477
9479
|
}
|
|
9478
9480
|
var Paper = function (props) {
|
|
9479
9481
|
var _a, _b;
|
|
9480
|
-
var _c = React.useState([]),
|
|
9481
|
-
|
|
9482
|
-
|
|
9483
|
-
var
|
|
9484
|
-
var
|
|
9485
|
-
var
|
|
9486
|
-
var
|
|
9487
|
-
var
|
|
9488
|
-
var
|
|
9489
|
-
var
|
|
9490
|
-
var
|
|
9482
|
+
var _c = React.useState({ elements: [], elementsInTree: [] }), elementsState = _c[0], setElementsState = _c[1];
|
|
9483
|
+
// const [elements, setElements] = React.useState<IElementState[]>([]);
|
|
9484
|
+
// const [elementsInTree, setElementsInTree] = React.useState<IElementInTreeState[]>([]);
|
|
9485
|
+
var _d = React.useState(), selectedElement = _d[0], setSelectedElement = _d[1];
|
|
9486
|
+
var _e = React.useState(false), autoEnabledDraggingSelectedElement = _e[0], setAutoEnabledDraggingSelectedElement = _e[1];
|
|
9487
|
+
var _f = React.useState([]), links = _f[0], setLinks = _f[1];
|
|
9488
|
+
var _g = React.useState(), selectedLink = _g[0], setSelectedLink = _g[1];
|
|
9489
|
+
var _h = React.useState(null), tempLink = _h[0], setTempLink = _h[1];
|
|
9490
|
+
var _j = React.useState([]), texts = _j[0], setTexts = _j[1];
|
|
9491
|
+
var _k = React.useState(), selectedText = _k[0], setSelectedText = _k[1];
|
|
9492
|
+
var _l = React.useState(null), selectedElementSVG = _l[0], setSelectedElementSVG = _l[1];
|
|
9493
|
+
var _m = React.useState(false), mouseDownedOnPaper = _m[0], setMouseDownedOnPaper = _m[1];
|
|
9491
9494
|
var paperEventEmitter = React.useContext(paperEventEmitterContext);
|
|
9492
9495
|
var zoom = useZoomContext().zoom;
|
|
9493
9496
|
var zoomRef = React.useRef(zoom);
|
|
9494
9497
|
var paperContainerRef = React.useRef(null);
|
|
9495
9498
|
var tempLinkRef = React.useRef(tempLink); //Cache tempLink to avoid re-render when tempLink changed
|
|
9496
|
-
var elementsRef = React.useRef(
|
|
9499
|
+
var elementsRef = React.useRef([]); //Cache elements to avoid re-render when elements changed
|
|
9497
9500
|
var linksRef = React.useRef(links); //Cache links to avoid re-render when links changed
|
|
9498
9501
|
var textsRef = React.useRef(texts); //Cache texts to avoid re-render when texts changed
|
|
9499
9502
|
var size = props.size;
|
|
9500
9503
|
var selectedElementAbsPosition = React.useMemo(function () { return selectedElement ? getAbsolutePosition(selectedElement) : null; }, [selectedElement, (_a = selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.position) === null || _a === void 0 ? void 0 : _a.x, (_b = selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.position) === null || _b === void 0 ? void 0 : _b.y, selectedElement === null || selectedElement === void 0 ? void 0 : selectedElement.size]);
|
|
9501
|
-
var onPortMoved = props.onPortMoved, onPortSelected = props.onPortSelected, onPortMouseDown = props.onPortMouseDown, onPortMouseUp = props.onPortMouseUp,
|
|
9504
|
+
var onPortMoved = props.onPortMoved, onPortSelected = props.onPortSelected, onPortMouseDown = props.onPortMouseDown, onPortMouseUp = props.onPortMouseUp,
|
|
9505
|
+
//onPortsChanged,
|
|
9506
|
+
onPortContextMenu = props.onPortContextMenu, onElementSelected = props.onElementSelected, onElementsChanged = props.onElementsChanged, onElementResized = props.onElementResized, onElementContextMenu = props.onElementContextMenu, onElementMouseUp = props.onElementMouseUp, onElementMouseDown = props.onElementMouseDown, onElementMouseMove = props.onElementMouseMove, onElementMoved = props.onElementMoved, onElementMouseLeave = props.onElementMouseLeave, onElementDeleted = props.onElementDeleted, onLinksChanged = props.onLinksChanged, onLinkSelected = props.onLinkSelected, onTextSelected = props.onTextSelected, onTextsChanged = props.onTextsChanged, manuallyTriggerRenderElementHandler = props.manuallyTriggerRenderElementHandler, manuallyTriggerRenderPortHandler = props.manuallyTriggerRenderPortHandler, onCreatingPortByLinking = props.onCreatingPortByLinking, onCreatingLink = props.onCreatingLink, onElementMoving = props.onElementMoving, manuallySelectElementHandler = props.manuallySelectElementHandler, manuallyTriggerDraggingElementHandler = props.manuallyTriggerDraggingElementHandler, manuallyTriggerStartedLinkingHandler = props.manuallyTriggerStartedLinkingHandler;
|
|
9507
|
+
var handleElementsState = React.useCallback(function (elements) {
|
|
9508
|
+
var elementsInTree = convertElementsToTree(elements);
|
|
9509
|
+
setElementsState({ elements: __spreadArray([], elements, true), elementsInTree: elementsInTree });
|
|
9510
|
+
elementsRef.current = __spreadArray([], elements, true);
|
|
9511
|
+
}, []);
|
|
9512
|
+
var rerenderWhenAnyElementChanged = React.useCallback(function () {
|
|
9513
|
+
setElementsState(function (prev) { return ({ elements: __spreadArray([], prev.elements, true), elementsInTree: __spreadArray([], prev.elementsInTree, true) }); });
|
|
9514
|
+
}, []);
|
|
9502
9515
|
React.useEffect(function () {
|
|
9503
9516
|
zoomRef.current = zoom;
|
|
9504
9517
|
}, [zoom]);
|
|
9505
9518
|
React.useEffect(function () {
|
|
9506
|
-
|
|
9507
|
-
}, [props.elements]);
|
|
9519
|
+
handleElementsState(props.elements);
|
|
9520
|
+
}, [handleElementsState, props.elements]);
|
|
9508
9521
|
React.useEffect(function () {
|
|
9509
9522
|
setLinks(__spreadArray([], props.links || [], true));
|
|
9510
9523
|
}, [props.links]);
|
|
@@ -9513,16 +9526,16 @@ var Paper = function (props) {
|
|
|
9513
9526
|
}, [props.texts]);
|
|
9514
9527
|
React.useEffect(function () {
|
|
9515
9528
|
var off = manuallyTriggerRenderElementHandler(function (elementId) {
|
|
9516
|
-
|
|
9517
|
-
|
|
9518
|
-
if (onElementsChanged) {
|
|
9519
|
-
|
|
9520
|
-
}
|
|
9529
|
+
rerenderWhenAnyElementChanged();
|
|
9530
|
+
//setElementsState(prevElementsState => ({ ...prevElementsState }));
|
|
9531
|
+
// if (onElementsChanged) {
|
|
9532
|
+
// onElementsChanged(newElements)
|
|
9533
|
+
// }
|
|
9521
9534
|
});
|
|
9522
9535
|
return function () {
|
|
9523
9536
|
off();
|
|
9524
9537
|
};
|
|
9525
|
-
}, [manuallyTriggerRenderElementHandler,
|
|
9538
|
+
}, [manuallyTriggerRenderElementHandler, rerenderWhenAnyElementChanged]);
|
|
9526
9539
|
React.useEffect(function () {
|
|
9527
9540
|
var offs = [];
|
|
9528
9541
|
offs.push(manuallySelectElementHandler === null || manuallySelectElementHandler === void 0 ? void 0 : manuallySelectElementHandler(function (element) {
|
|
@@ -9557,15 +9570,15 @@ var Paper = function (props) {
|
|
|
9557
9570
|
};
|
|
9558
9571
|
}
|
|
9559
9572
|
}, [manuallyTriggerStartedLinkingHandler, paperEventEmitter]);
|
|
9560
|
-
|
|
9561
|
-
|
|
9562
|
-
|
|
9563
|
-
}, [elements])
|
|
9564
|
-
//Cache elements to avoid re-render when elements changed
|
|
9565
|
-
|
|
9566
|
-
|
|
9567
|
-
|
|
9568
|
-
}, [elements, updateElementsTree])
|
|
9573
|
+
// const updateElementsTree = useCallback(() => {
|
|
9574
|
+
// const parsedElementsInTree = convertElementsToTree(element)
|
|
9575
|
+
// setElementsInTree(parsedElementsInTree)
|
|
9576
|
+
// }, [elements])
|
|
9577
|
+
// //Cache elements to avoid re-render when elements changed
|
|
9578
|
+
// useEffect(() => {
|
|
9579
|
+
// elementsRef.current = elements;
|
|
9580
|
+
// updateElementsTree();
|
|
9581
|
+
// }, [elements, updateElementsTree])
|
|
9569
9582
|
//Cache links to avoid re-render when links changed
|
|
9570
9583
|
React.useEffect(function () {
|
|
9571
9584
|
linksRef.current = links;
|
|
@@ -9616,7 +9629,7 @@ var Paper = function (props) {
|
|
|
9616
9629
|
var _a;
|
|
9617
9630
|
return (_a = element.onParentChanged) === null || _a === void 0 ? void 0 : _a.call(element, function (newPa, oldPa) {
|
|
9618
9631
|
logger.info('onParentChanged');
|
|
9619
|
-
|
|
9632
|
+
handleElementsState(elementsRef.current);
|
|
9620
9633
|
});
|
|
9621
9634
|
});
|
|
9622
9635
|
//Listen a new port added, then re-render the element component
|
|
@@ -9624,25 +9637,21 @@ var Paper = function (props) {
|
|
|
9624
9637
|
var _a;
|
|
9625
9638
|
return (_a = element.onAddedPort) === null || _a === void 0 ? void 0 : _a.call(element, function (newPort) {
|
|
9626
9639
|
logger.info("A new port has been added to element ".concat(element.id));
|
|
9627
|
-
|
|
9628
|
-
var newElements = prevElements.map(function (ele) {
|
|
9640
|
+
elementsRef.current.forEach(function (ele) {
|
|
9629
9641
|
if (ele.id === element.id) {
|
|
9630
9642
|
ele.ports = __spreadArray([], (ele.ports || []), true);
|
|
9631
9643
|
}
|
|
9632
|
-
return ele;
|
|
9633
9644
|
});
|
|
9634
9645
|
//Set state to re-render component
|
|
9635
|
-
setElements(newElements)
|
|
9636
|
-
|
|
9637
|
-
onElementsChanged(newElements);
|
|
9638
|
-
}
|
|
9646
|
+
// setElements(newElements)
|
|
9647
|
+
rerenderWhenAnyElementChanged();
|
|
9639
9648
|
});
|
|
9640
9649
|
});
|
|
9641
9650
|
return function () {
|
|
9642
9651
|
parentChangedCancelers.forEach(function (canceller) { return canceller === null || canceller === void 0 ? void 0 : canceller(); });
|
|
9643
9652
|
addedPortCancelers.forEach(function (canceller) { return canceller(); });
|
|
9644
9653
|
};
|
|
9645
|
-
}, [
|
|
9654
|
+
}, [handleElementsState, rerenderWhenAnyElementChanged]);
|
|
9646
9655
|
// //Update elements tree when length of elements change
|
|
9647
9656
|
// useEffect(() => {
|
|
9648
9657
|
// updateElementsTree();
|
|
@@ -9668,7 +9677,7 @@ var Paper = function (props) {
|
|
|
9668
9677
|
var newElements = prevElements.filter(function (e) { return !deletedElementIds_1.includes(e.id); });
|
|
9669
9678
|
onElementDeleted === null || onElementDeleted === void 0 ? void 0 : onElementDeleted(selectedElement);
|
|
9670
9679
|
//Set state to re-render component
|
|
9671
|
-
|
|
9680
|
+
handleElementsState(newElements);
|
|
9672
9681
|
if (onElementsChanged) {
|
|
9673
9682
|
onElementsChanged(newElements);
|
|
9674
9683
|
}
|
|
@@ -9690,7 +9699,7 @@ var Paper = function (props) {
|
|
|
9690
9699
|
return function () {
|
|
9691
9700
|
listener.off();
|
|
9692
9701
|
};
|
|
9693
|
-
}, [selectedElement, onElementSelected, onElementsChanged, onLinksChanged, getChildOfElement, paperEventEmitter, onElementDeleted]);
|
|
9702
|
+
}, [selectedElement, onElementSelected, onElementsChanged, onLinksChanged, getChildOfElement, paperEventEmitter, onElementDeleted, handleElementsState]);
|
|
9694
9703
|
//Listen command delete selected for link
|
|
9695
9704
|
React.useEffect(function () {
|
|
9696
9705
|
var listener = paperEventEmitter.onCommandDeleteSelectedLink(function () {
|
|
@@ -9825,6 +9834,7 @@ var Paper = function (props) {
|
|
|
9825
9834
|
}
|
|
9826
9835
|
}, [onLinksChanged]);
|
|
9827
9836
|
var handlePortMoved = React.useCallback(function (port, elementId, oldPosition, newPosition) {
|
|
9837
|
+
var _a;
|
|
9828
9838
|
var element = elementsRef.current.find(function (e) { return e.id === elementId; });
|
|
9829
9839
|
if (element) {
|
|
9830
9840
|
//set links equals a clone links to re-render links with new position
|
|
@@ -9854,7 +9864,7 @@ var Paper = function (props) {
|
|
|
9854
9864
|
if (onLinksChanged) {
|
|
9855
9865
|
onLinksChanged(newLinks);
|
|
9856
9866
|
}
|
|
9857
|
-
|
|
9867
|
+
//const newElements = elementsRef.current;
|
|
9858
9868
|
// newElements[updatedElementIndex].ports = newElements[updatedElementIndex].ports?.map(p => {
|
|
9859
9869
|
// if (p.id === port.id) {
|
|
9860
9870
|
// p.position = newPosition
|
|
@@ -9863,28 +9873,25 @@ var Paper = function (props) {
|
|
|
9863
9873
|
// })
|
|
9864
9874
|
//Update port position in element, not re-render
|
|
9865
9875
|
//To avoid re-render
|
|
9866
|
-
setElements(
|
|
9867
|
-
|
|
9868
|
-
|
|
9869
|
-
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
|
|
9874
|
-
|
|
9875
|
-
|
|
9876
|
-
});
|
|
9877
|
-
}
|
|
9878
|
-
return newElements;
|
|
9879
|
-
});
|
|
9880
|
-
if (onElementsChanged) {
|
|
9881
|
-
onElementsChanged(newElements);
|
|
9876
|
+
// setElements(prev => {
|
|
9877
|
+
// const newElements = [...prev]
|
|
9878
|
+
var updatedElement = elementsRef.current.find(function (e) { return e.id === elementId; });
|
|
9879
|
+
if (updatedElement) {
|
|
9880
|
+
updatedElement.ports = (_a = updatedElement.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
|
|
9881
|
+
if (p.id === port.id) {
|
|
9882
|
+
p.position = newPosition;
|
|
9883
|
+
}
|
|
9884
|
+
return p;
|
|
9885
|
+
});
|
|
9882
9886
|
}
|
|
9887
|
+
rerenderWhenAnyElementChanged();
|
|
9888
|
+
// return newElements
|
|
9889
|
+
// });
|
|
9883
9890
|
if (onPortMoved) {
|
|
9884
9891
|
onPortMoved(newPosition, port, element);
|
|
9885
9892
|
}
|
|
9886
9893
|
}
|
|
9887
|
-
}, [onPortMoved,
|
|
9894
|
+
}, [onPortMoved, onLinksChanged, rerenderWhenAnyElementChanged]);
|
|
9888
9895
|
//Handle creating a new element link
|
|
9889
9896
|
var handlePortMouseDown = React.useCallback(function (ev, port, elementId) {
|
|
9890
9897
|
ev.stopPropagation();
|
|
@@ -9920,8 +9927,8 @@ var Paper = function (props) {
|
|
|
9920
9927
|
return null;
|
|
9921
9928
|
//Automatic bending, if is not defined points
|
|
9922
9929
|
if (!newElementLink.points || newElementLink.points.length === 0) {
|
|
9923
|
-
var
|
|
9924
|
-
newElementLink = automationAddPointsToLink(newElementLink,
|
|
9930
|
+
var elements = elementsRef.current;
|
|
9931
|
+
newElementLink = automationAddPointsToLink(newElementLink, elements, MAX_LINK_KNOT_COUNT);
|
|
9925
9932
|
}
|
|
9926
9933
|
return newElementLink;
|
|
9927
9934
|
}, [onCreatingLink]);
|
|
@@ -9961,13 +9968,13 @@ var Paper = function (props) {
|
|
|
9961
9968
|
setTempLink(null);
|
|
9962
9969
|
}
|
|
9963
9970
|
}, [paperEventEmitter, createElementLink, onPortMouseUp, onLinksChanged]);
|
|
9964
|
-
|
|
9965
|
-
|
|
9966
|
-
|
|
9967
|
-
|
|
9968
|
-
|
|
9969
|
-
|
|
9970
|
-
}, [onPortsChanged])
|
|
9971
|
+
// const handlePortsChanged = useCallback((ports: IPort[], elementId: string) => {
|
|
9972
|
+
// const element = elementsRef.current.find(e => e.id === elementId);
|
|
9973
|
+
// if (element) {
|
|
9974
|
+
// //broadcast ports changed to parent component
|
|
9975
|
+
// onPortsChanged(ports, element);
|
|
9976
|
+
// }
|
|
9977
|
+
// }, [onPortsChanged])
|
|
9971
9978
|
var handleLinkLabelMoved = React.useCallback(function (newX, newY, index, labelType) {
|
|
9972
9979
|
var prevLinks = linksRef.current;
|
|
9973
9980
|
var newLinks = __spreadArray([], prevLinks, true);
|
|
@@ -10143,8 +10150,8 @@ var Paper = function (props) {
|
|
|
10143
10150
|
paperEventEmitter.emitElementLinkEnded();
|
|
10144
10151
|
}, [onCreatingPortByLinking, createElementLink, paperEventEmitter, onLinksChanged]);
|
|
10145
10152
|
var handleElementTextChange = React.useCallback(function (elementId, textId, newContent) {
|
|
10146
|
-
|
|
10147
|
-
|
|
10153
|
+
// const prevElms = elementsRef.current;
|
|
10154
|
+
elementsRef.current.forEach(function (curEle) {
|
|
10148
10155
|
//Find changed text of element to update the content for it.
|
|
10149
10156
|
if (curEle.id === elementId && curEle.texts) {
|
|
10150
10157
|
var updatedTextId = curEle.texts.findIndex(function (t) { return t.id === textId; });
|
|
@@ -10152,13 +10159,9 @@ var Paper = function (props) {
|
|
|
10152
10159
|
curEle.texts[updatedTextId].content = newContent;
|
|
10153
10160
|
}
|
|
10154
10161
|
}
|
|
10155
|
-
return curEle;
|
|
10156
10162
|
});
|
|
10157
|
-
|
|
10158
|
-
|
|
10159
|
-
onElementsChanged(newElements);
|
|
10160
|
-
}
|
|
10161
|
-
}, [onElementsChanged]);
|
|
10163
|
+
rerenderWhenAnyElementChanged();
|
|
10164
|
+
}, [rerenderWhenAnyElementChanged]);
|
|
10162
10165
|
var handleElementClicked = React.useCallback(function (elementId, e, ref) {
|
|
10163
10166
|
e.stopPropagation();
|
|
10164
10167
|
var tempLink = tempLinkRef.current;
|
|
@@ -10239,7 +10242,9 @@ var Paper = function (props) {
|
|
|
10239
10242
|
//use the defined react element or the default Element component
|
|
10240
10243
|
var ReactElement = element.reactElement || Element$1;
|
|
10241
10244
|
return (React.createElement("g", { id: "group-of-element-".concat(element.id), key: element.id },
|
|
10242
|
-
React.createElement(ReactElement, { key: "element-".concat(element.id), id: element.id, ref: function (refDOM) { return element.DOM = refDOM; }, height: element.size.height, width: element.size.width, x: element.positionAnchor === exports.PositioningAnchor.Center ? element.position.x - element.size.width / 2 : element.position.x, y: element.positionAnchor === exports.PositioningAnchor.Center ? element.position.y - element.size.height / 2 : element.position.y, selectable: element.selectable, onClick: handleElementClicked, onContextMenu: handleContextMenu, onMouseUp: handleMouseUp, onMouseDown: handleMouseDown, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, container: paperContainerRef.current, renderShape: element.renderShape, cssClass: element.cssClass, texts: element.texts, ports: element.ports, portMoveableAreas: element.portMoveableAreas, portSlideRailSVGClassName: element.portSlideRailSVGClassName, portDirection: element.portDirection, defaultPortSize: element.defaultPortSize, onPortMoved: handlePortMoved, onPortMouseDown: handlePortMouseDown, onPortMouseUp: handlePortMouseUp,
|
|
10245
|
+
React.createElement(ReactElement, { key: "element-".concat(element.id), id: element.id, ref: function (refDOM) { return element.DOM = refDOM; }, height: element.size.height, width: element.size.width, x: element.positionAnchor === exports.PositioningAnchor.Center ? element.position.x - element.size.width / 2 : element.position.x, y: element.positionAnchor === exports.PositioningAnchor.Center ? element.position.y - element.size.height / 2 : element.position.y, selectable: element.selectable, onClick: handleElementClicked, onContextMenu: handleContextMenu, onMouseUp: handleMouseUp, onMouseDown: handleMouseDown, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, container: paperContainerRef.current, renderShape: element.renderShape, cssClass: element.cssClass, texts: element.texts, ports: element.ports, portMoveableAreas: element.portMoveableAreas, portSlideRailSVGClassName: element.portSlideRailSVGClassName, portDirection: element.portDirection, defaultPortSize: element.defaultPortSize, onPortMoved: handlePortMoved, onPortMouseDown: handlePortMouseDown, onPortMouseUp: handlePortMouseUp,
|
|
10246
|
+
// onPortsChanged={handlePortsChanged}
|
|
10247
|
+
onPortContextMenu: handlePortContextMenu,
|
|
10243
10248
|
// portPlaceholderShape={(<Circle x={0} y={0} width={10} height={10} fill='red' positioningAnchor={PositioningAnchor.Center} />)}
|
|
10244
10249
|
onMouseUpAtLinkedPortPlaceholder: handleMouseUpAtLinkedPortPlaceholder, onTextUpdated: handleElementTextChange, onManuallyTriggerRenderPort: manuallyTriggerRenderPortHandler, textsPlaceHolderClassName: element.textsPlaceHolderClassName, textsPlaceHolderFlexStyle: element.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition: element.textsPlaceHolderFlexboxPosition, parentAbsolutePosition: element.parentElement ? getAbsolutePosition(element.parentElement) : undefined },
|
|
10245
10250
|
element.childrenElementsInTree && element.childrenElementsInTree.map(renderElementInTree),
|
|
@@ -10291,7 +10296,7 @@ var Paper = function (props) {
|
|
|
10291
10296
|
updateElementPosition(selectedElement, paperPosition.x, paperPosition.y, false);
|
|
10292
10297
|
}
|
|
10293
10298
|
//let newElementPosition = updateElementPosition(selectedElement, newPosition.x, newPosition.y, true)
|
|
10294
|
-
var indexSelectedElement =
|
|
10299
|
+
var indexSelectedElement = elementsRef.current.findIndex(function (e) { return e.id === selectedElement.id; });
|
|
10295
10300
|
logger.info("Element ".concat(selectedElement.id, " is moving to relative position ").concat(JSON.stringify(selectedElement.position)));
|
|
10296
10301
|
// Start updating the position of links connected to the selected element
|
|
10297
10302
|
var childElements = getChildOfElement(selectedElement);
|
|
@@ -10312,7 +10317,7 @@ var Paper = function (props) {
|
|
|
10312
10317
|
onLinksChanged === null || onLinksChanged === void 0 ? void 0 : onLinksChanged(newLinks);
|
|
10313
10318
|
// End updating the position of links connected to the selected element
|
|
10314
10319
|
//Set state to re-render UI with new position
|
|
10315
|
-
|
|
10320
|
+
rerenderWhenAnyElementChanged();
|
|
10316
10321
|
if (onElementMoved) {
|
|
10317
10322
|
console.log('onElementMoved', selectedElement.position, paperPosition);
|
|
10318
10323
|
onElementMoved(selectedElement.position, selectedElement, indexSelectedElement, paperPosition);
|
|
@@ -10322,27 +10327,23 @@ var Paper = function (props) {
|
|
|
10322
10327
|
}, onResize: function (width, height) {
|
|
10323
10328
|
if (!selectedElement)
|
|
10324
10329
|
return;
|
|
10325
|
-
var indexSelectedElement =
|
|
10330
|
+
var indexSelectedElement = elementsRef.current.findIndex(function (e) { return e.id === selectedElement.id; });
|
|
10326
10331
|
var oldSize = selectedElement.size;
|
|
10327
10332
|
var newSize = { width: width, height: height };
|
|
10328
|
-
|
|
10329
|
-
|
|
10330
|
-
setElements(newElements);
|
|
10331
|
-
if (onElementsChanged) {
|
|
10332
|
-
onElementsChanged(newElements);
|
|
10333
|
-
}
|
|
10333
|
+
elementsRef.current[indexSelectedElement].size = newSize;
|
|
10334
|
+
rerenderWhenAnyElementChanged();
|
|
10334
10335
|
if (onElementResized) {
|
|
10335
10336
|
onElementResized(newSize, selectedElement, indexSelectedElement);
|
|
10336
10337
|
}
|
|
10337
10338
|
paperEventEmitter.emitElementResized(selectedElement, oldSize, newSize);
|
|
10338
10339
|
setMouseDownedOnPaper(false);
|
|
10339
10340
|
} }))));
|
|
10340
|
-
}, [manuallyTriggerRenderPortHandler, handleElementClicked, handleContextMenu, handleMouseUp, handleMouseDown, handleMouseMove, handleMouseLeave, handlePortMoved, handlePortMouseDown, handlePortMouseUp,
|
|
10341
|
+
}, [manuallyTriggerRenderPortHandler, handleElementClicked, handleContextMenu, handleMouseUp, handleMouseDown, handleMouseMove, handleMouseLeave, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handlePortContextMenu, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, selectedElement, selectedElementSVG, selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.x, selectedElementAbsPosition === null || selectedElementAbsPosition === void 0 ? void 0 : selectedElementAbsPosition.y, zoom, autoEnabledDraggingSelectedElement, getChildOfElement, paperEventEmitter, onElementResized, onElementMoved, onElementMouseDown, onElementMouseUp, onLinksChanged, onElementMoving, rerenderWhenAnyElementChanged]);
|
|
10341
10342
|
var ElementsInTree = React.useMemo(function () {
|
|
10342
|
-
return elementsInTree.map(function (element, index) {
|
|
10343
|
+
return elementsState.elementsInTree.map(function (element, index) {
|
|
10343
10344
|
return renderElementInTree(element);
|
|
10344
10345
|
});
|
|
10345
|
-
}, [elementsInTree, renderElementInTree]);
|
|
10346
|
+
}, [elementsState.elementsInTree, renderElementInTree]);
|
|
10346
10347
|
return (React.createElement("div", { style: { position: "relative" } },
|
|
10347
10348
|
React.createElement(Ruler, { squareSize: 100, border: '1px dashed grey' }),
|
|
10348
10349
|
React.createElement("svg", { tabIndex: 0, width: size.width, height: size.height, ref: paperContainerRef, id: "paper-container", onMouseMove: handlePaperMouseMove, onMouseDown: handleMouseDownOnPaper, onMouseUp: handleMouseUpOnPaper },
|
|
@@ -10418,9 +10419,6 @@ var Editor = function (_a) {
|
|
|
10418
10419
|
var handlePortSelected = React.useCallback(function (port, element) {
|
|
10419
10420
|
editorContext.onPortSelectedHandler(port, element);
|
|
10420
10421
|
}, [editorContext]);
|
|
10421
|
-
var handlePortsChanged = React.useCallback(function (ports, element) {
|
|
10422
|
-
element.ports = ports;
|
|
10423
|
-
}, []);
|
|
10424
10422
|
var handlePortContextMenu = React.useCallback(function (port, element, event) {
|
|
10425
10423
|
editorContext.onPortContextMenuHandler(port, element, event);
|
|
10426
10424
|
}, [editorContext]);
|
|
@@ -10495,7 +10493,9 @@ var Editor = function (_a) {
|
|
|
10495
10493
|
}, [editorContext]);
|
|
10496
10494
|
return (React.createElement(EditorConfigurationContextProvider, { value: editorContext.configuration },
|
|
10497
10495
|
React.createElement(ZoomContextProvider, null,
|
|
10498
|
-
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,
|
|
10496
|
+
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,
|
|
10497
|
+
//onPortsChanged={handlePortsChanged}
|
|
10498
|
+
onPortContextMenu: handlePortContextMenu, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, onElementMouseDown: handleElementMouseDown, onElementMouseUp: handleElementMouseUp, onElementDeleted: handleElementRemoved, onElementsChanged: handleElementsChanged, onCreatingLink: handleOnCreatingLink, onElementMoving: handleOnElementMoving, onCreatingPortByLinking: handleOnCreatingPortByLinking, onLinkSelected: handleLinkSelected, onLinksChanged: handleLinksChanged, onTextSelected: handleTextSelected, onTextsChanged: handleTextsChanged, onPaperMouseMoved: handlePaperMouseMoved, onPaperMouseUp: handlePaperMouseUp, onPaperMouseDown: handlePaperMouseDown, manuallyTriggerRenderElementHandler: editorContext.manuallyTriggerRenderElementHandler.bind(editorContext), manuallyTriggerRenderPortHandler: editorContext.manuallyTriggerRenderPortHandler.bind(editorContext), manuallySelectElementHandler: editorContext.manuallySelectElementHandler.bind(editorContext), manuallyTriggerDraggingElementHandler: editorContext.manuallyTriggerDraggingElementHandler.bind(editorContext), manuallyTriggerStartedLinkingHandler: editorContext.manuallyTriggerStartedLinkingHandler.bind(editorContext) }))));
|
|
10499
10499
|
};
|
|
10500
10500
|
|
|
10501
10501
|
exports.CircleRC = Circle;
|
|
@@ -21,7 +21,6 @@ interface PaperProps {
|
|
|
21
21
|
onPortMouseUp?: (port: IPort, element: IElement, paperPosition: IPosition) => void;
|
|
22
22
|
onPortMoved?: (relativePosition: IPosition, port: IPort, element: IElement) => void;
|
|
23
23
|
onPortSelected?: (port: IPort, element: IElement) => void;
|
|
24
|
-
onPortsChanged: (ports: IPort[], element: IElement) => void;
|
|
25
24
|
onPortContextMenu?: (port: IPort, element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
|
|
26
25
|
onElementContextMenu?: (element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
|
|
27
26
|
onElementMoved?: (relativePosition: IPosition, element: IElement, index: number, paperPosition: IPosition) => void;
|