@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.
Files changed (106) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +177 -0
  3. package/README.ru.md +178 -0
  4. package/dist/constants.d.ts +21 -0
  5. package/dist/constants.d.ts.map +1 -0
  6. package/dist/core/AnimationManager.d.ts +24 -0
  7. package/dist/core/AnimationManager.d.ts.map +1 -0
  8. package/dist/core/ConnectionManager.d.ts +139 -0
  9. package/dist/core/ConnectionManager.d.ts.map +1 -0
  10. package/dist/core/ContextMenuManager.d.ts +72 -0
  11. package/dist/core/ContextMenuManager.d.ts.map +1 -0
  12. package/dist/core/DiagramRenderer.d.ts +230 -0
  13. package/dist/core/DiagramRenderer.d.ts.map +1 -0
  14. package/dist/core/DragManager.d.ts +67 -0
  15. package/dist/core/DragManager.d.ts.map +1 -0
  16. package/dist/core/HistoryManager.d.ts +61 -0
  17. package/dist/core/HistoryManager.d.ts.map +1 -0
  18. package/dist/core/InteractionManager.d.ts +78 -0
  19. package/dist/core/InteractionManager.d.ts.map +1 -0
  20. package/dist/core/NavigationManager.d.ts +89 -0
  21. package/dist/core/NavigationManager.d.ts.map +1 -0
  22. package/dist/core/ResizeManager.d.ts +72 -0
  23. package/dist/core/ResizeManager.d.ts.map +1 -0
  24. package/dist/core/SearchManager.d.ts +61 -0
  25. package/dist/core/SearchManager.d.ts.map +1 -0
  26. package/dist/core/SelectionManager.d.ts +86 -0
  27. package/dist/core/SelectionManager.d.ts.map +1 -0
  28. package/dist/core/history/commands.d.ts +140 -0
  29. package/dist/core/history/commands.d.ts.map +1 -0
  30. package/dist/core/overlays/BaseOverlay.d.ts +20 -0
  31. package/dist/core/overlays/BaseOverlay.d.ts.map +1 -0
  32. package/dist/core/overlays/GridOverlay.d.ts +15 -0
  33. package/dist/core/overlays/GridOverlay.d.ts.map +1 -0
  34. package/dist/core/overlays/GuidesOverlay.d.ts +18 -0
  35. package/dist/core/overlays/GuidesOverlay.d.ts.map +1 -0
  36. package/dist/core/overlays/MiniMap.d.ts +22 -0
  37. package/dist/core/overlays/MiniMap.d.ts.map +1 -0
  38. package/dist/core/overlays/RulersOverlay.d.ts +18 -0
  39. package/dist/core/overlays/RulersOverlay.d.ts.map +1 -0
  40. package/dist/elements/Edge.d.ts +182 -0
  41. package/dist/elements/Edge.d.ts.map +1 -0
  42. package/dist/elements/Element.d.ts +131 -0
  43. package/dist/elements/Element.d.ts.map +1 -0
  44. package/dist/elements/Group.d.ts +65 -0
  45. package/dist/elements/Group.d.ts.map +1 -0
  46. package/dist/elements/Node.d.ts +188 -0
  47. package/dist/elements/Node.d.ts.map +1 -0
  48. package/dist/elements/NodeImage.d.ts +51 -0
  49. package/dist/elements/NodeImage.d.ts.map +1 -0
  50. package/dist/elements/Port.d.ts +72 -0
  51. package/dist/elements/Port.d.ts.map +1 -0
  52. package/dist/elements/TextLabel.d.ts +85 -0
  53. package/dist/elements/TextLabel.d.ts.map +1 -0
  54. package/dist/elements/nodes/CircleNode.d.ts +21 -0
  55. package/dist/elements/nodes/CircleNode.d.ts.map +1 -0
  56. package/dist/elements/nodes/CustomShapeNode.d.ts +48 -0
  57. package/dist/elements/nodes/CustomShapeNode.d.ts.map +1 -0
  58. package/dist/elements/nodes/DiamondNode.d.ts +13 -0
  59. package/dist/elements/nodes/DiamondNode.d.ts.map +1 -0
  60. package/dist/elements/nodes/RectangleNode.d.ts +19 -0
  61. package/dist/elements/nodes/RectangleNode.d.ts.map +1 -0
  62. package/dist/elements/paths/BezierPathStrategy.d.ts +10 -0
  63. package/dist/elements/paths/BezierPathStrategy.d.ts.map +1 -0
  64. package/dist/elements/paths/PathStrategy.d.ts +12 -0
  65. package/dist/elements/paths/PathStrategy.d.ts.map +1 -0
  66. package/dist/elements/paths/PolylinePathStrategy.d.ts +11 -0
  67. package/dist/elements/paths/PolylinePathStrategy.d.ts.map +1 -0
  68. package/dist/elements/paths/StraightPathStrategy.d.ts +10 -0
  69. package/dist/elements/paths/StraightPathStrategy.d.ts.map +1 -0
  70. package/dist/elements/paths/index.d.ts +5 -0
  71. package/dist/elements/paths/index.d.ts.map +1 -0
  72. package/dist/events/EventEmitter.d.ts +46 -0
  73. package/dist/events/EventEmitter.d.ts.map +1 -0
  74. package/dist/events/InputHandler.d.ts +97 -0
  75. package/dist/events/InputHandler.d.ts.map +1 -0
  76. package/dist/index.d.ts +71 -0
  77. package/dist/index.d.ts.map +1 -0
  78. package/dist/papirus.js +8419 -0
  79. package/dist/papirus.js.map +1 -0
  80. package/dist/styles/StyleManager.d.ts +119 -0
  81. package/dist/styles/StyleManager.d.ts.map +1 -0
  82. package/dist/types.d.ts +329 -0
  83. package/dist/types.d.ts.map +1 -0
  84. package/dist/utils/AlignDistribute.d.ts +12 -0
  85. package/dist/utils/AlignDistribute.d.ts.map +1 -0
  86. package/dist/utils/AutoLayout.d.ts +15 -0
  87. package/dist/utils/AutoLayout.d.ts.map +1 -0
  88. package/dist/utils/AutoRouting.d.ts +11 -0
  89. package/dist/utils/AutoRouting.d.ts.map +1 -0
  90. package/dist/utils/ImageExporter.d.ts +34 -0
  91. package/dist/utils/ImageExporter.d.ts.map +1 -0
  92. package/dist/utils/Serializer.d.ts +63 -0
  93. package/dist/utils/Serializer.d.ts.map +1 -0
  94. package/dist/utils/SvgExporter.d.ts +26 -0
  95. package/dist/utils/SvgExporter.d.ts.map +1 -0
  96. package/dist/utils/applyStyleManager.d.ts +6 -0
  97. package/dist/utils/applyStyleManager.d.ts.map +1 -0
  98. package/dist/utils/contentBounds.d.ts +13 -0
  99. package/dist/utils/contentBounds.d.ts.map +1 -0
  100. package/dist/utils/download.d.ts +2 -0
  101. package/dist/utils/download.d.ts.map +1 -0
  102. package/dist/utils/geometry.d.ts +71 -0
  103. package/dist/utils/geometry.d.ts.map +1 -0
  104. package/dist/utils/style.d.ts +2 -0
  105. package/dist/utils/style.d.ts.map +1 -0
  106. 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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"}
@@ -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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"}