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 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
- 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;
8363
- var handleMouseDown = function (ev) {
8364
- ev.stopPropagation();
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: handleMouseDown, ref: ref, style: { overflow: "visible" }, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onMouseUp: onMouseUp }, children));
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
- 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;
8359
- var handleMouseDown = function (ev) {
8360
- ev.stopPropagation();
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: handleMouseDown, ref: ref, style: { overflow: "visible" }, onMouseMove: onMouseMove, onMouseLeave: onMouseLeave, onMouseUp: onMouseUp }, children));
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 };