ngx-vflow 1.16.3 → 2.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 (181) hide show
  1. package/README.md +35 -69
  2. package/fesm2022/ngx-vflow-testing.mjs +77 -67
  3. package/fesm2022/ngx-vflow-testing.mjs.map +1 -1
  4. package/fesm2022/ngx-vflow.mjs +926 -559
  5. package/fesm2022/ngx-vflow.mjs.map +1 -1
  6. package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +1 -1
  7. package/lib/vflow/components/vflow/vflow.component.d.ts +18 -9
  8. package/lib/vflow/directives/auto-pan.directive.d.ts +16 -0
  9. package/lib/vflow/directives/changes-controller.directive.d.ts +13 -87
  10. package/lib/vflow/directives/connection-controller.directive.d.ts +8 -10
  11. package/lib/vflow/directives/space-point-context.directive.d.ts +2 -1
  12. package/lib/vflow/interfaces/component-node-event.interface.d.ts +1 -2
  13. package/lib/vflow/interfaces/connection-events.interface.d.ts +66 -0
  14. package/lib/vflow/interfaces/connection-settings.interface.d.ts +7 -1
  15. package/lib/vflow/interfaces/connection.interface.d.ts +0 -5
  16. package/lib/vflow/interfaces/curve-factory.interface.d.ts +2 -2
  17. package/lib/vflow/interfaces/edge-label.interface.d.ts +0 -4
  18. package/lib/vflow/interfaces/edge.interface.d.ts +36 -8
  19. package/lib/vflow/interfaces/node.interface.d.ts +44 -63
  20. package/lib/vflow/interfaces/selection-strategy.interface.d.ts +16 -0
  21. package/lib/vflow/interfaces/template-context.interface.d.ts +8 -3
  22. package/lib/vflow/models/connection.model.d.ts +1 -1
  23. package/lib/vflow/models/edge.model.d.ts +20 -23
  24. package/lib/vflow/models/handle.model.d.ts +1 -1
  25. package/lib/vflow/models/node.model.d.ts +4 -7
  26. package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +1 -1
  27. package/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.d.ts +2 -1
  28. package/lib/vflow/public-components/minimap/minimap.component.d.ts +1 -1
  29. package/lib/vflow/services/draggable.service.d.ts +3 -0
  30. package/lib/vflow/services/flow-entities.service.d.ts +2 -2
  31. package/lib/vflow/services/flow-settings.service.d.ts +3 -0
  32. package/lib/vflow/services/flow-status.service.d.ts +35 -7
  33. package/lib/vflow/services/selection.service.d.ts +4 -1
  34. package/lib/vflow/strategies/default-selection.strategy.d.ts +6 -0
  35. package/lib/vflow/strategies/manual-selection.strategy.d.ts +5 -0
  36. package/lib/vflow/types/selection-mode.type.d.ts +1 -0
  37. package/lib/vflow/types/unwrap-signal.type.d.ts +4 -0
  38. package/lib/vflow/utils/adjust-direction.d.ts +2 -6
  39. package/lib/vflow/utils/identity-checker/reference-identity-checker.d.ts +2 -2
  40. package/lib/vflow/utils/is-vflow-component.d.ts +0 -2
  41. package/lib/vflow/utils/signals/to-lazy-signal.d.ts +4 -4
  42. package/package.json +3 -7
  43. package/public-api.d.ts +3 -2
  44. package/testing/component-mocks/vflow-mock.component.d.ts +8 -6
  45. package/testing/directive-mocks/connection-controller-mock.directive.d.ts +8 -6
  46. package/esm2022/lib/vflow/components/alignment-helper/alignment-helper.component.mjs +0 -103
  47. package/esm2022/lib/vflow/components/background/background.component.mjs +0 -121
  48. package/esm2022/lib/vflow/components/connection/connection.component.mjs +0 -157
  49. package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +0 -57
  50. package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +0 -16
  51. package/esm2022/lib/vflow/components/defs/defs.component.mjs +0 -16
  52. package/esm2022/lib/vflow/components/edge/edge.component.mjs +0 -54
  53. package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +0 -76
  54. package/esm2022/lib/vflow/components/node/node.component.mjs +0 -107
  55. package/esm2022/lib/vflow/components/preview-flow/draw-node.mjs +0 -100
  56. package/esm2022/lib/vflow/components/preview-flow/preview-flow.component.mjs +0 -62
  57. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +0 -437
  58. package/esm2022/lib/vflow/constants/magic-number-to-fix-glitch-in-chrome.constant.mjs +0 -4
  59. package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +0 -11
  60. package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +0 -165
  61. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +0 -145
  62. package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +0 -28
  63. package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +0 -40
  64. package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +0 -41
  65. package/esm2022/lib/vflow/directives/map-context.directive.mjs +0 -116
  66. package/esm2022/lib/vflow/directives/node-handles-controller.directive.mjs +0 -33
  67. package/esm2022/lib/vflow/directives/node-resize-controller.directive.mjs +0 -37
  68. package/esm2022/lib/vflow/directives/pointer.directive.mjs +0 -84
  69. package/esm2022/lib/vflow/directives/reference.directive.mjs +0 -17
  70. package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +0 -58
  71. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +0 -35
  72. package/esm2022/lib/vflow/directives/selectable.directive.mjs +0 -48
  73. package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +0 -42
  74. package/esm2022/lib/vflow/directives/template.directive.mjs +0 -119
  75. package/esm2022/lib/vflow/interfaces/alignment-helper-settings.interface.mjs +0 -2
  76. package/esm2022/lib/vflow/interfaces/box.mjs +0 -2
  77. package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +0 -2
  78. package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +0 -2
  79. package/esm2022/lib/vflow/interfaces/connection.interface.mjs +0 -2
  80. package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +0 -2
  81. package/esm2022/lib/vflow/interfaces/contextable.interface.mjs +0 -2
  82. package/esm2022/lib/vflow/interfaces/curve-factory.interface.mjs +0 -2
  83. package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +0 -2
  84. package/esm2022/lib/vflow/interfaces/edge.interface.mjs +0 -2
  85. package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +0 -2
  86. package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +0 -2
  87. package/esm2022/lib/vflow/interfaces/intersecting-nodes-options.interface.mjs +0 -2
  88. package/esm2022/lib/vflow/interfaces/marker.interface.mjs +0 -2
  89. package/esm2022/lib/vflow/interfaces/node-preview.interface.mjs +0 -2
  90. package/esm2022/lib/vflow/interfaces/node.interface.mjs +0 -53
  91. package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +0 -7
  92. package/esm2022/lib/vflow/interfaces/point.interface.mjs +0 -2
  93. package/esm2022/lib/vflow/interfaces/rect.mjs +0 -10
  94. package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +0 -2
  95. package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +0 -2
  96. package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +0 -66
  97. package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +0 -226
  98. package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +0 -12
  99. package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +0 -12
  100. package/esm2022/lib/vflow/models/connection.model.mjs +0 -31
  101. package/esm2022/lib/vflow/models/edge-label.model.mjs +0 -8
  102. package/esm2022/lib/vflow/models/edge.model.mjs +0 -208
  103. package/esm2022/lib/vflow/models/handle.model.mjs +0 -98
  104. package/esm2022/lib/vflow/models/minimap.model.mjs +0 -7
  105. package/esm2022/lib/vflow/models/node.model.mjs +0 -181
  106. package/esm2022/lib/vflow/models/toolbar.model.mjs +0 -36
  107. package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +0 -25
  108. package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +0 -24
  109. package/esm2022/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.mjs +0 -29
  110. package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +0 -53
  111. package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +0 -108
  112. package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +0 -73
  113. package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +0 -272
  114. package/esm2022/lib/vflow/services/component-event-bus.service.mjs +0 -18
  115. package/esm2022/lib/vflow/services/draggable.service.mjs +0 -124
  116. package/esm2022/lib/vflow/services/edge-changes.service.mjs +0 -43
  117. package/esm2022/lib/vflow/services/edge-rendering.service.mjs +0 -40
  118. package/esm2022/lib/vflow/services/flow-entities.service.mjs +0 -56
  119. package/esm2022/lib/vflow/services/flow-rendering.service.mjs +0 -41
  120. package/esm2022/lib/vflow/services/flow-settings.service.mjs +0 -33
  121. package/esm2022/lib/vflow/services/flow-status.service.mjs +0 -49
  122. package/esm2022/lib/vflow/services/handle.service.mjs +0 -30
  123. package/esm2022/lib/vflow/services/keyboard.service.mjs +0 -47
  124. package/esm2022/lib/vflow/services/node-accessor.service.mjs +0 -16
  125. package/esm2022/lib/vflow/services/node-changes.service.mjs +0 -41
  126. package/esm2022/lib/vflow/services/node-rendering.service.mjs +0 -66
  127. package/esm2022/lib/vflow/services/overlays.service.mjs +0 -35
  128. package/esm2022/lib/vflow/services/preview-flow-render-strategy.service.mjs +0 -21
  129. package/esm2022/lib/vflow/services/selection.service.mjs +0 -54
  130. package/esm2022/lib/vflow/services/viewport.service.mjs +0 -64
  131. package/esm2022/lib/vflow/types/background.type.mjs +0 -2
  132. package/esm2022/lib/vflow/types/connection-mode.type.mjs +0 -2
  133. package/esm2022/lib/vflow/types/edge-change.type.mjs +0 -2
  134. package/esm2022/lib/vflow/types/handle-type.type.mjs +0 -2
  135. package/esm2022/lib/vflow/types/keyboard-action.type.mjs +0 -2
  136. package/esm2022/lib/vflow/types/node-change.type.mjs +0 -2
  137. package/esm2022/lib/vflow/types/position.type.mjs +0 -2
  138. package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +0 -2
  139. package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +0 -11
  140. package/esm2022/lib/vflow/utils/adjust-direction.mjs +0 -30
  141. package/esm2022/lib/vflow/utils/align-number.mjs +0 -4
  142. package/esm2022/lib/vflow/utils/assert-injector.mjs +0 -27
  143. package/esm2022/lib/vflow/utils/event.mjs +0 -4
  144. package/esm2022/lib/vflow/utils/get-os.mjs +0 -24
  145. package/esm2022/lib/vflow/utils/get-overlapping-area.mjs +0 -6
  146. package/esm2022/lib/vflow/utils/get-space-points.mjs +0 -25
  147. package/esm2022/lib/vflow/utils/hash.mjs +0 -7
  148. package/esm2022/lib/vflow/utils/id.mjs +0 -5
  149. package/esm2022/lib/vflow/utils/identity-checker/reference-identity-checker.mjs +0 -28
  150. package/esm2022/lib/vflow/utils/is-callable.mjs +0 -10
  151. package/esm2022/lib/vflow/utils/is-defined.mjs +0 -4
  152. package/esm2022/lib/vflow/utils/is-group-node.mjs +0 -4
  153. package/esm2022/lib/vflow/utils/is-vflow-component.mjs +0 -9
  154. package/esm2022/lib/vflow/utils/nodes.mjs +0 -60
  155. package/esm2022/lib/vflow/utils/resizable.mjs +0 -11
  156. package/esm2022/lib/vflow/utils/round.mjs +0 -2
  157. package/esm2022/lib/vflow/utils/signals/extended-computed.mjs +0 -15
  158. package/esm2022/lib/vflow/utils/signals/to-lazy-signal.mjs +0 -35
  159. package/esm2022/lib/vflow/utils/to-unified-node.mjs +0 -24
  160. package/esm2022/lib/vflow/utils/transform-background.mjs +0 -4
  161. package/esm2022/lib/vflow/utils/viewport.mjs +0 -51
  162. package/esm2022/lib/vflow/vflow.mjs +0 -29
  163. package/esm2022/ngx-vflow.mjs +0 -5
  164. package/esm2022/public-api.mjs +0 -55
  165. package/esm2022/testing/component-mocks/custom-template-edge-mock.component.mjs +0 -16
  166. package/esm2022/testing/component-mocks/handle-mock.component.mjs +0 -26
  167. package/esm2022/testing/component-mocks/minimap-mock.component.mjs +0 -24
  168. package/esm2022/testing/component-mocks/node-toolbar-mock.component.mjs +0 -23
  169. package/esm2022/testing/component-mocks/resizable-mock.component.mjs +0 -27
  170. package/esm2022/testing/component-mocks/vflow-mock.component.mjs +0 -299
  171. package/esm2022/testing/directive-mocks/connection-controller-mock.directive.mjs +0 -29
  172. package/esm2022/testing/directive-mocks/drag-handle-mock.directive.mjs +0 -11
  173. package/esm2022/testing/directive-mocks/selectable-mock.directive.mjs +0 -14
  174. package/esm2022/testing/directive-mocks/template-mock.directive.mjs +0 -101
  175. package/esm2022/testing/ngx-vflow-testing.mjs +0 -5
  176. package/esm2022/testing/provide-custom-node-mocks.mjs +0 -60
  177. package/esm2022/testing/public-api.mjs +0 -13
  178. package/esm2022/testing/types.mjs +0 -2
  179. package/esm2022/testing/vflow-mocks.mjs +0 -28
  180. package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +0 -13
  181. package/lib/vflow/utils/to-unified-node.d.ts +0 -2
@@ -1,81 +1,61 @@
1
1
  import { Type, WritableSignal } from '@angular/core';
2
2
  import { Point } from './point.interface';
3
- import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
4
- import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node/custom-dynamic-node.component';
5
3
  import { NodePreview } from './node-preview.interface';
4
+ import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
5
+ import { UnwrapSignal } from '../types/unwrap-signal.type';
6
+ export declare const NODE_DEFAULTS: {
7
+ point: {
8
+ x: number;
9
+ y: number;
10
+ };
11
+ width: number;
12
+ height: number;
13
+ draggable: boolean;
14
+ parentId: null;
15
+ preview: {
16
+ style: {};
17
+ };
18
+ selected: boolean;
19
+ color: string;
20
+ resizable: boolean;
21
+ text: string;
22
+ data: {};
23
+ };
6
24
  export type Node<T = any> = DefaultNode | HtmlTemplateNode<T> | SvgTemplateNode<T> | ComponentNode<T> | DefaultGroupNode | TemplateGroupNode<T>;
7
- export type DynamicNode<T = any> = DefaultDynamicNode | HtmlTemplateDynamicNode<T> | SvgTemplateDynamicNode<T> | ComponentDynamicNode<T> | DefaultDynamicGroupNode | TemplateDynamicGroupNode<T>;
8
25
  export interface SharedNode {
9
- id: string;
10
- point: Point;
11
- draggable?: boolean;
12
- parentId?: string | null;
13
- preview?: NodePreview;
14
- }
15
- export interface SharedDynamicNode {
16
26
  id: string;
17
27
  point: WritableSignal<Point>;
18
28
  draggable?: WritableSignal<boolean>;
19
29
  parentId?: WritableSignal<string | null>;
20
30
  preview?: WritableSignal<NodePreview>;
31
+ selected?: WritableSignal<boolean>;
21
32
  }
22
33
  export interface DefaultNode extends SharedNode {
23
- type: 'default';
24
- text?: string;
25
- width?: number;
26
- height?: number;
27
- }
28
- export interface DefaultDynamicNode extends SharedDynamicNode {
29
34
  type: 'default';
30
35
  text?: WritableSignal<string>;
31
36
  width?: WritableSignal<number>;
32
37
  height?: WritableSignal<number>;
33
38
  }
34
39
  export interface HtmlTemplateNode<T = any> extends SharedNode {
35
- type: 'html-template';
36
- data?: T;
37
- width?: number;
38
- height?: number;
39
- }
40
- export interface SvgTemplateNode<T = any> extends SharedNode {
41
- type: 'svg-template';
42
- width: number;
43
- height: number;
44
- data?: T;
45
- }
46
- export interface HtmlTemplateDynamicNode<T = any> extends SharedDynamicNode {
47
40
  type: 'html-template';
48
41
  data?: WritableSignal<T>;
49
42
  width?: WritableSignal<number>;
50
43
  height?: WritableSignal<number>;
51
44
  }
52
- export interface SvgTemplateDynamicNode<T = any> extends SharedDynamicNode {
45
+ export interface SvgTemplateNode<T = any> extends SharedNode {
53
46
  type: 'svg-template';
54
47
  width: WritableSignal<number>;
55
48
  height: WritableSignal<number>;
56
49
  data?: WritableSignal<T>;
57
50
  }
58
51
  export interface DefaultGroupNode extends SharedNode {
59
- type: 'default-group';
60
- width: number;
61
- height: number;
62
- color?: string;
63
- resizable?: boolean;
64
- }
65
- export interface DefaultDynamicGroupNode extends SharedDynamicNode {
66
52
  type: 'default-group';
67
53
  width: WritableSignal<number>;
68
54
  height: WritableSignal<number>;
69
55
  color?: WritableSignal<string>;
70
56
  resizable?: WritableSignal<boolean>;
71
57
  }
72
- export interface TemplateGroupNode<T> extends SharedNode {
73
- type: 'template-group';
74
- width: number;
75
- height: number;
76
- data?: T;
77
- }
78
- export interface TemplateDynamicGroupNode<T> extends SharedDynamicNode {
58
+ export interface TemplateGroupNode<T = any> extends SharedNode {
79
59
  type: 'template-group';
80
60
  width: WritableSignal<number>;
81
61
  height: WritableSignal<number>;
@@ -83,27 +63,28 @@ export interface TemplateDynamicGroupNode<T> extends SharedDynamicNode {
83
63
  }
84
64
  export interface ComponentNode<T = any> extends SharedNode {
85
65
  type: Type<CustomNodeComponent<T>> | (() => Promise<Type<CustomNodeComponent<T>>>);
86
- data?: T;
87
- width?: number;
88
- height?: number;
89
- }
90
- export interface ComponentDynamicNode<T = any> extends SharedDynamicNode {
91
- type: Type<CustomDynamicNodeComponent<T>> | (() => Promise<Type<CustomDynamicNodeComponent<T>>>);
92
66
  data?: WritableSignal<T>;
93
67
  width?: WritableSignal<number>;
94
68
  height?: WritableSignal<number>;
95
69
  }
96
- export declare function isStaticNode<T>(node: Node<T> | DynamicNode<T>): node is Node<T>;
97
- export declare function isDynamicNode<T>(node: Node<T> | DynamicNode<T>): node is DynamicNode<T>;
98
- export declare function isComponentStaticNode<T>(node: Node<T>): node is ComponentNode<T>;
99
- export declare function isComponentDynamicNode<T>(node: DynamicNode<T>): node is ComponentDynamicNode<T>;
100
- export declare function isTemplateStaticNode<T>(node: Node<T>): node is HtmlTemplateNode<T>;
101
- export declare function isTemplateDynamicNode<T>(node: DynamicNode<T>): node is HtmlTemplateDynamicNode<T>;
102
- export declare function isSvgTemplateStaticNode<T>(node: Node<T>): node is SvgTemplateNode<T>;
103
- export declare function isSvgTemplateDynamicNode<T>(node: DynamicNode<T>): node is SvgTemplateDynamicNode<T>;
104
- export declare function isDefaultStaticNode(node: Node): node is DefaultNode;
105
- export declare function isDefaultDynamicNode(node: DynamicNode): node is DefaultDynamicNode;
106
- export declare function isDefaultStaticGroupNode(node: Node): node is DefaultGroupNode;
107
- export declare function isDefaultDynamicGroupNode(node: DynamicNode): node is DefaultDynamicGroupNode;
108
- export declare function isTemplateStaticGroupNode<T>(node: Node<T>): node is TemplateGroupNode<T>;
109
- export declare function isTemplateDynamicGroupNode<T>(node: DynamicNode<T>): node is TemplateDynamicGroupNode<T>;
70
+ export declare function isComponentNode<T>(node: Node<T>): node is ComponentNode<T>;
71
+ export declare function isTemplateNode<T>(node: Node<T>): node is HtmlTemplateNode<T>;
72
+ export declare function isSvgTemplateNode<T>(node: Node<T>): node is SvgTemplateNode<T>;
73
+ export declare function isDefaultNode(node: Node): node is DefaultNode;
74
+ export declare function isDefaultGroupNode(node: Node): node is DefaultGroupNode;
75
+ export declare function isTemplateGroupNode<T>(node: Node<T>): node is TemplateGroupNode<T>;
76
+ export type StaticNode<T = unknown> = UnwrapSignal<DefaultNode> | UnwrapSignal<HtmlTemplateNode<T>> | UnwrapSignal<SvgTemplateNode<T>> | UnwrapSignal<ComponentNode<T>> | UnwrapSignal<DefaultGroupNode> | UnwrapSignal<TemplateGroupNode<T>>;
77
+ export declare function createNode<T>(node: StaticNode<T>): Required<Node<T>>;
78
+ export declare function createNode<T>(node: StaticNode<T>, options: {
79
+ useDefaults: true;
80
+ }): Required<Node<T>>;
81
+ export declare function createNode<T>(node: StaticNode<T>, options: {
82
+ useDefaults: false;
83
+ }): Node<T>;
84
+ export declare function createNodes<T = unknown>(nodes: StaticNode<T>[]): Required<Node<T>>[];
85
+ export declare function createNodes<T = unknown>(nodes: StaticNode<T>[], options: {
86
+ useDefaults: true;
87
+ }): Required<Node<T>>[];
88
+ export declare function createNodes<T = unknown>(nodes: StaticNode<T>[], options: {
89
+ useDefaults: false;
90
+ }): Node<T>[];
@@ -0,0 +1,16 @@
1
+ import { FlowEntity } from './flow-entity.interface';
2
+ import { ViewportState } from './viewport.interface';
3
+ export interface SelectionContext {
4
+ entities: FlowEntity[];
5
+ isMultiSelectionActive: boolean;
6
+ }
7
+ export interface ViewportChangeContext {
8
+ start: ViewportState;
9
+ end: ViewportState;
10
+ target: Element;
11
+ delta: number;
12
+ }
13
+ export interface SelectionStrategy {
14
+ select(entity: FlowEntity | null, context: SelectionContext): void;
15
+ handleViewportChange(viewport: ViewportChangeContext, context: SelectionContext): void;
16
+ }
@@ -3,9 +3,11 @@ import { Edge } from './edge.interface';
3
3
  import { HtmlTemplateEdgeLabel } from './edge-label.interface';
4
4
  import { Point } from './point.interface';
5
5
  import { HandleState } from '../models/handle.model';
6
+ import { HtmlTemplateNode, SvgTemplateNode, TemplateGroupNode } from './node.interface';
6
7
  export interface EdgeContext {
7
8
  $implicit: {
8
9
  edge: Edge<any>;
10
+ data: Signal<any>;
9
11
  path: Signal<string>;
10
12
  markerStart: Signal<string>;
11
13
  markerEnd: Signal<string>;
@@ -15,14 +17,16 @@ export interface EdgeContext {
15
17
  }
16
18
  export interface NodeContext {
17
19
  $implicit: {
18
- node: any;
20
+ node: HtmlTemplateNode;
21
+ data: Signal<any>;
19
22
  selected: Signal<boolean>;
20
23
  shouldLoad: Signal<boolean>;
21
24
  };
22
25
  }
23
26
  export interface SvgNodeContext {
24
27
  $implicit: {
25
- node: any;
28
+ node: SvgTemplateNode;
29
+ data: Signal<any>;
26
30
  selected: Signal<boolean>;
27
31
  width: Signal<number>;
28
32
  height: Signal<number>;
@@ -31,7 +35,8 @@ export interface SvgNodeContext {
31
35
  }
32
36
  export interface GroupNodeContext {
33
37
  $implicit: {
34
- node: any;
38
+ node: TemplateGroupNode;
39
+ data: Signal<any>;
35
40
  selected: Signal<boolean>;
36
41
  width: Signal<number>;
37
42
  height: Signal<number>;
@@ -7,6 +7,6 @@ export declare class ConnectionModel {
7
7
  type: EdgeType;
8
8
  validator: ConnectionValidatorFn;
9
9
  mode: ConnectionMode;
10
+ allowSelfConnections: boolean;
10
11
  constructor(settings: ConnectionSettings);
11
- private getValidators;
12
12
  }
@@ -1,4 +1,4 @@
1
- import { EdgeLabelPosition } from '../interfaces/edge-label.interface';
1
+ import { EdgeLabel } from '../interfaces/edge-label.interface';
2
2
  import { Edge, Curve, EdgeType } from '../interfaces/edge.interface';
3
3
  import { EdgeLabelModel } from './edge-label.model';
4
4
  import { NodeModel } from './node.model';
@@ -6,15 +6,25 @@ import { FlowEntity } from '../interfaces/flow-entity.interface';
6
6
  import { Contextable } from '../interfaces/contextable.interface';
7
7
  import { EdgeContext } from '../interfaces/template-context.interface';
8
8
  import { HandleModel } from './handle.model';
9
+ import { Marker } from '../interfaces/marker.interface';
9
10
  export declare class EdgeModel implements FlowEntity, Contextable<EdgeContext> {
10
11
  edge: Edge;
11
12
  private readonly flowEntitiesService;
12
13
  source: import("@angular/core").WritableSignal<NodeModel<unknown> | undefined>;
13
14
  target: import("@angular/core").WritableSignal<NodeModel<unknown> | undefined>;
14
- curve: Curve;
15
+ curve: import("@angular/core").WritableSignal<Curve>;
15
16
  type: EdgeType;
16
- reconnectable: boolean | 'source' | 'target';
17
- floating: boolean;
17
+ reconnectable: import("@angular/core").WritableSignal<boolean | "source" | "target">;
18
+ floating: import("@angular/core").WritableSignal<boolean>;
19
+ markers: import("@angular/core").WritableSignal<{
20
+ start?: Marker;
21
+ end?: Marker;
22
+ }>;
23
+ edgeLabels: import("@angular/core").WritableSignal<{
24
+ start?: EdgeLabel | undefined;
25
+ center?: EdgeLabel | undefined;
26
+ end?: EdgeLabel | undefined;
27
+ }>;
18
28
  selected: import("@angular/core").WritableSignal<boolean>;
19
29
  selected$: import("rxjs").Observable<boolean>;
20
30
  shouldLoad: import("@angular/core").Signal<boolean>;
@@ -28,27 +38,14 @@ export declare class EdgeModel implements FlowEntity, Contextable<EdgeContext> {
28
38
  sourceHandle: HandleModel | null;
29
39
  targetHandle: HandleModel | null;
30
40
  }>;
31
- /**
32
- * TODO: not reactive
33
- */
34
41
  markerStartUrl: import("@angular/core").Signal<string>;
35
- /**
36
- * TODO: not reactive
37
- */
38
42
  markerEndUrl: import("@angular/core").Signal<string>;
39
- context: {
40
- $implicit: {
41
- edge: Edge<unknown>;
42
- path: import("@angular/core").Signal<string>;
43
- markerStart: import("@angular/core").Signal<string>;
44
- markerEnd: import("@angular/core").Signal<string>;
45
- selected: import("@angular/core").Signal<boolean>;
46
- shouldLoad: import("@angular/core").Signal<boolean>;
47
- };
48
- };
49
- edgeLabels: {
50
- [position in EdgeLabelPosition]?: EdgeLabelModel;
51
- };
43
+ context: EdgeContext;
44
+ labelModels: import("@angular/core").Signal<{
45
+ start?: EdgeLabelModel | undefined;
46
+ center?: EdgeLabelModel | undefined;
47
+ end?: EdgeLabelModel | undefined;
48
+ }>;
52
49
  constructor(edge: Edge);
53
50
  private getPathFactoryParams;
54
51
  }
@@ -35,7 +35,7 @@ export declare class HandleModel {
35
35
  y: number;
36
36
  }>;
37
37
  state: import("@angular/core").WritableSignal<HandleState>;
38
- node: import("ngx-vflow").Node<unknown> | import("ngx-vflow").DynamicNode<unknown>;
38
+ node: import("ngx-vflow").Node<unknown>;
39
39
  };
40
40
  };
41
41
  constructor(rawHandle: NodeHandle, parentNode: NodeModel);
@@ -1,5 +1,5 @@
1
1
  import { TemplateRef } from '@angular/core';
2
- import { DynamicNode, Node } from '../interfaces/node.interface';
2
+ import { Node } from '../interfaces/node.interface';
3
3
  import { HandleModel } from './handle.model';
4
4
  import { FlowEntity } from '../interfaces/flow-entity.interface';
5
5
  import { Point } from '../interfaces/point.interface';
@@ -10,10 +10,7 @@ import { NodePreview } from '../interfaces/node-preview.interface';
10
10
  export declare class NodeModel<T = unknown> implements FlowEntity, Contextable<NodeContext | GroupNodeContext | {
11
11
  $implicit: object;
12
12
  }> {
13
- rawNode: Node<T> | DynamicNode<T>;
14
- private static defaultWidth;
15
- private static defaultHeight;
16
- private static defaultColor;
13
+ rawNode: Node<T>;
17
14
  private entitiesService;
18
15
  private settingsService;
19
16
  private nodeRenderingService;
@@ -65,7 +62,7 @@ export declare class NodeModel<T = unknown> implements FlowEntity, Contextable<N
65
62
  componentInstance$: Observable<any>;
66
63
  text: import("@angular/core").WritableSignal<string>;
67
64
  componentTypeInputs: {
68
- node: Node<T> | DynamicNode<T>;
65
+ node: Node<T>;
69
66
  };
70
67
  parent: import("@angular/core").Signal<NodeModel<unknown> | null>;
71
68
  children: import("@angular/core").Signal<NodeModel<unknown>[]>;
@@ -78,6 +75,6 @@ export declare class NodeModel<T = unknown> implements FlowEntity, Contextable<N
78
75
  $implicit: {};
79
76
  };
80
77
  private parentId;
81
- constructor(rawNode: Node<T> | DynamicNode<T>);
78
+ constructor(rawNode: Node<T>);
82
79
  setPoint(point: Point): void;
83
80
  }
@@ -9,5 +9,5 @@ export declare abstract class CustomNodeComponent<T = any> extends CustomNodeBas
9
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": true; "isSignal": true; }; }, {}, never, never, false, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
13
13
  }
@@ -5,7 +5,8 @@ export declare class CustomTemplateEdgeComponent {
5
5
  private edgeRenderingService;
6
6
  protected model: import("../../models/edge.model").EdgeModel;
7
7
  protected context: {
8
- edge: import("ngx-vflow").Edge<unknown>;
8
+ edge: import("ngx-vflow").Edge<any>;
9
+ data: import("@angular/core").Signal<any>;
9
10
  path: import("@angular/core").Signal<string>;
10
11
  markerStart: import("@angular/core").Signal<string>;
11
12
  markerEnd: import("@angular/core").Signal<string>;
@@ -41,7 +41,7 @@ export declare class MiniMapComponent implements OnInit {
41
41
  protected boundsViewport: import("@angular/core").Signal<import("ngx-vflow").ViewportState>;
42
42
  protected minimapTransform: import("@angular/core").Signal<string>;
43
43
  ngOnInit(): void;
44
- protected trackNodes(idx: number, { rawNode }: NodeModel): import("ngx-vflow").Node<unknown> | import("ngx-vflow").DynamicNode<unknown>;
44
+ protected trackNodes(idx: number, { rawNode }: NodeModel): import("ngx-vflow").Node<unknown>;
45
45
  static ɵfac: i0.ɵɵFactoryDeclaration<MiniMapComponent, never>;
46
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>;
47
47
  }
@@ -4,6 +4,8 @@ export declare class DraggableService {
4
4
  private entitiesService;
5
5
  private settingsService;
6
6
  private flowStatusService;
7
+ private viewportService;
8
+ private injector;
7
9
  /**
8
10
  * Enable draggable behavior for element.
9
11
  *
@@ -40,6 +42,7 @@ export declare class DraggableService {
40
42
  * @todo make it unit testable
41
43
  */
42
44
  private alignToGrid;
45
+ private moveNodesOnAutoPan$;
43
46
  static ɵfac: i0.ɵɵFactoryDeclaration<DraggableService, never>;
44
47
  static ɵprov: i0.ɵɵInjectableDeclaration<DraggableService>;
45
48
  }
@@ -5,11 +5,11 @@ import { ConnectionModel } from '../models/connection.model';
5
5
  import { Marker } from '../interfaces/marker.interface';
6
6
  import { FlowEntity } from '../interfaces/flow-entity.interface';
7
7
  import { MinimapModel } from '../models/minimap.model';
8
- import { DynamicNode, Node } from '../interfaces/node.interface';
8
+ import { Node } from '../interfaces/node.interface';
9
9
  import * as i0 from "@angular/core";
10
10
  export declare class FlowEntitiesService {
11
11
  readonly nodes: WritableSignal<NodeModel<unknown>[]>;
12
- readonly rawNodes: Signal<Node[] | DynamicNode[]>;
12
+ readonly rawNodes: Signal<Node[]>;
13
13
  readonly edges: WritableSignal<EdgeModel[]>;
14
14
  readonly rawEdges: Signal<import("ngx-vflow").Edge<unknown>[]>;
15
15
  readonly validEdges: Signal<EdgeModel[]>;
@@ -1,11 +1,13 @@
1
1
  import { WritableSignal } from '@angular/core';
2
2
  import { Background } from '../types/background.type';
3
3
  import { Optimization } from '../interfaces/optimization.interface';
4
+ import { SelectionMode } from '../types/selection-mode.type';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class FlowSettingsService {
6
7
  entitiesSelectable: WritableSignal<boolean>;
7
8
  elevateNodesOnSelect: WritableSignal<boolean>;
8
9
  elevateEdgesOnSelect: WritableSignal<boolean>;
10
+ autoPan: WritableSignal<boolean>;
9
11
  /**
10
12
  * @see {VflowComponent.view}
11
13
  */
@@ -23,6 +25,7 @@ export declare class FlowSettingsService {
23
25
  background: WritableSignal<Background>;
24
26
  snapGrid: WritableSignal<[number, number]>;
25
27
  optimization: WritableSignal<Required<Optimization>>;
28
+ selectionMode: WritableSignal<SelectionMode>;
26
29
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowSettingsService, never>;
27
30
  static ɵprov: i0.ɵɵInjectableDeclaration<FlowSettingsService>;
28
31
  }
@@ -17,10 +17,20 @@ export interface FlowStatusConnectionValidation {
17
17
  valid: boolean;
18
18
  };
19
19
  }
20
- export interface FlowStatusConnectionEnd {
21
- state: 'connection-end';
20
+ export interface FlowStatusConnectionRelease {
21
+ state: 'connection-release';
22
22
  payload: ConnectionInternal;
23
23
  }
24
+ export interface FlowStatusConnectionReleaseValidated {
25
+ state: 'connection-release-validated';
26
+ payload: ConnectionInternal & {
27
+ valid: boolean;
28
+ };
29
+ }
30
+ export interface FlowStatusConnectionDropped {
31
+ state: 'connection-dropped';
32
+ payload: Omit<ConnectionInternal, 'target' | 'targetHandle'>;
33
+ }
24
34
  export interface FlowStatusReconnectionStart {
25
35
  state: 'reconnection-start';
26
36
  payload: Omit<ConnectionInternal, 'target' | 'targetHandle'> & {
@@ -34,12 +44,25 @@ export interface FlowStatusReconnectionValidation {
34
44
  oldEdge: EdgeModel;
35
45
  };
36
46
  }
37
- export interface FlowStatusReconnectionEnd {
38
- state: 'reconnection-end';
47
+ export interface FlowStatusReconnectionRelease {
48
+ state: 'reconnection-release';
39
49
  payload: ConnectionInternal & {
40
50
  oldEdge: EdgeModel;
41
51
  };
42
52
  }
53
+ export interface FlowStatusReconnectionReleaseValidated {
54
+ state: 'reconnection-release-validated';
55
+ payload: ConnectionInternal & {
56
+ oldEdge: EdgeModel;
57
+ valid: boolean;
58
+ };
59
+ }
60
+ export interface FlowStatusReconnectionDropped {
61
+ state: 'reconnection-dropped';
62
+ payload: Omit<ConnectionInternal, 'target' | 'targetHandle'> & {
63
+ oldEdge: EdgeModel;
64
+ };
65
+ }
43
66
  export interface FlowStatusNodeDragStart {
44
67
  state: 'node-drag-start';
45
68
  payload: {
@@ -52,16 +75,21 @@ export interface FlowStatusNodeDragEnd {
52
75
  node: NodeModel;
53
76
  };
54
77
  }
55
- export type FlowStatus = FlowStatusIdle | FlowStatusConnectionStart | FlowStatusConnectionValidation | FlowStatusConnectionEnd | FlowStatusReconnectionStart | FlowStatusReconnectionValidation | FlowStatusReconnectionEnd | FlowStatusNodeDragStart | FlowStatusNodeDragEnd;
78
+ export type FlowStatus = FlowStatusIdle | FlowStatusConnectionStart | FlowStatusConnectionValidation | FlowStatusConnectionRelease | FlowStatusConnectionReleaseValidated | FlowStatusConnectionDropped | FlowStatusReconnectionStart | FlowStatusReconnectionValidation | FlowStatusReconnectionRelease | FlowStatusReconnectionReleaseValidated | FlowStatusReconnectionDropped | FlowStatusNodeDragStart | FlowStatusNodeDragEnd;
56
79
  export declare class FlowStatusService {
57
80
  readonly status: import("@angular/core").WritableSignal<FlowStatus>;
81
+ readonly status$: import("rxjs").Observable<FlowStatus>;
58
82
  setIdleStatus(): void;
59
83
  setConnectionStartStatus(source: NodeModel, sourceHandle: HandleModel): void;
60
84
  setReconnectionStartStatus(source: NodeModel, sourceHandle: HandleModel, oldEdge: EdgeModel): void;
61
85
  setConnectionValidationStatus(valid: boolean, source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel): void;
62
86
  setReconnectionValidationStatus(valid: boolean, source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel): void;
63
- setConnectionEndStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel): void;
64
- setReconnectionEndStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel): void;
87
+ setConnectionReleaseStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel): void;
88
+ setConnectionReleaseValidatedStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, valid: boolean): void;
89
+ setConnectionDroppedStatus(source: NodeModel, sourceHandle: HandleModel): void;
90
+ setReconnectionReleaseStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel): void;
91
+ setReconnectionReleaseValidatedStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel, valid: boolean): void;
92
+ setReconnectionDroppedStatus(source: NodeModel, sourceHandle: HandleModel, oldEdge: EdgeModel): void;
65
93
  setNodeDragStartStatus(node: NodeModel): void;
66
94
  setNodeDragEndStatus(node: NodeModel): void;
67
95
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowStatusService, never>;
@@ -14,8 +14,11 @@ export declare class SelectionService {
14
14
  private static delta;
15
15
  private flowEntitiesService;
16
16
  private keyboardService;
17
+ private flowSettingsService;
18
+ private strategies;
19
+ private currentStrategy;
17
20
  protected viewport$: Subject<ViewportForSelection>;
18
- protected resetSelection: import("rxjs").Subscription;
21
+ protected viewportChangeSub: import("rxjs").Subscription;
19
22
  setViewport(viewport: ViewportForSelection): void;
20
23
  select(entity: FlowEntity | null): void;
21
24
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectionService, never>;
@@ -0,0 +1,6 @@
1
+ import { SelectionStrategy, SelectionContext, ViewportChangeContext } from '../interfaces/selection-strategy.interface';
2
+ import { FlowEntity } from '../interfaces/flow-entity.interface';
3
+ export declare class DefaultSelectionStrategy implements SelectionStrategy {
4
+ select(entity: FlowEntity | null, context: SelectionContext): void;
5
+ handleViewportChange(viewport: ViewportChangeContext, context: SelectionContext): void;
6
+ }
@@ -0,0 +1,5 @@
1
+ import { SelectionStrategy } from '../interfaces/selection-strategy.interface';
2
+ export declare class ManualSelectionStrategy implements SelectionStrategy {
3
+ select(): void;
4
+ handleViewportChange(): void;
5
+ }
@@ -0,0 +1 @@
1
+ export type SelectionMode = 'default' | 'manual';
@@ -0,0 +1,4 @@
1
+ import { Signal } from '@angular/core';
2
+ export type UnwrapSignal<T> = {
3
+ [K in keyof T]: NonNullable<T[K]> extends Signal<infer U> ? (undefined extends T[K] ? U | undefined : U) : T[K];
4
+ };
@@ -1,11 +1,7 @@
1
1
  import { ConnectionInternal } from '../interfaces/connection.internal.interface';
2
2
  /**
3
- * This function contains a hack-y behavior.
4
- * If the handles are of the same type (source-source or target-target),
5
- * it returns nodes where source === target and
6
- * handles where sourceHandle === targetHandle
3
+ * Adjust connection direction based on handle types.
4
+ *
7
5
  *
8
- * This leads to that notSelfValidator returns false for these cases,
9
- * exactly what we need for strict connection type
10
6
  */
11
7
  export declare function adjustDirection(connection: ConnectionInternal): ConnectionInternal;
@@ -1,12 +1,12 @@
1
1
  import { NodeModel } from '../../models/node.model';
2
- import { DynamicNode, Node } from '../../interfaces/node.interface';
2
+ import { Node } from '../../interfaces/node.interface';
3
3
  import { EdgeModel } from '../../models/edge.model';
4
4
  import { Edge } from '../../interfaces/edge.interface';
5
5
  export declare class ReferenceIdentityChecker {
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> | NodeModel<any>)[];
9
+ static nodes(newNodes: Node[], 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
  */
@@ -1,4 +1,2 @@
1
- import { CustomDynamicNodeComponent } from '../public-components/custom-dynamic-node/custom-dynamic-node.component';
2
1
  import { CustomNodeComponent } from '../public-components/custom-node/custom-node.component';
3
2
  export declare function isCustomNodeComponent(type: any): type is CustomNodeComponent;
4
- export declare function isCustomDynamicNodeComponent(type: any): type is CustomDynamicNodeComponent;
@@ -2,19 +2,19 @@ import { type Signal } from '@angular/core';
2
2
  import { type ToSignalOptions } from '@angular/core/rxjs-interop';
3
3
  import type { Observable, Subscribable } from 'rxjs';
4
4
  export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>): Signal<T | undefined>;
5
- export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & {
5
+ export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<T> & {
6
6
  initialValue?: undefined;
7
7
  requireSync?: false;
8
8
  }): Signal<T | undefined>;
9
- export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & {
9
+ export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<T> & {
10
10
  initialValue?: null;
11
11
  requireSync?: false;
12
12
  }): Signal<T | null>;
13
- export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & {
13
+ export declare function toLazySignal<T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<T> & {
14
14
  initialValue?: undefined;
15
15
  requireSync: true;
16
16
  }): Signal<T>;
17
- export declare function toLazySignal<T, const U extends T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions & {
17
+ export declare function toLazySignal<T, const U extends T>(source: Observable<T> | Subscribable<T>, options: ToSignalOptions<T> & {
18
18
  initialValue: U;
19
19
  requireSync?: false;
20
20
  }): Signal<T | U>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-vflow",
3
- "version": "1.16.3",
3
+ "version": "2.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": "^17.3.12 || 18.x || 19.x || 20.x",
20
- "@angular/core": "^17.3.12 || 18.x || 19.x || 20.x",
19
+ "@angular/common": "^19.2.17 || 20.x || 21.x",
20
+ "@angular/core": "^19.2.17 || 20.x || 21.x",
21
21
  "d3-drag": "^3.0.0",
22
22
  "d3-selection": "^3.0.0",
23
23
  "d3-zoom": "^3.0.0",
@@ -37,14 +37,10 @@
37
37
  },
38
38
  ".": {
39
39
  "types": "./index.d.ts",
40
- "esm2022": "./esm2022/ngx-vflow.mjs",
41
- "esm": "./esm2022/ngx-vflow.mjs",
42
40
  "default": "./fesm2022/ngx-vflow.mjs"
43
41
  },
44
42
  "./testing": {
45
43
  "types": "./testing/index.d.ts",
46
- "esm2022": "./esm2022/testing/ngx-vflow-testing.mjs",
47
- "esm": "./esm2022/testing/ngx-vflow-testing.mjs",
48
44
  "default": "./fesm2022/ngx-vflow-testing.mjs"
49
45
  }
50
46
  }