@ngroznykh/papirus 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +177 -0
- package/README.ru.md +178 -0
- package/dist/constants.d.ts +21 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/core/AnimationManager.d.ts +24 -0
- package/dist/core/AnimationManager.d.ts.map +1 -0
- package/dist/core/ConnectionManager.d.ts +139 -0
- package/dist/core/ConnectionManager.d.ts.map +1 -0
- package/dist/core/ContextMenuManager.d.ts +72 -0
- package/dist/core/ContextMenuManager.d.ts.map +1 -0
- package/dist/core/DiagramRenderer.d.ts +230 -0
- package/dist/core/DiagramRenderer.d.ts.map +1 -0
- package/dist/core/DragManager.d.ts +67 -0
- package/dist/core/DragManager.d.ts.map +1 -0
- package/dist/core/HistoryManager.d.ts +61 -0
- package/dist/core/HistoryManager.d.ts.map +1 -0
- package/dist/core/InteractionManager.d.ts +78 -0
- package/dist/core/InteractionManager.d.ts.map +1 -0
- package/dist/core/NavigationManager.d.ts +89 -0
- package/dist/core/NavigationManager.d.ts.map +1 -0
- package/dist/core/ResizeManager.d.ts +72 -0
- package/dist/core/ResizeManager.d.ts.map +1 -0
- package/dist/core/SearchManager.d.ts +61 -0
- package/dist/core/SearchManager.d.ts.map +1 -0
- package/dist/core/SelectionManager.d.ts +86 -0
- package/dist/core/SelectionManager.d.ts.map +1 -0
- package/dist/core/history/commands.d.ts +140 -0
- package/dist/core/history/commands.d.ts.map +1 -0
- package/dist/core/overlays/BaseOverlay.d.ts +20 -0
- package/dist/core/overlays/BaseOverlay.d.ts.map +1 -0
- package/dist/core/overlays/GridOverlay.d.ts +15 -0
- package/dist/core/overlays/GridOverlay.d.ts.map +1 -0
- package/dist/core/overlays/GuidesOverlay.d.ts +18 -0
- package/dist/core/overlays/GuidesOverlay.d.ts.map +1 -0
- package/dist/core/overlays/MiniMap.d.ts +22 -0
- package/dist/core/overlays/MiniMap.d.ts.map +1 -0
- package/dist/core/overlays/RulersOverlay.d.ts +18 -0
- package/dist/core/overlays/RulersOverlay.d.ts.map +1 -0
- package/dist/elements/Edge.d.ts +182 -0
- package/dist/elements/Edge.d.ts.map +1 -0
- package/dist/elements/Element.d.ts +131 -0
- package/dist/elements/Element.d.ts.map +1 -0
- package/dist/elements/Group.d.ts +65 -0
- package/dist/elements/Group.d.ts.map +1 -0
- package/dist/elements/Node.d.ts +188 -0
- package/dist/elements/Node.d.ts.map +1 -0
- package/dist/elements/NodeImage.d.ts +51 -0
- package/dist/elements/NodeImage.d.ts.map +1 -0
- package/dist/elements/Port.d.ts +72 -0
- package/dist/elements/Port.d.ts.map +1 -0
- package/dist/elements/TextLabel.d.ts +85 -0
- package/dist/elements/TextLabel.d.ts.map +1 -0
- package/dist/elements/nodes/CircleNode.d.ts +21 -0
- package/dist/elements/nodes/CircleNode.d.ts.map +1 -0
- package/dist/elements/nodes/CustomShapeNode.d.ts +48 -0
- package/dist/elements/nodes/CustomShapeNode.d.ts.map +1 -0
- package/dist/elements/nodes/DiamondNode.d.ts +13 -0
- package/dist/elements/nodes/DiamondNode.d.ts.map +1 -0
- package/dist/elements/nodes/RectangleNode.d.ts +19 -0
- package/dist/elements/nodes/RectangleNode.d.ts.map +1 -0
- package/dist/elements/paths/BezierPathStrategy.d.ts +10 -0
- package/dist/elements/paths/BezierPathStrategy.d.ts.map +1 -0
- package/dist/elements/paths/PathStrategy.d.ts +12 -0
- package/dist/elements/paths/PathStrategy.d.ts.map +1 -0
- package/dist/elements/paths/PolylinePathStrategy.d.ts +11 -0
- package/dist/elements/paths/PolylinePathStrategy.d.ts.map +1 -0
- package/dist/elements/paths/StraightPathStrategy.d.ts +10 -0
- package/dist/elements/paths/StraightPathStrategy.d.ts.map +1 -0
- package/dist/elements/paths/index.d.ts +5 -0
- package/dist/elements/paths/index.d.ts.map +1 -0
- package/dist/events/EventEmitter.d.ts +46 -0
- package/dist/events/EventEmitter.d.ts.map +1 -0
- package/dist/events/InputHandler.d.ts +97 -0
- package/dist/events/InputHandler.d.ts.map +1 -0
- package/dist/index.d.ts +71 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/papirus.js +8419 -0
- package/dist/papirus.js.map +1 -0
- package/dist/styles/StyleManager.d.ts +119 -0
- package/dist/styles/StyleManager.d.ts.map +1 -0
- package/dist/types.d.ts +329 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/AlignDistribute.d.ts +12 -0
- package/dist/utils/AlignDistribute.d.ts.map +1 -0
- package/dist/utils/AutoLayout.d.ts +15 -0
- package/dist/utils/AutoLayout.d.ts.map +1 -0
- package/dist/utils/AutoRouting.d.ts +11 -0
- package/dist/utils/AutoRouting.d.ts.map +1 -0
- package/dist/utils/ImageExporter.d.ts +34 -0
- package/dist/utils/ImageExporter.d.ts.map +1 -0
- package/dist/utils/Serializer.d.ts +63 -0
- package/dist/utils/Serializer.d.ts.map +1 -0
- package/dist/utils/SvgExporter.d.ts +26 -0
- package/dist/utils/SvgExporter.d.ts.map +1 -0
- package/dist/utils/applyStyleManager.d.ts +6 -0
- package/dist/utils/applyStyleManager.d.ts.map +1 -0
- package/dist/utils/contentBounds.d.ts +13 -0
- package/dist/utils/contentBounds.d.ts.map +1 -0
- package/dist/utils/download.d.ts +2 -0
- package/dist/utils/download.d.ts.map +1 -0
- package/dist/utils/geometry.d.ts +71 -0
- package/dist/utils/geometry.d.ts.map +1 -0
- package/dist/utils/style.d.ts +2 -0
- package/dist/utils/style.d.ts.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { Node, NodeOptions } from '../Node';
|
|
2
|
+
import { Point } from '../../types';
|
|
3
|
+
export interface CustomShapeNodeOptions extends NodeOptions {
|
|
4
|
+
path: Path2D | ((width: number, height: number) => Path2D);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Node with custom Path2D shape
|
|
8
|
+
*/
|
|
9
|
+
export declare class CustomShapeNode extends Node {
|
|
10
|
+
private _pathFactory;
|
|
11
|
+
private _cachedPath;
|
|
12
|
+
private _cachedWidth;
|
|
13
|
+
private _cachedHeight;
|
|
14
|
+
constructor(options: CustomShapeNodeOptions);
|
|
15
|
+
get typeName(): string;
|
|
16
|
+
/**
|
|
17
|
+
* Set a new path factory
|
|
18
|
+
*/
|
|
19
|
+
setPathFactory(factory: (width: number, height: number) => Path2D): void;
|
|
20
|
+
/**
|
|
21
|
+
* Get the current path (cached)
|
|
22
|
+
*/
|
|
23
|
+
getPath(): Path2D;
|
|
24
|
+
hitTest(point: Point): boolean;
|
|
25
|
+
render(ctx: CanvasRenderingContext2D): void;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Helper function to create common shapes as Path2D
|
|
29
|
+
*/
|
|
30
|
+
export declare const ShapeFactories: {
|
|
31
|
+
/**
|
|
32
|
+
* Hexagon shape
|
|
33
|
+
*/
|
|
34
|
+
hexagon: (width: number, height: number) => Path2D;
|
|
35
|
+
/**
|
|
36
|
+
* Parallelogram shape
|
|
37
|
+
*/
|
|
38
|
+
parallelogram: (width: number, height: number) => Path2D;
|
|
39
|
+
/**
|
|
40
|
+
* Cylinder shape (for databases)
|
|
41
|
+
*/
|
|
42
|
+
cylinder: (width: number, height: number) => Path2D;
|
|
43
|
+
/**
|
|
44
|
+
* Document shape
|
|
45
|
+
*/
|
|
46
|
+
document: (width: number, height: number) => Path2D;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=CustomShapeNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CustomShapeNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/CustomShapeNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC;CAC5D;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,IAAI;IACvC,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,EAAE,sBAAsB;IAW3C,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI;IAMxE;;OAEG;IACH,OAAO,IAAI,MAAM;IAaR,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAyBvC,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAe5C;AAED;;GAEG;AACH,eAAO,MAAM,cAAc;IACzB;;OAEG;qBACc,MAAM,UAAU,MAAM,KAAG,MAAM;IAehD;;OAEG;2BACoB,MAAM,UAAU,MAAM,KAAG,MAAM;IAatD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;IAgBjD;;OAEG;sBACe,MAAM,UAAU,MAAM,KAAG,MAAM;CAalD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Node, NodeOptions } from '../Node';
|
|
2
|
+
import { Point } from '../../types';
|
|
3
|
+
/**
|
|
4
|
+
* Diamond/rhombus node for decision points
|
|
5
|
+
*/
|
|
6
|
+
export declare class DiamondNode extends Node {
|
|
7
|
+
constructor(options: NodeOptions);
|
|
8
|
+
get typeName(): string;
|
|
9
|
+
hitTest(point: Point): boolean;
|
|
10
|
+
protected getOutlinePointToward(target: Point): Point;
|
|
11
|
+
render(ctx: CanvasRenderingContext2D): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=DiamondNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DiamondNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/DiamondNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,qBAAa,WAAY,SAAQ,IAAI;gBACvB,OAAO,EAAE,WAAW;IAIhC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAEQ,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;cAepB,qBAAqB,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK;IAkB9D,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAoB5C"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Node, NodeOptions } from '../Node';
|
|
2
|
+
export interface RectangleNodeOptions extends NodeOptions {
|
|
3
|
+
cornerRadius?: number;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Rectangular node with optional rounded corners
|
|
7
|
+
*/
|
|
8
|
+
export declare class RectangleNode extends Node {
|
|
9
|
+
private _cornerRadius;
|
|
10
|
+
constructor(options: RectangleNodeOptions);
|
|
11
|
+
get typeName(): string;
|
|
12
|
+
/**
|
|
13
|
+
* Corner radius for rounded rectangles
|
|
14
|
+
*/
|
|
15
|
+
get cornerRadius(): number;
|
|
16
|
+
set cornerRadius(value: number);
|
|
17
|
+
render(ctx: CanvasRenderingContext2D): void;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=RectangleNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RectangleNode.d.ts","sourceRoot":"","sources":["../../../src/elements/nodes/RectangleNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjD,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,IAAI;IACrC,OAAO,CAAC,aAAa,CAAS;gBAElB,OAAO,EAAE,oBAAoB;IAKzC,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,YAAY,CAAC,KAAK,EAAE,MAAM,EAK7B;IAED,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,IAAI;CAsC5C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Point } from '../../types';
|
|
2
|
+
import { PathStrategy, PathStrategyOptions } from './PathStrategy';
|
|
3
|
+
/**
|
|
4
|
+
* Bezier curve path strategy
|
|
5
|
+
*/
|
|
6
|
+
export declare class BezierPathStrategy implements PathStrategy {
|
|
7
|
+
calculatePath(from: Point, to: Point, fromDir?: string, toDir?: string, options?: PathStrategyOptions): Point[];
|
|
8
|
+
hitTest(point: Point, path: Point[], tolerance: number): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=BezierPathStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BezierPathStrategy.d.ts","sourceRoot":"","sources":["../../../src/elements/paths/BezierPathStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA0BxE;;GAEG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,aAAa,CACX,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,KAAK,EAAE;IAoDV,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAsBjE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Point } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Path calculation strategy interface
|
|
4
|
+
*/
|
|
5
|
+
export interface PathStrategyOptions {
|
|
6
|
+
controlPoints?: Point[];
|
|
7
|
+
}
|
|
8
|
+
export interface PathStrategy {
|
|
9
|
+
calculatePath(from: Point, to: Point, fromDir?: string, toDir?: string, options?: PathStrategyOptions): Point[];
|
|
10
|
+
hitTest(point: Point, path: Point[], tolerance: number): boolean;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=PathStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PathStrategy.d.ts","sourceRoot":"","sources":["../../../src/elements/paths/PathStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAErC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,CACX,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,mBAAmB,GAC5B,KAAK,EAAE,CAAC;IACX,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;CAClE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Point } from '../../types';
|
|
2
|
+
import { PathStrategy, PathStrategyOptions } from './PathStrategy';
|
|
3
|
+
/**
|
|
4
|
+
* Polyline path strategy
|
|
5
|
+
*/
|
|
6
|
+
export declare class PolylinePathStrategy implements PathStrategy {
|
|
7
|
+
calculatePath(from: Point, to: Point, fromDir?: string, toDir?: string, _options?: PathStrategyOptions): Point[];
|
|
8
|
+
private calculateDirectedPath;
|
|
9
|
+
hitTest(point: Point, path: Point[], tolerance: number): boolean;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=PolylinePathStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolylinePathStrategy.d.ts","sourceRoot":"","sources":["../../../src/elements/paths/PolylinePathStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKxE;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,aAAa,CACX,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,OAAO,CAAC,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,KAAK,EAAE;IAmBV,OAAO,CAAC,qBAAqB;IAoD7B,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAQjE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Point } from '../../types';
|
|
2
|
+
import { PathStrategy, PathStrategyOptions } from './PathStrategy';
|
|
3
|
+
/**
|
|
4
|
+
* Straight line path strategy
|
|
5
|
+
*/
|
|
6
|
+
export declare class StraightPathStrategy implements PathStrategy {
|
|
7
|
+
calculatePath(from: Point, to: Point, _fromDir?: string, _toDir?: string, _options?: PathStrategyOptions): Point[];
|
|
8
|
+
hitTest(point: Point, path: Point[], tolerance: number): boolean;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=StraightPathStrategy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StraightPathStrategy.d.ts","sourceRoot":"","sources":["../../../src/elements/paths/StraightPathStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,KAAK,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAGxE;;GAEG;AACH,qBAAa,oBAAqB,YAAW,YAAY;IACvD,aAAa,CACX,IAAI,EAAE,KAAK,EACX,EAAE,EAAE,KAAK,EACT,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,mBAAmB,GAC7B,KAAK,EAAE;IAIV,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO;CAMjE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { PathStrategy } from './PathStrategy';
|
|
2
|
+
export { StraightPathStrategy } from './StraightPathStrategy';
|
|
3
|
+
export { PolylinePathStrategy } from './PolylinePathStrategy';
|
|
4
|
+
export { BezierPathStrategy } from './BezierPathStrategy';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/paths/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type-safe event emitter with support for typed event maps
|
|
3
|
+
*/
|
|
4
|
+
export declare class EventEmitter<TEvents extends {
|
|
5
|
+
[K in keyof TEvents]: unknown[];
|
|
6
|
+
}> {
|
|
7
|
+
private listeners;
|
|
8
|
+
/**
|
|
9
|
+
* Subscribe to an event
|
|
10
|
+
* @param event - Event name
|
|
11
|
+
* @param listener - Callback function
|
|
12
|
+
* @returns Unsubscribe function
|
|
13
|
+
*/
|
|
14
|
+
on<K extends keyof TEvents>(event: K, listener: (...args: TEvents[K]) => void): () => void;
|
|
15
|
+
/**
|
|
16
|
+
* Unsubscribe from an event
|
|
17
|
+
* @param event - Event name
|
|
18
|
+
* @param listener - Callback function to remove
|
|
19
|
+
*/
|
|
20
|
+
off<K extends keyof TEvents>(event: K, listener: (...args: TEvents[K]) => void): void;
|
|
21
|
+
/**
|
|
22
|
+
* Subscribe to an event for a single emission
|
|
23
|
+
* @param event - Event name
|
|
24
|
+
* @param listener - Callback function
|
|
25
|
+
* @returns Unsubscribe function
|
|
26
|
+
*/
|
|
27
|
+
once<K extends keyof TEvents>(event: K, listener: (...args: TEvents[K]) => void): () => void;
|
|
28
|
+
/**
|
|
29
|
+
* Emit an event to all subscribers
|
|
30
|
+
* @param event - Event name
|
|
31
|
+
* @param args - Event arguments
|
|
32
|
+
*/
|
|
33
|
+
emit<K extends keyof TEvents>(event: K, ...args: TEvents[K]): void;
|
|
34
|
+
/**
|
|
35
|
+
* Remove all listeners for an event or all events
|
|
36
|
+
* @param event - Optional event name. If not provided, removes all listeners
|
|
37
|
+
*/
|
|
38
|
+
removeAllListeners<K extends keyof TEvents>(event?: K): void;
|
|
39
|
+
/**
|
|
40
|
+
* Get the number of listeners for an event
|
|
41
|
+
* @param event - Event name
|
|
42
|
+
* @returns Number of listeners
|
|
43
|
+
*/
|
|
44
|
+
listenerCount<K extends keyof TEvents>(event: K): number;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=EventEmitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventEmitter.d.ts","sourceRoot":"","sources":["../../src/events/EventEmitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,YAAY,CAAC,OAAO,SAAS;KAAG,CAAC,IAAI,MAAM,OAAO,GAAG,OAAO,EAAE;CAAE;IAC3E,OAAO,CAAC,SAAS,CAA+D;IAEhF;;;;;OAKG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAY1F;;;;OAIG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAOrF;;;;;OAKG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI;IAQ5F;;;;OAIG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IASlE;;;OAGG;IACH,kBAAkB,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAQ5D;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM;CAIzD"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { EventEmitter } from './EventEmitter';
|
|
2
|
+
import { Point } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Input events
|
|
5
|
+
*/
|
|
6
|
+
export interface InputEvents {
|
|
7
|
+
click: [event: InputEvent];
|
|
8
|
+
dblclick: [event: InputEvent];
|
|
9
|
+
mousedown: [event: InputEvent];
|
|
10
|
+
mouseup: [event: InputEvent];
|
|
11
|
+
mousemove: [event: InputEvent];
|
|
12
|
+
wheel: [event: WheelInputEvent];
|
|
13
|
+
pan: [event: PanInputEvent];
|
|
14
|
+
pinch: [event: PinchInputEvent];
|
|
15
|
+
keydown: [event: KeyboardEvent];
|
|
16
|
+
keyup: [event: KeyboardEvent];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Normalized input event
|
|
20
|
+
*/
|
|
21
|
+
export interface InputEvent {
|
|
22
|
+
screenX: number;
|
|
23
|
+
screenY: number;
|
|
24
|
+
worldX: number;
|
|
25
|
+
worldY: number;
|
|
26
|
+
button: number;
|
|
27
|
+
ctrlKey: boolean;
|
|
28
|
+
shiftKey: boolean;
|
|
29
|
+
altKey: boolean;
|
|
30
|
+
metaKey: boolean;
|
|
31
|
+
originalEvent: MouseEvent | TouchEvent;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Wheel input event
|
|
35
|
+
*/
|
|
36
|
+
export interface WheelInputEvent extends InputEvent {
|
|
37
|
+
deltaX: number;
|
|
38
|
+
deltaY: number;
|
|
39
|
+
deltaZ: number;
|
|
40
|
+
originalEvent: WheelEvent;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Pan gesture event (touch)
|
|
44
|
+
*/
|
|
45
|
+
export interface PanInputEvent extends InputEvent {
|
|
46
|
+
deltaX: number;
|
|
47
|
+
deltaY: number;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Pinch gesture event (touch)
|
|
51
|
+
*/
|
|
52
|
+
export interface PinchInputEvent extends InputEvent {
|
|
53
|
+
scale: number;
|
|
54
|
+
}
|
|
55
|
+
export interface InputHandlerOptions {
|
|
56
|
+
canvas: HTMLCanvasElement;
|
|
57
|
+
screenToWorld: (screenX: number, screenY: number) => Point;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Handles mouse, touch, and keyboard input
|
|
61
|
+
* Normalizes events and converts coordinates
|
|
62
|
+
*/
|
|
63
|
+
export declare class InputHandler extends EventEmitter<InputEvents> {
|
|
64
|
+
private readonly canvas;
|
|
65
|
+
private screenToWorld;
|
|
66
|
+
private boundHandlers;
|
|
67
|
+
private lastTouchDistance;
|
|
68
|
+
private lastTouchCenter;
|
|
69
|
+
constructor(options: InputHandlerOptions);
|
|
70
|
+
/**
|
|
71
|
+
* Update the coordinate transform function
|
|
72
|
+
*/
|
|
73
|
+
setScreenToWorld(fn: (screenX: number, screenY: number) => Point): void;
|
|
74
|
+
/**
|
|
75
|
+
* Clean up event listeners
|
|
76
|
+
*/
|
|
77
|
+
destroy(): void;
|
|
78
|
+
private setupEventListeners;
|
|
79
|
+
private addCanvasListener;
|
|
80
|
+
private addWindowListener;
|
|
81
|
+
private handleClick;
|
|
82
|
+
private handleDblClick;
|
|
83
|
+
private handleMouseDown;
|
|
84
|
+
private handleMouseUp;
|
|
85
|
+
private handleMouseMove;
|
|
86
|
+
private handleWheel;
|
|
87
|
+
private handleTouchStart;
|
|
88
|
+
private handleTouchEnd;
|
|
89
|
+
private handleTouchMove;
|
|
90
|
+
private handleKeyDown;
|
|
91
|
+
private handleKeyUp;
|
|
92
|
+
private shouldHandleKeyboard;
|
|
93
|
+
private normalizeMouseEvent;
|
|
94
|
+
private normalizeTouchEvent;
|
|
95
|
+
private getTouchDistanceAndCenter;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=InputHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputHandler.d.ts","sourceRoot":"","sources":["../../src/events/InputHandler.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
export { DiagramRenderer } from './core/DiagramRenderer';
|
|
2
|
+
export type { DiagramEvents, DiagramPlugin } from './core/DiagramRenderer';
|
|
3
|
+
export { SelectionManager } from './core/SelectionManager';
|
|
4
|
+
export type { SelectionEvents } from './core/SelectionManager';
|
|
5
|
+
export { DragManager } from './core/DragManager';
|
|
6
|
+
export type { DragEvents, DragManagerOptions } from './core/DragManager';
|
|
7
|
+
export { ResizeManager } from './core/ResizeManager';
|
|
8
|
+
export type { ResizeEvents, ResizeManagerOptions } from './core/ResizeManager';
|
|
9
|
+
export { NavigationManager } from './core/NavigationManager';
|
|
10
|
+
export type { NavigationEvents, NavigationManagerOptions } from './core/NavigationManager';
|
|
11
|
+
export { ConnectionManager } from './core/ConnectionManager';
|
|
12
|
+
export type { ConnectionEvents, ConnectionManagerOptions, ConnectionValidator } from './core/ConnectionManager';
|
|
13
|
+
export { InteractionManager } from './core/InteractionManager';
|
|
14
|
+
export type { InteractionManagerOptions, InteractionKeymap } from './core/InteractionManager';
|
|
15
|
+
export { ContextMenuManager } from './core/ContextMenuManager';
|
|
16
|
+
export type { ContextMenuItem, ContextMenuIcon, ContextMenuTarget, ContextMenuProvider, ContextMenuConfig, ContextMenuOptions, ContextMenuEvents, } from './core/ContextMenuManager';
|
|
17
|
+
export { SearchManager } from './core/SearchManager';
|
|
18
|
+
export type { SearchManagerOptions, SearchFindOptions, SearchFilterOptions, SearchMatch, SearchResult, } from './core/SearchManager';
|
|
19
|
+
export { AnimationManager } from './core/AnimationManager';
|
|
20
|
+
export type { AnimationState } from './core/AnimationManager';
|
|
21
|
+
export { HistoryManager } from './core/HistoryManager';
|
|
22
|
+
export { MoveNodesCommand, AddNodeCommand, RemoveNodeCommand, CompositeCommand } from './core/history/commands';
|
|
23
|
+
export type { HistoryEvents, HistoryManagerOptions } from './core/HistoryManager';
|
|
24
|
+
export { Element, generateId, resetIdCounter } from './elements/Element';
|
|
25
|
+
export { Node } from './elements/Node';
|
|
26
|
+
export type { NodeOptions, ResizeHandle, AnchorPointsConfig, LabelPlacement } from './elements/Node';
|
|
27
|
+
export { Port, resetPortIdCounter } from './elements/Port';
|
|
28
|
+
export type { PortOptions } from './elements/Port';
|
|
29
|
+
export { TextLabel } from './elements/TextLabel';
|
|
30
|
+
export type { TextLabelOptions } from './elements/TextLabel';
|
|
31
|
+
export { NodeImage, isCornerPlacement } from './elements/NodeImage';
|
|
32
|
+
export type { NodeImageOptions, NodeImageFit, NodeImagePlacement, NodeImageCornerPlacement, NodeImageEdgePlacement } from './elements/NodeImage';
|
|
33
|
+
export { Edge } from './elements/Edge';
|
|
34
|
+
export type { EdgeOptions, PathStrategy } from './elements/Edge';
|
|
35
|
+
export { Group } from './elements/Group';
|
|
36
|
+
export type { GroupOptions } from './elements/Group';
|
|
37
|
+
export { RectangleNode } from './elements/nodes/RectangleNode';
|
|
38
|
+
export type { RectangleNodeOptions } from './elements/nodes/RectangleNode';
|
|
39
|
+
export { CircleNode } from './elements/nodes/CircleNode';
|
|
40
|
+
export { DiamondNode } from './elements/nodes/DiamondNode';
|
|
41
|
+
export { CustomShapeNode, ShapeFactories } from './elements/nodes/CustomShapeNode';
|
|
42
|
+
export type { CustomShapeNodeOptions } from './elements/nodes/CustomShapeNode';
|
|
43
|
+
export { EventEmitter } from './events/EventEmitter';
|
|
44
|
+
export { InputHandler } from './events/InputHandler';
|
|
45
|
+
export type { InputEvents, InputEvent, WheelInputEvent, PanInputEvent, PinchInputEvent, InputHandlerOptions, } from './events/InputHandler';
|
|
46
|
+
export { StyleManager, DEFAULT_THEME, DARK_THEME } from './styles/StyleManager';
|
|
47
|
+
export type { Theme, StyleClass } from './styles/StyleManager';
|
|
48
|
+
export { Serializer } from './utils/Serializer';
|
|
49
|
+
export type { SerializerOptions, NodeFactory, EdgeFactory, GroupFactory } from './utils/Serializer';
|
|
50
|
+
export { ImageExporter } from './utils/ImageExporter';
|
|
51
|
+
export type { ExportOptions } from './utils/ImageExporter';
|
|
52
|
+
export { SvgExporter } from './utils/SvgExporter';
|
|
53
|
+
export type { SvgExportOptions } from './utils/SvgExporter';
|
|
54
|
+
export { AutoLayout } from './utils/AutoLayout';
|
|
55
|
+
export type { GridLayoutOptions } from './utils/AutoLayout';
|
|
56
|
+
export { AutoRouting } from './utils/AutoRouting';
|
|
57
|
+
export type { AutoRoutingOptions } from './utils/AutoRouting';
|
|
58
|
+
export { alignNodes, distributeNodes } from './utils/AlignDistribute';
|
|
59
|
+
export type { AlignType, DistributeType } from './utils/AlignDistribute';
|
|
60
|
+
export { GridOverlay } from './core/overlays/GridOverlay';
|
|
61
|
+
export type { GridOverlayOptions } from './core/overlays/GridOverlay';
|
|
62
|
+
export { RulersOverlay } from './core/overlays/RulersOverlay';
|
|
63
|
+
export type { RulersOverlayOptions } from './core/overlays/RulersOverlay';
|
|
64
|
+
export { GuidesOverlay } from './core/overlays/GuidesOverlay';
|
|
65
|
+
export type { GuidesOverlayOptions } from './core/overlays/GuidesOverlay';
|
|
66
|
+
export { MiniMap } from './core/overlays/MiniMap';
|
|
67
|
+
export type { MiniMapOptions } from './core/overlays/MiniMap';
|
|
68
|
+
export * from './utils/geometry';
|
|
69
|
+
export type { PathStrategyOptions } from './elements/paths/PathStrategy';
|
|
70
|
+
export type { Point, Size, Bounds, ElementState, PortPosition, PortType, EdgeEndpoint, EdgePathType, ArrowType, ArrowMarkerType, ArrowMarkerConfig, ElementStyle, NodeStyle, EdgeStyle, TextStyle, DiagramOptions, AnimationOptions, ViewportState, DiagramData, SerializedNode, SerializedPort, SerializedEdge, SerializedGroup, Command, } from './types';
|
|
71
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|