orcasvn-react-diagrams 0.1.0
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/README.md +46 -0
- package/dist/cjs/index.js +8491 -0
- package/dist/cjs/types/App.d.ts +4 -0
- package/dist/cjs/types/App.test.d.ts +1 -0
- package/dist/cjs/types/components/BBoxDebugger.d.ts +6 -0
- package/dist/cjs/types/components/CloseIcon.d.ts +6 -0
- package/dist/cjs/types/components/LinkDebugger.d.ts +8 -0
- package/dist/cjs/types/components/editor.d.ts +7 -0
- package/dist/cjs/types/components/elementShowbox.d.ts +3 -0
- package/dist/cjs/types/components/elements/dragDropHandlerElement.d.ts +7 -0
- package/dist/cjs/types/components/elements/element.d.ts +4 -0
- package/dist/cjs/types/components/elements/elementWrapper.d.ts +15 -0
- package/dist/cjs/types/components/links/elementLink.d.ts +4 -0
- package/dist/cjs/types/components/links/point.d.ts +11 -0
- package/dist/cjs/types/components/paper.d.ts +25 -0
- package/dist/cjs/types/components/ports/port.d.ts +3 -0
- package/dist/cjs/types/components/shapeShowbox.d.ts +3 -0
- package/dist/cjs/types/components/shapes/circle.d.ts +9 -0
- package/dist/cjs/types/components/shapes/customShape.d.ts +7 -0
- package/dist/cjs/types/components/shapes/halfCircle.d.ts +9 -0
- package/dist/cjs/types/components/shapes/rectangle.d.ts +9 -0
- package/dist/cjs/types/components/shapes/rectangularFrame.d.ts +11 -0
- package/dist/cjs/types/components/shapes/shapeWrapper.d.ts +8 -0
- package/dist/cjs/types/components/svgUtilsShowbox.d.ts +3 -0
- package/dist/cjs/types/components/texts/text.d.ts +4 -0
- package/dist/cjs/types/components/viewControls/ruler.d.ts +7 -0
- package/dist/cjs/types/components/viewControls/selectionFrame.d.ts +4 -0
- package/dist/cjs/types/contexts/paperEventEmitterContext.d.ts +35 -0
- package/dist/cjs/types/hooks/useKeyboardCommands.d.ts +5 -0
- package/dist/cjs/types/hooks/useSelectionFrame.d.ts +6 -0
- package/dist/cjs/types/index.d.ts +2 -0
- package/dist/cjs/types/main.d.ts +2 -0
- package/dist/cjs/types/mocks/editorContext.d.ts +2 -0
- package/dist/cjs/types/mocks/port1.d.ts +5 -0
- package/dist/cjs/types/models/IElement.d.ts +30 -0
- package/dist/cjs/types/models/IElementLink.d.ts +22 -0
- package/dist/cjs/types/models/IElementLinkProps.d.ts +27 -0
- package/dist/cjs/types/models/IElementProps.d.ts +35 -0
- package/dist/cjs/types/models/IElementSelectorProps.d.ts +22 -0
- package/dist/cjs/types/models/IPort.d.ts +12 -0
- package/dist/cjs/types/models/IPortProps.d.ts +24 -0
- package/dist/cjs/types/models/IResizability.d.ts +4 -0
- package/dist/cjs/types/models/IShape.d.ts +16 -0
- package/dist/cjs/types/models/IText.d.ts +15 -0
- package/dist/cjs/types/models/ITextProps.d.ts +19 -0
- package/dist/cjs/types/models/callbackTypes.d.ts +14 -0
- package/dist/cjs/types/models/enums/PositioningAnchor.d.ts +4 -0
- package/dist/cjs/types/models/enums/ResizingDirection.d.ts +10 -0
- package/dist/cjs/types/models/enums/SubObjectDirection.d.ts +4 -0
- package/dist/cjs/types/models/enums/TextAlign.d.ts +5 -0
- package/dist/cjs/types/models/enums/index.d.ts +4 -0
- package/dist/cjs/types/models/implementations/CustomPort.d.ts +7 -0
- package/dist/cjs/types/models/implementations/EditorContext.d.ts +31 -0
- package/dist/cjs/types/models/implementations/Element.d.ts +44 -0
- package/dist/cjs/types/models/implementations/ElementLink.d.ts +24 -0
- package/dist/cjs/types/models/implementations/Port.d.ts +15 -0
- package/dist/cjs/types/models/implementations/diamondElement.d.ts +11 -0
- package/dist/cjs/types/models/implementations/rectangularFrameElement.d.ts +8 -0
- package/dist/cjs/types/models/index.d.ts +18 -0
- package/dist/cjs/types/models/position.d.ts +4 -0
- package/dist/cjs/types/models/size.d.ts +4 -0
- package/dist/cjs/types/reportWebVitals.d.ts +3 -0
- package/dist/cjs/types/setupTests.d.ts +1 -0
- package/dist/cjs/types/utils/constants.d.ts +48 -0
- package/dist/cjs/types/utils/generateUniqueId.d.ts +1 -0
- package/dist/cjs/types/utils/lineUtil.d.ts +3 -0
- package/dist/cjs/types/utils/mathUtil.d.ts +6 -0
- package/dist/cjs/types/utils/pathUtil.d.ts +11 -0
- package/dist/cjs/types/utils/portSlideRailSVGUtil.d.ts +3 -0
- package/dist/cjs/types/utils/positionUtil.d.ts +26 -0
- package/dist/cjs/types/utils/svgUtil.d.ts +3 -0
- package/dist/esm/index.js +8487 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/types/App.d.ts +4 -0
- package/dist/esm/types/App.test.d.ts +1 -0
- package/dist/esm/types/components/BBoxDebugger.d.ts +6 -0
- package/dist/esm/types/components/CloseIcon.d.ts +6 -0
- package/dist/esm/types/components/LinkDebugger.d.ts +8 -0
- package/dist/esm/types/components/editor.d.ts +7 -0
- package/dist/esm/types/components/elementShowbox.d.ts +3 -0
- package/dist/esm/types/components/elements/dragDropHandlerElement.d.ts +7 -0
- package/dist/esm/types/components/elements/element.d.ts +4 -0
- package/dist/esm/types/components/elements/elementWrapper.d.ts +15 -0
- package/dist/esm/types/components/links/elementLink.d.ts +4 -0
- package/dist/esm/types/components/links/point.d.ts +11 -0
- package/dist/esm/types/components/paper.d.ts +25 -0
- package/dist/esm/types/components/ports/port.d.ts +3 -0
- package/dist/esm/types/components/shapeShowbox.d.ts +3 -0
- package/dist/esm/types/components/shapes/circle.d.ts +9 -0
- package/dist/esm/types/components/shapes/customShape.d.ts +7 -0
- package/dist/esm/types/components/shapes/halfCircle.d.ts +9 -0
- package/dist/esm/types/components/shapes/rectangle.d.ts +9 -0
- package/dist/esm/types/components/shapes/rectangularFrame.d.ts +11 -0
- package/dist/esm/types/components/shapes/shapeWrapper.d.ts +8 -0
- package/dist/esm/types/components/svgUtilsShowbox.d.ts +3 -0
- package/dist/esm/types/components/texts/text.d.ts +4 -0
- package/dist/esm/types/components/viewControls/ruler.d.ts +7 -0
- package/dist/esm/types/components/viewControls/selectionFrame.d.ts +4 -0
- package/dist/esm/types/contexts/paperEventEmitterContext.d.ts +35 -0
- package/dist/esm/types/hooks/useKeyboardCommands.d.ts +5 -0
- package/dist/esm/types/hooks/useSelectionFrame.d.ts +6 -0
- package/dist/esm/types/index.d.ts +2 -0
- package/dist/esm/types/main.d.ts +2 -0
- package/dist/esm/types/mocks/editorContext.d.ts +2 -0
- package/dist/esm/types/mocks/port1.d.ts +5 -0
- package/dist/esm/types/models/IElement.d.ts +30 -0
- package/dist/esm/types/models/IElementLink.d.ts +22 -0
- package/dist/esm/types/models/IElementLinkProps.d.ts +27 -0
- package/dist/esm/types/models/IElementProps.d.ts +35 -0
- package/dist/esm/types/models/IElementSelectorProps.d.ts +22 -0
- package/dist/esm/types/models/IPort.d.ts +12 -0
- package/dist/esm/types/models/IPortProps.d.ts +24 -0
- package/dist/esm/types/models/IResizability.d.ts +4 -0
- package/dist/esm/types/models/IShape.d.ts +16 -0
- package/dist/esm/types/models/IText.d.ts +15 -0
- package/dist/esm/types/models/ITextProps.d.ts +19 -0
- package/dist/esm/types/models/callbackTypes.d.ts +14 -0
- package/dist/esm/types/models/enums/PositioningAnchor.d.ts +4 -0
- package/dist/esm/types/models/enums/ResizingDirection.d.ts +10 -0
- package/dist/esm/types/models/enums/SubObjectDirection.d.ts +4 -0
- package/dist/esm/types/models/enums/TextAlign.d.ts +5 -0
- package/dist/esm/types/models/enums/index.d.ts +4 -0
- package/dist/esm/types/models/implementations/CustomPort.d.ts +7 -0
- package/dist/esm/types/models/implementations/EditorContext.d.ts +31 -0
- package/dist/esm/types/models/implementations/Element.d.ts +44 -0
- package/dist/esm/types/models/implementations/ElementLink.d.ts +24 -0
- package/dist/esm/types/models/implementations/Port.d.ts +15 -0
- package/dist/esm/types/models/implementations/diamondElement.d.ts +11 -0
- package/dist/esm/types/models/implementations/rectangularFrameElement.d.ts +8 -0
- package/dist/esm/types/models/index.d.ts +18 -0
- package/dist/esm/types/models/position.d.ts +4 -0
- package/dist/esm/types/models/size.d.ts +4 -0
- package/dist/esm/types/reportWebVitals.d.ts +3 -0
- package/dist/esm/types/setupTests.d.ts +1 -0
- package/dist/esm/types/utils/constants.d.ts +48 -0
- package/dist/esm/types/utils/generateUniqueId.d.ts +1 -0
- package/dist/esm/types/utils/lineUtil.d.ts +3 -0
- package/dist/esm/types/utils/mathUtil.d.ts +6 -0
- package/dist/esm/types/utils/pathUtil.d.ts +11 -0
- package/dist/esm/types/utils/portSlideRailSVGUtil.d.ts +3 -0
- package/dist/esm/types/utils/positionUtil.d.ts +26 -0
- package/dist/esm/types/utils/svgUtil.d.ts +3 -0
- package/dist/index.d.ts +277 -0
- package/package.json +67 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface IDragDropHandlerElementProps {
|
|
3
|
+
dragging?: boolean;
|
|
4
|
+
onMouseDown: (event: React.MouseEvent<SVGElement, MouseEvent>) => void;
|
|
5
|
+
}
|
|
6
|
+
declare const DragDropHandlerElement: React.FC<IDragDropHandlerElementProps>;
|
|
7
|
+
export default DragDropHandlerElement;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import IPort from "../../models/IPort";
|
|
3
|
+
interface IElementWrapper {
|
|
4
|
+
x?: number;
|
|
5
|
+
y?: number;
|
|
6
|
+
onClick?: (e: React.MouseEvent<SVGElement>) => void;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
portPlaceholders?: SVGElement[];
|
|
9
|
+
ports?: IPort[];
|
|
10
|
+
onMouseMove?: (event: React.MouseEvent) => void;
|
|
11
|
+
onMouseLeave?: (event: React.MouseEvent) => void;
|
|
12
|
+
onMouseUp?: (event: React.MouseEvent) => void;
|
|
13
|
+
}
|
|
14
|
+
declare const ElementWrapper: React.ForwardRefExoticComponent<IElementWrapper & React.RefAttributes<SVGSVGElement>>;
|
|
15
|
+
export default ElementWrapper;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface IPointProps {
|
|
3
|
+
index: number;
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
r: number;
|
|
7
|
+
onSelected?: (index: number, e: React.MouseEvent<SVGElement>) => void;
|
|
8
|
+
onMouseDown?: (index: number, e: React.MouseEvent<SVGElement>) => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const Point: React.FC<IPointProps>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IElement from '../models/IElement';
|
|
3
|
+
import IElementLink from '../models/IElementLink';
|
|
4
|
+
import IPosition from '../models/position';
|
|
5
|
+
import IPort from '../models/IPort';
|
|
6
|
+
import { IPaperText } from '../models/IText';
|
|
7
|
+
import ISize from '../models/size';
|
|
8
|
+
interface PaperProps {
|
|
9
|
+
size: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
elements: IElement[];
|
|
14
|
+
links?: IElementLink[];
|
|
15
|
+
texts: IPaperText[];
|
|
16
|
+
onPaperClicked?: () => void;
|
|
17
|
+
onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
|
|
18
|
+
onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
|
|
19
|
+
onElementResized?: (size: ISize, element: IElement, index: number) => void;
|
|
20
|
+
onLinkValidation?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
|
|
21
|
+
onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
|
|
22
|
+
onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
|
|
23
|
+
}
|
|
24
|
+
declare const Paper: React.FC<PaperProps>;
|
|
25
|
+
export default Paper;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IShape from '../../models/IShape';
|
|
3
|
+
interface CircleProps extends Omit<IShape, "width" | "height"> {
|
|
4
|
+
r?: number;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
}
|
|
8
|
+
declare const Circle: React.ForwardRefExoticComponent<CircleProps & React.RefAttributes<SVGSVGElement>>;
|
|
9
|
+
export default Circle;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IShape from '../../models/IShape';
|
|
3
|
+
interface CrescentProps extends Omit<IShape, "width" | "height"> {
|
|
4
|
+
r?: number;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
7
|
+
}
|
|
8
|
+
declare const Crescent: React.FC<CrescentProps>;
|
|
9
|
+
export default Crescent;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IShape from '../../models/IShape';
|
|
3
|
+
interface RectangularFrameProps extends IShape {
|
|
4
|
+
fill?: string;
|
|
5
|
+
stroke?: string;
|
|
6
|
+
strokeWidth?: number;
|
|
7
|
+
frameColor?: string;
|
|
8
|
+
frameWidth?: number;
|
|
9
|
+
}
|
|
10
|
+
declare const RectangularFrame: React.FC<RectangularFrameProps>;
|
|
11
|
+
export default RectangularFrame;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import IShape from '../../models/IShape';
|
|
3
|
+
interface IShapeWrapperProps extends IShape {
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
viewBox?: string;
|
|
6
|
+
}
|
|
7
|
+
declare const ShapeWrapper: React.ForwardRefExoticComponent<IShapeWrapperProps & React.RefAttributes<SVGSVGElement>>;
|
|
8
|
+
export default ShapeWrapper;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import EventEmitter from "eventemitter3";
|
|
3
|
+
import { onCommandDeleteSelectedHandler, OnElementLinkEnded, OnElementLinkStarted, onElementMovedHandler, onElementResizedHandler, onPortMouseDownHandler, onPortMouseUpHandler, onPortMovedHandler } from "../models/callbackTypes";
|
|
4
|
+
interface IEventListenerReturn {
|
|
5
|
+
off: () => void;
|
|
6
|
+
}
|
|
7
|
+
interface IPaperEventContext {
|
|
8
|
+
emitter: EventEmitter<string | symbol, any>;
|
|
9
|
+
emitPaperClicked: (ev: React.MouseEvent<SVGSVGElement>) => void;
|
|
10
|
+
onPaperClicked: (callback: (ev: React.MouseEvent<SVGSVGElement>) => void) => IEventListenerReturn;
|
|
11
|
+
emitPortMouseUp: onPortMouseUpHandler;
|
|
12
|
+
onPortMouseUp: (callback: onPortMouseUpHandler) => IEventListenerReturn;
|
|
13
|
+
emitPortMouseDown: onPortMouseDownHandler;
|
|
14
|
+
onPortMouseDown: (callback: onPortMouseDownHandler) => IEventListenerReturn;
|
|
15
|
+
emitPortMoved: onPortMovedHandler;
|
|
16
|
+
onPortMoved: (callback: onPortMovedHandler) => IEventListenerReturn;
|
|
17
|
+
emitElementMoved: onElementMovedHandler;
|
|
18
|
+
onElementMoved: (elementId: string, callback: onElementMovedHandler) => IEventListenerReturn;
|
|
19
|
+
emitElementResized: onElementResizedHandler;
|
|
20
|
+
onElementResized: (elementId: string, callback: onElementResizedHandler) => IEventListenerReturn;
|
|
21
|
+
emitCommandDeleteSelectedPort: onCommandDeleteSelectedHandler;
|
|
22
|
+
onCommandDeleteSelectedPort: (callback: onCommandDeleteSelectedHandler) => IEventListenerReturn;
|
|
23
|
+
emitCommandDeleteSelectedElement: onCommandDeleteSelectedHandler;
|
|
24
|
+
onCommandDeleteSelectedElement: (callback: onCommandDeleteSelectedHandler) => IEventListenerReturn;
|
|
25
|
+
emitCommandDeleteSelectedLink: onCommandDeleteSelectedHandler;
|
|
26
|
+
onCommandDeleteSelectedLink: (callback: onCommandDeleteSelectedHandler) => IEventListenerReturn;
|
|
27
|
+
emitCommandDeleteSelectedText: onCommandDeleteSelectedHandler;
|
|
28
|
+
onCommandDeleteSelectedText: (callback: onCommandDeleteSelectedHandler) => IEventListenerReturn;
|
|
29
|
+
emitElementLinkStarted: OnElementLinkStarted;
|
|
30
|
+
onElementLinkStarted: (callback: OnElementLinkStarted) => IEventListenerReturn;
|
|
31
|
+
emitElementLinkEnded: OnElementLinkEnded;
|
|
32
|
+
onElementLinkEnded: (callback: OnElementLinkEnded) => IEventListenerReturn;
|
|
33
|
+
}
|
|
34
|
+
export declare const paperEventEmitterContext: React.Context<IPaperEventContext>;
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import ISelectionFrameProps from '../models/IElementSelectorProps';
|
|
2
|
+
interface useSelectionFrameProps extends Omit<ISelectionFrameProps, "container"> {
|
|
3
|
+
container?: HTMLElement | null;
|
|
4
|
+
}
|
|
5
|
+
declare const useSelectionFrame: (props: useSelectionFrameProps) => void;
|
|
6
|
+
export default useSelectionFrame;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { SubObjectDirection } from "./enums/SubObjectDirection";
|
|
3
|
+
import IElementProps from "./IElementProps";
|
|
4
|
+
import IPort from "./IPort";
|
|
5
|
+
import IResizability from "./IResizability";
|
|
6
|
+
import IText from "./IText";
|
|
7
|
+
import IPosition from "./position";
|
|
8
|
+
import ISize from "./size";
|
|
9
|
+
export default interface IElement {
|
|
10
|
+
readonly id: string;
|
|
11
|
+
position: IPosition;
|
|
12
|
+
size: ISize;
|
|
13
|
+
/**
|
|
14
|
+
* @deprecated This property is deprecated and will be removed in future versions.
|
|
15
|
+
*/
|
|
16
|
+
reactElement?: React.FC<IElementProps> | React.ComponentClass<IElementProps>;
|
|
17
|
+
renderShape?: (props: IElementProps) => JSX.Element;
|
|
18
|
+
resizability: IResizability;
|
|
19
|
+
ports?: IPort[];
|
|
20
|
+
texts?: IText[];
|
|
21
|
+
portMoveableAreas?: IPosition[][];
|
|
22
|
+
portSlideRailSVGClassName?: string;
|
|
23
|
+
portDirection?: SubObjectDirection;
|
|
24
|
+
parentElement?: IElement;
|
|
25
|
+
onParentChanged?: (callback: (oldParent?: IElement, newParent?: IElement) => void) => (() => void);
|
|
26
|
+
addPort: (newPort: IPort) => void;
|
|
27
|
+
onAddedPort: (callback: (newPort: IPort) => void) => (() => void);
|
|
28
|
+
deletePort: (id: string) => void;
|
|
29
|
+
onDeletedPort: (callback: (id: string) => void) => (() => void);
|
|
30
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import IElement from "./IElement";
|
|
3
|
+
import IPort from "./IPort";
|
|
4
|
+
import IText from "./IText";
|
|
5
|
+
import IPosition from "./position";
|
|
6
|
+
export default interface IElementLink {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
sourceElement: IElement;
|
|
9
|
+
targetElement?: IElement;
|
|
10
|
+
sourcePort: IPort;
|
|
11
|
+
targetPort?: IPort;
|
|
12
|
+
path?: string;
|
|
13
|
+
points?: IPosition[];
|
|
14
|
+
tempTargetPosition?: IPosition;
|
|
15
|
+
markerStart?: JSX.Element;
|
|
16
|
+
markerEnd?: JSX.Element;
|
|
17
|
+
markerDistanceFromPort?: number;
|
|
18
|
+
markerSize?: number;
|
|
19
|
+
label?: IText;
|
|
20
|
+
sourceLabel?: IText;
|
|
21
|
+
targetLabel?: IText;
|
|
22
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import IText from "./IText";
|
|
3
|
+
import IPosition from "./position";
|
|
4
|
+
export default interface IElementLinkProps {
|
|
5
|
+
id: string;
|
|
6
|
+
stroke?: string;
|
|
7
|
+
strokeWidth?: number;
|
|
8
|
+
sourcePosition: IPosition;
|
|
9
|
+
targetPosition: IPosition;
|
|
10
|
+
label?: IText;
|
|
11
|
+
sourceLabel?: IText;
|
|
12
|
+
targetLabel?: IText;
|
|
13
|
+
onLabelMoved?: (offsetX: number, offsetY: number, labelType: 'middle' | 'source' | 'target') => void;
|
|
14
|
+
onLabelResized?: (width: number, height: number, labelType: 'middle' | 'source' | 'target') => void;
|
|
15
|
+
onLabelContentChanged?: (newValue: string, labelType: 'middle' | 'source' | 'target') => void;
|
|
16
|
+
path?: string;
|
|
17
|
+
points?: IPosition[];
|
|
18
|
+
container?: Element | null;
|
|
19
|
+
markerStart?: JSX.Element;
|
|
20
|
+
markerEnd?: JSX.Element;
|
|
21
|
+
markerDistanceFromPort?: number;
|
|
22
|
+
markerSize?: number;
|
|
23
|
+
onPathChanged?: (path: string, id: string) => void;
|
|
24
|
+
onClickDelete?: (ev: React.MouseEvent) => void;
|
|
25
|
+
onSelected?: () => void;
|
|
26
|
+
onDeselected?: () => void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { onElementMovedHandler, onElementResizedHandler, onPortMouseDownHandler, onPortMouseUpHandler, onPortMovedHandler } from "./callbackTypes";
|
|
3
|
+
import { SubObjectDirection } from "./enums/SubObjectDirection";
|
|
4
|
+
import IElementLink from "./IElementLink";
|
|
5
|
+
import IPort from "./IPort";
|
|
6
|
+
import IText from "./IText";
|
|
7
|
+
import IPosition from "./position";
|
|
8
|
+
interface IElementProps {
|
|
9
|
+
id: string;
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
renderShape?: (props: IElementProps) => JSX.Element;
|
|
15
|
+
children?: React.ReactNode;
|
|
16
|
+
ports?: IPort[];
|
|
17
|
+
texts?: IText[];
|
|
18
|
+
portMoveableAreas?: IPosition[][];
|
|
19
|
+
portSlideRailSVGClassName?: string;
|
|
20
|
+
portDirection?: SubObjectDirection;
|
|
21
|
+
onClick?: (elementId: string, e: React.MouseEvent<SVGElement>, ref: SVGSVGElement | null) => void;
|
|
22
|
+
container: Element;
|
|
23
|
+
onResized?: onElementResizedHandler;
|
|
24
|
+
onMoved?: onElementMovedHandler;
|
|
25
|
+
onPortMoved?: onPortMovedHandler;
|
|
26
|
+
onPortMouseDown?: onPortMouseDownHandler;
|
|
27
|
+
onPortMouseUp?: onPortMouseUpHandler;
|
|
28
|
+
portPlaceholderShape?: JSX.Element;
|
|
29
|
+
onMouseMove?: (event: React.MouseEvent) => void;
|
|
30
|
+
onMouseLeave?: (event: React.MouseEvent) => void;
|
|
31
|
+
onMouseUp?: (event: React.MouseEvent) => void;
|
|
32
|
+
onMouseUpAtLinkedPortPlaceholder?: (link: IElementLink, position: IPosition) => void;
|
|
33
|
+
onTextUpdated?: (textId: string, newTextContent: string) => void;
|
|
34
|
+
}
|
|
35
|
+
export default IElementProps;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import IResizability from "./IResizability";
|
|
3
|
+
import { IDragDropHandlerElementProps } from "../components/elements/dragDropHandlerElement";
|
|
4
|
+
import { PositioningAnchor } from "./enums/PositioningAnchor";
|
|
5
|
+
interface ISelectionFrameProps {
|
|
6
|
+
x?: number;
|
|
7
|
+
y?: number;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
targetSVGElement?: SVGSVGElement;
|
|
11
|
+
onMove?: (x: number, y: number) => void;
|
|
12
|
+
onResize?: (width: number, height: number) => void;
|
|
13
|
+
resizability: IResizability;
|
|
14
|
+
movingRate?: number;
|
|
15
|
+
movingOffsetThreshold?: number;
|
|
16
|
+
container: Element;
|
|
17
|
+
anchor?: PositioningAnchor;
|
|
18
|
+
dragDropHandlerElement?: React.FC<IDragDropHandlerElementProps>;
|
|
19
|
+
framePadding?: number;
|
|
20
|
+
strokeWidth?: number;
|
|
21
|
+
}
|
|
22
|
+
export default ISelectionFrameProps;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { IPortProps } from "./IPortProps";
|
|
3
|
+
import IText from "./IText";
|
|
4
|
+
import IPosition from "./position";
|
|
5
|
+
import ISize from "./size";
|
|
6
|
+
export default interface IPort {
|
|
7
|
+
readonly id: string;
|
|
8
|
+
position: IPosition;
|
|
9
|
+
size: ISize;
|
|
10
|
+
label?: IText;
|
|
11
|
+
renderShape?: React.ForwardRefExoticComponent<IPortProps & React.RefAttributes<SVGSVGElement>>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import IText from "./IText";
|
|
3
|
+
import IPosition from "./position";
|
|
4
|
+
export interface IPortProps {
|
|
5
|
+
id: string;
|
|
6
|
+
x: number;
|
|
7
|
+
y: number;
|
|
8
|
+
width: number;
|
|
9
|
+
height: number;
|
|
10
|
+
rotation?: number;
|
|
11
|
+
container: Element;
|
|
12
|
+
linkTypes?: string[];
|
|
13
|
+
onConnected?: (portId: string) => void;
|
|
14
|
+
onDisconnected?: (portId: string) => void;
|
|
15
|
+
onSelected?: (portId: string, e: React.MouseEvent<SVGElement>, ref?: SVGSVGElement) => void;
|
|
16
|
+
onMouseUp?: (portId: string, e: React.MouseEvent<SVGElement>) => void;
|
|
17
|
+
onMouseDown?: (portId: string, e: React.MouseEvent<SVGElement>) => void;
|
|
18
|
+
moveableAreas?: IPosition[][];
|
|
19
|
+
label?: IText;
|
|
20
|
+
onPortLabelMoved?: (offsetX: number, offsetY: number) => void;
|
|
21
|
+
onPortLabelResized?: (width: number, height: number) => void;
|
|
22
|
+
onPortLabelContentChanged?: (ev: React.ChangeEvent, newValue: string) => void;
|
|
23
|
+
renderShape?: React.ForwardRefExoticComponent<IPortProps & React.RefAttributes<SVGSVGElement>>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DOMAttributes } from "react";
|
|
2
|
+
import { PositioningAnchor } from "./enums/PositioningAnchor";
|
|
3
|
+
import IPosition from "./position";
|
|
4
|
+
export default interface IShape extends DOMAttributes<SVGElement>, React.RefAttributes<SVGSVGElement> {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
stroke?: string;
|
|
10
|
+
strokeWidth?: number;
|
|
11
|
+
fill?: string;
|
|
12
|
+
rotation?: number;
|
|
13
|
+
direction?: 'left' | 'right' | 'up' | 'down';
|
|
14
|
+
positioningAnchor?: PositioningAnchor | IPosition;
|
|
15
|
+
onClick?: (e: React.MouseEvent<SVGElement>) => void;
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { TextAlign } from "./enums/TextAlign";
|
|
2
|
+
import IPosition from "./position";
|
|
3
|
+
import ISize from "./size";
|
|
4
|
+
export default interface IText {
|
|
5
|
+
id: string;
|
|
6
|
+
content: string;
|
|
7
|
+
size: ISize;
|
|
8
|
+
position?: IPosition;
|
|
9
|
+
align?: TextAlign;
|
|
10
|
+
fontSize?: number;
|
|
11
|
+
border?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface IPaperText extends IText {
|
|
14
|
+
position: IPosition;
|
|
15
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { TextAlign } from "./enums/TextAlign";
|
|
3
|
+
import IText from "./IText";
|
|
4
|
+
export default interface ITextProps {
|
|
5
|
+
id: string;
|
|
6
|
+
content: string;
|
|
7
|
+
x?: number;
|
|
8
|
+
y?: number;
|
|
9
|
+
height: number;
|
|
10
|
+
width: number;
|
|
11
|
+
align?: TextAlign;
|
|
12
|
+
fontSize?: number;
|
|
13
|
+
border?: string;
|
|
14
|
+
container: Element;
|
|
15
|
+
onSelected?: (text: IText) => void;
|
|
16
|
+
onMoved?: (x: number, y: number) => void;
|
|
17
|
+
onResized?: (width: number, height: number) => void;
|
|
18
|
+
onContentChanged?: (ev: React.ChangeEvent, newValue: string) => void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import IElement from "./IElement";
|
|
3
|
+
import IElementLink from "./IElementLink";
|
|
4
|
+
import IPort from "./IPort";
|
|
5
|
+
import IPosition from "./position";
|
|
6
|
+
import ISize from "./size";
|
|
7
|
+
export type onPortMovedHandler = (port: IPort, elementId: string, oldPosition: IPosition, newPosition: IPosition) => void;
|
|
8
|
+
export type onPortMouseDownHandler = (ev: React.MouseEvent<SVGElement>, port: IPort, elementId: string) => void;
|
|
9
|
+
export type onPortMouseUpHandler = (ev: React.MouseEvent<SVGElement>, port: IPort, elementId: string) => void;
|
|
10
|
+
export type onElementMovedHandler = (element: IElement, oldPosition: IPosition, newPosition: IPosition) => void;
|
|
11
|
+
export type onElementResizedHandler = (element: IElement, oldSize: ISize, newSize: ISize) => void;
|
|
12
|
+
export type onCommandDeleteSelectedHandler = () => void;
|
|
13
|
+
export type OnElementLinkStarted = (elementLink: IElementLink) => void;
|
|
14
|
+
export type OnElementLinkEnded = (elementLink?: IElementLink) => void;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import Port from "../../models/implementations/Port";
|
|
3
|
+
import IText from "../../models/IText";
|
|
4
|
+
import IPosition from "../../models/position";
|
|
5
|
+
export declare class CustomPort extends Port {
|
|
6
|
+
constructor(x: number, y: number, width: number, height: number, renderShape: JSX.Element, shapePositioningAnchor: IPosition, label?: IText);
|
|
7
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import IElement from "../IElement";
|
|
2
|
+
import IElementLink from "../IElementLink";
|
|
3
|
+
import { IPaperText } from "../IText";
|
|
4
|
+
import IPosition from "../position";
|
|
5
|
+
import IPort from "../IPort";
|
|
6
|
+
import ISize from "../size";
|
|
7
|
+
export declare class EditorContext {
|
|
8
|
+
private _elements;
|
|
9
|
+
private _links;
|
|
10
|
+
private _texts;
|
|
11
|
+
onPaperClicked?: () => void;
|
|
12
|
+
onPortMoved?: (position: IPosition, port: IPort, element: IElement) => void;
|
|
13
|
+
onElementMoved?: (position: IPosition, element: IElement, index: number) => void;
|
|
14
|
+
onElementResized?: (size: ISize, element: IElement, index: number) => void;
|
|
15
|
+
validateLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => boolean;
|
|
16
|
+
onCreatingPortByLinking?: (sourceElement: IElement, sourcePort: IPort, targetElement: IElement, position: IPosition) => IPort | null;
|
|
17
|
+
onCreatingLink?: (sourcePort: IPort, sourceElement: IElement, targetPort: IPort, targetElement: IElement) => IElementLink | null;
|
|
18
|
+
constructor(elements: IElement[], links: IElementLink[], texts: IPaperText[]);
|
|
19
|
+
get elements(): IElement[];
|
|
20
|
+
get links(): IElementLink[];
|
|
21
|
+
get texts(): IPaperText[];
|
|
22
|
+
getElement(elementId: string): IElement | undefined;
|
|
23
|
+
addElement(element: IElement): void;
|
|
24
|
+
removeElement(elementId: string): void;
|
|
25
|
+
getLink(linkId: string): IElementLink | undefined;
|
|
26
|
+
addLink(link: IElementLink): void;
|
|
27
|
+
removeLink(linkId: string): void;
|
|
28
|
+
getText(textId: string): IPaperText | undefined;
|
|
29
|
+
addText(text: IPaperText): void;
|
|
30
|
+
removeText(textId: string): void;
|
|
31
|
+
}
|