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.
Files changed (144) hide show
  1. package/README.md +46 -0
  2. package/dist/cjs/index.js +8491 -0
  3. package/dist/cjs/types/App.d.ts +4 -0
  4. package/dist/cjs/types/App.test.d.ts +1 -0
  5. package/dist/cjs/types/components/BBoxDebugger.d.ts +6 -0
  6. package/dist/cjs/types/components/CloseIcon.d.ts +6 -0
  7. package/dist/cjs/types/components/LinkDebugger.d.ts +8 -0
  8. package/dist/cjs/types/components/editor.d.ts +7 -0
  9. package/dist/cjs/types/components/elementShowbox.d.ts +3 -0
  10. package/dist/cjs/types/components/elements/dragDropHandlerElement.d.ts +7 -0
  11. package/dist/cjs/types/components/elements/element.d.ts +4 -0
  12. package/dist/cjs/types/components/elements/elementWrapper.d.ts +15 -0
  13. package/dist/cjs/types/components/links/elementLink.d.ts +4 -0
  14. package/dist/cjs/types/components/links/point.d.ts +11 -0
  15. package/dist/cjs/types/components/paper.d.ts +25 -0
  16. package/dist/cjs/types/components/ports/port.d.ts +3 -0
  17. package/dist/cjs/types/components/shapeShowbox.d.ts +3 -0
  18. package/dist/cjs/types/components/shapes/circle.d.ts +9 -0
  19. package/dist/cjs/types/components/shapes/customShape.d.ts +7 -0
  20. package/dist/cjs/types/components/shapes/halfCircle.d.ts +9 -0
  21. package/dist/cjs/types/components/shapes/rectangle.d.ts +9 -0
  22. package/dist/cjs/types/components/shapes/rectangularFrame.d.ts +11 -0
  23. package/dist/cjs/types/components/shapes/shapeWrapper.d.ts +8 -0
  24. package/dist/cjs/types/components/svgUtilsShowbox.d.ts +3 -0
  25. package/dist/cjs/types/components/texts/text.d.ts +4 -0
  26. package/dist/cjs/types/components/viewControls/ruler.d.ts +7 -0
  27. package/dist/cjs/types/components/viewControls/selectionFrame.d.ts +4 -0
  28. package/dist/cjs/types/contexts/paperEventEmitterContext.d.ts +35 -0
  29. package/dist/cjs/types/hooks/useKeyboardCommands.d.ts +5 -0
  30. package/dist/cjs/types/hooks/useSelectionFrame.d.ts +6 -0
  31. package/dist/cjs/types/index.d.ts +2 -0
  32. package/dist/cjs/types/main.d.ts +2 -0
  33. package/dist/cjs/types/mocks/editorContext.d.ts +2 -0
  34. package/dist/cjs/types/mocks/port1.d.ts +5 -0
  35. package/dist/cjs/types/models/IElement.d.ts +30 -0
  36. package/dist/cjs/types/models/IElementLink.d.ts +22 -0
  37. package/dist/cjs/types/models/IElementLinkProps.d.ts +27 -0
  38. package/dist/cjs/types/models/IElementProps.d.ts +35 -0
  39. package/dist/cjs/types/models/IElementSelectorProps.d.ts +22 -0
  40. package/dist/cjs/types/models/IPort.d.ts +12 -0
  41. package/dist/cjs/types/models/IPortProps.d.ts +24 -0
  42. package/dist/cjs/types/models/IResizability.d.ts +4 -0
  43. package/dist/cjs/types/models/IShape.d.ts +16 -0
  44. package/dist/cjs/types/models/IText.d.ts +15 -0
  45. package/dist/cjs/types/models/ITextProps.d.ts +19 -0
  46. package/dist/cjs/types/models/callbackTypes.d.ts +14 -0
  47. package/dist/cjs/types/models/enums/PositioningAnchor.d.ts +4 -0
  48. package/dist/cjs/types/models/enums/ResizingDirection.d.ts +10 -0
  49. package/dist/cjs/types/models/enums/SubObjectDirection.d.ts +4 -0
  50. package/dist/cjs/types/models/enums/TextAlign.d.ts +5 -0
  51. package/dist/cjs/types/models/enums/index.d.ts +4 -0
  52. package/dist/cjs/types/models/implementations/CustomPort.d.ts +7 -0
  53. package/dist/cjs/types/models/implementations/EditorContext.d.ts +31 -0
  54. package/dist/cjs/types/models/implementations/Element.d.ts +44 -0
  55. package/dist/cjs/types/models/implementations/ElementLink.d.ts +24 -0
  56. package/dist/cjs/types/models/implementations/Port.d.ts +15 -0
  57. package/dist/cjs/types/models/implementations/diamondElement.d.ts +11 -0
  58. package/dist/cjs/types/models/implementations/rectangularFrameElement.d.ts +8 -0
  59. package/dist/cjs/types/models/index.d.ts +18 -0
  60. package/dist/cjs/types/models/position.d.ts +4 -0
  61. package/dist/cjs/types/models/size.d.ts +4 -0
  62. package/dist/cjs/types/reportWebVitals.d.ts +3 -0
  63. package/dist/cjs/types/setupTests.d.ts +1 -0
  64. package/dist/cjs/types/utils/constants.d.ts +48 -0
  65. package/dist/cjs/types/utils/generateUniqueId.d.ts +1 -0
  66. package/dist/cjs/types/utils/lineUtil.d.ts +3 -0
  67. package/dist/cjs/types/utils/mathUtil.d.ts +6 -0
  68. package/dist/cjs/types/utils/pathUtil.d.ts +11 -0
  69. package/dist/cjs/types/utils/portSlideRailSVGUtil.d.ts +3 -0
  70. package/dist/cjs/types/utils/positionUtil.d.ts +26 -0
  71. package/dist/cjs/types/utils/svgUtil.d.ts +3 -0
  72. package/dist/esm/index.js +8487 -0
  73. package/dist/esm/index.js.map +1 -0
  74. package/dist/esm/types/App.d.ts +4 -0
  75. package/dist/esm/types/App.test.d.ts +1 -0
  76. package/dist/esm/types/components/BBoxDebugger.d.ts +6 -0
  77. package/dist/esm/types/components/CloseIcon.d.ts +6 -0
  78. package/dist/esm/types/components/LinkDebugger.d.ts +8 -0
  79. package/dist/esm/types/components/editor.d.ts +7 -0
  80. package/dist/esm/types/components/elementShowbox.d.ts +3 -0
  81. package/dist/esm/types/components/elements/dragDropHandlerElement.d.ts +7 -0
  82. package/dist/esm/types/components/elements/element.d.ts +4 -0
  83. package/dist/esm/types/components/elements/elementWrapper.d.ts +15 -0
  84. package/dist/esm/types/components/links/elementLink.d.ts +4 -0
  85. package/dist/esm/types/components/links/point.d.ts +11 -0
  86. package/dist/esm/types/components/paper.d.ts +25 -0
  87. package/dist/esm/types/components/ports/port.d.ts +3 -0
  88. package/dist/esm/types/components/shapeShowbox.d.ts +3 -0
  89. package/dist/esm/types/components/shapes/circle.d.ts +9 -0
  90. package/dist/esm/types/components/shapes/customShape.d.ts +7 -0
  91. package/dist/esm/types/components/shapes/halfCircle.d.ts +9 -0
  92. package/dist/esm/types/components/shapes/rectangle.d.ts +9 -0
  93. package/dist/esm/types/components/shapes/rectangularFrame.d.ts +11 -0
  94. package/dist/esm/types/components/shapes/shapeWrapper.d.ts +8 -0
  95. package/dist/esm/types/components/svgUtilsShowbox.d.ts +3 -0
  96. package/dist/esm/types/components/texts/text.d.ts +4 -0
  97. package/dist/esm/types/components/viewControls/ruler.d.ts +7 -0
  98. package/dist/esm/types/components/viewControls/selectionFrame.d.ts +4 -0
  99. package/dist/esm/types/contexts/paperEventEmitterContext.d.ts +35 -0
  100. package/dist/esm/types/hooks/useKeyboardCommands.d.ts +5 -0
  101. package/dist/esm/types/hooks/useSelectionFrame.d.ts +6 -0
  102. package/dist/esm/types/index.d.ts +2 -0
  103. package/dist/esm/types/main.d.ts +2 -0
  104. package/dist/esm/types/mocks/editorContext.d.ts +2 -0
  105. package/dist/esm/types/mocks/port1.d.ts +5 -0
  106. package/dist/esm/types/models/IElement.d.ts +30 -0
  107. package/dist/esm/types/models/IElementLink.d.ts +22 -0
  108. package/dist/esm/types/models/IElementLinkProps.d.ts +27 -0
  109. package/dist/esm/types/models/IElementProps.d.ts +35 -0
  110. package/dist/esm/types/models/IElementSelectorProps.d.ts +22 -0
  111. package/dist/esm/types/models/IPort.d.ts +12 -0
  112. package/dist/esm/types/models/IPortProps.d.ts +24 -0
  113. package/dist/esm/types/models/IResizability.d.ts +4 -0
  114. package/dist/esm/types/models/IShape.d.ts +16 -0
  115. package/dist/esm/types/models/IText.d.ts +15 -0
  116. package/dist/esm/types/models/ITextProps.d.ts +19 -0
  117. package/dist/esm/types/models/callbackTypes.d.ts +14 -0
  118. package/dist/esm/types/models/enums/PositioningAnchor.d.ts +4 -0
  119. package/dist/esm/types/models/enums/ResizingDirection.d.ts +10 -0
  120. package/dist/esm/types/models/enums/SubObjectDirection.d.ts +4 -0
  121. package/dist/esm/types/models/enums/TextAlign.d.ts +5 -0
  122. package/dist/esm/types/models/enums/index.d.ts +4 -0
  123. package/dist/esm/types/models/implementations/CustomPort.d.ts +7 -0
  124. package/dist/esm/types/models/implementations/EditorContext.d.ts +31 -0
  125. package/dist/esm/types/models/implementations/Element.d.ts +44 -0
  126. package/dist/esm/types/models/implementations/ElementLink.d.ts +24 -0
  127. package/dist/esm/types/models/implementations/Port.d.ts +15 -0
  128. package/dist/esm/types/models/implementations/diamondElement.d.ts +11 -0
  129. package/dist/esm/types/models/implementations/rectangularFrameElement.d.ts +8 -0
  130. package/dist/esm/types/models/index.d.ts +18 -0
  131. package/dist/esm/types/models/position.d.ts +4 -0
  132. package/dist/esm/types/models/size.d.ts +4 -0
  133. package/dist/esm/types/reportWebVitals.d.ts +3 -0
  134. package/dist/esm/types/setupTests.d.ts +1 -0
  135. package/dist/esm/types/utils/constants.d.ts +48 -0
  136. package/dist/esm/types/utils/generateUniqueId.d.ts +1 -0
  137. package/dist/esm/types/utils/lineUtil.d.ts +3 -0
  138. package/dist/esm/types/utils/mathUtil.d.ts +6 -0
  139. package/dist/esm/types/utils/pathUtil.d.ts +11 -0
  140. package/dist/esm/types/utils/portSlideRailSVGUtil.d.ts +3 -0
  141. package/dist/esm/types/utils/positionUtil.d.ts +26 -0
  142. package/dist/esm/types/utils/svgUtil.d.ts +3 -0
  143. package/dist/index.d.ts +277 -0
  144. package/package.json +67 -0
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import './App.css';
3
+ declare function App(): React.JSX.Element;
4
+ export default App;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ interface IBBoxDebuggerProps {
3
+ elementSVG: SVGSVGElement | null;
4
+ }
5
+ export default function BBoxDebugger({ elementSVG }: IBBoxDebuggerProps): React.JSX.Element;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ interface ICloseIconProps {
3
+ onClick?: (ev: React.MouseEvent) => void;
4
+ }
5
+ export default function CloseIcon({ onClick }: ICloseIconProps): React.JSX.Element;
6
+ export {};
@@ -0,0 +1,8 @@
1
+ import React from "react";
2
+ import IElementLink from "../models/IElementLink";
3
+ interface ILinkDebuggerProps {
4
+ links: IElementLink[];
5
+ svgContainer: SVGSVGElement;
6
+ }
7
+ declare const LinkDebugger: React.FC<ILinkDebuggerProps>;
8
+ export default LinkDebugger;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import { EditorContext } from "../models/implementations/EditorContext";
3
+ interface IEditorProps {
4
+ editorContext: EditorContext;
5
+ }
6
+ export default function Editor({ editorContext }: IEditorProps): React.JSX.Element;
7
+ export {};
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ElementShowBox: React.FC;
3
+ export default ElementShowBox;
@@ -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,4 @@
1
+ import IElementProps from "../../models/IElementProps";
2
+ import React from "react";
3
+ declare const Element: React.FC<IElementProps>;
4
+ export default Element;
@@ -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,4 @@
1
+ import React from "react";
2
+ import IElementLinkProps from "../../models/IElementLinkProps";
3
+ declare const _default: React.NamedExoticComponent<IElementLinkProps>;
4
+ export default _default;
@@ -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,3 @@
1
+ import React from "react";
2
+ import { IPortProps } from "../../models/IPortProps";
3
+ export declare const Port: React.ForwardRefExoticComponent<IPortProps & React.RefAttributes<SVGSVGElement>>;
@@ -0,0 +1,3 @@
1
+ import React from 'react';
2
+ declare const ShapeShowBox: React.FC;
3
+ export default ShapeShowBox;
@@ -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,7 @@
1
+ import React from 'react';
2
+ import IShape from '../../models/IShape';
3
+ interface IShapeProps extends Omit<IShape, "stroke" | "fill" | "strokeWidth"> {
4
+ children: React.ReactNode;
5
+ }
6
+ declare const CustomShape: React.FC<IShapeProps>;
7
+ export default CustomShape;
@@ -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,9 @@
1
+ import React from 'react';
2
+ import IShape from '../../models/IShape';
3
+ interface RectangleProps extends IShape {
4
+ fill?: string;
5
+ stroke?: string;
6
+ strokeWidth?: number;
7
+ }
8
+ declare const Rectangle: React.FC<RectangleProps>;
9
+ export default Rectangle;
@@ -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,3 @@
1
+ import React from 'react';
2
+ declare const _default: React.NamedExoticComponent<{}>;
3
+ export default _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import ITextProps from "../../models/ITextProps";
3
+ declare const _default: React.MemoExoticComponent<React.ForwardRefExoticComponent<ITextProps & React.RefAttributes<SVGSVGElement>>>;
4
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ interface RulerProps {
3
+ squareSize: number;
4
+ border: string;
5
+ }
6
+ declare const Ruler: React.FC<RulerProps>;
7
+ export default Ruler;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import ISelectionFrameProps from '../../models/IElementSelectorProps';
3
+ declare const SelectionFrame: (props: ISelectionFrameProps) => React.JSX.Element;
4
+ export default SelectionFrame;
@@ -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,5 @@
1
+ interface IUseKeyboardCommands {
2
+ element?: Element | null;
3
+ }
4
+ export default function useKeyboardCommands({ element, }: IUseKeyboardCommands): void;
5
+ 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,2 @@
1
+ export * from './models';
2
+ export { default } from './components/editor';
@@ -0,0 +1,2 @@
1
+ export * from './models';
2
+ export { default } from './components/editor';
@@ -0,0 +1,2 @@
1
+ import { EditorContext } from "../models/implementations/EditorContext";
2
+ export declare const editorContextOfElmsTreePaper: EditorContext;
@@ -0,0 +1,5 @@
1
+ import IText from "../models/IText";
2
+ import { CustomPort } from "../models/implementations/CustomPort";
3
+ export declare class CustomPort1 extends CustomPort {
4
+ constructor(x: number, y: number, width: number, height: number, label?: IText);
5
+ }
@@ -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,4 @@
1
+ export default interface IResizability {
2
+ enabled: boolean;
3
+ keepRatio: boolean;
4
+ }
@@ -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,4 @@
1
+ export declare enum PositioningAnchor {
2
+ TopLeft = 0,
3
+ Center = 1
4
+ }
@@ -0,0 +1,10 @@
1
+ export declare enum ResizingDirection {
2
+ TopLeft = 0,
3
+ TopCenter = 1,
4
+ TopRight = 2,
5
+ RightCenter = 3,
6
+ BottomRight = 4,
7
+ BottomCenter = 5,
8
+ BottomLeft = 6,
9
+ LeftCenter = 7
10
+ }
@@ -0,0 +1,4 @@
1
+ export declare enum SubObjectDirection {
2
+ Radial = "Radial",
3
+ PerpendicularInward = "PerpendicularInward"
4
+ }
@@ -0,0 +1,5 @@
1
+ export declare enum TextAlign {
2
+ left = 0,
3
+ right = 1,
4
+ center = 2
5
+ }
@@ -0,0 +1,4 @@
1
+ export * from './PositioningAnchor';
2
+ export * from './ResizingDirection';
3
+ export * from './SubObjectDirection';
4
+ export * from './TextAlign';
@@ -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
+ }