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 +32 -10
- 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 -10
- 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
|
};
|
|
@@ -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
|
-
|
|
8364
|
-
|
|
8365
|
-
|
|
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:
|
|
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
|
-
|
|
8360
|
-
|
|
8361
|
-
|
|
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:
|
|
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 };
|