orcasvn-react-diagrams 0.1.14 → 0.1.16

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
@@ -8976,24 +8976,34 @@ var bundleExports = bundle.exports;
8976
8976
  var Flexbox$1 = /*@__PURE__*/getDefaultExportFromCjs(bundleExports);
8977
8977
 
8978
8978
  var Element = function (props) {
8979
- var _a, _b;
8979
+ var _a, _b, _c;
8980
8980
  var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, textsPlaceHolderFlexStyle = props.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition = props.textsPlaceHolderFlexboxPosition, textsPlaceHolderClassName = props.textsPlaceHolderClassName, texts = props.texts, portSlideRailSVGClassName = props.portSlideRailSVGClassName, portMoveableAreas = props.portMoveableAreas, portDirection = props.portDirection, defaultPortSize = props.defaultPortSize, onClick = props.onClick, onContextMenu = props.onContextMenu, renderShape = props.renderShape; props.onMoved; var onPortMoved = props.onPortMoved; props.onResized; var onPortMouseDown = props.onPortMouseDown, onPortMouseUp = props.onPortMouseUp; props.onMouseMove; props.onMouseLeave; props.onMouseUp; var onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
8981
- var _c = React$1.useState(), selectedPort = _c[0], setSelectedPort = _c[1];
8982
- var _d = React$1.useState((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8981
+ var _d = React$1.useState(), selectedPort = _d[0], setSelectedPort = _d[1];
8982
+ var _e = React$1.useState((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8983
8983
  return __assign(__assign({}, p), { id: p.id, ref: React$1.createRef() });
8984
- })) !== null && _b !== void 0 ? _b : []), ports = _d[0], setPorts = _d[1];
8985
- var _e = React$1.useState(false), someElementLinkStarted = _e[0], setSomeElementLinkStarted = _e[1];
8986
- var _f = React$1.useState(), potentialPortPosition = _f[0], setPotentialPortPosition = _f[1];
8984
+ })) !== null && _b !== void 0 ? _b : []), ports = _e[0], setPorts = _e[1];
8985
+ var _f = React$1.useState(false), someElementLinkStarted = _f[0], setSomeElementLinkStarted = _f[1];
8986
+ var _g = React$1.useState(), potentialPortPosition = _g[0], setPotentialPortPosition = _g[1];
8987
8987
  var _paperEventEmitterContext = React$1.useContext(paperEventEmitterContext);
8988
8988
  var elementRef = React$1.useRef(null);
8989
8989
  var elementLinkStarted = React$1.useRef();
8990
8990
  //Listen a new port is created, after add new port to ports state
8991
8991
  React$1.useEffect(function () {
8992
- var _a, _b;
8993
- setPorts((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8994
- return __assign(__assign({}, p), { id: p.id, ref: React$1.createRef() });
8995
- })) !== null && _b !== void 0 ? _b : []);
8996
- }, [props.ports]);
8992
+ setPorts(function (prev) {
8993
+ var _a, _b;
8994
+ return (_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p, index) {
8995
+ var _a, _b;
8996
+ var position = p.position;
8997
+ //Handle the case when the port is created.
8998
+ if (!((_a = prev[index]) === null || _a === void 0 ? void 0 : _a.ref)) {
8999
+ position = normalizePortPosition(position);
9000
+ onPortMoved === null || onPortMoved === void 0 ? void 0 : onPortMoved(p, id, p.position, position);
9001
+ _paperEventEmitterContext.emitPortMoved(p, id, p.position, position);
9002
+ }
9003
+ return __assign(__assign({}, p), { position: position, id: p.id, ref: ((_b = prev[index]) === null || _b === void 0 ? void 0 : _b.ref) || React$1.createRef() });
9004
+ })) !== null && _b !== void 0 ? _b : [];
9005
+ });
9006
+ }, [(_c = props.ports) === null || _c === void 0 ? void 0 : _c.length]);
8997
9007
  //Listen trigger of Delete key, handle delete port is selected
8998
9008
  React$1.useEffect(function () {
8999
9009
  var listener = _paperEventEmitterContext.onCommandDeleteSelectedPort(function () {
@@ -9018,6 +9028,7 @@ var Element = function (props) {
9018
9028
  //Check port moved
9019
9029
  if (port.position.x !== newPosition.x || port.position.y !== newPosition.y) {
9020
9030
  onPortMoved === null || onPortMoved === void 0 ? void 0 : onPortMoved(port, id, port.position, newPosition);
9031
+ _paperEventEmitterContext.emitPortMoved(port, id, port.position, newPosition);
9021
9032
  }
9022
9033
  return __assign(__assign({}, port), { position: newPosition });
9023
9034
  });
@@ -9637,9 +9648,12 @@ var Paper = function (props) {
9637
9648
  //Listen text is selected
9638
9649
  React$1.useEffect(function () {
9639
9650
  var textSelectedListener = paperEventEmitter.onTextSelected(function (text) {
9651
+ var _a;
9640
9652
  setSelectedElement(undefined);
9641
9653
  setSelectedElementSVG(null);
9642
9654
  setSelectedLink(undefined);
9655
+ //broadcast selected text to parent component
9656
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, text);
9643
9657
  });
9644
9658
  return function () {
9645
9659
  textSelectedListener.off();
@@ -9647,10 +9661,16 @@ var Paper = function (props) {
9647
9661
  }, []);
9648
9662
  //Listen port is selected
9649
9663
  React$1.useEffect(function () {
9650
- var portSelectedListener = paperEventEmitter.onPortSelected(function (port) {
9664
+ var portSelectedListener = paperEventEmitter.onPortSelected(function (port, elementId) {
9665
+ var _a;
9651
9666
  setSelectedElement(undefined);
9652
9667
  setSelectedElementSVG(null);
9653
9668
  setSelectedLink(undefined);
9669
+ //broadcast selected port to parent component
9670
+ var element = elements.find(function (e) { return e.id === elementId; });
9671
+ if (element) {
9672
+ (_a = props.onPortSelected) === null || _a === void 0 ? void 0 : _a.call(props, port, element);
9673
+ }
9654
9674
  });
9655
9675
  return function () {
9656
9676
  portSelectedListener.off();
@@ -9698,6 +9718,7 @@ var Paper = function (props) {
9698
9718
  };
9699
9719
  //Listen command delete selected for element
9700
9720
  React$1.useEffect(function () {
9721
+ var _a;
9701
9722
  var listener = paperEventEmitter.onCommandDeleteSelectedElement(function () {
9702
9723
  if (selectedElement) {
9703
9724
  var deletedChildElements = getDeletedChildElements(selectedElement);
@@ -9708,30 +9729,44 @@ var Paper = function (props) {
9708
9729
  setSelectedElementSVG(null);
9709
9730
  }
9710
9731
  });
9732
+ //broadcast selected element to parent component
9733
+ if (selectedElement) {
9734
+ (_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedElement);
9735
+ }
9711
9736
  return function () {
9712
9737
  listener.off();
9713
9738
  };
9714
9739
  }, [selectedElement]);
9715
9740
  //Listen command delete selected for link
9716
9741
  React$1.useEffect(function () {
9742
+ var _a;
9717
9743
  var listener = paperEventEmitter.onCommandDeleteSelectedLink(function () {
9718
9744
  if (selectedLink) {
9719
9745
  setLinks(function (prev) { return prev.filter(function (l) { return l.id !== selectedLink.id; }); });
9720
9746
  setSelectedLink(undefined);
9721
9747
  }
9722
9748
  });
9749
+ //broadcast selected link to parent component
9750
+ if (selectedLink) {
9751
+ (_a = props.onLinkSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedLink);
9752
+ }
9723
9753
  return function () {
9724
9754
  listener.off();
9725
9755
  };
9726
9756
  }, [selectedLink]);
9727
9757
  //Listen command delete selected for Text
9728
9758
  React$1.useEffect(function () {
9759
+ var _a;
9729
9760
  var listener = paperEventEmitter.onCommandDeleteSelectedText(function () {
9730
9761
  if (selectedText) {
9731
9762
  setTexts(function (prev) { return prev.filter(function (t) { return t.id !== selectedText.id; }); });
9732
9763
  setSelectedText(undefined);
9733
9764
  }
9734
9765
  });
9766
+ //broadcast selected text to parent component
9767
+ if (selectedText) {
9768
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedText);
9769
+ }
9735
9770
  return function () {
9736
9771
  listener.off();
9737
9772
  };
@@ -9835,6 +9870,18 @@ var Paper = function (props) {
9835
9870
  }
9836
9871
  return link;
9837
9872
  }); });
9873
+ //Update port position in element, not re-render
9874
+ setElements(function (prevElements) {
9875
+ var _a;
9876
+ var updatedElementIndex = prevElements.findIndex(function (e) { return e.id === elementId; });
9877
+ prevElements[updatedElementIndex].ports = (_a = prevElements[updatedElementIndex].ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
9878
+ if (p.id === port.id) {
9879
+ p.position = newPosition;
9880
+ }
9881
+ return p;
9882
+ });
9883
+ return prevElements;
9884
+ });
9838
9885
  };
9839
9886
  //Handle creating a new element link
9840
9887
  var handlePortMouseDown = function (ev, port, elementId) {
@@ -10179,7 +10226,7 @@ var Paper = function (props) {
10179
10226
  function Editor(_a) {
10180
10227
  var editorContext = _a.editorContext;
10181
10228
  return (React$1.createElement(React$1.Fragment, null,
10182
- React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking })));
10229
+ React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onPortSelected: editorContext.onPortSelected, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onElementSelected: editorContext.onElementSelected, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking, onLinkSelected: editorContext.onLinkSelected, onTextSelected: editorContext.onTextSelected })));
10183
10230
  }
10184
10231
 
10185
10232
  exports.CircleRC = Circle;
@@ -3,7 +3,7 @@ import IElement from '../models/IElement';
3
3
  import IElementLink from '../models/IElementLink';
4
4
  import IPosition from '../models/position';
5
5
  import IPort from '../models/IPort';
6
- import { IPaperText } from '../models/IText';
6
+ import IText, { IPaperText } from '../models/IText';
7
7
  import ISize from '../models/size';
8
8
  interface PaperProps {
9
9
  size: {
@@ -15,10 +15,14 @@ interface PaperProps {
15
15
  texts: IPaperText[];
16
16
  onPaperClicked?: () => void;
17
17
  onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
18
+ onPortSelected?: (port: IPort, element: IElement) => void;
18
19
  onElementContextMenu?: (element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
19
20
  onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
20
21
  onElementResized?: (size: ISize, element: IElement, index: number) => void;
22
+ onElementSelected?: (element: IElement) => void;
21
23
  onLinkValidation?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
24
+ onLinkSelected?: (link: IElementLink) => void;
25
+ onTextSelected?: (text: IText) => void;
22
26
  onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
23
27
  onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
24
28
  }
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import IElement from "../IElement";
3
3
  import IElementLink from "../IElementLink";
4
- import { IPaperText } from "../IText";
4
+ import IText, { IPaperText } from "../IText";
5
5
  import IPosition from "../position";
6
6
  import IPort from "../IPort";
7
7
  import ISize from "../size";
@@ -11,12 +11,16 @@ export declare class EditorContext {
11
11
  private _texts;
12
12
  onPaperClicked?: () => void;
13
13
  onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
14
+ onPortSelected?: (port: IPort, element: IElement) => void;
14
15
  onElementContextMenu?: (element: IElement, mouseEvent: React.MouseEvent<SVGElement>) => void;
15
16
  onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
16
17
  onElementResized?: (size: ISize, element: IElement, index: number) => void;
18
+ onElementSelected?: (element: IElement) => void;
17
19
  validateLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
18
20
  onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
19
21
  onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
22
+ onLinkSelected?: (link: IElementLink) => void;
23
+ onTextSelected?: (text: IText) => void;
20
24
  constructor(elements: IElement[], links: IElementLink[], texts: IPaperText[]);
21
25
  get elements(): IElement[];
22
26
  get links(): IElementLink[];
package/dist/esm/index.js CHANGED
@@ -8972,24 +8972,34 @@ var bundleExports = bundle.exports;
8972
8972
  var Flexbox$1 = /*@__PURE__*/getDefaultExportFromCjs(bundleExports);
8973
8973
 
8974
8974
  var Element = function (props) {
8975
- var _a, _b;
8975
+ var _a, _b, _c;
8976
8976
  var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, textsPlaceHolderFlexStyle = props.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition = props.textsPlaceHolderFlexboxPosition, textsPlaceHolderClassName = props.textsPlaceHolderClassName, texts = props.texts, portSlideRailSVGClassName = props.portSlideRailSVGClassName, portMoveableAreas = props.portMoveableAreas, portDirection = props.portDirection, defaultPortSize = props.defaultPortSize, onClick = props.onClick, onContextMenu = props.onContextMenu, renderShape = props.renderShape; props.onMoved; var onPortMoved = props.onPortMoved; props.onResized; var onPortMouseDown = props.onPortMouseDown, onPortMouseUp = props.onPortMouseUp; props.onMouseMove; props.onMouseLeave; props.onMouseUp; var onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
8977
- var _c = useState(), selectedPort = _c[0], setSelectedPort = _c[1];
8978
- var _d = useState((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8977
+ var _d = useState(), selectedPort = _d[0], setSelectedPort = _d[1];
8978
+ var _e = useState((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8979
8979
  return __assign(__assign({}, p), { id: p.id, ref: React$1.createRef() });
8980
- })) !== null && _b !== void 0 ? _b : []), ports = _d[0], setPorts = _d[1];
8981
- var _e = useState(false), someElementLinkStarted = _e[0], setSomeElementLinkStarted = _e[1];
8982
- var _f = useState(), potentialPortPosition = _f[0], setPotentialPortPosition = _f[1];
8980
+ })) !== null && _b !== void 0 ? _b : []), ports = _e[0], setPorts = _e[1];
8981
+ var _f = useState(false), someElementLinkStarted = _f[0], setSomeElementLinkStarted = _f[1];
8982
+ var _g = useState(), potentialPortPosition = _g[0], setPotentialPortPosition = _g[1];
8983
8983
  var _paperEventEmitterContext = useContext(paperEventEmitterContext);
8984
8984
  var elementRef = useRef(null);
8985
8985
  var elementLinkStarted = useRef();
8986
8986
  //Listen a new port is created, after add new port to ports state
8987
8987
  useEffect(function () {
8988
- var _a, _b;
8989
- setPorts((_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
8990
- return __assign(__assign({}, p), { id: p.id, ref: React$1.createRef() });
8991
- })) !== null && _b !== void 0 ? _b : []);
8992
- }, [props.ports]);
8988
+ setPorts(function (prev) {
8989
+ var _a, _b;
8990
+ return (_b = (_a = props.ports) === null || _a === void 0 ? void 0 : _a.map(function (p, index) {
8991
+ var _a, _b;
8992
+ var position = p.position;
8993
+ //Handle the case when the port is created.
8994
+ if (!((_a = prev[index]) === null || _a === void 0 ? void 0 : _a.ref)) {
8995
+ position = normalizePortPosition(position);
8996
+ onPortMoved === null || onPortMoved === void 0 ? void 0 : onPortMoved(p, id, p.position, position);
8997
+ _paperEventEmitterContext.emitPortMoved(p, id, p.position, position);
8998
+ }
8999
+ return __assign(__assign({}, p), { position: position, id: p.id, ref: ((_b = prev[index]) === null || _b === void 0 ? void 0 : _b.ref) || React$1.createRef() });
9000
+ })) !== null && _b !== void 0 ? _b : [];
9001
+ });
9002
+ }, [(_c = props.ports) === null || _c === void 0 ? void 0 : _c.length]);
8993
9003
  //Listen trigger of Delete key, handle delete port is selected
8994
9004
  useEffect(function () {
8995
9005
  var listener = _paperEventEmitterContext.onCommandDeleteSelectedPort(function () {
@@ -9014,6 +9024,7 @@ var Element = function (props) {
9014
9024
  //Check port moved
9015
9025
  if (port.position.x !== newPosition.x || port.position.y !== newPosition.y) {
9016
9026
  onPortMoved === null || onPortMoved === void 0 ? void 0 : onPortMoved(port, id, port.position, newPosition);
9027
+ _paperEventEmitterContext.emitPortMoved(port, id, port.position, newPosition);
9017
9028
  }
9018
9029
  return __assign(__assign({}, port), { position: newPosition });
9019
9030
  });
@@ -9633,9 +9644,12 @@ var Paper = function (props) {
9633
9644
  //Listen text is selected
9634
9645
  useEffect(function () {
9635
9646
  var textSelectedListener = paperEventEmitter.onTextSelected(function (text) {
9647
+ var _a;
9636
9648
  setSelectedElement(undefined);
9637
9649
  setSelectedElementSVG(null);
9638
9650
  setSelectedLink(undefined);
9651
+ //broadcast selected text to parent component
9652
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, text);
9639
9653
  });
9640
9654
  return function () {
9641
9655
  textSelectedListener.off();
@@ -9643,10 +9657,16 @@ var Paper = function (props) {
9643
9657
  }, []);
9644
9658
  //Listen port is selected
9645
9659
  useEffect(function () {
9646
- var portSelectedListener = paperEventEmitter.onPortSelected(function (port) {
9660
+ var portSelectedListener = paperEventEmitter.onPortSelected(function (port, elementId) {
9661
+ var _a;
9647
9662
  setSelectedElement(undefined);
9648
9663
  setSelectedElementSVG(null);
9649
9664
  setSelectedLink(undefined);
9665
+ //broadcast selected port to parent component
9666
+ var element = elements.find(function (e) { return e.id === elementId; });
9667
+ if (element) {
9668
+ (_a = props.onPortSelected) === null || _a === void 0 ? void 0 : _a.call(props, port, element);
9669
+ }
9650
9670
  });
9651
9671
  return function () {
9652
9672
  portSelectedListener.off();
@@ -9694,6 +9714,7 @@ var Paper = function (props) {
9694
9714
  };
9695
9715
  //Listen command delete selected for element
9696
9716
  useEffect(function () {
9717
+ var _a;
9697
9718
  var listener = paperEventEmitter.onCommandDeleteSelectedElement(function () {
9698
9719
  if (selectedElement) {
9699
9720
  var deletedChildElements = getDeletedChildElements(selectedElement);
@@ -9704,30 +9725,44 @@ var Paper = function (props) {
9704
9725
  setSelectedElementSVG(null);
9705
9726
  }
9706
9727
  });
9728
+ //broadcast selected element to parent component
9729
+ if (selectedElement) {
9730
+ (_a = props.onElementSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedElement);
9731
+ }
9707
9732
  return function () {
9708
9733
  listener.off();
9709
9734
  };
9710
9735
  }, [selectedElement]);
9711
9736
  //Listen command delete selected for link
9712
9737
  useEffect(function () {
9738
+ var _a;
9713
9739
  var listener = paperEventEmitter.onCommandDeleteSelectedLink(function () {
9714
9740
  if (selectedLink) {
9715
9741
  setLinks(function (prev) { return prev.filter(function (l) { return l.id !== selectedLink.id; }); });
9716
9742
  setSelectedLink(undefined);
9717
9743
  }
9718
9744
  });
9745
+ //broadcast selected link to parent component
9746
+ if (selectedLink) {
9747
+ (_a = props.onLinkSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedLink);
9748
+ }
9719
9749
  return function () {
9720
9750
  listener.off();
9721
9751
  };
9722
9752
  }, [selectedLink]);
9723
9753
  //Listen command delete selected for Text
9724
9754
  useEffect(function () {
9755
+ var _a;
9725
9756
  var listener = paperEventEmitter.onCommandDeleteSelectedText(function () {
9726
9757
  if (selectedText) {
9727
9758
  setTexts(function (prev) { return prev.filter(function (t) { return t.id !== selectedText.id; }); });
9728
9759
  setSelectedText(undefined);
9729
9760
  }
9730
9761
  });
9762
+ //broadcast selected text to parent component
9763
+ if (selectedText) {
9764
+ (_a = props.onTextSelected) === null || _a === void 0 ? void 0 : _a.call(props, selectedText);
9765
+ }
9731
9766
  return function () {
9732
9767
  listener.off();
9733
9768
  };
@@ -9831,6 +9866,18 @@ var Paper = function (props) {
9831
9866
  }
9832
9867
  return link;
9833
9868
  }); });
9869
+ //Update port position in element, not re-render
9870
+ setElements(function (prevElements) {
9871
+ var _a;
9872
+ var updatedElementIndex = prevElements.findIndex(function (e) { return e.id === elementId; });
9873
+ prevElements[updatedElementIndex].ports = (_a = prevElements[updatedElementIndex].ports) === null || _a === void 0 ? void 0 : _a.map(function (p) {
9874
+ if (p.id === port.id) {
9875
+ p.position = newPosition;
9876
+ }
9877
+ return p;
9878
+ });
9879
+ return prevElements;
9880
+ });
9834
9881
  };
9835
9882
  //Handle creating a new element link
9836
9883
  var handlePortMouseDown = function (ev, port, elementId) {
@@ -10175,7 +10222,7 @@ var Paper = function (props) {
10175
10222
  function Editor(_a) {
10176
10223
  var editorContext = _a.editorContext;
10177
10224
  return (React$1.createElement(React$1.Fragment, null,
10178
- React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking })));
10225
+ React$1.createElement(Paper, { size: { width: 3000, height: 3000 }, elements: editorContext.elements, links: editorContext.links, texts: editorContext.texts, onPaperClicked: editorContext.onPaperClicked, onPortMoved: editorContext.onPortMoved, onPortSelected: editorContext.onPortSelected, onElementContextMenu: editorContext.onElementContextMenu, onElementMoved: editorContext.onElementMoved, onElementResized: editorContext.onElementResized, onElementSelected: editorContext.onElementSelected, onLinkValidation: editorContext.validateLink, onCreatingLink: editorContext.onCreatingLink, onCreatingPortByLinking: editorContext.onCreatingPortByLinking, onLinkSelected: editorContext.onLinkSelected, onTextSelected: editorContext.onTextSelected })));
10179
10226
  }
10180
10227
 
10181
10228
  export { Circle as CircleRC, Crescent as CrescentRC, CustomPortFromJSXElement, CustomPortFromShape, CustomShape as CustomShapeRC, EditorContext, Element$1 as Element, ElementLink$1 as ElementLink, ElementLink as ElementLinkRC, Port$1 as Port, Port as PortRC, PositioningAnchor, Rectangle as RectangleRC, RectangularFrame as RectangularFrameRC, ResizingDirection, ShapeWrapper as ShapeWrapperRC, SubObjectDirection, Text$2 as Text, TextAlign, Text$1 as TextRC, Editor as default };