orcasvn-react-diagrams 0.1.45 → 0.1.46
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 +32 -9
- package/dist/cjs/types/components/elements/elementWrapper.d.ts +1 -0
- package/dist/cjs/types/components/paper.d.ts +1 -0
- package/dist/cjs/types/models/IEditorContext.d.ts +1 -0
- package/dist/cjs/types/models/IElementProps.d.ts +1 -0
- package/dist/cjs/types/models/implementations/EditorContext.d.ts +1 -0
- package/dist/esm/index.js +32 -9
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types/components/elements/elementWrapper.d.ts +1 -0
- package/dist/esm/types/components/paper.d.ts +1 -0
- package/dist/esm/types/models/IEditorContext.d.ts +1 -0
- package/dist/esm/types/models/IElementProps.d.ts +1 -0
- package/dist/esm/types/models/implementations/EditorContext.d.ts +1 -0
- package/dist/index.d.ts +3 -0
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -808,6 +808,7 @@ var EVENT_ELEMENT_SELECTED = 'elementSelected';
|
|
|
808
808
|
var EVENT_ELEMENT_MOUSE_MOVE = 'elementMouseMove';
|
|
809
809
|
var EVENT_ELEMENT_MOUSE_LEAVE = 'elementMouseLeave';
|
|
810
810
|
var EVENT_ELEMENT_MOUSE_UP = 'elementMouseUp';
|
|
811
|
+
var EVENT_ELEMENT_MOUSE_DOWN = 'elementMouseDown';
|
|
811
812
|
var EVENT_LINK_SELECTED = 'linkSelected';
|
|
812
813
|
var EVENT_TEXT_SELECTED = 'textSelected';
|
|
813
814
|
var EditorContext = /** @class */ (function () {
|
|
@@ -1014,6 +1015,13 @@ var EditorContext = /** @class */ (function () {
|
|
|
1014
1015
|
EditorContext.prototype.onElementMouseUpHandler = function (ev, element) {
|
|
1015
1016
|
this._eventEmitter.emit(EVENT_ELEMENT_MOUSE_UP, ev, element);
|
|
1016
1017
|
};
|
|
1018
|
+
EditorContext.prototype.onElementMouseDown = function (callback) {
|
|
1019
|
+
return this.addEventListener(EVENT_ELEMENT_MOUSE_DOWN, callback);
|
|
1020
|
+
};
|
|
1021
|
+
/** @internal */
|
|
1022
|
+
EditorContext.prototype.onElementMouseDownHandler = function (ev, element) {
|
|
1023
|
+
this._eventEmitter.emit(EVENT_ELEMENT_MOUSE_DOWN, ev, element);
|
|
1024
|
+
};
|
|
1017
1025
|
EditorContext.prototype.onLinkSelected = function (callback) {
|
|
1018
1026
|
return this.addEventListener(EVENT_LINK_SELECTED, callback);
|
|
1019
1027
|
};
|
|
@@ -8359,10 +8367,11 @@ var Ruler = function (_a) {
|
|
|
8359
8367
|
};
|
|
8360
8368
|
|
|
8361
8369
|
var ElementWrapper = React.forwardRef(function (_a, ref) {
|
|
8362
|
-
|
|
8363
|
-
|
|
8364
|
-
|
|
8365
|
-
}
|
|
8370
|
+
// const handleMouseDown = (ev: React.MouseEvent<SVGElement>) => {
|
|
8371
|
+
// ev.stopPropagation();
|
|
8372
|
+
// onMouseDown?.(ev);
|
|
8373
|
+
// }
|
|
8374
|
+
var x = _a.x, y = _a.y, cssClass = _a.cssClass, children = _a.children; _a.portPlaceholders; _a.ports; var onClick = _a.onClick, onContextMenu = _a.onContextMenu, onMouseMove = _a.onMouseMove, onMouseLeave = _a.onMouseLeave, onMouseUp = _a.onMouseUp, onMouseDown = _a.onMouseDown;
|
|
8366
8375
|
var handleClick = function (ev) {
|
|
8367
8376
|
if (ev.type === 'click') {
|
|
8368
8377
|
if (onClick)
|
|
@@ -8373,12 +8382,12 @@ var ElementWrapper = React.forwardRef(function (_a, ref) {
|
|
|
8373
8382
|
onContextMenu(ev);
|
|
8374
8383
|
}
|
|
8375
8384
|
};
|
|
8376
|
-
return (React.createElement("svg", { className: cssClass, x: x, y: y, onClick: handleClick, onContextMenu: handleClick, onMouseDown:
|
|
8385
|
+
return (React.createElement("svg", { className: cssClass, x: x, y: y, onClick: handleClick, onContextMenu: handleClick, onMouseDown: onMouseDown, ref: ref, style: { overflow: "visible" }, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onMouseUp: onMouseUp }, children));
|
|
8377
8386
|
});
|
|
8378
8387
|
|
|
8379
8388
|
var Element = React.forwardRef(function (props, forwardedRef) {
|
|
8380
8389
|
var _a, _b;
|
|
8381
|
-
var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, cssClass = props.cssClass, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, parentAbsolutePosition = props.parentAbsolutePosition; props.textsPlaceHolderFlexStyle; props.textsPlaceHolderFlexboxPosition; props.textsPlaceHolderClassName; var 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, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseUp = props.onMouseUp, onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
|
|
8390
|
+
var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, cssClass = props.cssClass, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, parentAbsolutePosition = props.parentAbsolutePosition; props.textsPlaceHolderFlexStyle; props.textsPlaceHolderFlexboxPosition; props.textsPlaceHolderClassName; var 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, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseUp = props.onMouseUp, onMouseDown = props.onMouseDown, onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
|
|
8382
8391
|
var _c = React.useState(), selectedPort = _c[0], setSelectedPort = _c[1];
|
|
8383
8392
|
var _d = React.useState(), hoveredPort = _d[0], setHoveredPort = _d[1];
|
|
8384
8393
|
var _e = React.useState([]), ports = _e[0], setPorts = _e[1];
|
|
@@ -8679,6 +8688,10 @@ var Element = React.forwardRef(function (props, forwardedRef) {
|
|
|
8679
8688
|
setPotentialPortPosition(undefined);
|
|
8680
8689
|
}
|
|
8681
8690
|
}
|
|
8691
|
+
var handleElementMouseDown = function (ev) {
|
|
8692
|
+
ev.stopPropagation();
|
|
8693
|
+
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev, id);
|
|
8694
|
+
};
|
|
8682
8695
|
var handleElementMouseUp = function (ev) {
|
|
8683
8696
|
ev.stopPropagation();
|
|
8684
8697
|
onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev, id);
|
|
@@ -8780,7 +8793,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
|
|
|
8780
8793
|
keepRatio: false
|
|
8781
8794
|
},
|
|
8782
8795
|
});
|
|
8783
|
-
return (React.createElement(ElementWrapper, { ref: elementRef, x: x, y: y, cssClass: cssClass, onClick: function (e) { return onClick ? onClick(id, e, elementRef.current) : true; }, onMouseMove: handleElementMouseMove, onMouseLeave: handleElementMouseLeave, onMouseUp: handleElementMouseUp, onContextMenu: function (e) { return onContextMenu ? onContextMenu(id, e, elementRef.current) : true; } },
|
|
8796
|
+
return (React.createElement(ElementWrapper, { ref: elementRef, x: x, y: y, cssClass: cssClass, onClick: function (e) { return onClick ? onClick(id, e, elementRef.current) : true; }, onMouseMove: handleElementMouseMove, onMouseLeave: handleElementMouseLeave, onMouseDown: handleElementMouseDown, onMouseUp: handleElementMouseUp, onContextMenu: function (e) { return onContextMenu ? onContextMenu(id, e, elementRef.current) : true; } },
|
|
8784
8797
|
renderedShape,
|
|
8785
8798
|
potentialPortPosition && (portPlaceholderShape
|
|
8786
8799
|
? React.createElement("svg", { x: potentialPortPosition.x, y: potentialPortPosition.y }, portPlaceholderShape)
|
|
@@ -9790,6 +9803,13 @@ var Paper = function (props) {
|
|
|
9790
9803
|
(_a = props.onElementMouseUp) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
|
|
9791
9804
|
}
|
|
9792
9805
|
}, [props.onElementMouseUp]);
|
|
9806
|
+
var handleMouseDown = React.useCallback(function (ev, elementId) {
|
|
9807
|
+
var _a;
|
|
9808
|
+
var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
|
|
9809
|
+
if (element) {
|
|
9810
|
+
(_a = props.onElementMouseDown) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
|
|
9811
|
+
}
|
|
9812
|
+
}, [props.onElementMouseDown]);
|
|
9793
9813
|
var handleMouseMove = React.useCallback(function (ev, elementId) {
|
|
9794
9814
|
var _a;
|
|
9795
9815
|
var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
|
|
@@ -9808,7 +9828,7 @@ var Paper = function (props) {
|
|
|
9808
9828
|
//use the defined react element or the default Element component
|
|
9809
9829
|
var ReactElement = element.reactElement || Element$1;
|
|
9810
9830
|
return (React.createElement("g", { id: "group-of-element-".concat(element.id), key: element.id },
|
|
9811
|
-
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, onClick: handleElementClicked, onContextMenu: handleContextMenu, onMouseUp: handleMouseUp, 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,
|
|
9831
|
+
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, 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,
|
|
9812
9832
|
// portPlaceholderShape={(<Circle x={0} y={0} width={10} height={10} fill='red' positioningAnchor={PositioningAnchor.Center} />)}
|
|
9813
9833
|
onMouseUpAtLinkedPortPlaceholder: handleMouseUpAtLinkedPortPlaceholder, onTextUpdated: handleElementTextChange, onManuallyTriggerRenderPort: props.onManuallyTriggerRenderPort, textsPlaceHolderClassName: element.textsPlaceHolderClassName, textsPlaceHolderFlexStyle: element.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition: element.textsPlaceHolderFlexboxPosition, parentAbsolutePosition: element.parentElement ? getAbsolutePosition(element.parentElement) : undefined }, element.childrenElementsInTree && element.childrenElementsInTree.map(renderElementInTree))));
|
|
9814
9834
|
}, [handleElementClicked, handleContextMenu, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, handleMouseUp, handleMouseMove, handleMouseLeave]);
|
|
@@ -9910,6 +9930,9 @@ var Editor = function (_a) {
|
|
|
9910
9930
|
var handleElementMouseMove = React.useCallback(function (ev, element) {
|
|
9911
9931
|
editorContext.onElementMouseMoveHandler(ev, element);
|
|
9912
9932
|
}, [editorContext]);
|
|
9933
|
+
var handleElementMouseDown = React.useCallback(function (ev, element) {
|
|
9934
|
+
editorContext.onElementMouseDownHandler(ev, element);
|
|
9935
|
+
}, [editorContext]);
|
|
9913
9936
|
var handleElementMouseUp = React.useCallback(function (ev, element) {
|
|
9914
9937
|
editorContext.onElementMouseUpHandler(ev, element);
|
|
9915
9938
|
}, [editorContext]);
|
|
@@ -9949,7 +9972,7 @@ var Editor = function (_a) {
|
|
|
9949
9972
|
var handlePaperMouseUp = React.useCallback(function (position) {
|
|
9950
9973
|
editorContext.onPaperMouseUpHandler(position);
|
|
9951
9974
|
}, [editorContext]);
|
|
9952
|
-
return (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, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, 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) }));
|
|
9975
|
+
return (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, 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) }));
|
|
9953
9976
|
};
|
|
9954
9977
|
|
|
9955
9978
|
exports.CircleRC = Circle;
|
|
@@ -12,6 +12,7 @@ interface IElementWrapper {
|
|
|
12
12
|
onMouseMove?: (event: React.MouseEvent) => void;
|
|
13
13
|
onMouseLeave?: (event: React.MouseEvent) => void;
|
|
14
14
|
onMouseUp?: (event: React.MouseEvent) => void;
|
|
15
|
+
onMouseDown?: (event: React.MouseEvent) => void;
|
|
15
16
|
}
|
|
16
17
|
declare const ElementWrapper: React.ForwardRefExoticComponent<IElementWrapper & React.RefAttributes<SVGSVGElement>>;
|
|
17
18
|
export default ElementWrapper;
|
|
@@ -26,6 +26,7 @@ interface PaperProps {
|
|
|
26
26
|
onElementResized?: (size: ISize, element: IElement, index: number) => void;
|
|
27
27
|
onElementSelected?: (element: IElement) => void;
|
|
28
28
|
onElementDeleted?: (element: IElement) => void;
|
|
29
|
+
onElementMouseDown?: (ev: React.MouseEvent, element: IElement) => void;
|
|
29
30
|
onElementMouseUp?: (ev: React.MouseEvent, element: IElement) => void;
|
|
30
31
|
onElementMouseMove?: (ev: React.MouseEvent, element: IElement) => void;
|
|
31
32
|
onElementMouseLeave?: (ev: React.MouseEvent, element: IElement) => void;
|
|
@@ -26,6 +26,7 @@ export default interface IEditorContext {
|
|
|
26
26
|
onElementMouseLeave: (callback: (ev: React.MouseEvent, element: IElement) => void) => (() => void);
|
|
27
27
|
onElementMouseMove: (callback: (ev: React.MouseEvent, element: IElement) => void) => (() => void);
|
|
28
28
|
onElementMouseUp: (callback: (ev: React.MouseEvent, element: IElement) => void) => (() => void);
|
|
29
|
+
onElementMouseDown: (callback: (ev: React.MouseEvent, element: IElement) => void) => (() => void);
|
|
29
30
|
onLinkSelected: (callback: (link: IElementLink) => void) => (() => void);
|
|
30
31
|
onTextSelected: (callback: (text: IText) => void) => (() => void);
|
|
31
32
|
getElement(elementId: string): IElement | undefined;
|
|
@@ -32,6 +32,7 @@ interface IElementProps {
|
|
|
32
32
|
portPlaceholderShape?: JSX.Element;
|
|
33
33
|
onMouseMove?: (event: React.MouseEvent, elementId: string) => void;
|
|
34
34
|
onMouseLeave?: (event: React.MouseEvent, elementId: string) => void;
|
|
35
|
+
onMouseDown?: (event: React.MouseEvent, elementId: string) => void;
|
|
35
36
|
onMouseUp?: (event: React.MouseEvent, elementId: string) => void;
|
|
36
37
|
onMouseUpAtLinkedPortPlaceholder?: (link: IElementLink, position: IPosition, targetElementId: string) => void;
|
|
37
38
|
onTextUpdated?: (elmentId: string, textId: string, newTextContent: string) => void;
|
|
@@ -45,6 +45,7 @@ export declare class EditorContext implements IEditorContext {
|
|
|
45
45
|
onElementMouseMove(callback: (ev: React.MouseEvent, element: IElement) => void): () => void;
|
|
46
46
|
onElementMouseLeave(callback: (ev: React.MouseEvent, element: IElement) => void): () => void;
|
|
47
47
|
onElementMouseUp(callback: (ev: React.MouseEvent, element: IElement) => void): () => void;
|
|
48
|
+
onElementMouseDown(callback: (ev: React.MouseEvent, element: IElement) => void): () => void;
|
|
48
49
|
onLinkSelected(callback: (link: IElementLink) => void): () => void;
|
|
49
50
|
onTextSelected(callback: (text: IText) => void): () => void;
|
|
50
51
|
triggerRenderElement(elementId: string): void;
|
package/dist/esm/index.js
CHANGED
|
@@ -804,6 +804,7 @@ var EVENT_ELEMENT_SELECTED = 'elementSelected';
|
|
|
804
804
|
var EVENT_ELEMENT_MOUSE_MOVE = 'elementMouseMove';
|
|
805
805
|
var EVENT_ELEMENT_MOUSE_LEAVE = 'elementMouseLeave';
|
|
806
806
|
var EVENT_ELEMENT_MOUSE_UP = 'elementMouseUp';
|
|
807
|
+
var EVENT_ELEMENT_MOUSE_DOWN = 'elementMouseDown';
|
|
807
808
|
var EVENT_LINK_SELECTED = 'linkSelected';
|
|
808
809
|
var EVENT_TEXT_SELECTED = 'textSelected';
|
|
809
810
|
var EditorContext = /** @class */ (function () {
|
|
@@ -1010,6 +1011,13 @@ var EditorContext = /** @class */ (function () {
|
|
|
1010
1011
|
EditorContext.prototype.onElementMouseUpHandler = function (ev, element) {
|
|
1011
1012
|
this._eventEmitter.emit(EVENT_ELEMENT_MOUSE_UP, ev, element);
|
|
1012
1013
|
};
|
|
1014
|
+
EditorContext.prototype.onElementMouseDown = function (callback) {
|
|
1015
|
+
return this.addEventListener(EVENT_ELEMENT_MOUSE_DOWN, callback);
|
|
1016
|
+
};
|
|
1017
|
+
/** @internal */
|
|
1018
|
+
EditorContext.prototype.onElementMouseDownHandler = function (ev, element) {
|
|
1019
|
+
this._eventEmitter.emit(EVENT_ELEMENT_MOUSE_DOWN, ev, element);
|
|
1020
|
+
};
|
|
1013
1021
|
EditorContext.prototype.onLinkSelected = function (callback) {
|
|
1014
1022
|
return this.addEventListener(EVENT_LINK_SELECTED, callback);
|
|
1015
1023
|
};
|
|
@@ -8355,10 +8363,11 @@ var Ruler = function (_a) {
|
|
|
8355
8363
|
};
|
|
8356
8364
|
|
|
8357
8365
|
var ElementWrapper = forwardRef(function (_a, ref) {
|
|
8358
|
-
|
|
8359
|
-
|
|
8360
|
-
|
|
8361
|
-
}
|
|
8366
|
+
// const handleMouseDown = (ev: React.MouseEvent<SVGElement>) => {
|
|
8367
|
+
// ev.stopPropagation();
|
|
8368
|
+
// onMouseDown?.(ev);
|
|
8369
|
+
// }
|
|
8370
|
+
var x = _a.x, y = _a.y, cssClass = _a.cssClass, children = _a.children; _a.portPlaceholders; _a.ports; var onClick = _a.onClick, onContextMenu = _a.onContextMenu, onMouseMove = _a.onMouseMove, onMouseLeave = _a.onMouseLeave, onMouseUp = _a.onMouseUp, onMouseDown = _a.onMouseDown;
|
|
8362
8371
|
var handleClick = function (ev) {
|
|
8363
8372
|
if (ev.type === 'click') {
|
|
8364
8373
|
if (onClick)
|
|
@@ -8369,12 +8378,12 @@ var ElementWrapper = forwardRef(function (_a, ref) {
|
|
|
8369
8378
|
onContextMenu(ev);
|
|
8370
8379
|
}
|
|
8371
8380
|
};
|
|
8372
|
-
return (React.createElement("svg", { className: cssClass, x: x, y: y, onClick: handleClick, onContextMenu: handleClick, onMouseDown:
|
|
8381
|
+
return (React.createElement("svg", { className: cssClass, x: x, y: y, onClick: handleClick, onContextMenu: handleClick, onMouseDown: onMouseDown, ref: ref, style: { overflow: "visible" }, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onMouseUp: onMouseUp }, children));
|
|
8373
8382
|
});
|
|
8374
8383
|
|
|
8375
8384
|
var Element = forwardRef(function (props, forwardedRef) {
|
|
8376
8385
|
var _a, _b;
|
|
8377
|
-
var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, cssClass = props.cssClass, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, parentAbsolutePosition = props.parentAbsolutePosition; props.textsPlaceHolderFlexStyle; props.textsPlaceHolderFlexboxPosition; props.textsPlaceHolderClassName; var 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, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseUp = props.onMouseUp, onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
|
|
8386
|
+
var id = props.id, x = props.x, y = props.y, width = props.width, height = props.height, cssClass = props.cssClass, portPlaceholderShape = props.portPlaceholderShape, children = props.children, container = props.container, parentAbsolutePosition = props.parentAbsolutePosition; props.textsPlaceHolderFlexStyle; props.textsPlaceHolderFlexboxPosition; props.textsPlaceHolderClassName; var 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, onMouseMove = props.onMouseMove, onMouseLeave = props.onMouseLeave, onMouseUp = props.onMouseUp, onMouseDown = props.onMouseDown, onMouseUpAtLinkedPortPlaceholder = props.onMouseUpAtLinkedPortPlaceholder, onTextUpdated = props.onTextUpdated;
|
|
8378
8387
|
var _c = useState(), selectedPort = _c[0], setSelectedPort = _c[1];
|
|
8379
8388
|
var _d = useState(), hoveredPort = _d[0], setHoveredPort = _d[1];
|
|
8380
8389
|
var _e = useState([]), ports = _e[0], setPorts = _e[1];
|
|
@@ -8675,6 +8684,10 @@ var Element = forwardRef(function (props, forwardedRef) {
|
|
|
8675
8684
|
setPotentialPortPosition(undefined);
|
|
8676
8685
|
}
|
|
8677
8686
|
}
|
|
8687
|
+
var handleElementMouseDown = function (ev) {
|
|
8688
|
+
ev.stopPropagation();
|
|
8689
|
+
onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev, id);
|
|
8690
|
+
};
|
|
8678
8691
|
var handleElementMouseUp = function (ev) {
|
|
8679
8692
|
ev.stopPropagation();
|
|
8680
8693
|
onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev, id);
|
|
@@ -8776,7 +8789,7 @@ var Element = forwardRef(function (props, forwardedRef) {
|
|
|
8776
8789
|
keepRatio: false
|
|
8777
8790
|
},
|
|
8778
8791
|
});
|
|
8779
|
-
return (React.createElement(ElementWrapper, { ref: elementRef, x: x, y: y, cssClass: cssClass, onClick: function (e) { return onClick ? onClick(id, e, elementRef.current) : true; }, onMouseMove: handleElementMouseMove, onMouseLeave: handleElementMouseLeave, onMouseUp: handleElementMouseUp, onContextMenu: function (e) { return onContextMenu ? onContextMenu(id, e, elementRef.current) : true; } },
|
|
8792
|
+
return (React.createElement(ElementWrapper, { ref: elementRef, x: x, y: y, cssClass: cssClass, onClick: function (e) { return onClick ? onClick(id, e, elementRef.current) : true; }, onMouseMove: handleElementMouseMove, onMouseLeave: handleElementMouseLeave, onMouseDown: handleElementMouseDown, onMouseUp: handleElementMouseUp, onContextMenu: function (e) { return onContextMenu ? onContextMenu(id, e, elementRef.current) : true; } },
|
|
8780
8793
|
renderedShape,
|
|
8781
8794
|
potentialPortPosition && (portPlaceholderShape
|
|
8782
8795
|
? React.createElement("svg", { x: potentialPortPosition.x, y: potentialPortPosition.y }, portPlaceholderShape)
|
|
@@ -9786,6 +9799,13 @@ var Paper = function (props) {
|
|
|
9786
9799
|
(_a = props.onElementMouseUp) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
|
|
9787
9800
|
}
|
|
9788
9801
|
}, [props.onElementMouseUp]);
|
|
9802
|
+
var handleMouseDown = useCallback(function (ev, elementId) {
|
|
9803
|
+
var _a;
|
|
9804
|
+
var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
|
|
9805
|
+
if (element) {
|
|
9806
|
+
(_a = props.onElementMouseDown) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
|
|
9807
|
+
}
|
|
9808
|
+
}, [props.onElementMouseDown]);
|
|
9789
9809
|
var handleMouseMove = useCallback(function (ev, elementId) {
|
|
9790
9810
|
var _a;
|
|
9791
9811
|
var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
|
|
@@ -9804,7 +9824,7 @@ var Paper = function (props) {
|
|
|
9804
9824
|
//use the defined react element or the default Element component
|
|
9805
9825
|
var ReactElement = element.reactElement || Element$1;
|
|
9806
9826
|
return (React.createElement("g", { id: "group-of-element-".concat(element.id), key: element.id },
|
|
9807
|
-
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 === PositioningAnchor.Center ? element.position.x - element.size.width / 2 : element.position.x, y: element.positionAnchor === PositioningAnchor.Center ? element.position.y - element.size.height / 2 : element.position.y, onClick: handleElementClicked, onContextMenu: handleContextMenu, onMouseUp: handleMouseUp, 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,
|
|
9827
|
+
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 === PositioningAnchor.Center ? element.position.x - element.size.width / 2 : element.position.x, y: element.positionAnchor === PositioningAnchor.Center ? element.position.y - element.size.height / 2 : element.position.y, 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,
|
|
9808
9828
|
// portPlaceholderShape={(<Circle x={0} y={0} width={10} height={10} fill='red' positioningAnchor={PositioningAnchor.Center} />)}
|
|
9809
9829
|
onMouseUpAtLinkedPortPlaceholder: handleMouseUpAtLinkedPortPlaceholder, onTextUpdated: handleElementTextChange, onManuallyTriggerRenderPort: props.onManuallyTriggerRenderPort, textsPlaceHolderClassName: element.textsPlaceHolderClassName, textsPlaceHolderFlexStyle: element.textsPlaceHolderFlexStyle, textsPlaceHolderFlexboxPosition: element.textsPlaceHolderFlexboxPosition, parentAbsolutePosition: element.parentElement ? getAbsolutePosition(element.parentElement) : undefined }, element.childrenElementsInTree && element.childrenElementsInTree.map(renderElementInTree))));
|
|
9810
9830
|
}, [handleElementClicked, handleContextMenu, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, handleMouseUp, handleMouseMove, handleMouseLeave]);
|
|
@@ -9906,6 +9926,9 @@ var Editor = function (_a) {
|
|
|
9906
9926
|
var handleElementMouseMove = useCallback(function (ev, element) {
|
|
9907
9927
|
editorContext.onElementMouseMoveHandler(ev, element);
|
|
9908
9928
|
}, [editorContext]);
|
|
9929
|
+
var handleElementMouseDown = useCallback(function (ev, element) {
|
|
9930
|
+
editorContext.onElementMouseDownHandler(ev, element);
|
|
9931
|
+
}, [editorContext]);
|
|
9909
9932
|
var handleElementMouseUp = useCallback(function (ev, element) {
|
|
9910
9933
|
editorContext.onElementMouseUpHandler(ev, element);
|
|
9911
9934
|
}, [editorContext]);
|
|
@@ -9945,7 +9968,7 @@ var Editor = function (_a) {
|
|
|
9945
9968
|
var handlePaperMouseUp = useCallback(function (position) {
|
|
9946
9969
|
editorContext.onPaperMouseUpHandler(position);
|
|
9947
9970
|
}, [editorContext]);
|
|
9948
|
-
return (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, onElementContextMenu: handleElementContextMenu, onElementMoved: handleElementMoved, onElementResized: handleElementResized, onElementSelected: handleElementSelected, onElementMouseLeave: handleElementMouseLeave, onElementMouseMove: handleElementMouseMove, 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) }));
|
|
9971
|
+
return (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, 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) }));
|
|
9949
9972
|
};
|
|
9950
9973
|
|
|
9951
9974
|
export { Circle as CircleRC, Crescent as CrescentRC, CustomShape as CustomShapeRC, EditorContext, Element$2 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, addPointToList, calculateAngleWithOx, checkPointContainsPolygon, checkPositionOnLine, checkSamePosition, configureLogger, correctPortPositionInElement, createSmoothPathString, Editor as default, degreeToRadian, diamondEdgeInsideSquare, dist, findNearestPointOnSegment, findNearestPosition, findNearestProjectedPoint, generateSubstitutePosition, generateUniqueId, getAbsolutePosition, getCurvePathData, getElementRotationInfo, getFirstIntersection, getFourVertexesOfBBoxFromElement, getIntersectionPositions, getPortAbsolutePosition, getRectangleCorners, getRelativePosition, getRotatedRectangleCoordinates, getRotatedSVGBBox, getSVGBBoxOutsideTransformedParent, makePolygonOfElement, pathDataToD, removeDuplicatePosition, transformAbsPositionToElementRelativePosition, transformAbsPositionToRelativePositionInsideElement };
|