orcasvn-react-diagrams 0.1.44 → 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
  };
@@ -1605,7 +1613,6 @@ var paperEventEmitterContext = React.createContext({
1605
1613
 
1606
1614
  var Text = React.forwardRef(function (_a, ref) {
1607
1615
  var id = _a.id, content = _a.content, x = _a.x, y = _a.y, width = _a.width, height = _a.height, editable = _a.editable, _b = _a.align, align = _b === void 0 ? exports.TextAlign.left : _b, fontSizeProp = _a.fontSize, border = _a.border, container = _a.container, parentAbsolutePosition = _a.parentAbsolutePosition, onSelected = _a.onSelected, onMoved = _a.onMoved, onResized = _a.onResized, onContentChanged = _a.onContentChanged;
1608
- console.log(content, x, y, parentAbsolutePosition);
1609
1616
  var _c = React.useState(false), isSelected = _c[0], setIsSelected = _c[1];
1610
1617
  var _d = React.useState(false), isEditing = _d[0], setIsEditing = _d[1];
1611
1618
  var absolutePosition = React.useMemo(function () {
@@ -8360,10 +8367,11 @@ var Ruler = function (_a) {
8360
8367
  };
8361
8368
 
8362
8369
  var ElementWrapper = React.forwardRef(function (_a, ref) {
8363
- 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;
8364
- var handleMouseDown = function (ev) {
8365
- ev.stopPropagation();
8366
- };
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;
8367
8375
  var handleClick = function (ev) {
8368
8376
  if (ev.type === 'click') {
8369
8377
  if (onClick)
@@ -8374,12 +8382,12 @@ var ElementWrapper = React.forwardRef(function (_a, ref) {
8374
8382
  onContextMenu(ev);
8375
8383
  }
8376
8384
  };
8377
- 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));
8378
8386
  });
8379
8387
 
8380
8388
  var Element = React.forwardRef(function (props, forwardedRef) {
8381
8389
  var _a, _b;
8382
- 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;
8383
8391
  var _c = React.useState(), selectedPort = _c[0], setSelectedPort = _c[1];
8384
8392
  var _d = React.useState(), hoveredPort = _d[0], setHoveredPort = _d[1];
8385
8393
  var _e = React.useState([]), ports = _e[0], setPorts = _e[1];
@@ -8680,6 +8688,10 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8680
8688
  setPotentialPortPosition(undefined);
8681
8689
  }
8682
8690
  }
8691
+ var handleElementMouseDown = function (ev) {
8692
+ ev.stopPropagation();
8693
+ onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev, id);
8694
+ };
8683
8695
  var handleElementMouseUp = function (ev) {
8684
8696
  ev.stopPropagation();
8685
8697
  onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev, id);
@@ -8781,7 +8793,7 @@ var Element = React.forwardRef(function (props, forwardedRef) {
8781
8793
  keepRatio: false
8782
8794
  },
8783
8795
  });
8784
- 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; } },
8785
8797
  renderedShape,
8786
8798
  potentialPortPosition && (portPlaceholderShape
8787
8799
  ? React.createElement("svg", { x: potentialPortPosition.x, y: potentialPortPosition.y }, portPlaceholderShape)
@@ -9791,6 +9803,13 @@ var Paper = function (props) {
9791
9803
  (_a = props.onElementMouseUp) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
9792
9804
  }
9793
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]);
9794
9813
  var handleMouseMove = React.useCallback(function (ev, elementId) {
9795
9814
  var _a;
9796
9815
  var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
@@ -9809,7 +9828,7 @@ var Paper = function (props) {
9809
9828
  //use the defined react element or the default Element component
9810
9829
  var ReactElement = element.reactElement || Element$1;
9811
9830
  return (React.createElement("g", { id: "group-of-element-".concat(element.id), key: element.id },
9812
- 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,
9813
9832
  // portPlaceholderShape={(<Circle x={0} y={0} width={10} height={10} fill='red' positioningAnchor={PositioningAnchor.Center} />)}
9814
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))));
9815
9834
  }, [handleElementClicked, handleContextMenu, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, handleMouseUp, handleMouseMove, handleMouseLeave]);
@@ -9911,6 +9930,9 @@ var Editor = function (_a) {
9911
9930
  var handleElementMouseMove = React.useCallback(function (ev, element) {
9912
9931
  editorContext.onElementMouseMoveHandler(ev, element);
9913
9932
  }, [editorContext]);
9933
+ var handleElementMouseDown = React.useCallback(function (ev, element) {
9934
+ editorContext.onElementMouseDownHandler(ev, element);
9935
+ }, [editorContext]);
9914
9936
  var handleElementMouseUp = React.useCallback(function (ev, element) {
9915
9937
  editorContext.onElementMouseUpHandler(ev, element);
9916
9938
  }, [editorContext]);
@@ -9950,7 +9972,7 @@ var Editor = function (_a) {
9950
9972
  var handlePaperMouseUp = React.useCallback(function (position) {
9951
9973
  editorContext.onPaperMouseUpHandler(position);
9952
9974
  }, [editorContext]);
9953
- 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) }));
9954
9976
  };
9955
9977
 
9956
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
  };
@@ -1601,7 +1609,6 @@ var paperEventEmitterContext = createContext({
1601
1609
 
1602
1610
  var Text = forwardRef(function (_a, ref) {
1603
1611
  var id = _a.id, content = _a.content, x = _a.x, y = _a.y, width = _a.width, height = _a.height, editable = _a.editable, _b = _a.align, align = _b === void 0 ? TextAlign.left : _b, fontSizeProp = _a.fontSize, border = _a.border, container = _a.container, parentAbsolutePosition = _a.parentAbsolutePosition, onSelected = _a.onSelected, onMoved = _a.onMoved, onResized = _a.onResized, onContentChanged = _a.onContentChanged;
1604
- console.log(content, x, y, parentAbsolutePosition);
1605
1612
  var _c = useState(false), isSelected = _c[0], setIsSelected = _c[1];
1606
1613
  var _d = useState(false), isEditing = _d[0], setIsEditing = _d[1];
1607
1614
  var absolutePosition = useMemo(function () {
@@ -8356,10 +8363,11 @@ var Ruler = function (_a) {
8356
8363
  };
8357
8364
 
8358
8365
  var ElementWrapper = forwardRef(function (_a, ref) {
8359
- 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;
8360
- var handleMouseDown = function (ev) {
8361
- ev.stopPropagation();
8362
- };
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;
8363
8371
  var handleClick = function (ev) {
8364
8372
  if (ev.type === 'click') {
8365
8373
  if (onClick)
@@ -8370,12 +8378,12 @@ var ElementWrapper = forwardRef(function (_a, ref) {
8370
8378
  onContextMenu(ev);
8371
8379
  }
8372
8380
  };
8373
- 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));
8374
8382
  });
8375
8383
 
8376
8384
  var Element = forwardRef(function (props, forwardedRef) {
8377
8385
  var _a, _b;
8378
- 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;
8379
8387
  var _c = useState(), selectedPort = _c[0], setSelectedPort = _c[1];
8380
8388
  var _d = useState(), hoveredPort = _d[0], setHoveredPort = _d[1];
8381
8389
  var _e = useState([]), ports = _e[0], setPorts = _e[1];
@@ -8676,6 +8684,10 @@ var Element = forwardRef(function (props, forwardedRef) {
8676
8684
  setPotentialPortPosition(undefined);
8677
8685
  }
8678
8686
  }
8687
+ var handleElementMouseDown = function (ev) {
8688
+ ev.stopPropagation();
8689
+ onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(ev, id);
8690
+ };
8679
8691
  var handleElementMouseUp = function (ev) {
8680
8692
  ev.stopPropagation();
8681
8693
  onMouseUp === null || onMouseUp === void 0 ? void 0 : onMouseUp(ev, id);
@@ -8777,7 +8789,7 @@ var Element = forwardRef(function (props, forwardedRef) {
8777
8789
  keepRatio: false
8778
8790
  },
8779
8791
  });
8780
- 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; } },
8781
8793
  renderedShape,
8782
8794
  potentialPortPosition && (portPlaceholderShape
8783
8795
  ? React.createElement("svg", { x: potentialPortPosition.x, y: potentialPortPosition.y }, portPlaceholderShape)
@@ -9787,6 +9799,13 @@ var Paper = function (props) {
9787
9799
  (_a = props.onElementMouseUp) === null || _a === void 0 ? void 0 : _a.call(props, ev, element);
9788
9800
  }
9789
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]);
9790
9809
  var handleMouseMove = useCallback(function (ev, elementId) {
9791
9810
  var _a;
9792
9811
  var element = elementsRef.current.find(function (ele) { return ele.id === elementId; });
@@ -9805,7 +9824,7 @@ var Paper = function (props) {
9805
9824
  //use the defined react element or the default Element component
9806
9825
  var ReactElement = element.reactElement || Element$1;
9807
9826
  return (React.createElement("g", { id: "group-of-element-".concat(element.id), key: element.id },
9808
- 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,
9809
9828
  // portPlaceholderShape={(<Circle x={0} y={0} width={10} height={10} fill='red' positioningAnchor={PositioningAnchor.Center} />)}
9810
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))));
9811
9830
  }, [handleElementClicked, handleContextMenu, handlePortMoved, handlePortMouseDown, handlePortMouseUp, handleMouseUpAtLinkedPortPlaceholder, handleElementTextChange, handleMouseUp, handleMouseMove, handleMouseLeave]);
@@ -9907,6 +9926,9 @@ var Editor = function (_a) {
9907
9926
  var handleElementMouseMove = useCallback(function (ev, element) {
9908
9927
  editorContext.onElementMouseMoveHandler(ev, element);
9909
9928
  }, [editorContext]);
9929
+ var handleElementMouseDown = useCallback(function (ev, element) {
9930
+ editorContext.onElementMouseDownHandler(ev, element);
9931
+ }, [editorContext]);
9910
9932
  var handleElementMouseUp = useCallback(function (ev, element) {
9911
9933
  editorContext.onElementMouseUpHandler(ev, element);
9912
9934
  }, [editorContext]);
@@ -9946,7 +9968,7 @@ var Editor = function (_a) {
9946
9968
  var handlePaperMouseUp = useCallback(function (position) {
9947
9969
  editorContext.onPaperMouseUpHandler(position);
9948
9970
  }, [editorContext]);
9949
- 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) }));
9950
9972
  };
9951
9973
 
9952
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 };