@focus.matters/diagrams 0.2.1 → 0.3.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 (50) hide show
  1. package/INTEGRATION.md +40 -0
  2. package/LIFECYCLE.md +117 -0
  3. package/dist/{DirectedPoint-BSGh_PUt.js → DirectedPoint-DNhrnCXr.js} +2 -2
  4. package/dist/diagrams.css +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.es.js +16509 -26
  7. package/dist/index.umd.js +6 -6
  8. package/dist/src/Diagrams/components/objects/RenderEdge/types.d.ts +6 -3
  9. package/dist/src/Diagrams/components/objects/edgeLabelPlacement.d.ts +4 -1
  10. package/dist/src/Diagrams/components/objects/useEdgeLabelMeasurement.d.ts +4 -0
  11. package/dist/src/Diagrams/components/stopDiagramControlEvent.d.ts +11 -0
  12. package/dist/src/Diagrams/components/useDiagramPointerCapture.d.ts +14 -0
  13. package/dist/src/Diagrams/custom/agent/edges/AgentEdge.d.ts +6 -6
  14. package/dist/src/Diagrams/custom/agent/nodes/AgentNode.d.ts +7 -7
  15. package/dist/src/Diagrams/custom/bpmn/edges/BPMNEdge.d.ts +6 -6
  16. package/dist/src/Diagrams/custom/bpmn/extensions/BPMNModelerExtension.d.ts +2 -2
  17. package/dist/src/Diagrams/custom/bpmn/nodes/DocumentNode.d.ts +7 -7
  18. package/dist/src/Diagrams/custom/bpmn/nodes/EventNode.d.ts +7 -7
  19. package/dist/src/Diagrams/custom/bpmn/nodes/GateNode.d.ts +7 -7
  20. package/dist/src/Diagrams/custom/bpmn/nodes/Lanes/index.d.ts +8 -8
  21. package/dist/src/Diagrams/custom/bpmn/nodes/TaskNode.d.ts +7 -7
  22. package/dist/src/Diagrams/custom/bpmn/nodes/TextAnnotationNode.d.ts +7 -7
  23. package/dist/src/Diagrams/custom/bpmn/nodes/UnknownBPMNNode.d.ts +7 -7
  24. package/dist/src/Diagrams/custom/bpmnExecution/BPMNExecutionEdge.d.ts +6 -6
  25. package/dist/src/Diagrams/custom/bpmnExecution/BPMNExecutionExtension.d.ts +1 -1
  26. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionBlackBoxPoolNode.d.ts +7 -7
  27. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionDataStoreNode.d.ts +7 -7
  28. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionDocumentAnnotationNode.d.ts +7 -7
  29. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionDocumentNode.d.ts +7 -7
  30. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionEventNode.d.ts +7 -7
  31. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionGateNode.d.ts +7 -7
  32. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionTaskNode.d.ts +7 -7
  33. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionTextAnnotationNode.d.ts +7 -7
  34. package/dist/src/Diagrams/custom/bpmnExecution/nodes/BPMNExecutionUnknownNode.d.ts +7 -7
  35. package/dist/src/Diagrams/custom/communication/CommunicationDiagram.d.ts +2 -2
  36. package/dist/src/Diagrams/custom/editable/EditableNode.d.ts +2 -2
  37. package/dist/src/Diagrams/custom/mr/bindAttributeRelationshipHover.d.ts +3 -0
  38. package/dist/src/Diagrams/custom/mr/edges/MRForeignKeyEdge.d.ts +6 -6
  39. package/dist/src/Diagrams/custom/mr/extensions/MRModelerExtension.d.ts +1 -1
  40. package/dist/src/Diagrams/custom/mr/nodes/MRTableNode.d.ts +7 -7
  41. package/dist/src/Diagrams/store/Canvas.d.ts +45 -0
  42. package/dist/src/Diagrams/store/Diagram.d.ts +7 -1
  43. package/dist/src/Diagrams/store/revealDiagramNode.d.ts +10 -0
  44. package/dist/src/index.d.ts +40 -0
  45. package/package.json +11 -7
  46. package/dist/DirectedPoint-BSGh_PUt.js.map +0 -1
  47. package/dist/index-y4Eon_hl.js +0 -16196
  48. package/dist/index-y4Eon_hl.js.map +0 -1
  49. package/dist/index.es.js.map +0 -1
  50. package/dist/index.umd.js.map +0 -1
@@ -20,16 +20,16 @@ export declare class BPMNExecutionDocumentAnnotationNode extends DocumentAnnotat
20
20
  coordinates: [number, number];
21
21
  fill: string | undefined;
22
22
  id: string;
23
- orientation: import('../../../store/types').TOrientation;
23
+ orientation: import('../../../..').TOrientation;
24
24
  radius: number;
25
25
  stroke: string | undefined;
26
26
  strokeWidth: number;
27
27
  outEdges: {
28
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
29
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
28
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
29
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
30
30
  displacementEnd: [number, number] | undefined;
31
31
  displacementStart: [number, number] | undefined;
32
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
32
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
33
33
  labels: {
34
34
  alignment: "right" | "left" | "center";
35
35
  id: string;
@@ -40,13 +40,13 @@ export declare class BPMNExecutionDocumentAnnotationNode extends DocumentAnnotat
40
40
  text: string;
41
41
  position: [number, number];
42
42
  }[];
43
- pathType: import('../../../store/types').EdgePathType;
43
+ pathType: import('../../../..').EdgePathType;
44
44
  startAnchor: {
45
- mode: import('../../../store/types').EdgeAnchorMode;
45
+ mode: import('../../../..').EdgeAnchorMode;
46
46
  position: [number, number] | undefined;
47
47
  };
48
48
  endAnchor: {
49
- mode: import('../../../store/types').EdgeAnchorMode;
49
+ mode: import('../../../..').EdgeAnchorMode;
50
50
  position: [number, number] | undefined;
51
51
  };
52
52
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -21,16 +21,16 @@ export declare class BPMNExecutionDocumentNode extends DocumentNode {
21
21
  coordinates: [number, number];
22
22
  fill: string | undefined;
23
23
  id: string;
24
- orientation: import('../../../store/types').TOrientation;
24
+ orientation: import('../../../..').TOrientation;
25
25
  radius: number;
26
26
  stroke: string | undefined;
27
27
  strokeWidth: number;
28
28
  outEdges: {
29
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
30
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
29
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
30
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
31
31
  displacementEnd: [number, number] | undefined;
32
32
  displacementStart: [number, number] | undefined;
33
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
33
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
34
34
  labels: {
35
35
  alignment: "right" | "left" | "center";
36
36
  id: string;
@@ -41,13 +41,13 @@ export declare class BPMNExecutionDocumentNode extends DocumentNode {
41
41
  text: string;
42
42
  position: [number, number];
43
43
  }[];
44
- pathType: import('../../../store/types').EdgePathType;
44
+ pathType: import('../../../..').EdgePathType;
45
45
  startAnchor: {
46
- mode: import('../../../store/types').EdgeAnchorMode;
46
+ mode: import('../../../..').EdgeAnchorMode;
47
47
  position: [number, number] | undefined;
48
48
  };
49
49
  endAnchor: {
50
- mode: import('../../../store/types').EdgeAnchorMode;
50
+ mode: import('../../../..').EdgeAnchorMode;
51
51
  position: [number, number] | undefined;
52
52
  };
53
53
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -31,16 +31,16 @@ export declare class BPMNExecutionEventNode extends EventNode {
31
31
  coordinates: [number, number];
32
32
  fill: string | undefined;
33
33
  id: string;
34
- orientation: import('../../../store/types').TOrientation;
34
+ orientation: import('../../../..').TOrientation;
35
35
  radius: number;
36
36
  stroke: string | undefined;
37
37
  strokeWidth: number;
38
38
  outEdges: {
39
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
40
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
39
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
40
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
41
41
  displacementEnd: [number, number] | undefined;
42
42
  displacementStart: [number, number] | undefined;
43
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
43
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
44
44
  labels: {
45
45
  alignment: "right" | "left" | "center";
46
46
  id: string;
@@ -51,13 +51,13 @@ export declare class BPMNExecutionEventNode extends EventNode {
51
51
  text: string;
52
52
  position: [number, number];
53
53
  }[];
54
- pathType: import('../../../store/types').EdgePathType;
54
+ pathType: import('../../../..').EdgePathType;
55
55
  startAnchor: {
56
- mode: import('../../../store/types').EdgeAnchorMode;
56
+ mode: import('../../../..').EdgeAnchorMode;
57
57
  position: [number, number] | undefined;
58
58
  };
59
59
  endAnchor: {
60
- mode: import('../../../store/types').EdgeAnchorMode;
60
+ mode: import('../../../..').EdgeAnchorMode;
61
61
  position: [number, number] | undefined;
62
62
  };
63
63
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -21,16 +21,16 @@ export declare class BPMNExecutionGateNode extends GateNode {
21
21
  coordinates: [number, number];
22
22
  fill: string | undefined;
23
23
  id: string;
24
- orientation: import('../../../store/types').TOrientation;
24
+ orientation: import('../../../..').TOrientation;
25
25
  radius: number;
26
26
  stroke: string | undefined;
27
27
  strokeWidth: number;
28
28
  outEdges: {
29
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
30
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
29
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
30
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
31
31
  displacementEnd: [number, number] | undefined;
32
32
  displacementStart: [number, number] | undefined;
33
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
33
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
34
34
  labels: {
35
35
  alignment: "right" | "left" | "center";
36
36
  id: string;
@@ -41,13 +41,13 @@ export declare class BPMNExecutionGateNode extends GateNode {
41
41
  text: string;
42
42
  position: [number, number];
43
43
  }[];
44
- pathType: import('../../../store/types').EdgePathType;
44
+ pathType: import('../../../..').EdgePathType;
45
45
  startAnchor: {
46
- mode: import('../../../store/types').EdgeAnchorMode;
46
+ mode: import('../../../..').EdgeAnchorMode;
47
47
  position: [number, number] | undefined;
48
48
  };
49
49
  endAnchor: {
50
- mode: import('../../../store/types').EdgeAnchorMode;
50
+ mode: import('../../../..').EdgeAnchorMode;
51
51
  position: [number, number] | undefined;
52
52
  };
53
53
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -26,16 +26,16 @@ export declare class BPMNExecutionTaskNode extends TaskNode {
26
26
  coordinates: [number, number];
27
27
  fill: string | undefined;
28
28
  id: string;
29
- orientation: import('../../../store/types').TOrientation;
29
+ orientation: import('../../../..').TOrientation;
30
30
  radius: number;
31
31
  stroke: string | undefined;
32
32
  strokeWidth: number;
33
33
  outEdges: {
34
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
35
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
34
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
35
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
36
36
  displacementEnd: [number, number] | undefined;
37
37
  displacementStart: [number, number] | undefined;
38
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
38
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
39
39
  labels: {
40
40
  alignment: "right" | "left" | "center";
41
41
  id: string;
@@ -46,13 +46,13 @@ export declare class BPMNExecutionTaskNode extends TaskNode {
46
46
  text: string;
47
47
  position: [number, number];
48
48
  }[];
49
- pathType: import('../../../store/types').EdgePathType;
49
+ pathType: import('../../../..').EdgePathType;
50
50
  startAnchor: {
51
- mode: import('../../../store/types').EdgeAnchorMode;
51
+ mode: import('../../../..').EdgeAnchorMode;
52
52
  position: [number, number] | undefined;
53
53
  };
54
54
  endAnchor: {
55
- mode: import('../../../store/types').EdgeAnchorMode;
55
+ mode: import('../../../..').EdgeAnchorMode;
56
56
  position: [number, number] | undefined;
57
57
  };
58
58
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -20,16 +20,16 @@ export declare class BPMNExecutionTextAnnotationNode extends TextAnnotationNode
20
20
  coordinates: [number, number];
21
21
  fill: string | undefined;
22
22
  id: string;
23
- orientation: import('../../../store/types').TOrientation;
23
+ orientation: import('../../../..').TOrientation;
24
24
  radius: number;
25
25
  stroke: string | undefined;
26
26
  strokeWidth: number;
27
27
  outEdges: {
28
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
29
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
28
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
29
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
30
30
  displacementEnd: [number, number] | undefined;
31
31
  displacementStart: [number, number] | undefined;
32
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
32
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
33
33
  labels: {
34
34
  alignment: "right" | "left" | "center";
35
35
  id: string;
@@ -40,13 +40,13 @@ export declare class BPMNExecutionTextAnnotationNode extends TextAnnotationNode
40
40
  text: string;
41
41
  position: [number, number];
42
42
  }[];
43
- pathType: import('../../../store/types').EdgePathType;
43
+ pathType: import('../../../..').EdgePathType;
44
44
  startAnchor: {
45
- mode: import('../../../store/types').EdgeAnchorMode;
45
+ mode: import('../../../..').EdgeAnchorMode;
46
46
  position: [number, number] | undefined;
47
47
  };
48
48
  endAnchor: {
49
- mode: import('../../../store/types').EdgeAnchorMode;
49
+ mode: import('../../../..').EdgeAnchorMode;
50
50
  position: [number, number] | undefined;
51
51
  };
52
52
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -21,16 +21,16 @@ export declare class BPMNExecutionUnknownNode extends UnknownBPMNNode {
21
21
  coordinates: [number, number];
22
22
  fill: string | undefined;
23
23
  id: string;
24
- orientation: import('../../../store/types').TOrientation;
24
+ orientation: import('../../../..').TOrientation;
25
25
  radius: number;
26
26
  stroke: string | undefined;
27
27
  strokeWidth: number;
28
28
  outEdges: {
29
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
30
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
29
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
30
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
31
31
  displacementEnd: [number, number] | undefined;
32
32
  displacementStart: [number, number] | undefined;
33
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
33
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
34
34
  labels: {
35
35
  alignment: "right" | "left" | "center";
36
36
  id: string;
@@ -41,13 +41,13 @@ export declare class BPMNExecutionUnknownNode extends UnknownBPMNNode {
41
41
  text: string;
42
42
  position: [number, number];
43
43
  }[];
44
- pathType: import('../../../store/types').EdgePathType;
44
+ pathType: import('../../../..').EdgePathType;
45
45
  startAnchor: {
46
- mode: import('../../../store/types').EdgeAnchorMode;
46
+ mode: import('../../../..').EdgeAnchorMode;
47
47
  position: [number, number] | undefined;
48
48
  };
49
49
  endAnchor: {
50
- mode: import('../../../store/types').EdgeAnchorMode;
50
+ mode: import('../../../..').EdgeAnchorMode;
51
51
  position: [number, number] | undefined;
52
52
  };
53
53
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -6,8 +6,8 @@ import { CommunicationControllerNode } from './nodes/CommunicationControllerNode
6
6
  import { CommunicationNodeType } from './types';
7
7
  export declare class CommunicationDiagram extends EditableDiagram {
8
8
  constructor(settings?: TDiagramSettings);
9
- get selectedNodes(): import('../../store/elements/Node').Node<import('../../store/types').TOrientation>[];
10
- get selectedEdges(): import('../../store/elements/Edge').Edge[];
9
+ get selectedNodes(): import('../../..').Node<import('../../..').TOrientation>[];
10
+ get selectedEdges(): import('../../..').Edge[];
11
11
  createNodeFromClientPoint(type: CommunicationNodeType, clientX: number, clientY: number): CommunicationActorNode | CommunicationObjectNode | CommunicationControllerNode;
12
12
  createNodeAtCanvasPoint(type: CommunicationNodeType, x: number, y: number): CommunicationActorNode | CommunicationObjectNode | CommunicationControllerNode;
13
13
  createNodeInViewportCenter(type: CommunicationNodeType): CommunicationActorNode | CommunicationObjectNode | CommunicationControllerNode;
@@ -14,8 +14,8 @@ export declare abstract class EditableNode extends Node {
14
14
  /** Confirms the edit unless an event listener cancels it, then returns whether it was accepted. */
15
15
  confirm(): boolean;
16
16
  get isChanged(): boolean;
17
- protected get screenLabelBox(): import('../../store/primitives/Dimensions').Dimensions;
17
+ protected get screenLabelBox(): import('../../..').Dimensions;
18
18
  /** Returns the current label bounds so surrounding controls can avoid its rendered area. */
19
- get labelScreenBox(): import('../../store/primitives/Dimensions').Dimensions;
19
+ get labelScreenBox(): import('../../..').Dimensions;
20
20
  RenderScreen: FC<any>;
21
21
  }
@@ -0,0 +1,3 @@
1
+ import { MRDiagram } from './MRDiagram';
2
+ /** Highlights connections and adjacent tables for hovered attributes, including custom table renderers. */
3
+ export declare function bindAttributeRelationshipHover(root: HTMLElement, diagram: MRDiagram): () => void;
@@ -40,11 +40,11 @@ export declare class MRForeignKeyEdge extends Edge {
40
40
  identifying: boolean;
41
41
  deferrable: boolean;
42
42
  initiallyDeferred: boolean;
43
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
44
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
43
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
44
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
45
45
  displacementEnd: [number, number] | undefined;
46
46
  displacementStart: [number, number] | undefined;
47
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
47
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
48
48
  labels: {
49
49
  alignment: "right" | "left" | "center";
50
50
  id: string;
@@ -55,13 +55,13 @@ export declare class MRForeignKeyEdge extends Edge {
55
55
  text: string;
56
56
  position: [number, number];
57
57
  }[];
58
- pathType: import('../../../store/types').EdgePathType;
58
+ pathType: import('../../../..').EdgePathType;
59
59
  startAnchor: {
60
- mode: import('../../../store/types').EdgeAnchorMode;
60
+ mode: import('../../../..').EdgeAnchorMode;
61
61
  position: [number, number] | undefined;
62
62
  };
63
63
  endAnchor: {
64
- mode: import('../../../store/types').EdgeAnchorMode;
64
+ mode: import('../../../..').EdgeAnchorMode;
65
65
  position: [number, number] | undefined;
66
66
  };
67
67
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -6,7 +6,7 @@ import { MRTableNode } from '../nodes/MRTableNode';
6
6
  import { MRAttribute, MRConstraint, MRConstraintKind, MRForeignKeyModel, MRShowcaseElement, MRTableKind } from '../types';
7
7
  /** Coordinates relational-model creation and every inspector-driven schema mutation. */
8
8
  export declare class MRModelerExtension extends DiagramExtension {
9
- RenderUI: (({ diagram, extension }: import('../../../store/extensions/DiagramExtension').TDiagramExtensionRenderProps<MRModelerExtension>) => import("react").JSX.Element) & {
9
+ RenderUI: (({ diagram, extension }: import('../../../..').TDiagramExtensionRenderProps<MRModelerExtension>) => import("react").JSX.Element) & {
10
10
  displayName: string;
11
11
  };
12
12
  /** Initializes this stateless modeler extension for fixed inspector rendering. */
@@ -50,16 +50,16 @@ export declare class MRTableNode extends Node<any> {
50
50
  coordinates: [number, number];
51
51
  fill: string | undefined;
52
52
  id: string;
53
- orientation: import('../../../store/types').TOrientation;
53
+ orientation: import('../../../..').TOrientation;
54
54
  radius: number;
55
55
  stroke: string | undefined;
56
56
  strokeWidth: number;
57
57
  outEdges: {
58
- arrowHeadEnd: import('../../../store/types').EdgeArrowHead | undefined;
59
- arrowHeadStart: import('../../../store/types').EdgeArrowHead | undefined;
58
+ arrowHeadEnd: import('../../../..').EdgeArrowHead | undefined;
59
+ arrowHeadStart: import('../../../..').EdgeArrowHead | undefined;
60
60
  displacementEnd: [number, number] | undefined;
61
61
  displacementStart: [number, number] | undefined;
62
- lineStyle: import('../../../store/types').EdgeLineStyle | undefined;
62
+ lineStyle: import('../../../..').EdgeLineStyle | undefined;
63
63
  labels: {
64
64
  alignment: "right" | "left" | "center";
65
65
  id: string;
@@ -70,13 +70,13 @@ export declare class MRTableNode extends Node<any> {
70
70
  text: string;
71
71
  position: [number, number];
72
72
  }[];
73
- pathType: import('../../../store/types').EdgePathType;
73
+ pathType: import('../../../..').EdgePathType;
74
74
  startAnchor: {
75
- mode: import('../../../store/types').EdgeAnchorMode;
75
+ mode: import('../../../..').EdgeAnchorMode;
76
76
  position: [number, number] | undefined;
77
77
  };
78
78
  endAnchor: {
79
- mode: import('../../../store/types').EdgeAnchorMode;
79
+ mode: import('../../../..').EdgeAnchorMode;
80
80
  position: [number, number] | undefined;
81
81
  };
82
82
  steps: import('../../../store/elements/EdgePoint').TSerializedEdgePoint[];
@@ -10,11 +10,23 @@ export type ScaleEvent = {
10
10
  /** Owns viewport scale, displacement, interaction sessions, and rendered canvas bounds. */
11
11
  export declare class Canvas extends Element {
12
12
  private unbindDocumentEvents;
13
+ private readonly detachHandlers;
13
14
  private mouseSessionStartedInFrame;
15
+ private keyboardSessionActive;
14
16
  private centerAnimationFrame;
15
17
  protected _displacement: Coordinates;
16
18
  _scale: number;
17
19
  private gridSize;
20
+ private minimumScale;
21
+ private maximumScale;
22
+ private wheelSensitivity;
23
+ private animatedZoom;
24
+ private zoomFrame;
25
+ private zoomTarget;
26
+ private zoomDeadline;
27
+ private zoomLastFrame;
28
+ private zoomCenter;
29
+ private applyingZoomFrame;
18
30
  size: Coordinates;
19
31
  get scale(): number;
20
32
  element: HTMLElement | null;
@@ -26,6 +38,8 @@ export declare class Canvas extends Element {
26
38
  constructor(parent: Diagram);
27
39
  /** Releases document listeners and cancels any viewport animation still in flight. */
28
40
  dispose(): void;
41
+ /** Registers cleanup for decorations owned by a currently attached canvas surface. */
42
+ onDetach(callback: () => void): () => void;
29
43
  /** Marks programmatic pointer sessions as eligible for the canvas drag lifecycle. */
30
44
  markMouseSessionStartedInFrame(): void;
31
45
  get dragging(): boolean;
@@ -35,6 +49,11 @@ export declare class Canvas extends Element {
35
49
  protected bound(): void;
36
50
  /** Centers a world point in the viewport and optionally animates the pan. */
37
51
  centerOnPoint(c: Coordinates, animated?: boolean): void;
52
+ /**
53
+ * Minimally pans the viewport until a world-space box has the requested margin.
54
+ */
55
+ ensureVisible(box: Dimensions, padding?: number, animated?: boolean): boolean;
56
+ private visibleOriginForInterval;
38
57
  private animateDisplacement;
39
58
  private cancelCenterAnimation;
40
59
  private applyDisplacement;
@@ -42,6 +61,27 @@ export declare class Canvas extends Element {
42
61
  displace(c: Coordinates): Coordinates;
43
62
  /** Replaces the viewport displacement while respecting configured canvas bounds. */
44
63
  setDisplacement(c: Coordinates): void;
64
+ /** Configures validated viewport limits and a constant scale increment per wheel pixel. */
65
+ configureZoom(options: {
66
+ minimumScale?: number;
67
+ maximumScale?: number;
68
+ wheelSensitivity?: number;
69
+ animated?: boolean;
70
+ }): void;
71
+ /** Applies the same configured limits to manual zoom, fitted content and restored cameras. */
72
+ clampScale(value: number): number;
73
+ /** Captures serializable camera coordinates without choosing an application storage backend. */
74
+ getCamera(): {
75
+ x: number;
76
+ y: number;
77
+ scale: number;
78
+ };
79
+ /** Restores a validated camera snapshot using the same limits as interactive viewport zoom. */
80
+ restoreCamera(camera: {
81
+ x: number;
82
+ y: number;
83
+ scale: number;
84
+ }): void;
45
85
  /** Changes viewport scale around a screen-space focus point and preserves alignment. */
46
86
  setScale(newScale: number, zoomCenter?: Coordinates): void;
47
87
  /**
@@ -72,8 +112,13 @@ export declare class Canvas extends Element {
72
112
  protected handleClick(originalEvent: MouseEvent): void;
73
113
  protected handleMouseUp(originalEvent: MouseEvent): void;
74
114
  protected handleMouseDown(originalEvent: MouseEvent): void;
115
+ protected handleFocusIn(originalEvent: FocusEvent): void;
75
116
  protected handleKeyDown(originalEvent: KeyboardEvent): void;
76
117
  protected handleKeyUp(originalEvent: KeyboardEvent): void;
77
118
  protected handleKeyPress(originalEvent: KeyboardEvent): void;
119
+ private cancelZoomAnimation;
120
+ private animateWheelZoom;
121
+ private advanceWheelZoom;
122
+ private applyWheelZoom;
78
123
  protected handleWheel(originalEvent: WheelEvent): void;
79
124
  }
@@ -47,7 +47,13 @@ export type TDefaultExensions = {
47
47
  [key in keyof ReturnType<typeof getDefaultExtensions>]: boolean;
48
48
  };
49
49
  export type TDiagramSettings = Partial<{
50
- extensions: TDefaultExensions;
50
+ extensions: Partial<TDefaultExensions>;
51
+ zoom: {
52
+ minimumScale?: number;
53
+ maximumScale?: number;
54
+ wheelSensitivity?: number;
55
+ animated?: boolean;
56
+ };
51
57
  }>;
52
58
  /** Owns diagram elements, extensions, camera state, and application interactions. */
53
59
  export declare class Diagram extends Element {
@@ -0,0 +1,10 @@
1
+ import { Diagram } from './Diagram';
2
+ import { Node } from './elements/Node';
3
+ import { Coordinates } from './primitives/Coordinates';
4
+ /** Selects, frames and persistently highlights a reference destination until a click outside it. */
5
+ export declare function revealDiagramNode(diagram: Diagram, node: Node, options?: {
6
+ point?: Coordinates;
7
+ attributeId?: string;
8
+ padding?: number;
9
+ preferredScale?: number;
10
+ }): boolean;
@@ -23,9 +23,49 @@ export { BPMNExecutionUnknownNode } from './Diagrams/custom/bpmnExecution/nodes/
23
23
  export type * from './Diagrams/custom/bpmnExecution/types';
24
24
  export { CommunicationDiagram } from './Diagrams/custom/communication/CommunicationDiagram';
25
25
  export type { CommunicationNodeType } from './Diagrams/custom/communication/types';
26
+ export { EditableDiagram } from './Diagrams/custom/editable/EditableDiagram';
26
27
  export { MRForeignKeyEdge } from './Diagrams/custom/mr/edges/MRForeignKeyEdge';
28
+ export { MRModelerExtension } from './Diagrams/custom/mr/extensions/MRModelerExtension';
27
29
  export { MRDiagram } from './Diagrams/custom/mr/MRDiagram';
28
30
  export { MRTableNode } from './Diagrams/custom/mr/nodes/MRTableNode';
29
31
  export type * from './Diagrams/custom/mr/types';
30
32
  export { DiagramEditor } from './Diagrams/DiagramEditor';
33
+ export { Canvas } from './Diagrams/store/Canvas';
31
34
  export { Diagram } from './Diagrams/store/Diagram';
35
+ export type { TDefaultExensions, TDiagramSettings } from './Diagrams/store/Diagram';
36
+ export { DEdgeLabelChangeEvent } from './Diagrams/store/elements/DEdgeLabelChangeEvent';
37
+ export { Edge } from './Diagrams/store/elements/Edge';
38
+ export { EdgeLabel } from './Diagrams/store/elements/EdgeLabel';
39
+ export { EdgePoint } from './Diagrams/store/elements/EdgePoint';
40
+ export { Element } from './Diagrams/store/elements/Element';
41
+ export type { AbstractClass, Callback, Class } from './Diagrams/store/elements/Element';
42
+ export * from './Diagrams/store/elements/Events';
43
+ export { Gateway } from './Diagrams/store/elements/Gateway';
44
+ export { Node } from './Diagrams/store/elements/Node';
45
+ export type { TNodeConstructorProps, TNodeRenderProps, TNodeScreenRenderProps } from './Diagrams/store/elements/Node';
46
+ export { Creator } from './Diagrams/store/extensions/Creator';
47
+ export { DiagramExtension } from './Diagrams/store/extensions/DiagramExtension';
48
+ export type { TDiagramExtensionRenderProps } from './Diagrams/store/extensions/DiagramExtension';
49
+ export { DistancesBalancer } from './Diagrams/store/extensions/DistancesBalancer';
50
+ export { Dragger } from './Diagrams/store/extensions/Dragger';
51
+ export { EdgesDragger } from './Diagrams/store/extensions/EdgesDragger';
52
+ export { GridSnap } from './Diagrams/store/extensions/GridSnap';
53
+ export { History } from './Diagrams/store/extensions/History';
54
+ export { Hotkeys } from './Diagrams/store/extensions/Hotkeys';
55
+ export { LabelsAligner } from './Diagrams/store/extensions/LabelsAligner';
56
+ export { Measurer } from './Diagrams/store/extensions/Measurer';
57
+ export { NodesAligner } from './Diagrams/store/extensions/NodesAligner';
58
+ export { NodesConnector } from './Diagrams/store/extensions/NodesConnector';
59
+ export { NodesResizer } from './Diagrams/store/extensions/NodesResizer';
60
+ export { PathFindingRenderer } from './Diagrams/store/extensions/PathFindingRenderer';
61
+ export { Selector } from './Diagrams/store/extensions/Selector';
62
+ export { StraightDrag } from './Diagrams/store/extensions/StraightDrag';
63
+ export { StraightLabelsDrag } from './Diagrams/store/extensions/StraightLabelsDrag';
64
+ export { Dimensions } from './Diagrams/store/primitives/Dimensions';
65
+ export type * from './Diagrams/store/types';
66
+ export { customRendererProps } from './Diagrams/components/objects/customRendererProps';
67
+ export { stopDiagramControlEvent } from './Diagrams/components/stopDiagramControlEvent';
68
+ export { useDiagramPointerCapture } from './Diagrams/components/useDiagramPointerCapture';
69
+ export { bindAttributeRelationshipHover } from './Diagrams/custom/mr/bindAttributeRelationshipHover';
70
+ export { Coordinates } from './Diagrams/store/primitives/Coordinates';
71
+ export { revealDiagramNode } from './Diagrams/store/revealDiagramNode';
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@focus.matters/diagrams",
3
- "version": "0.2.1",
3
+ "version": "0.3.0",
4
+ "private": false,
4
5
  "type": "module",
5
6
  "files": [
6
- "dist"
7
+ "dist",
8
+ "!dist/**/*.map",
9
+ "INTEGRATION.md",
10
+ "LIFECYCLE.md"
7
11
  ],
8
12
  "main": "./dist/index.umd.js",
9
13
  "module": "./dist/index.es.js",
@@ -19,6 +23,10 @@
19
23
  "publishConfig": {
20
24
  "access": "public"
21
25
  },
26
+ "scripts": {
27
+ "build": "vite build",
28
+ "typecheck": "tsc --noEmit -p tsconfig.json"
29
+ },
22
30
  "peerDependencies": {
23
31
  "html2canvas": "^1.4.1",
24
32
  "mobx": "^6.13.7",
@@ -40,9 +48,5 @@
40
48
  "gitHead": "f866b7ee0e0b98b4d9525fcb71185029df8a4996",
41
49
  "dependencies": {
42
50
  "@dagrejs/dagre": "^3.0.0"
43
- },
44
- "scripts": {
45
- "build": "vite build",
46
- "typecheck": "tsc --noEmit -p tsconfig.json"
47
51
  }
48
- }
52
+ }
@@ -1 +0,0 @@
1
- {"version":3,"file":"DirectedPoint-BSGh_PUt.js","sources":["../src/Diagrams/store/primitives/DirectedPoint.ts"],"sourcesContent":["import type { TOrientation } from \"../types\";\nimport { Coordinates } from \"./Coordinates\";\n\nexport class DirectedPoint extends Coordinates {\n direction: TOrientation = \"left\";\n\n get rawDirectedPoint() {\n return {\n x: this.x,\n y: this.y,\n direction: this.direction,\n };\n }\n\n stepBack() {\n switch (this.direction) {\n case \"down\":\n this.y--;\n break;\n case \"left\":\n this.x++;\n break;\n case \"right\":\n this.x--;\n break;\n case \"up\":\n this.y++;\n break;\n }\n return this;\n }\n\n stepForward() {\n switch (this.direction) {\n case \"down\":\n this.y++;\n break;\n case \"left\":\n this.x--;\n break;\n case \"right\":\n this.x++;\n break;\n case \"up\":\n this.y--;\n break;\n }\n return this;\n }\n}\n"],"names":["_DirectedPoint","Coordinates","__name","DirectedPoint"],"mappings":";;;AAGO,MAAMA,IAAN,MAAMA,UAAsBC,EAAY;AAAA,EAC7C,YAA0B;AAAA,EAE1B,IAAI,mBAAmB;AACrB,WAAO;AAAA,MACL,GAAG,KAAK;AAAA,MACR,GAAG,KAAK;AAAA,MACR,WAAW,KAAK;AAAA,IAAA;AAAA,EAEpB;AAAA,EAEA,WAAW;AACT,YAAQ,KAAK,WAAA;AAAA,MACX,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,IAAA;AAEJ,WAAO;AAAA,EACT;AAAA,EAEA,cAAc;AACZ,YAAQ,KAAK,WAAA;AAAA,MACX,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,MACF,KAAK;AACH,aAAK;AACL;AAAA,IAAA;AAEJ,WAAO;AAAA,EACT;AACF;AA9C+CC,EAAAF,GAAA;AAAxC,IAAMG,IAANH;"}