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 +60 -13
- package/dist/cjs/types/components/paper.d.ts +5 -1
- package/dist/cjs/types/models/implementations/EditorContext.d.ts +5 -1
- package/dist/esm/index.js +60 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/paper.d.ts +5 -1
- package/dist/esm/types/models/implementations/EditorContext.d.ts +5 -1
- package/dist/index.d.ts +4 -0
- package/package.json +1 -1
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
|
|
8982
|
-
var
|
|
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 =
|
|
8985
|
-
var
|
|
8986
|
-
var
|
|
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
|
-
|
|
8993
|
-
|
|
8994
|
-
return
|
|
8995
|
-
|
|
8996
|
-
|
|
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
|
|
8978
|
-
var
|
|
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 =
|
|
8981
|
-
var
|
|
8982
|
-
var
|
|
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
|
-
|
|
8989
|
-
|
|
8990
|
-
return
|
|
8991
|
-
|
|
8992
|
-
|
|
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 };
|