@focus.matters/diagrams 0.0.7

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 (136) hide show
  1. package/dist/Diagrams/DiagramEditor.d.ts +11 -0
  2. package/dist/Diagrams/components/Canvas.d.ts +6 -0
  3. package/dist/Diagrams/components/extra/AlignmentSuggestions.d.ts +3 -0
  4. package/dist/Diagrams/components/extra/GatewayRender.d.ts +5 -0
  5. package/dist/Diagrams/components/extra/Measurement.d.ts +3 -0
  6. package/dist/Diagrams/components/extra/MouseTracker.d.ts +3 -0
  7. package/dist/Diagrams/components/extra/NodesConnectorRenderer.d.ts +3 -0
  8. package/dist/Diagrams/components/extra/PathFindingRenderer.d.ts +3 -0
  9. package/dist/Diagrams/components/extra/Selection.d.ts +3 -0
  10. package/dist/Diagrams/components/extra/Stats.d.ts +3 -0
  11. package/dist/Diagrams/components/extra/Svg.d.ts +2 -0
  12. package/dist/Diagrams/components/extra/Theme.d.ts +8 -0
  13. package/dist/Diagrams/components/extra/ToolsState.d.ts +5 -0
  14. package/dist/Diagrams/components/nodes/NodeTools.d.ts +4 -0
  15. package/dist/Diagrams/components/objects/Cross.d.ts +9 -0
  16. package/dist/Diagrams/components/objects/CustomRenderers.d.ts +6 -0
  17. package/dist/Diagrams/components/objects/Grid.d.ts +1 -0
  18. package/dist/Diagrams/components/objects/RenderEdge/EdgeMarker.d.ts +12 -0
  19. package/dist/Diagrams/components/objects/RenderEdge/EdgeMidpoints.d.ts +11 -0
  20. package/dist/Diagrams/components/objects/RenderEdge/debugEdges.d.ts +14 -0
  21. package/dist/Diagrams/components/objects/RenderEdge/index.d.ts +4 -0
  22. package/dist/Diagrams/components/objects/RenderEdge/types.d.ts +29 -0
  23. package/dist/Diagrams/components/objects/RenderEdge/util.d.ts +6 -0
  24. package/dist/Diagrams/components/objects/Shape.d.ts +49 -0
  25. package/dist/Diagrams/components/objects/Shapes.d.ts +1 -0
  26. package/dist/Diagrams/components/objects/customRendererProps.d.ts +7 -0
  27. package/dist/Diagrams/components/objects/makeScalableComponent.d.ts +2 -0
  28. package/dist/Diagrams/context-menu/ContextMenu.d.ts +22 -0
  29. package/dist/Diagrams/context-menu/buildDiagramContextMenu.d.ts +6 -0
  30. package/dist/Diagrams/context-menu/index.d.ts +3 -0
  31. package/dist/Diagrams/context-menu/types.d.ts +12 -0
  32. package/dist/Diagrams/custom/agent/AgentDiagram.d.ts +5 -0
  33. package/dist/Diagrams/custom/agent/edges/AgentEdge.d.ts +32 -0
  34. package/dist/Diagrams/custom/agent/index.d.ts +2 -0
  35. package/dist/Diagrams/custom/agent/nodes/ActionNode.d.ts +14 -0
  36. package/dist/Diagrams/custom/agent/nodes/AgentNode.d.ts +58 -0
  37. package/dist/Diagrams/custom/agent/nodes/ConditionNode.d.ts +14 -0
  38. package/dist/Diagrams/custom/agent/nodes/OutcomeNode.d.ts +14 -0
  39. package/dist/Diagrams/custom/agent/nodes/TriggerNode.d.ts +14 -0
  40. package/dist/Diagrams/custom/agent/types.d.ts +54 -0
  41. package/dist/Diagrams/custom/bpmn/BPMDiagram.d.ts +5 -0
  42. package/dist/Diagrams/custom/bpmn/bpmnEvents.d.ts +3 -0
  43. package/dist/Diagrams/custom/bpmn/edges/EdgeWithLoad.d.ts +4 -0
  44. package/dist/Diagrams/custom/bpmn/nodes/BPMNNodeContext.d.ts +3 -0
  45. package/dist/Diagrams/custom/bpmn/nodes/BPMNode.d.ts +6 -0
  46. package/dist/Diagrams/custom/bpmn/nodes/EventNode.d.ts +58 -0
  47. package/dist/Diagrams/custom/bpmn/nodes/GateNode.d.ts +58 -0
  48. package/dist/Diagrams/custom/bpmn/nodes/Lanes/LanesResizer.d.ts +6 -0
  49. package/dist/Diagrams/custom/bpmn/nodes/Lanes/index.d.ts +66 -0
  50. package/dist/Diagrams/custom/bpmn/nodes/TaskNode.d.ts +9 -0
  51. package/dist/Diagrams/custom/bpmn/nodes/UnknownBPMNNode.d.ts +51 -0
  52. package/dist/Diagrams/custom/communication/CommunicationDiagram.d.ts +15 -0
  53. package/dist/Diagrams/custom/communication/CommunicationNode.d.ts +12 -0
  54. package/dist/Diagrams/custom/communication/edges/CommunicationEdge.d.ts +35 -0
  55. package/dist/Diagrams/custom/communication/nodes/CommunicationActorNode.d.ts +10 -0
  56. package/dist/Diagrams/custom/communication/nodes/CommunicationControllerNode.d.ts +10 -0
  57. package/dist/Diagrams/custom/communication/nodes/CommunicationObjectNode.d.ts +10 -0
  58. package/dist/Diagrams/custom/communication/types.d.ts +1 -0
  59. package/dist/Diagrams/custom/editable/EditableDiagram.d.ts +4 -0
  60. package/dist/Diagrams/custom/editable/EditableLabel.d.ts +3 -0
  61. package/dist/Diagrams/custom/editable/EditableNode.d.ts +15 -0
  62. package/dist/Diagrams/custom/editable/EditableNodeContext.d.ts +3 -0
  63. package/dist/Diagrams/custom/editable/EditionMode.d.ts +10 -0
  64. package/dist/Diagrams/custom/editable/events.d.ts +9 -0
  65. package/dist/Diagrams/layout/HStack.d.ts +4 -0
  66. package/dist/Diagrams/store/Canvas.d.ts +69 -0
  67. package/dist/Diagrams/store/Diagram.d.ts +134 -0
  68. package/dist/Diagrams/store/elements/Edge.d.ts +42 -0
  69. package/dist/Diagrams/store/elements/EdgePoint.d.ts +19 -0
  70. package/dist/Diagrams/store/elements/Element.d.ts +19 -0
  71. package/dist/Diagrams/store/elements/Events.d.ts +244 -0
  72. package/dist/Diagrams/store/elements/EventsMouseInformation.d.ts +10 -0
  73. package/dist/Diagrams/store/elements/Gateway.d.ts +57 -0
  74. package/dist/Diagrams/store/elements/Node.d.ts +73 -0
  75. package/dist/Diagrams/store/elements/TextNode.d.ts +4 -0
  76. package/dist/Diagrams/store/extensions/Creator.d.ts +9 -0
  77. package/dist/Diagrams/store/extensions/Debugger.d.ts +6 -0
  78. package/dist/Diagrams/store/extensions/DiagramExtension.d.ts +13 -0
  79. package/dist/Diagrams/store/extensions/DistancesBalancer.d.ts +13 -0
  80. package/dist/Diagrams/store/extensions/Dragger.d.ts +46 -0
  81. package/dist/Diagrams/store/extensions/EdgesDragger.d.ts +101 -0
  82. package/dist/Diagrams/store/extensions/GridSnap.d.ts +5 -0
  83. package/dist/Diagrams/store/extensions/History.d.ts +15 -0
  84. package/dist/Diagrams/store/extensions/Hotkeys.d.ts +22 -0
  85. package/dist/Diagrams/store/extensions/Measurer.d.ts +17 -0
  86. package/dist/Diagrams/store/extensions/NodesAligner.d.ts +19 -0
  87. package/dist/Diagrams/store/extensions/NodesConnector.d.ts +27 -0
  88. package/dist/Diagrams/store/extensions/NodesResizer.d.ts +4 -0
  89. package/dist/Diagrams/store/extensions/PathFindingRenderer.d.ts +9 -0
  90. package/dist/Diagrams/store/extensions/Priorities.d.ts +26 -0
  91. package/dist/Diagrams/store/extensions/Rules.d.ts +11 -0
  92. package/dist/Diagrams/store/extensions/Selector.d.ts +50 -0
  93. package/dist/Diagrams/store/extensions/StraightDrag.d.ts +8 -0
  94. package/dist/Diagrams/store/primitives/Coordinates.d.ts +45 -0
  95. package/dist/Diagrams/store/primitives/Dimensions.d.ts +58 -0
  96. package/dist/Diagrams/store/primitives/DirectedPoint.d.ts +12 -0
  97. package/dist/Diagrams/store/types.d.ts +61 -0
  98. package/dist/Diagrams/util/ClassList.d.ts +8 -0
  99. package/dist/Diagrams/util/Mouse.d.ts +9 -0
  100. package/dist/Diagrams/util/Mutex.d.ts +5 -0
  101. package/dist/Diagrams/util/PriorityQueue.d.ts +19 -0
  102. package/dist/Diagrams/util/Semaphore.d.ts +37 -0
  103. package/dist/Diagrams/util/TasksQueue.d.ts +7 -0
  104. package/dist/Diagrams/util/arrayOrArray.d.ts +1 -0
  105. package/dist/Diagrams/util/awaitTime.d.ts +1 -0
  106. package/dist/Diagrams/util/binders.d.ts +17 -0
  107. package/dist/Diagrams/util/bpmn/applyBPMNImportPlan.d.ts +3 -0
  108. package/dist/Diagrams/util/bpmn/buildBPMNImportPlan.d.ts +3 -0
  109. package/dist/Diagrams/util/bpmn/importBPMNXmlIntoDiagram.d.ts +6 -0
  110. package/dist/Diagrams/util/bpmn/index.d.ts +5 -0
  111. package/dist/Diagrams/util/bpmn/parseBPMNXml.d.ts +2 -0
  112. package/dist/Diagrams/util/bpmn/types.d.ts +103 -0
  113. package/dist/Diagrams/util/cloneDeep.d.ts +1 -0
  114. package/dist/Diagrams/util/downloadFile.d.ts +1 -0
  115. package/dist/Diagrams/util/getEnumStr.d.ts +3 -0
  116. package/dist/Diagrams/util/getIdForNode.d.ts +2 -0
  117. package/dist/Diagrams/util/getUniqueId.d.ts +1 -0
  118. package/dist/Diagrams/util/insertSorted.d.ts +1 -0
  119. package/dist/Diagrams/util/paths/PathsGrid.d.ts +43 -0
  120. package/dist/Diagrams/util/paths/findBestPathBetweenNodes.d.ts +8 -0
  121. package/dist/Diagrams/util/paths/orthogonalRouter.d.ts +7 -0
  122. package/dist/Diagrams/util/paths/stepBackFromGateway.d.ts +5 -0
  123. package/dist/Diagrams/util/readFile.d.ts +8 -0
  124. package/dist/Diagrams/util/shapes.d.ts +13 -0
  125. package/dist/Diagrams/util/throttle.d.ts +1 -0
  126. package/dist/DirectedPoint-HRgiLZeU.js +53 -0
  127. package/dist/DirectedPoint-HRgiLZeU.js.map +1 -0
  128. package/dist/diagrams.css +1 -0
  129. package/dist/index-DZNvKq1b.js +6657 -0
  130. package/dist/index-DZNvKq1b.js.map +1 -0
  131. package/dist/index.d.ts +8 -0
  132. package/dist/index.es.js +10 -0
  133. package/dist/index.es.js.map +1 -0
  134. package/dist/index.umd.js +6 -0
  135. package/dist/index.umd.js.map +1 -0
  136. package/package.json +45 -0
@@ -0,0 +1,27 @@
1
+ import { MouseEvent as RMEv } from 'react';
2
+ import { Coordinates } from '../primitives/Coordinates';
3
+ import { Gateway } from '../elements/Gateway';
4
+ import { DiagramExtension } from './DiagramExtension';
5
+ import { DMouseMoveEvent } from '../elements/Events';
6
+ import { GridSnap } from './GridSnap';
7
+ export declare class NodesConnector extends DiagramExtension {
8
+ protected hasRoutedPreview: boolean;
9
+ protected previewRequestVersion: number;
10
+ protected previewRafId: number | null;
11
+ init(): void;
12
+ protected arrowTo: Coordinates | null;
13
+ protected startGateway: Gateway | null;
14
+ candidateGateway: Gateway | null;
15
+ protected _arrowSteps: Coordinates[];
16
+ get arrowSteps(): Coordinates[];
17
+ protected get snap(): GridSnap;
18
+ protected calculateArrowSteps(): void;
19
+ protected orthogonalMousePreview(startGateway: Gateway, mouseOnPlane: Coordinates): Coordinates[];
20
+ protected compactPreviewPoints(points: Coordinates[]): Coordinates[];
21
+ protected cancelScheduledPreview(): void;
22
+ protected scheduleCalculateArrowSteps(): void;
23
+ protected u: () => void;
24
+ startConnectionFrom(gateway: Gateway, ev: RMEv): void;
25
+ protected handleMouseMove(ev: DMouseMoveEvent): void;
26
+ protected handleMouseUp(): void;
27
+ }
@@ -0,0 +1,4 @@
1
+ import { DiagramExtension } from './DiagramExtension';
2
+ export declare class NodesResizer extends DiagramExtension {
3
+ init(): void;
4
+ }
@@ -0,0 +1,9 @@
1
+ import { DiagramExtension } from './DiagramExtension';
2
+ import { PathsGrid, PathGridEdge, PathGridPoint } from '../../util/paths/PathsGrid';
3
+ export declare class PathFindingRenderer extends DiagramExtension {
4
+ grid: PathsGrid | null;
5
+ points: PathGridPoint[] | null;
6
+ highlighted: Set<PathGridEdge>;
7
+ init(): void;
8
+ setGrid(grid: PathsGrid | null, points: PathGridPoint[]): void;
9
+ }
@@ -0,0 +1,26 @@
1
+ export declare class Priorities {
2
+ Canvas_Rules: number;
3
+ Change_History: number;
4
+ Click_Node: number;
5
+ Drag_Rules: number;
6
+ Drag_Node_Distances_Balancer: number;
7
+ Drag_Node_Straight_Drag: number;
8
+ Drag_Node_Aligner: number;
9
+ Drag_Node_Snap_To_Grid: number;
10
+ Drag_Edge_Snap_To_Grid: number;
11
+ Mouse_Down_Rules: number;
12
+ Mouse_Down_Measurer: number;
13
+ Mouse_Down_Selector: number;
14
+ Mouse_Down_Node: number;
15
+ Mouse_Down_Dragger: number;
16
+ Mouse_Move_Straight_Drag: number;
17
+ Mouse_Move_Selector: number;
18
+ Mouse_Up_Straight_Drag: number;
19
+ Mouse_Up_Dragger: number;
20
+ Mouse_Up_Selector: number;
21
+ Nodes_Connection_Rules: number;
22
+ Node_Selection_Nodes_Resizer: number;
23
+ Node_Selection_Selector: number;
24
+ Scale_Dragger: number;
25
+ Selection_Rules: number;
26
+ }
@@ -0,0 +1,11 @@
1
+ import { Diagram } from '../Diagram';
2
+ export declare class Rules {
3
+ protected d: Diagram;
4
+ allowEdition: boolean;
5
+ allowSelection: boolean;
6
+ allowZoom: boolean;
7
+ displaceWhenDragOnEdges: boolean;
8
+ toggleGrid: boolean;
9
+ constructor(d: Diagram);
10
+ private check;
11
+ }
@@ -0,0 +1,50 @@
1
+ import { Dimensions } from '../primitives/Dimensions';
2
+ import { DMouseDownEvent, DMouseUpEvent, DMouseMoveEvent } from '../elements/Events';
3
+ import { Node } from '../elements/Node';
4
+ import { DiagramExtension } from './DiagramExtension';
5
+ import { Edge } from '../elements/Edge';
6
+ type SelectionMode = 'area' | 'element';
7
+ /**
8
+ * The selection must be handled entirelly by the Selector class.
9
+ *
10
+ * There are some considerations:
11
+ *
12
+ * ## The Selector has two modes
13
+ *
14
+ * - Area selection mode:
15
+ When this mode is enabled, a mouse down and drag action implies selecting
16
+ all nodes in the dragged area.
17
+
18
+ When this mode is enabled, the event is stopped so the dragger wont be able
19
+ to drag the node.
20
+
21
+ - Single item selection mode:
22
+ When this mode is enabled, a mouse down event over a node will trigger its
23
+ selection.
24
+ */
25
+ export declare class Selector extends DiagramExtension {
26
+ selectionMode: SelectionMode;
27
+ private _selection;
28
+ private _edgesSelection;
29
+ /**
30
+ * Used to draw the selection rectangle
31
+ */
32
+ private endPoint;
33
+ private startPoint;
34
+ copy(): string;
35
+ init(): void;
36
+ toggleSelectionMode(sm?: SelectionMode): void;
37
+ get selectedNodes(): Node<import('../types').TOrientation>[];
38
+ get selectedEdges(): Edge[];
39
+ get box(): Dimensions;
40
+ clearSelection(check?: (n: Node<any>) => boolean): void;
41
+ selectEdge(e: Edge): void;
42
+ selectNode(n: Node<any>): void;
43
+ unselectEdge(e: Edge): void;
44
+ unselectNode(n: Node<any>): void;
45
+ unbind: () => void;
46
+ handleMouseDown: (ev: DMouseDownEvent) => void;
47
+ handleMouseMove: (_ev: DMouseMoveEvent) => void;
48
+ handleMouseUp: (_ev: DMouseUpEvent) => void;
49
+ }
50
+ export {};
@@ -0,0 +1,8 @@
1
+ import { DiagramExtension } from './DiagramExtension';
2
+ export declare class StraightDrag extends DiagramExtension {
3
+ private straight;
4
+ private startCoordinates;
5
+ private startProposals;
6
+ private reset;
7
+ init(): void;
8
+ }
@@ -0,0 +1,45 @@
1
+ import { Dimensions } from './Dimensions';
2
+ import { TOrientation } from '../types';
3
+ import { DirectedPoint } from './DirectedPoint';
4
+ import { AnyMouseEvent, DDragEvent, DMouseEvent } from '../elements/Events';
5
+ export interface TDirectedPoint {
6
+ x: number;
7
+ y: number;
8
+ direction: TOrientation;
9
+ }
10
+ export declare class Coordinates {
11
+ protected _data: number[];
12
+ constructor(items?: DMouseEvent | DDragEvent | AnyMouseEvent | Event | Coordinates | number[], isObservable?: boolean);
13
+ bound(boundaries: Dimensions): this;
14
+ get abs(): Coordinates;
15
+ assign(another: Coordinates | [number, number]): this;
16
+ copy(observable?: boolean): Coordinates;
17
+ distance(another: Coordinates): number;
18
+ distanceManhattan(another: Coordinates): number;
19
+ divide(factor: number | Coordinates): this;
20
+ equals(another: Coordinates): boolean;
21
+ get(i: number): number;
22
+ get length(): number;
23
+ max(n: number): Coordinates;
24
+ get nonObserved(): Coordinates;
25
+ get raw(): [number, number];
26
+ get round(): Coordinates;
27
+ get half(): Coordinates;
28
+ get norm(): number;
29
+ get style(): {
30
+ left: number;
31
+ top: number;
32
+ };
33
+ multiply(factor: number | Coordinates): this;
34
+ set(i: number, value: number): this;
35
+ snapToGrid(gridSize: number, dimension?: 'x' | 'y' | 'both'): this;
36
+ substract(another: Coordinates | [number, number]): this;
37
+ sum(another: Coordinates | [number, number] | number): this;
38
+ toDirectedPoint(direction: TOrientation): DirectedPoint;
39
+ toDimensions(size: Coordinates): Dimensions;
40
+ get x(): number;
41
+ get y(): number;
42
+ set x(value: number);
43
+ set y(value: number);
44
+ toString(): string;
45
+ }
@@ -0,0 +1,58 @@
1
+ import { Coordinates } from './Coordinates';
2
+ /**
3
+ * [ x, y, width, height ]
4
+ */
5
+ export declare class Dimensions {
6
+ protected _data: number[];
7
+ constructor(items?: Dimensions | number[], observable?: boolean);
8
+ get coordinates(): Coordinates;
9
+ get bottomLeft(): Coordinates;
10
+ get bottomMiddle(): Coordinates;
11
+ get bottomRight(): Coordinates;
12
+ get leftMiddle(): Coordinates;
13
+ get middle(): Coordinates;
14
+ get rightMiddle(): Coordinates;
15
+ get topLeft(): Coordinates;
16
+ get topMiddle(): Coordinates;
17
+ get topRight(): Coordinates;
18
+ get size(): Coordinates;
19
+ get x(): number;
20
+ get y(): number;
21
+ get height(): number;
22
+ get width(): number;
23
+ set x(value: number);
24
+ set y(value: number);
25
+ set height(value: number);
26
+ set width(value: number);
27
+ /**
28
+ * Diagonal norm
29
+ */
30
+ get norm(): number;
31
+ get length(): number;
32
+ get raw(): [number, number, number, number];
33
+ get round(): Dimensions;
34
+ get style(): {
35
+ width: number;
36
+ height: number;
37
+ left: number;
38
+ top: number;
39
+ };
40
+ assign(this: Dimensions, another: Dimensions | [number, number, number, number]): Dimensions;
41
+ assignCoordinates(this: Dimensions, another: Coordinates | [number, number]): Dimensions;
42
+ assignDimensions(this: Dimensions, another: Coordinates | [number, number]): Dimensions;
43
+ bound(boundaries: Dimensions): void;
44
+ collides(another: Dimensions | Coordinates, detectBorders?: boolean): boolean;
45
+ copy(): Dimensions;
46
+ divide(this: Dimensions, factor: number): Dimensions;
47
+ edgeDistanceX(another: Dimensions): number;
48
+ edgeDistanceY(another: Dimensions): number;
49
+ get(i: number): number;
50
+ inflate(size: number): Dimensions;
51
+ multiply(this: Dimensions, factor: number): Dimensions;
52
+ scale(another: Coordinates): this;
53
+ set(i: number, value: number): void;
54
+ substract(this: Dimensions, another: Dimensions | [number, number, number, number]): Dimensions;
55
+ sum(this: Dimensions, another: Dimensions | [number, number, number, number] | Coordinates): Dimensions;
56
+ toString(): string;
57
+ translate(another: Coordinates): this;
58
+ }
@@ -0,0 +1,12 @@
1
+ import { TOrientation } from '../types';
2
+ import { Coordinates } from './Coordinates';
3
+ export declare class DirectedPoint extends Coordinates {
4
+ direction: TOrientation;
5
+ get rawDirectedPoint(): {
6
+ x: number;
7
+ y: number;
8
+ direction: TOrientation;
9
+ };
10
+ stepBack(): this;
11
+ stepForward(): this;
12
+ }
@@ -0,0 +1,61 @@
1
+ import { Dimensions } from './primitives/Dimensions';
2
+ import { Coordinates } from './primitives/Coordinates';
3
+ import { Gateway } from './elements/Gateway';
4
+ import { Edge } from './elements/Edge';
5
+ import { EdgePoint } from './elements/EdgePoint';
6
+ export type TNodeState = {
7
+ id: string;
8
+ box: Dimensions;
9
+ label: string;
10
+ } & Partial<{
11
+ fill: string;
12
+ labelFontSize: number;
13
+ movable: boolean;
14
+ selectable: boolean;
15
+ selected: boolean;
16
+ stroke: string;
17
+ strokewWidth: number;
18
+ hover: boolean;
19
+ zIndex: number;
20
+ groupChildren: boolean;
21
+ }>;
22
+ export type EdgePathType = 'straight' | 'curved' | 'angle';
23
+ export type EdgeArrowHead = 'none' | 'arrow' | 'triangle' | 'triangle-filled' | 'diamond' | 'circle-small' | 'circle-medium' | 'measure';
24
+ export type EdgeLineStyle = 'solid' | 'dashed' | 'dotted';
25
+ export type TEdgeState = {
26
+ dragging: boolean;
27
+ hover: boolean;
28
+ selected: boolean;
29
+ label: string;
30
+ labelPositioning: Coordinates;
31
+ from: Gateway;
32
+ to: Gateway;
33
+ steps: EdgePoint[];
34
+ } & Partial<{
35
+ arrowHeadEnd: EdgeArrowHead;
36
+ arrowHeadStart: EdgeArrowHead;
37
+ displacementEnd: Coordinates;
38
+ displacementStart: Coordinates;
39
+ lineStyle: EdgeLineStyle;
40
+ pathType: EdgePathType;
41
+ stroke: string;
42
+ strokeWidth: number;
43
+ }>;
44
+ export type TGatewayState = {
45
+ id: string;
46
+ allowDisplace: boolean;
47
+ incomingEdges: Edge[];
48
+ outgoingEdges: Edge[];
49
+ maxIncomingConnections: number;
50
+ maxOutgoingConnections: number;
51
+ orientation: TOrientation;
52
+ fill?: string;
53
+ stroke?: string;
54
+ strokeWidth: number;
55
+ radius: number;
56
+ /**
57
+ * From 0 to 1, telling the percentage of width and height of its parent
58
+ */
59
+ position: Coordinates;
60
+ };
61
+ export type TOrientation = 'up' | 'right' | 'down' | 'left';
@@ -0,0 +1,8 @@
1
+ export declare class ClassList {
2
+ private _data;
3
+ constructor();
4
+ add(...cl: string[]): void;
5
+ delete(cl: string): void;
6
+ toggle(cl: string): void;
7
+ get string(): string;
8
+ }
@@ -0,0 +1,9 @@
1
+ import { Coordinates } from '../store/primitives/Coordinates';
2
+ export declare class Mouse {
3
+ private static instance;
4
+ static getInstance(): Mouse;
5
+ x: number;
6
+ y: number;
7
+ get coordinates(): Coordinates;
8
+ constructor();
9
+ }
@@ -0,0 +1,5 @@
1
+ import { Semaphore } from './Semaphore';
2
+ export declare class Mutex extends Semaphore {
3
+ constructor();
4
+ runExclusive<T>(cb: () => Promise<T>): Promise<T | undefined>;
5
+ }
@@ -0,0 +1,19 @@
1
+ export declare class PriorityQueue<T extends {
2
+ priority: number;
3
+ }> {
4
+ private heap;
5
+ get size(): number;
6
+ isEmpty(): boolean;
7
+ /**
8
+ * Returns the most prioritary element without removing it.
9
+ */
10
+ peek(): T | undefined;
11
+ push(item: T): void;
12
+ /**
13
+ * Removes the most prioritary element and returns it.
14
+ */
15
+ pop(): T | undefined;
16
+ private bubbleUp;
17
+ private bubbleDown;
18
+ private swap;
19
+ }
@@ -0,0 +1,37 @@
1
+ export declare class CancellablePromise<T> extends Promise<T> {
2
+ cancel: () => unknown;
3
+ constructor(executor: (resolve: (value: T) => void, reject: (reason?: any) => void) => void, cancel: () => unknown);
4
+ }
5
+ export declare const cancellingToken: unique symbol;
6
+ /**
7
+ * A simple semaphore implementation to control concurrency.
8
+ * Limits the number of concurrent tasks that can run simultaneously.
9
+ */
10
+ export declare class Semaphore {
11
+ private concurrency;
12
+ private current;
13
+ private queue;
14
+ /**
15
+ * Creates a new instance of the Semaphore.
16
+ *
17
+ * @param concurrency - The maximum number of concurrent tasks allowed.
18
+ */
19
+ constructor(concurrency: number);
20
+ get isBusy(): boolean;
21
+ /**
22
+ * Acquires a permit to run a task.
23
+ *
24
+ * If the number of currently acquired permits is less than the concurrency limit,
25
+ * the promise resolves immediately. Otherwise, it is queued until a permit is released.
26
+ *
27
+ * @returns A promise that resolves when the permit has been acquired.
28
+ */
29
+ acquire(): Promise<void>;
30
+ clear(): void;
31
+ /**
32
+ * Releases a previously acquired permit.
33
+ *
34
+ * If there are queued tasks waiting for a permit, the next one is dequeued and allowed to proceed.
35
+ */
36
+ release(): void;
37
+ }
@@ -0,0 +1,7 @@
1
+ export type Task<T> = () => Promise<T>;
2
+ export declare class TasksQueue {
3
+ private mutex;
4
+ get isBusy(): boolean;
5
+ clear(): void;
6
+ run<T>(task: Task<T>): Promise<T | undefined>;
7
+ }
@@ -0,0 +1 @@
1
+ export declare function arrayOrArray<T>(c: T | T[]): T[];
@@ -0,0 +1 @@
1
+ export declare function awaitTime(ms: number): Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { DEvent } from '../store/elements/Events';
2
+ import { Callback as EvCB, AbstractClass } from '../store/elements/Element';
3
+ import { Diagram } from '../store/Diagram';
4
+ import { THotKey } from '../store/extensions/Hotkeys';
5
+ type Callback = () => void;
6
+ type Unsubscriber = Callback;
7
+ export declare function bindDiagram<X extends DEvent>(target: {
8
+ diagram: Diagram;
9
+ }, type: AbstractClass<X>, cb: EvCB<X>, priority?: number): () => void;
10
+ export declare function bindHotkey(target: {
11
+ diagram: Diagram;
12
+ }, hotkey: THotKey): () => void;
13
+ export declare function bindDocument<K extends keyof DocumentEventMap>(target: any, type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): Unsubscriber;
14
+ export declare function bindInterval(cb: Callback, time: number): () => void;
15
+ export declare function bindTimeout(cb: Callback, time: number): () => void;
16
+ export declare function bind(...uns: Callback[]): () => void;
17
+ export {};
@@ -0,0 +1,3 @@
1
+ import { Diagram } from '../../store/Diagram';
2
+ import { BPMNApplyImportResult, BPMNImportPlan } from './types';
3
+ export declare function applyBPMNImportPlan(diagram: Diagram, plan: BPMNImportPlan): BPMNApplyImportResult;
@@ -0,0 +1,3 @@
1
+ import { BPMNImportPlan, ParsedBPMNModel } from './types';
2
+ export declare function sanitizeId(raw: string, fallbackPrefix: string): string;
3
+ export declare function buildBPMNImportPlan(parsed: ParsedBPMNModel): BPMNImportPlan;
@@ -0,0 +1,6 @@
1
+ import { Diagram } from '../../store/Diagram';
2
+ import { BPMNImportSummary } from './types';
3
+ export declare function importBPMNXmlIntoDiagram(diagram: Diagram, xml: string, _fileName?: string): {
4
+ warnings: string[];
5
+ summary: BPMNImportSummary;
6
+ };
@@ -0,0 +1,5 @@
1
+ export { applyBPMNImportPlan } from './applyBPMNImportPlan';
2
+ export { buildBPMNImportPlan, sanitizeId } from './buildBPMNImportPlan';
3
+ export { importBPMNXmlIntoDiagram } from './importBPMNXmlIntoDiagram';
4
+ export { parseBPMNXml } from './parseBPMNXml';
5
+ export type * from './types';
@@ -0,0 +1,2 @@
1
+ import { ParsedBPMNModel } from './types';
2
+ export declare function parseBPMNXml(xml: string): ParsedBPMNModel;
@@ -0,0 +1,103 @@
1
+ import { TOrientation } from '../../store/types';
2
+ export type BPMNBounds = {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ };
8
+ export type BPMNWaypoint = {
9
+ x: number;
10
+ y: number;
11
+ };
12
+ export type ParsedBPMNFlowNode = {
13
+ id: string;
14
+ name: string;
15
+ type: string;
16
+ processId: string;
17
+ };
18
+ export type ParsedBPMNSequenceFlow = {
19
+ id: string;
20
+ name: string;
21
+ sourceRef: string;
22
+ targetRef: string;
23
+ processId: string;
24
+ };
25
+ export type ParsedBPMNLane = {
26
+ id: string;
27
+ name: string;
28
+ flowNodeRefs: string[];
29
+ processId: string;
30
+ };
31
+ export type ParsedBPMNProcess = {
32
+ id: string;
33
+ name: string;
34
+ flowNodes: ParsedBPMNFlowNode[];
35
+ sequenceFlows: ParsedBPMNSequenceFlow[];
36
+ lanes: ParsedBPMNLane[];
37
+ };
38
+ export type ParsedBPMNParticipant = {
39
+ id: string;
40
+ name: string;
41
+ processRef: string;
42
+ };
43
+ export type ParsedBPMNUnsupportedLink = {
44
+ id: string;
45
+ sourceRef: string;
46
+ targetRef: string;
47
+ type: string;
48
+ };
49
+ export type ParsedBPMNModel = {
50
+ processes: ParsedBPMNProcess[];
51
+ participants: ParsedBPMNParticipant[];
52
+ shapes: Map<string, BPMNBounds>;
53
+ edges: Map<string, BPMNWaypoint[]>;
54
+ unsupportedLinks: ParsedBPMNUnsupportedLink[];
55
+ warnings: string[];
56
+ };
57
+ export type BPMNNodeClassName = 'TaskNode' | 'EventNode' | 'GateNode' | 'UnknownBPMNNode';
58
+ export type BPMNImportLanePlan = {
59
+ id: string;
60
+ processId: string;
61
+ participantId: string | null;
62
+ box: BPMNBounds;
63
+ poolLabels: string[];
64
+ };
65
+ export type BPMNImportNodePlan = {
66
+ bpmnId: string;
67
+ processId: string;
68
+ id: string;
69
+ label: string;
70
+ className: BPMNNodeClassName;
71
+ box: BPMNBounds;
72
+ laneIndex: number;
73
+ bpmnType: string;
74
+ eventType?: number;
75
+ gateType?: number;
76
+ sourceType?: string;
77
+ };
78
+ export type BPMNImportEdgePlan = {
79
+ bpmnId: string;
80
+ processId: string;
81
+ fromBpmnId: string;
82
+ toBpmnId: string;
83
+ fromNodeId: string;
84
+ toNodeId: string;
85
+ fromOrientation: TOrientation;
86
+ toOrientation: TOrientation;
87
+ waypoints: BPMNWaypoint[] | null;
88
+ };
89
+ export type BPMNImportPlan = {
90
+ lanes: BPMNImportLanePlan[];
91
+ nodes: BPMNImportNodePlan[];
92
+ edges: BPMNImportEdgePlan[];
93
+ warnings: string[];
94
+ };
95
+ export type BPMNImportSummary = {
96
+ nodes: number;
97
+ edges: number;
98
+ lanes: number;
99
+ };
100
+ export type BPMNApplyImportResult = {
101
+ summary: BPMNImportSummary;
102
+ warnings: string[];
103
+ };
@@ -0,0 +1 @@
1
+ export declare function cloneDeep<T>(o: T): T;
@@ -0,0 +1 @@
1
+ export declare function downloadFile(content: string, filename: string, mimeType?: string): void;
@@ -0,0 +1,3 @@
1
+ type EnumType = Record<string, any>;
2
+ export declare function getEnumStr(theEnum: EnumType, index: number): string;
3
+ export {};
@@ -0,0 +1,2 @@
1
+ import { Diagram } from '../store/Diagram';
2
+ export declare function getIdForNode(diagram: Diagram, prefix: string, restrict?: string[]): string;
@@ -0,0 +1 @@
1
+ export declare function getUniqueId(prefix: string): string;
@@ -0,0 +1 @@
1
+ export declare function insertSorted<T>(arr: T[], value: T, cmp: (a: T, b: T) => number): void;
@@ -0,0 +1,43 @@
1
+ import { Coordinates } from '../../store/primitives/Coordinates';
2
+ import { Dimensions } from '../../store/primitives/Dimensions';
3
+ import { TOrientation } from '../../store/types';
4
+ export declare class PathGridEdge {
5
+ from: PathGridPoint;
6
+ to: PathGridPoint;
7
+ constructor(from: PathGridPoint, to: PathGridPoint);
8
+ collides(box: Dimensions): boolean;
9
+ norm(): number;
10
+ toString(): string;
11
+ }
12
+ export declare class PathGridPoint extends Coordinates {
13
+ protected grid: PathsGrid;
14
+ constructor(grid: PathsGrid, data: [number, number]);
15
+ get x(): number;
16
+ get y(): number;
17
+ }
18
+ export declare class PathsGrid {
19
+ private collideDetect;
20
+ private _points;
21
+ private _edges;
22
+ private edgesFrom;
23
+ private edgesTo;
24
+ constructor(collideDetect: Dimensions[]);
25
+ add(x?: number, y?: number): PathGridPoint | undefined;
26
+ connect(a?: PathGridPoint, b?: PathGridPoint, force?: boolean): void;
27
+ createPoint(c: Coordinates): PathGridPoint;
28
+ getEdgesFrom(p: PathGridPoint): PathGridEdge[];
29
+ getEdgesTo(p: PathGridPoint): PathGridEdge[];
30
+ getNeighbors(p: PathGridPoint): PathGridEdge[];
31
+ removeInRadio(center: Coordinates, distance: number): void;
32
+ removeColliding(except: Dimensions[]): void;
33
+ private buildPath;
34
+ run(start: {
35
+ coordinates: Coordinates;
36
+ orientation: TOrientation;
37
+ }, end: {
38
+ coordinates: Coordinates;
39
+ orientation: TOrientation;
40
+ }): PathGridPoint[] | null;
41
+ get edges(): PathGridEdge[];
42
+ get points(): PathGridPoint[];
43
+ }
@@ -0,0 +1,8 @@
1
+ import { Diagram } from '../../store/Diagram';
2
+ import { Gateway } from '../../store/elements/Gateway';
3
+ import { Coordinates } from '../../store/primitives/Coordinates';
4
+ export type Path = {
5
+ x: number;
6
+ y: number;
7
+ }[];
8
+ export declare function findBestPathBetweenNodes(diagram: Diagram, from: Gateway, to: Gateway, fromDisplacement?: Coordinates, toDisplacement?: Coordinates): Coordinates[];
@@ -0,0 +1,7 @@
1
+ import { Diagram } from '../../store/Diagram';
2
+ import { Edge } from '../../store/elements/Edge';
3
+ import { EdgePoint } from '../../store/elements/EdgePoint';
4
+ import { Gateway } from '../../store/elements/Gateway';
5
+ import { Coordinates } from '../../store/primitives/Coordinates';
6
+ export declare function routeOrthogonalBetweenGateways(diagram: Diagram, from: Gateway, to: Gateway, fromDisplacement?: Coordinates, toDisplacement?: Coordinates, parent?: Edge | null): EdgePoint[];
7
+ export declare function routeOrthogonalEdge(diagram: Diagram, edge: Edge, keepManualPoints?: EdgePoint[], manualPointOverride?: EdgePoint[]): EdgePoint[];