ngx-vflow 0.16.0 → 1.0.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 (105) hide show
  1. package/README.md +8 -1
  2. package/esm2022/lib/vflow/components/background/background.component.mjs +6 -7
  3. package/esm2022/lib/vflow/components/connection/connection.component.mjs +66 -53
  4. package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +32 -25
  5. package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +9 -11
  6. package/esm2022/lib/vflow/components/defs/defs.component.mjs +9 -12
  7. package/esm2022/lib/vflow/components/edge/edge.component.mjs +21 -24
  8. package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +26 -31
  9. package/esm2022/lib/vflow/components/node/node.component.mjs +54 -50
  10. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +93 -91
  11. package/esm2022/lib/vflow/decorators/run-in-injection-context.decorator.mjs +1 -1
  12. package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +41 -125
  13. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +16 -16
  14. package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +7 -6
  15. package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +7 -6
  16. package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +15 -12
  17. package/esm2022/lib/vflow/directives/map-context.directive.mjs +8 -5
  18. package/esm2022/lib/vflow/directives/pointer.directive.mjs +18 -19
  19. package/esm2022/lib/vflow/directives/reference.directive.mjs +6 -5
  20. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +8 -5
  21. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +8 -5
  22. package/esm2022/lib/vflow/directives/selectable.directive.mjs +10 -7
  23. package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +8 -5
  24. package/esm2022/lib/vflow/directives/template.directive.mjs +43 -25
  25. package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +1 -1
  26. package/esm2022/lib/vflow/interfaces/node.interface.mjs +1 -1
  27. package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +1 -1
  28. package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +1 -1
  29. package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +1 -1
  30. package/esm2022/lib/vflow/models/connection.model.mjs +1 -1
  31. package/esm2022/lib/vflow/models/edge.model.mjs +1 -1
  32. package/esm2022/lib/vflow/models/handle.model.mjs +2 -2
  33. package/esm2022/lib/vflow/models/node.model.mjs +4 -10
  34. package/esm2022/lib/vflow/models/toolbar.model.mjs +1 -1
  35. package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +16 -10
  36. package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +15 -10
  37. package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +52 -0
  38. package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +35 -44
  39. package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +24 -27
  40. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +60 -45
  41. package/esm2022/lib/vflow/services/component-event-bus.service.mjs +3 -3
  42. package/esm2022/lib/vflow/services/draggable.service.mjs +4 -4
  43. package/esm2022/lib/vflow/services/edge-changes.service.mjs +3 -3
  44. package/esm2022/lib/vflow/services/flow-entities.service.mjs +4 -4
  45. package/esm2022/lib/vflow/services/flow-settings.service.mjs +4 -10
  46. package/esm2022/lib/vflow/services/flow-status.service.mjs +4 -4
  47. package/esm2022/lib/vflow/services/handle.service.mjs +4 -4
  48. package/esm2022/lib/vflow/services/keyboard.service.mjs +5 -5
  49. package/esm2022/lib/vflow/services/node-accessor.service.mjs +3 -3
  50. package/esm2022/lib/vflow/services/node-changes.service.mjs +3 -3
  51. package/esm2022/lib/vflow/services/node-rendering.service.mjs +3 -3
  52. package/esm2022/lib/vflow/services/overlays.service.mjs +3 -3
  53. package/esm2022/lib/vflow/services/selection.service.mjs +4 -4
  54. package/esm2022/lib/vflow/services/viewport.service.mjs +3 -3
  55. package/esm2022/lib/vflow/utils/adjust-direction.mjs +1 -1
  56. package/esm2022/lib/vflow/utils/get-os.mjs +1 -1
  57. package/esm2022/lib/vflow/utils/nodes.mjs +1 -1
  58. package/esm2022/lib/vflow/vflow.mjs +24 -0
  59. package/esm2022/public-api.mjs +4 -5
  60. package/fesm2022/ngx-vflow.mjs +914 -1022
  61. package/fesm2022/ngx-vflow.mjs.map +1 -1
  62. package/lib/vflow/components/background/background.component.d.ts +3 -3
  63. package/lib/vflow/components/connection/connection.component.d.ts +3 -3
  64. package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +4 -9
  65. package/lib/vflow/components/default-node/default-node.component.d.ts +2 -2
  66. package/lib/vflow/components/defs/defs.component.d.ts +2 -2
  67. package/lib/vflow/components/edge/edge.component.d.ts +7 -7
  68. package/lib/vflow/components/edge-label/edge-label.component.d.ts +9 -8
  69. package/lib/vflow/components/node/node.component.d.ts +5 -6
  70. package/lib/vflow/components/vflow/vflow.component.d.ts +19 -29
  71. package/lib/vflow/directives/changes-controller.directive.d.ts +29 -30
  72. package/lib/vflow/directives/connection-controller.directive.d.ts +1 -2
  73. package/lib/vflow/directives/drag-handle.directive.d.ts +1 -1
  74. package/lib/vflow/directives/flow-size-controller.directive.d.ts +1 -1
  75. package/lib/vflow/directives/handle-size-controller.directive.d.ts +2 -2
  76. package/lib/vflow/directives/map-context.directive.d.ts +1 -1
  77. package/lib/vflow/directives/pointer.directive.d.ts +9 -6
  78. package/lib/vflow/directives/reference.directive.d.ts +1 -1
  79. package/lib/vflow/directives/root-pointer.directive.d.ts +1 -1
  80. package/lib/vflow/directives/root-svg-context.directive.d.ts +1 -1
  81. package/lib/vflow/directives/selectable.directive.d.ts +1 -1
  82. package/lib/vflow/directives/space-point-context.directive.d.ts +1 -1
  83. package/lib/vflow/directives/template.directive.d.ts +6 -6
  84. package/lib/vflow/interfaces/component-node-event.interface.d.ts +3 -3
  85. package/lib/vflow/interfaces/node.interface.d.ts +14 -14
  86. package/lib/vflow/interfaces/optimization.interface.d.ts +0 -7
  87. package/lib/vflow/models/edge.model.d.ts +1 -17
  88. package/lib/vflow/models/handle.model.d.ts +4 -4
  89. package/lib/vflow/models/node.model.d.ts +2 -5
  90. package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +3 -3
  91. package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +3 -3
  92. package/lib/vflow/{components → public-components}/handle/handle.component.d.ts +5 -5
  93. package/lib/vflow/public-components/minimap/minimap.component.d.ts +8 -10
  94. package/lib/vflow/public-components/node-toolbar/node-toolbar.component.d.ts +6 -5
  95. package/lib/vflow/public-components/resizable/resizable.component.d.ts +5 -4
  96. package/lib/vflow/services/flow-settings.service.d.ts +0 -7
  97. package/lib/vflow/utils/reference-keeper.d.ts +1 -1
  98. package/lib/vflow/vflow.d.ts +9 -0
  99. package/package.json +3 -3
  100. package/public-api.d.ts +2 -3
  101. package/esm2022/lib/vflow/components/handle/handle.component.mjs +0 -49
  102. package/esm2022/lib/vflow/interfaces/handle-positions.interface.mjs +0 -2
  103. package/esm2022/lib/vflow/vflow.module.mjs +0 -121
  104. package/lib/vflow/interfaces/handle-positions.interface.d.ts +0 -5
  105. package/lib/vflow/vflow.module.d.ts +0 -30
@@ -2,8 +2,8 @@ import { Type, WritableSignal } from "@angular/core";
2
2
  import { Point } from "./point.interface";
3
3
  import { CustomNodeComponent } from "../public-components/custom-node/custom-node.component";
4
4
  import { CustomDynamicNodeComponent } from "../public-components/custom-dynamic-node/custom-dynamic-node.component";
5
- export type Node<T = unknown> = DefaultNode | HtmlTemplateNode<T> | ComponentNode<T> | DefaultGroupNode | TemplateGroupNode<T>;
6
- export type DynamicNode<T = unknown> = DefaultDynamicNode | HtmlTemplateDynamicNode<T> | ComponentDynamicNode<T> | DefaultDynamicGroupNode | TemplateDynamicGroupNode<T>;
5
+ export type Node<T = any> = DefaultNode | HtmlTemplateNode<T> | ComponentNode<T> | DefaultGroupNode | TemplateGroupNode<T>;
6
+ export type DynamicNode<T = any> = DefaultDynamicNode | HtmlTemplateDynamicNode<T> | ComponentDynamicNode<T> | DefaultDynamicGroupNode | TemplateDynamicGroupNode<T>;
7
7
  export interface SharedNode {
8
8
  id: string;
9
9
  point: Point;
@@ -28,13 +28,13 @@ export interface DefaultDynamicNode extends SharedDynamicNode {
28
28
  width?: WritableSignal<number>;
29
29
  height?: WritableSignal<number>;
30
30
  }
31
- export interface HtmlTemplateNode<T = unknown> extends SharedNode {
31
+ export interface HtmlTemplateNode<T = any> extends SharedNode {
32
32
  type: 'html-template';
33
33
  data?: T;
34
34
  width?: number;
35
35
  height?: number;
36
36
  }
37
- export interface HtmlTemplateDynamicNode<T = unknown> extends SharedDynamicNode {
37
+ export interface HtmlTemplateDynamicNode<T = any> extends SharedDynamicNode {
38
38
  type: 'html-template';
39
39
  data?: WritableSignal<T>;
40
40
  width?: WritableSignal<number>;
@@ -66,27 +66,27 @@ export interface TemplateDynamicGroupNode<T> extends SharedDynamicNode {
66
66
  height: WritableSignal<number>;
67
67
  data?: WritableSignal<T>;
68
68
  }
69
- export interface ComponentNode<T = unknown> extends SharedNode {
69
+ export interface ComponentNode<T = any> extends SharedNode {
70
70
  type: Type<CustomNodeComponent<T>>;
71
71
  data?: T;
72
72
  width?: number;
73
73
  height?: number;
74
74
  }
75
- export interface ComponentDynamicNode<T = unknown> extends SharedDynamicNode {
75
+ export interface ComponentDynamicNode<T = any> extends SharedDynamicNode {
76
76
  type: Type<CustomDynamicNodeComponent<T>>;
77
77
  data?: WritableSignal<T>;
78
78
  width?: WritableSignal<number>;
79
79
  height?: WritableSignal<number>;
80
80
  }
81
- export declare function isStaticNode<T>(node: Node | DynamicNode): node is Node<T>;
82
- export declare function isDynamicNode<T>(node: Node | DynamicNode): node is DynamicNode<T>;
83
- export declare function isComponentStaticNode<T>(node: Node): node is ComponentNode<T>;
84
- export declare function isComponentDynamicNode<T>(node: DynamicNode): node is ComponentDynamicNode<T>;
85
- export declare function isTemplateStaticNode<T>(node: Node): node is HtmlTemplateNode<T>;
86
- export declare function isTemplateDynamicNode<T>(node: DynamicNode): node is HtmlTemplateDynamicNode<T>;
81
+ export declare function isStaticNode<T>(node: Node<T> | DynamicNode<T>): node is Node<T>;
82
+ export declare function isDynamicNode<T>(node: Node<T> | DynamicNode<T>): node is DynamicNode<T>;
83
+ export declare function isComponentStaticNode<T>(node: Node<T>): node is ComponentNode<T>;
84
+ export declare function isComponentDynamicNode<T>(node: DynamicNode<T>): node is ComponentDynamicNode<T>;
85
+ export declare function isTemplateStaticNode<T>(node: Node<T>): node is HtmlTemplateNode<T>;
86
+ export declare function isTemplateDynamicNode<T>(node: DynamicNode<T>): node is HtmlTemplateDynamicNode<T>;
87
87
  export declare function isDefaultStaticNode(node: Node): node is DefaultNode;
88
88
  export declare function isDefaultDynamicNode(node: DynamicNode): node is DefaultDynamicNode;
89
89
  export declare function isDefaultStaticGroupNode(node: Node): node is DefaultGroupNode;
90
90
  export declare function isDefaultDynamicGroupNode(node: DynamicNode): node is DefaultDynamicGroupNode;
91
- export declare function isTemplateStaticGroupNode<T>(node: Node): node is TemplateGroupNode<T>;
92
- export declare function isTemplateDynamicGroupNode<T>(node: DynamicNode): node is TemplateDynamicGroupNode<T>;
91
+ export declare function isTemplateStaticGroupNode<T>(node: Node<T>): node is TemplateGroupNode<T>;
92
+ export declare function isTemplateDynamicGroupNode<T>(node: DynamicNode<T>): node is TemplateDynamicGroupNode<T>;
@@ -1,11 +1,4 @@
1
1
  export interface Optimization {
2
- /**
3
- * If true, compute the right nodes order by z-axis inside groups on initial render.
4
- *
5
- * @default true
6
- * @deprecated
7
- */
8
- computeLayersOnInit: boolean;
9
2
  /**
10
3
  * If true, the layer with groups will be placed behind the edges layer.
11
4
  * This approach fixes the issue when you can't select an edge inside group.
@@ -14,23 +14,7 @@ export declare class EdgeModel implements FlowEntity {
14
14
  selected$: import("rxjs").Observable<boolean>;
15
15
  detached: import("@angular/core").Signal<boolean>;
16
16
  detached$: import("rxjs").Observable<boolean>;
17
- path: import("@angular/core").Signal<{
18
- path: string;
19
- points: {
20
- start: {
21
- x: number;
22
- y: number;
23
- };
24
- center: {
25
- x: number;
26
- y: number;
27
- };
28
- end: {
29
- x: number;
30
- y: number;
31
- };
32
- };
33
- }>;
17
+ path: import("@angular/core").Signal<import("../interfaces/path-data.interface").PathData>;
34
18
  edgeLabels: {
35
19
  [position in EdgeLabelPosition]?: EdgeLabelModel;
36
20
  };
@@ -31,15 +31,15 @@ export declare class HandleModel {
31
31
  width: number;
32
32
  height: number;
33
33
  } | {
34
- width: number;
35
- height: number;
34
+ readonly width: 0;
35
+ readonly height: 0;
36
36
  }>;
37
37
  parentPosition: import("@angular/core").Signal<{
38
38
  x: number;
39
39
  y: number;
40
40
  } | {
41
- x: number;
42
- y: number;
41
+ readonly x: 0;
42
+ readonly y: 0;
43
43
  }>;
44
44
  parentReference: Element;
45
45
  template: import("@angular/core").TemplateRef<any> | undefined;
@@ -33,8 +33,6 @@ export declare class NodeModel<T = unknown> implements FlowEntity {
33
33
  y: number;
34
34
  }>;
35
35
  pointTransform: Signal<string>;
36
- sourcePosition: Signal<import("ngx-vflow").Position>;
37
- targetPosition: Signal<import("ngx-vflow").Position>;
38
36
  handles: import("@angular/core").WritableSignal<HandleModel[]>;
39
37
  handles$: import("rxjs").Observable<HandleModel[]>;
40
38
  draggable: import("@angular/core").WritableSignal<boolean>;
@@ -42,10 +40,9 @@ export declare class NodeModel<T = unknown> implements FlowEntity {
42
40
  readonly magnetRadius = 20;
43
41
  isComponentType: boolean;
44
42
  text: Signal<string>;
45
- componentTypeInputs: Signal<{
43
+ componentTypeInputs: {
46
44
  node: Node<T> | DynamicNode<T>;
47
- _selected: boolean;
48
- }>;
45
+ };
49
46
  parent: Signal<NodeModel<unknown> | null>;
50
47
  children: Signal<NodeModel<unknown>[]>;
51
48
  color: import("@angular/core").WritableSignal<string>;
@@ -2,12 +2,12 @@ import { OnInit } from "@angular/core";
2
2
  import { ComponentDynamicNode } from '../../interfaces/node.interface';
3
3
  import { CustomNodeBaseComponent } from "../../components/custom-node-base/custom-node-base.component";
4
4
  import * as i0 from "@angular/core";
5
- export declare abstract class CustomDynamicNodeComponent<T = unknown> extends CustomNodeBaseComponent<T> implements OnInit {
5
+ export declare abstract class CustomDynamicNodeComponent<T = any> extends CustomNodeBaseComponent<T> implements OnInit {
6
6
  /**
7
7
  * Reference to node bound to this component
8
8
  */
9
- node: ComponentDynamicNode<T>;
9
+ node: import("@angular/core").InputSignal<ComponentDynamicNode<T>>;
10
10
  ngOnInit(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomDynamicNodeComponent<any>, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<CustomDynamicNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomDynamicNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; }, {}, never, never, false, never>;
13
13
  }
@@ -2,12 +2,12 @@ import { OnInit } from "@angular/core";
2
2
  import { ComponentNode } from '../../interfaces/node.interface';
3
3
  import { CustomNodeBaseComponent } from "../../components/custom-node-base/custom-node-base.component";
4
4
  import * as i0 from "@angular/core";
5
- export declare abstract class CustomNodeComponent<T = unknown> extends CustomNodeBaseComponent<T> implements OnInit {
5
+ export declare abstract class CustomNodeComponent<T = any> extends CustomNodeBaseComponent<T> implements OnInit {
6
6
  /**
7
7
  * Reference to node bound to this component
8
8
  */
9
- node: ComponentNode<T>;
9
+ node: import("@angular/core").InputSignal<ComponentNode<T>>;
10
10
  ngOnInit(): void;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomNodeComponent<any>, never>;
12
- static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, false, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; }, {}, never, never, false, never>;
13
13
  }
@@ -11,18 +11,18 @@ export declare class HandleComponent implements OnInit, WithInjector {
11
11
  /**
12
12
  * At what side of node this component should be placed
13
13
  */
14
- position: Position;
14
+ position: import("@angular/core").InputSignal<Position>;
15
15
  /**
16
16
  * Source or target
17
17
  */
18
- type: 'source' | 'target';
18
+ type: import("@angular/core").InputSignal<"source" | "target">;
19
19
  /**
20
20
  * Should be used if node has more than one source/target
21
21
  */
22
- id?: string;
23
- template?: TemplateRef<any>;
22
+ id: import("@angular/core").InputSignal<string | undefined>;
23
+ template: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
24
24
  model: HandleModel;
25
25
  ngOnInit(): void;
26
26
  static ɵfac: i0.ɵɵFactoryDeclaration<HandleComponent, never>;
27
- static ɵcmp: i0.ɵɵComponentDeclaration<HandleComponent, "handle", never, { "position": { "alias": "position"; "required": true; }; "type": { "alias": "type"; "required": true; }; "id": { "alias": "id"; "required": false; }; "template": { "alias": "template"; "required": false; }; }, {}, never, never, false, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<HandleComponent, "handle", never, { "position": { "alias": "position"; "required": true; "isSignal": true; }; "type": { "alias": "type"; "required": true; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "template": { "alias": "template"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
28
28
  }
@@ -10,22 +10,22 @@ export declare class MiniMapComponent implements OnInit {
10
10
  protected flowSettingsService: FlowSettingsService;
11
11
  protected viewportService: ViewportService;
12
12
  protected injector: Injector;
13
- /**
14
- * The corner of the flow where to render a mini-map
15
- */
16
- set position(value: MiniMapPosition);
17
13
  /**
18
14
  * The color outside the viewport (invisible area)
19
15
  */
20
- maskColor: string;
16
+ maskColor: import("@angular/core").InputSignal<string>;
21
17
  /**
22
18
  * The minimap stroke color
23
19
  */
24
- strokeColor: string;
20
+ strokeColor: import("@angular/core").InputSignal<string>;
21
+ /**
22
+ * The corner of the flow where to render a mini-map
23
+ */
24
+ position: import("@angular/core").InputSignal<MiniMapPosition>;
25
25
  /**
26
26
  * Make a minimap bigger on hover
27
27
  */
28
- set scaleOnHover(value: boolean);
28
+ scaleOnHover: import("@angular/core").InputSignal<boolean>;
29
29
  private minimap;
30
30
  private readonly minimapOffset;
31
31
  private readonly minimapScale;
@@ -40,10 +40,8 @@ export declare class MiniMapComponent implements OnInit {
40
40
  protected viewportTransform: import("@angular/core").Signal<string>;
41
41
  protected boundsViewport: import("@angular/core").Signal<import("ngx-vflow").ViewportState>;
42
42
  protected minimapTransform: import("@angular/core").Signal<string>;
43
- private minimapPosition;
44
- private scaleOnHoverSignal;
45
43
  ngOnInit(): void;
46
44
  protected trackNodes(idx: number, { node }: NodeModel): import("ngx-vflow").Node<unknown> | import("ngx-vflow").DynamicNode<unknown>;
47
45
  static ɵfac: i0.ɵɵFactoryDeclaration<MiniMapComponent, never>;
48
- static ɵcmp: i0.ɵɵComponentDeclaration<MiniMapComponent, "mini-map", never, { "position": { "alias": "position"; "required": false; }; "maskColor": { "alias": "maskColor"; "required": false; }; "strokeColor": { "alias": "strokeColor"; "required": false; }; "scaleOnHover": { "alias": "scaleOnHover"; "required": false; }; }, {}, never, never, false, never>;
46
+ static ɵcmp: i0.ɵɵComponentDeclaration<MiniMapComponent, "mini-map", never, { "maskColor": { "alias": "maskColor"; "required": false; "isSignal": true; }; "strokeColor": { "alias": "strokeColor"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "scaleOnHover": { "alias": "scaleOnHover"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
49
47
  }
@@ -5,18 +5,19 @@ import * as i0 from "@angular/core";
5
5
  export declare class NodeToolbarComponent implements OnInit, OnDestroy {
6
6
  private overlaysService;
7
7
  private nodeService;
8
- set position(value: Position);
9
- toolbarContentTemplate: TemplateRef<unknown>;
8
+ position: import("@angular/core").InputSignal<Position>;
9
+ toolbarContentTemplate: import("@angular/core").Signal<TemplateRef<unknown>>;
10
10
  protected model: ToolbarModel;
11
+ constructor();
11
12
  ngOnInit(): void;
12
13
  ngOnDestroy(): void;
13
14
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeToolbarComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<NodeToolbarComponent, "node-toolbar", never, { "position": { "alias": "position"; "required": false; }; }, {}, never, ["*"], false, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<NodeToolbarComponent, "node-toolbar", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
15
16
  }
16
17
  export declare class NodeToolbarWrapperDirective implements OnInit {
17
18
  private element;
18
- model: ToolbarModel;
19
+ model: import("@angular/core").InputSignal<ToolbarModel>;
19
20
  ngOnInit(): void;
20
21
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeToolbarWrapperDirective, never>;
21
- static ɵdir: i0.ɵɵDirectiveDeclaration<NodeToolbarWrapperDirective, "[nodeToolbarWrapper]", never, { "model": { "alias": "model"; "required": false; }; }, {}, never, never, false, never>;
22
+ static ɵdir: i0.ɵɵDirectiveDeclaration<NodeToolbarWrapperDirective, "[nodeToolbarWrapper]", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
22
23
  }
@@ -9,9 +9,9 @@ export declare class ResizableComponent implements OnInit, AfterViewInit {
9
9
  private viewportService;
10
10
  private spacePointContext;
11
11
  private hostRef;
12
- set resizable(value: boolean | '');
13
- resizerColor: string;
14
- gap: number;
12
+ resizable: import("@angular/core").InputSignal<boolean | "" | undefined>;
13
+ resizerColor: import("@angular/core").InputSignal<string>;
14
+ gap: import("@angular/core").InputSignal<number>;
15
15
  private resizer;
16
16
  protected get model(): NodeModel<unknown>;
17
17
  protected lineGap: number;
@@ -22,6 +22,7 @@ export declare class ResizableComponent implements OnInit, AfterViewInit {
22
22
  private minHeight;
23
23
  protected resizeOnGlobalMouseMove: import("rxjs").Subscription;
24
24
  protected endResizeOnGlobalMouseUp: import("rxjs").Subscription;
25
+ constructor();
25
26
  ngOnInit(): void;
26
27
  ngAfterViewInit(): void;
27
28
  protected startResize(side: Side, event: Event): void;
@@ -29,6 +30,6 @@ export declare class ResizableComponent implements OnInit, AfterViewInit {
29
30
  protected endResize(): void;
30
31
  private isResizeConstrained;
31
32
  static ɵfac: i0.ɵɵFactoryDeclaration<ResizableComponent, never>;
32
- static ɵcmp: i0.ɵɵComponentDeclaration<ResizableComponent, "[resizable]", never, { "resizable": { "alias": "resizable"; "required": false; }; "resizerColor": { "alias": "resizerColor"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; }, {}, never, ["*"], false, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<ResizableComponent, "[resizable]", never, { "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "resizerColor": { "alias": "resizerColor"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
33
34
  }
34
35
  export {};
@@ -1,15 +1,8 @@
1
1
  import { WritableSignal } from '@angular/core';
2
- import { HandlePositions } from '../interfaces/handle-positions.interface';
3
2
  import { Background } from '../types/background.type';
4
3
  import * as i0 from "@angular/core";
5
4
  export declare class FlowSettingsService {
6
5
  entitiesSelectable: WritableSignal<boolean>;
7
- /**
8
- * Global setting with handle positions. Nodes derive this value
9
- *
10
- * @deprecated
11
- */
12
- handlePositions: WritableSignal<HandlePositions>;
13
6
  /**
14
7
  * @see {VflowComponent.view}
15
8
  */
@@ -6,7 +6,7 @@ export declare class ReferenceKeeper {
6
6
  /**
7
7
  * Create new models for new node references and keep old models for old node references
8
8
  */
9
- static nodes(newNodes: Node[] | DynamicNode[], oldNodeModels: NodeModel[]): NodeModel<unknown>[];
9
+ static nodes(newNodes: Node[] | DynamicNode[], oldNodeModels: NodeModel[]): (NodeModel<unknown> | NodeModel<any>)[];
10
10
  /**
11
11
  * Create new models for new edge references and keep old models for old edge references
12
12
  */
@@ -0,0 +1,9 @@
1
+ import { VflowComponent } from "./components/vflow/vflow.component";
2
+ import { DragHandleDirective } from "./directives/drag-handle.directive";
3
+ import { SelectableDirective } from "./directives/selectable.directive";
4
+ import { ConnectionTemplateDirective } from "./directives/template.directive";
5
+ import { MiniMapComponent } from "./public-components/minimap/minimap.component";
6
+ import { NodeToolbarComponent } from "./public-components/node-toolbar/node-toolbar.component";
7
+ import { ResizableComponent } from "./public-components/resizable/resizable.component";
8
+ import { HandleComponent } from "./public-components/handle/handle.component";
9
+ export declare const Vflow: (typeof ConnectionTemplateDirective | typeof ResizableComponent | typeof HandleComponent | typeof VflowComponent | typeof DragHandleDirective | typeof SelectableDirective | typeof MiniMapComponent | typeof NodeToolbarComponent)[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-vflow",
3
- "version": "0.16.0",
3
+ "version": "1.0.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngx-vflow.org/",
6
6
  "author": "Artem Mangilev",
@@ -16,8 +16,8 @@
16
16
  "type": "git"
17
17
  },
18
18
  "peerDependencies": {
19
- "@angular/common": "^16.2.0 || 17.x || 18.x || 19.x",
20
- "@angular/core": "^16.2.0 || 17.x || 18.x || 19.x",
19
+ "@angular/common": "^17.3.12 || 18.x || 19.x",
20
+ "@angular/core": "^17.3.12 || 18.x || 19.x",
21
21
  "d3-drag": "^3.0.0",
22
22
  "d3-selection": "^3.0.0",
23
23
  "d3-zoom": "^3.0.0",
package/public-api.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './lib/vflow/vflow.module';
1
+ export * from './lib/vflow/vflow';
2
2
  export * from './lib/vflow/interfaces/node.interface';
3
3
  export * from './lib/vflow/interfaces/point.interface';
4
4
  export * from './lib/vflow/interfaces/edge.interface';
@@ -6,7 +6,6 @@ export * from './lib/vflow/interfaces/edge-label.interface';
6
6
  export * from './lib/vflow/interfaces/connection.interface';
7
7
  export * from './lib/vflow/interfaces/connection.interface';
8
8
  export * from './lib/vflow/interfaces/connection-settings.interface';
9
- export * from './lib/vflow/interfaces/handle-positions.interface';
10
9
  export * from './lib/vflow/interfaces/marker.interface';
11
10
  export { ViewportState } from './lib/vflow/interfaces/viewport.interface';
12
11
  export * from './lib/vflow/interfaces/component-node-event.interface';
@@ -19,7 +18,7 @@ export * from './lib/vflow/types/background.type';
19
18
  export * from './lib/vflow/types/connection-mode.type';
20
19
  export * from './lib/vflow/types/keyboard-action.type';
21
20
  export * from './lib/vflow/components/vflow/vflow.component';
22
- export * from './lib/vflow/components/handle/handle.component';
21
+ export * from './lib/vflow/public-components/handle/handle.component';
23
22
  export * from './lib/vflow/public-components/custom-node/custom-node.component';
24
23
  export * from './lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component';
25
24
  export * from './lib/vflow/public-components/resizable/resizable.component';
@@ -1,49 +0,0 @@
1
- import { __decorate } from "tslib";
2
- import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, Injector, Input, inject } from '@angular/core';
3
- import { HandleService } from '../../services/handle.service';
4
- import { HandleModel } from '../../models/handle.model';
5
- import { InjectionContext } from '../../decorators/run-in-injection-context.decorator';
6
- import * as i0 from "@angular/core";
7
- export class HandleComponent {
8
- constructor() {
9
- this.injector = inject(Injector);
10
- this.handleService = inject(HandleService);
11
- this.element = inject(ElementRef).nativeElement;
12
- this.destroyRef = inject(DestroyRef);
13
- }
14
- ngOnInit() {
15
- const node = this.handleService.node();
16
- if (node) {
17
- this.model = new HandleModel({
18
- position: this.position,
19
- type: this.type,
20
- id: this.id,
21
- parentReference: this.element.parentElement,
22
- template: this.template
23
- }, node);
24
- this.handleService.createHandle(this.model);
25
- requestAnimationFrame(() => this.model.updateParent());
26
- this.destroyRef.onDestroy(() => this.handleService.destroyHandle(this.model));
27
- }
28
- }
29
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
30
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: HandleComponent, selector: "handle", inputs: { position: "position", type: "type", id: "id", template: "template" }, ngImport: i0, template: "", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
31
- }
32
- __decorate([
33
- InjectionContext
34
- ], HandleComponent.prototype, "ngOnInit", null);
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: HandleComponent, decorators: [{
36
- type: Component,
37
- args: [{ selector: 'handle', changeDetection: ChangeDetectionStrategy.OnPush, template: "" }]
38
- }], propDecorators: { position: [{
39
- type: Input,
40
- args: [{ required: true }]
41
- }], type: [{
42
- type: Input,
43
- args: [{ required: true }]
44
- }], id: [{
45
- type: Input
46
- }], template: [{
47
- type: Input
48
- }], ngOnInit: [] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC12Zmxvdy1saWIvc3JjL2xpYi92Zmxvdy9jb21wb25lbnRzL2hhbmRsZS9oYW5kbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L2NvbXBvbmVudHMvaGFuZGxlL2hhbmRsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQWtDLE1BQU0sRUFBaUMsTUFBTSxlQUFlLENBQUM7QUFFbkwsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQWdCLE1BQU0scURBQXFELENBQUM7O0FBT3JHLE1BQU0sT0FBTyxlQUFlO0lBTDVCO1FBTVMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMzQixrQkFBYSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUNyQyxZQUFPLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQyxhQUFhLENBQUE7UUFDbkUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQTtLQWdEeEM7SUF0QlEsUUFBUTtRQUNiLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUE7UUFFdEMsSUFBSSxJQUFJLEVBQUU7WUFDUixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksV0FBVyxDQUMxQjtnQkFDRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ3ZCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtnQkFDZixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUU7Z0JBQ1gsZUFBZSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYztnQkFDNUMsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO2FBQ3hCLEVBQ0QsSUFBSSxDQUNMLENBQUE7WUFFRCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUE7WUFFM0MscUJBQXFCLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFBO1lBRXRELElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1NBQzlFO0lBQ0gsQ0FBQzsrR0FuRFUsZUFBZTttR0FBZixlQUFlLDhIQ1g1QixFQUFBOztBRHlDUztJQUROLGdCQUFnQjsrQ0FzQmhCOzRGQW5EVSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLFFBQVEsbUJBRUQsdUJBQXVCLENBQUMsTUFBTTs4QkFZeEMsUUFBUTtzQkFEZCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPbEIsSUFBSTtzQkFEVixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFPbEIsRUFBRTtzQkFEUixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFNQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgSW5qZWN0b3IsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgVGVtcGxhdGVSZWYsIGluamVjdCwgcnVuSW5JbmplY3Rpb25Db250ZXh0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMvcG9zaXRpb24udHlwZSc7XG5pbXBvcnQgeyBIYW5kbGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaGFuZGxlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSGFuZGxlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvaGFuZGxlLm1vZGVsJztcbmltcG9ydCB7IEluamVjdGlvbkNvbnRleHQsIFdpdGhJbmplY3RvciB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvcnVuLWluLWluamVjdGlvbi1jb250ZXh0LmRlY29yYXRvcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2hhbmRsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9oYW5kbGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBIYW5kbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIFdpdGhJbmplY3RvciB7XG4gIHB1YmxpYyBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG4gIHByaXZhdGUgaGFuZGxlU2VydmljZSA9IGluamVjdChIYW5kbGVTZXJ2aWNlKVxuICBwcml2YXRlIGVsZW1lbnQgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnRcbiAgcHJpdmF0ZSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpXG5cbiAgLyoqXG4gICAqIEF0IHdoYXQgc2lkZSBvZiBub2RlIHRoaXMgY29tcG9uZW50IHNob3VsZCBiZSBwbGFjZWRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBwb3NpdGlvbiE6IFBvc2l0aW9uXG5cbiAgLyoqXG4gICAqIFNvdXJjZSBvciB0YXJnZXRcbiAgICovXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyB0eXBlITogJ3NvdXJjZScgfCAndGFyZ2V0J1xuXG4gIC8qKlxuICAgKiBTaG91bGQgYmUgdXNlZCBpZiBub2RlIGhhcyBtb3JlIHRoYW4gb25lIHNvdXJjZS90YXJnZXRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZD86IHN0cmluZ1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT5cblxuICBwdWJsaWMgbW9kZWwhOiBIYW5kbGVNb2RlbFxuXG4gIEBJbmplY3Rpb25Db250ZXh0XG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBub2RlID0gdGhpcy5oYW5kbGVTZXJ2aWNlLm5vZGUoKVxuXG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgSGFuZGxlTW9kZWwoXG4gICAgICAgIHtcbiAgICAgICAgICBwb3NpdGlvbjogdGhpcy5wb3NpdGlvbixcbiAgICAgICAgICB0eXBlOiB0aGlzLnR5cGUsXG4gICAgICAgICAgaWQ6IHRoaXMuaWQsXG4gICAgICAgICAgcGFyZW50UmVmZXJlbmNlOiB0aGlzLmVsZW1lbnQucGFyZW50RWxlbWVudCEsXG4gICAgICAgICAgdGVtcGxhdGU6IHRoaXMudGVtcGxhdGVcbiAgICAgICAgfSxcbiAgICAgICAgbm9kZVxuICAgICAgKVxuXG4gICAgICB0aGlzLmhhbmRsZVNlcnZpY2UuY3JlYXRlSGFuZGxlKHRoaXMubW9kZWwpXG5cbiAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB0aGlzLm1vZGVsLnVwZGF0ZVBhcmVudCgpKVxuXG4gICAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHRoaXMuaGFuZGxlU2VydmljZS5kZXN0cm95SGFuZGxlKHRoaXMubW9kZWwpKVxuICAgIH1cbiAgfVxufVxuXG4iLCIiXX0=
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFuZGxlLXBvc2l0aW9ucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmZsb3ctbGliL3NyYy9saWIvdmZsb3cvaW50ZXJmYWNlcy9oYW5kbGUtcG9zaXRpb25zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUG9zaXRpb24gfSBmcm9tIFwiLi4vdHlwZXMvcG9zaXRpb24udHlwZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhhbmRsZVBvc2l0aW9ucyB7XG4gIHNvdXJjZTogUG9zaXRpb25cbiAgdGFyZ2V0OiBQb3NpdGlvblxufVxuIl19
@@ -1,121 +0,0 @@
1
- import { KeyValuePipe, NgComponentOutlet, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { VflowComponent } from './components/vflow/vflow.component';
4
- import { NodeComponent } from './components/node/node.component';
5
- import { MapContextDirective } from './directives/map-context.directive';
6
- import { EdgeComponent } from './components/edge/edge.component';
7
- import { EdgeLabelComponent } from './components/edge-label/edge-label.component';
8
- import { ConnectionTemplateDirective, EdgeLabelHtmlTemplateDirective, EdgeTemplateDirective, GroupNodeTemplateDirective, HandleTemplateDirective, NodeHtmlTemplateDirective } from './directives/template.directive';
9
- import { ConnectionComponent } from './components/connection/connection.component';
10
- import { SpacePointContextDirective } from './directives/space-point-context.directive';
11
- import { RootSvgReferenceDirective } from './directives/reference.directive';
12
- import { RootSvgContextDirective } from './directives/root-svg-context.directive';
13
- import { DefsComponent } from './components/defs/defs.component';
14
- import { HandleComponent } from './components/handle/handle.component';
15
- import { HandleSizeControllerDirective } from './directives/handle-size-controller.directive';
16
- import { SelectableDirective } from './directives/selectable.directive';
17
- import { PointerDirective } from './directives/pointer.directive';
18
- import { RootPointerDirective } from './directives/root-pointer.directive';
19
- import { BackgroundComponent } from './components/background/background.component';
20
- import { FlowSizeControllerDirective } from './directives/flow-size-controller.directive';
21
- import { ResizableComponent } from './public-components/resizable/resizable.component';
22
- import { MiniMapComponent } from './public-components/minimap/minimap.component';
23
- import { DefaultNodeComponent } from './components/default-node/default-node.component';
24
- import { NodeToolbarComponent, NodeToolbarWrapperDirective } from './public-components/node-toolbar/node-toolbar.component';
25
- import { DragHandleDirective } from './directives/drag-handle.directive';
26
- import * as i0 from "@angular/core";
27
- const components = [
28
- VflowComponent,
29
- NodeComponent,
30
- DefaultNodeComponent,
31
- EdgeComponent,
32
- EdgeLabelComponent,
33
- ConnectionComponent,
34
- HandleComponent,
35
- DefsComponent,
36
- BackgroundComponent,
37
- ResizableComponent,
38
- MiniMapComponent,
39
- NodeToolbarComponent
40
- ];
41
- const directives = [
42
- SpacePointContextDirective,
43
- MapContextDirective,
44
- RootSvgReferenceDirective,
45
- RootSvgContextDirective,
46
- HandleSizeControllerDirective,
47
- SelectableDirective,
48
- DragHandleDirective,
49
- PointerDirective,
50
- RootPointerDirective,
51
- FlowSizeControllerDirective,
52
- NodeToolbarWrapperDirective
53
- ];
54
- const templateDirectives = [
55
- NodeHtmlTemplateDirective,
56
- GroupNodeTemplateDirective,
57
- EdgeLabelHtmlTemplateDirective,
58
- EdgeTemplateDirective,
59
- ConnectionTemplateDirective,
60
- HandleTemplateDirective
61
- ];
62
- export class VflowModule {
63
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
64
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, declarations: [VflowComponent,
65
- NodeComponent,
66
- DefaultNodeComponent,
67
- EdgeComponent,
68
- EdgeLabelComponent,
69
- ConnectionComponent,
70
- HandleComponent,
71
- DefsComponent,
72
- BackgroundComponent,
73
- ResizableComponent,
74
- MiniMapComponent,
75
- NodeToolbarComponent, SpacePointContextDirective,
76
- MapContextDirective,
77
- RootSvgReferenceDirective,
78
- RootSvgContextDirective,
79
- HandleSizeControllerDirective,
80
- SelectableDirective,
81
- DragHandleDirective,
82
- PointerDirective,
83
- RootPointerDirective,
84
- FlowSizeControllerDirective,
85
- NodeToolbarWrapperDirective, NodeHtmlTemplateDirective,
86
- GroupNodeTemplateDirective,
87
- EdgeLabelHtmlTemplateDirective,
88
- EdgeTemplateDirective,
89
- ConnectionTemplateDirective,
90
- HandleTemplateDirective], imports: [NgIf, NgFor, NgTemplateOutlet, NgComponentOutlet, KeyValuePipe], exports: [VflowComponent,
91
- HandleComponent,
92
- ResizableComponent,
93
- SelectableDirective,
94
- MiniMapComponent,
95
- NodeToolbarComponent,
96
- DragHandleDirective, NodeHtmlTemplateDirective,
97
- GroupNodeTemplateDirective,
98
- EdgeLabelHtmlTemplateDirective,
99
- EdgeTemplateDirective,
100
- ConnectionTemplateDirective,
101
- HandleTemplateDirective] }); }
102
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule }); }
103
- }
104
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: VflowModule, decorators: [{
105
- type: NgModule,
106
- args: [{
107
- imports: [NgIf, NgFor, NgTemplateOutlet, NgComponentOutlet, KeyValuePipe],
108
- exports: [
109
- VflowComponent,
110
- HandleComponent,
111
- ResizableComponent,
112
- SelectableDirective,
113
- MiniMapComponent,
114
- NodeToolbarComponent,
115
- DragHandleDirective,
116
- ...templateDirectives
117
- ],
118
- declarations: [...components, ...directives, ...templateDirectives],
119
- }]
120
- }] });
121
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmZsb3cubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZmbG93LWxpYi9zcmMvbGliL3ZmbG93L3ZmbG93Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDekUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ2pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSw4QkFBOEIsRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSx1QkFBdUIsRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3JOLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDbkYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDdkYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLDJCQUEyQixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDNUgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRXpFLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLGNBQWM7SUFDZCxhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLGFBQWE7SUFDYixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixhQUFhO0lBQ2IsbUJBQW1CO0lBQ25CLGtCQUFrQjtJQUNsQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0NBQ3JCLENBQUE7QUFFRCxNQUFNLFVBQVUsR0FBRztJQUNqQiwwQkFBMEI7SUFDMUIsbUJBQW1CO0lBQ25CLHlCQUF5QjtJQUN6Qix1QkFBdUI7SUFDdkIsNkJBQTZCO0lBQzdCLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsZ0JBQWdCO0lBQ2hCLG9CQUFvQjtJQUNwQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0NBQzVCLENBQUE7QUFFRCxNQUFNLGtCQUFrQixHQUFHO0lBQ3pCLHlCQUF5QjtJQUN6QiwwQkFBMEI7SUFDMUIsOEJBQThCO0lBQzlCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0NBQ3hCLENBQUE7QUFnQkQsTUFBTSxPQUFPLFdBQVc7K0dBQVgsV0FBVztnSEFBWCxXQUFXLGlCQW5EdEIsY0FBYztZQUNkLGFBQWE7WUFDYixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsZUFBZTtZQUNmLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGdCQUFnQjtZQUNoQixvQkFBb0IsRUFJcEIsMEJBQTBCO1lBQzFCLG1CQUFtQjtZQUNuQix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLDZCQUE2QjtZQUM3QixtQkFBbUI7WUFDbkIsbUJBQW1CO1lBQ25CLGdCQUFnQjtZQUNoQixvQkFBb0I7WUFDcEIsMkJBQTJCO1lBQzNCLDJCQUEyQixFQUkzQix5QkFBeUI7WUFDekIsMEJBQTBCO1lBQzFCLDhCQUE4QjtZQUM5QixxQkFBcUI7WUFDckIsMkJBQTJCO1lBQzNCLHVCQUF1QixhQUliLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxhQUV0RSxjQUFjO1lBQ2QsZUFBZTtZQUNmLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsZ0JBQWdCO1lBQ2hCLG9CQUFvQjtZQUNwQixtQkFBbUIsRUFqQnJCLHlCQUF5QjtZQUN6QiwwQkFBMEI7WUFDMUIsOEJBQThCO1lBQzlCLHFCQUFxQjtZQUNyQiwyQkFBMkI7WUFDM0IsdUJBQXVCO2dIQWlCWixXQUFXOzs0RkFBWCxXQUFXO2tCQWR2QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxDQUFDO29CQUN6RSxPQUFPLEVBQUU7d0JBQ1AsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixnQkFBZ0I7d0JBQ2hCLG9CQUFvQjt3QkFDcEIsbUJBQW1CO3dCQUNuQixHQUFHLGtCQUFrQjtxQkFDdEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLEVBQUUsR0FBRyxVQUFVLEVBQUUsR0FBRyxrQkFBa0IsQ0FBQztpQkFDcEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXlWYWx1ZVBpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmZsb3dDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdmZsb3cvdmZsb3cuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbm9kZS9ub2RlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXBDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL21hcC1jb250ZXh0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBFZGdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkZ2UvZWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRnZUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2VkZ2UtbGFiZWwvZWRnZS1sYWJlbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ29ubmVjdGlvblRlbXBsYXRlRGlyZWN0aXZlLCBFZGdlTGFiZWxIdG1sVGVtcGxhdGVEaXJlY3RpdmUsIEVkZ2VUZW1wbGF0ZURpcmVjdGl2ZSwgR3JvdXBOb2RlVGVtcGxhdGVEaXJlY3RpdmUsIEhhbmRsZVRlbXBsYXRlRGlyZWN0aXZlLCBOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3RlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBDb25uZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2Nvbm5lY3Rpb24vY29ubmVjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3BhY2VQb2ludENvbnRleHREaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvc3BhY2UtcG9pbnQtY29udGV4dC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9yZWZlcmVuY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvb3RTdmdDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvb3Qtc3ZnLWNvbnRleHQuZGlyZWN0aXZlJztcbmltcG9ydCB7IERlZnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGVmcy9kZWZzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBIYW5kbGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaGFuZGxlL2hhbmRsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSGFuZGxlU2l6ZUNvbnRyb2xsZXJEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvaGFuZGxlLXNpemUtY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9zZWxlY3RhYmxlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb2ludGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3BvaW50ZXIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJvb3RQb2ludGVyRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3Jvb3QtcG9pbnRlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgQmFja2dyb3VuZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYWNrZ3JvdW5kL2JhY2tncm91bmQuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dTaXplQ29udHJvbGxlckRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9mbG93LXNpemUtY29udHJvbGxlci5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmVzaXphYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaWMtY29tcG9uZW50cy9yZXNpemFibGUvcmVzaXphYmxlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNaW5pTWFwQ29tcG9uZW50IH0gZnJvbSAnLi9wdWJsaWMtY29tcG9uZW50cy9taW5pbWFwL21pbmltYXAuY29tcG9uZW50JztcbmltcG9ydCB7IERlZmF1bHROb2RlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2RlZmF1bHQtbm9kZS9kZWZhdWx0LW5vZGUuY29tcG9uZW50JztcbmltcG9ydCB7IE5vZGVUb29sYmFyQ29tcG9uZW50LCBOb2RlVG9vbGJhcldyYXBwZXJEaXJlY3RpdmUgfSBmcm9tICcuL3B1YmxpYy1jb21wb25lbnRzL25vZGUtdG9vbGJhci9ub2RlLXRvb2xiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IERyYWdIYW5kbGVEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMvZHJhZy1oYW5kbGUuZGlyZWN0aXZlJztcblxuY29uc3QgY29tcG9uZW50cyA9IFtcbiAgVmZsb3dDb21wb25lbnQsXG4gIE5vZGVDb21wb25lbnQsXG4gIERlZmF1bHROb2RlQ29tcG9uZW50LFxuICBFZGdlQ29tcG9uZW50LFxuICBFZGdlTGFiZWxDb21wb25lbnQsXG4gIENvbm5lY3Rpb25Db21wb25lbnQsXG4gIEhhbmRsZUNvbXBvbmVudCxcbiAgRGVmc0NvbXBvbmVudCxcbiAgQmFja2dyb3VuZENvbXBvbmVudCxcbiAgUmVzaXphYmxlQ29tcG9uZW50LFxuICBNaW5pTWFwQ29tcG9uZW50LFxuICBOb2RlVG9vbGJhckNvbXBvbmVudFxuXVxuXG5jb25zdCBkaXJlY3RpdmVzID0gW1xuICBTcGFjZVBvaW50Q29udGV4dERpcmVjdGl2ZSxcbiAgTWFwQ29udGV4dERpcmVjdGl2ZSxcbiAgUm9vdFN2Z1JlZmVyZW5jZURpcmVjdGl2ZSxcbiAgUm9vdFN2Z0NvbnRleHREaXJlY3RpdmUsXG4gIEhhbmRsZVNpemVDb250cm9sbGVyRGlyZWN0aXZlLFxuICBTZWxlY3RhYmxlRGlyZWN0aXZlLFxuICBEcmFnSGFuZGxlRGlyZWN0aXZlLFxuICBQb2ludGVyRGlyZWN0aXZlLFxuICBSb290UG9pbnRlckRpcmVjdGl2ZSxcbiAgRmxvd1NpemVDb250cm9sbGVyRGlyZWN0aXZlLFxuICBOb2RlVG9vbGJhcldyYXBwZXJEaXJlY3RpdmVcbl1cblxuY29uc3QgdGVtcGxhdGVEaXJlY3RpdmVzID0gW1xuICBOb2RlSHRtbFRlbXBsYXRlRGlyZWN0aXZlLFxuICBHcm91cE5vZGVUZW1wbGF0ZURpcmVjdGl2ZSxcbiAgRWRnZUxhYmVsSHRtbFRlbXBsYXRlRGlyZWN0aXZlLFxuICBFZGdlVGVtcGxhdGVEaXJlY3RpdmUsXG4gIENvbm5lY3Rpb25UZW1wbGF0ZURpcmVjdGl2ZSxcbiAgSGFuZGxlVGVtcGxhdGVEaXJlY3RpdmVcbl1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NvbXBvbmVudE91dGxldCwgS2V5VmFsdWVQaXBlXSxcbiAgZXhwb3J0czogW1xuICAgIFZmbG93Q29tcG9uZW50LFxuICAgIEhhbmRsZUNvbXBvbmVudCxcbiAgICBSZXNpemFibGVDb21wb25lbnQsXG4gICAgU2VsZWN0YWJsZURpcmVjdGl2ZSxcbiAgICBNaW5pTWFwQ29tcG9uZW50LFxuICAgIE5vZGVUb29sYmFyQ29tcG9uZW50LFxuICAgIERyYWdIYW5kbGVEaXJlY3RpdmUsXG4gICAgLi4udGVtcGxhdGVEaXJlY3RpdmVzXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogWy4uLmNvbXBvbmVudHMsIC4uLmRpcmVjdGl2ZXMsIC4uLnRlbXBsYXRlRGlyZWN0aXZlc10sXG59KVxuZXhwb3J0IGNsYXNzIFZmbG93TW9kdWxlIHsgfVxuIl19
@@ -1,5 +0,0 @@
1
- import { Position } from "../types/position.type";
2
- export interface HandlePositions {
3
- source: Position;
4
- target: Position;
5
- }