ngx-vflow 1.4.2 → 1.5.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 (30) hide show
  1. package/esm2022/lib/vflow/components/connection/connection.component.mjs +3 -3
  2. package/esm2022/lib/vflow/components/edge/edge.component.mjs +30 -5
  3. package/esm2022/lib/vflow/components/node/node.component.mjs +4 -2
  4. package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +15 -3
  5. package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +55 -37
  6. package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +2 -2
  7. package/esm2022/lib/vflow/directives/selectable.directive.mjs +19 -11
  8. package/esm2022/lib/vflow/interfaces/connection.interface.mjs +1 -1
  9. package/esm2022/lib/vflow/interfaces/edge.interface.mjs +1 -1
  10. package/esm2022/lib/vflow/models/edge.model.mjs +25 -23
  11. package/esm2022/lib/vflow/services/edge-rendering.service.mjs +28 -0
  12. package/esm2022/lib/vflow/services/flow-settings.service.mjs +2 -1
  13. package/esm2022/lib/vflow/services/flow-status.service.mjs +13 -1
  14. package/esm2022/lib/vflow/testing-utils/component-mocks/vflow-mock.component.mjs +4 -2
  15. package/esm2022/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.mjs +6 -2
  16. package/fesm2022/ngx-vflow.mjs +294 -190
  17. package/fesm2022/ngx-vflow.mjs.map +1 -1
  18. package/lib/vflow/components/edge/edge.component.d.ts +10 -2
  19. package/lib/vflow/components/vflow/vflow.component.d.ts +6 -1
  20. package/lib/vflow/directives/connection-controller.directive.d.ts +5 -2
  21. package/lib/vflow/directives/selectable.directive.d.ts +4 -1
  22. package/lib/vflow/interfaces/connection.interface.d.ts +5 -0
  23. package/lib/vflow/interfaces/edge.interface.d.ts +1 -0
  24. package/lib/vflow/models/edge.model.d.ts +4 -0
  25. package/lib/vflow/services/edge-rendering.service.d.ts +10 -0
  26. package/lib/vflow/services/flow-settings.service.d.ts +1 -0
  27. package/lib/vflow/services/flow-status.service.d.ts +24 -1
  28. package/lib/vflow/testing-utils/component-mocks/vflow-mock.component.d.ts +2 -1
  29. package/lib/vflow/testing-utils/directive-mocks/connection-controller-mock.directive.d.ts +4 -2
  30. package/package.json +1 -1
@@ -1,19 +1,27 @@
1
- import { Injector, OnInit, TemplateRef } from '@angular/core';
1
+ import { ElementRef, Injector, OnInit, TemplateRef } from '@angular/core';
2
2
  import { EdgeModel } from '../../models/edge.model';
3
3
  import { EdgeContext } from '../../interfaces/template-context.interface';
4
+ import { HandleModel } from '../../models/handle.model';
4
5
  import * as i0 from "@angular/core";
5
6
  export declare class EdgeComponent implements OnInit {
6
7
  protected injector: Injector;
7
8
  private selectionService;
8
9
  private flowSettingsService;
10
+ private flowStatusService;
11
+ private edgeRenderingService;
12
+ private connectionController;
9
13
  model: import("@angular/core").InputSignal<EdgeModel>;
10
14
  edgeTemplate: import("@angular/core").InputSignal<TemplateRef<EdgeContext> | undefined>;
11
15
  edgeLabelHtmlTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
16
+ interactiveEdgeRef: import("@angular/core").Signal<ElementRef<Element>>;
12
17
  protected markerStartUrl: import("@angular/core").Signal<string>;
13
18
  protected markerEndUrl: import("@angular/core").Signal<string>;
19
+ protected isReconnecting: import("@angular/core").Signal<boolean>;
14
20
  protected edgeContext: EdgeContext;
15
21
  ngOnInit(): void;
16
- onEdgeMouseDown(): void;
22
+ select(): void;
23
+ pull(): void;
24
+ protected startReconnection(event: Event, handle: HandleModel): void;
17
25
  static ɵfac: i0.ɵɵFactoryDeclaration<EdgeComponent, never>;
18
26
  static ɵcmp: i0.ɵɵComponentDeclaration<EdgeComponent, "g[edge]", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "edgeTemplate": { "alias": "edgeTemplate"; "required": false; "isSignal": true; }; "edgeLabelHtmlTemplate": { "alias": "edgeLabelHtmlTemplate"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
19
27
  }
@@ -24,6 +24,7 @@ export declare class VflowComponent implements OnInit {
24
24
  private nodesChangeService;
25
25
  private edgesChangeService;
26
26
  private nodeRenderingService;
27
+ private edgeRenderingService;
27
28
  private flowSettingsService;
28
29
  private componentEventBusService;
29
30
  private keyboardService;
@@ -75,6 +76,10 @@ export declare class VflowComponent implements OnInit {
75
76
  * Raizing z-index for selected node
76
77
  */
77
78
  set elevateNodesOnSelect(value: boolean);
79
+ /**
80
+ * Raizing z-index for selected edge
81
+ */
82
+ set elevateEdgesOnSelect(value: boolean);
78
83
  /**
79
84
  * Nodes to render
80
85
  */
@@ -164,6 +169,6 @@ export declare class VflowComponent implements OnInit {
164
169
  protected trackEdges(idx: number, { edge }: EdgeModel): Edge<unknown>;
165
170
  private setInitialNodesOrder;
166
171
  static ɵfac: i0.ɵɵFactoryDeclaration<VflowComponent, never>;
167
- static ɵcmp: i0.ɵɵComponentDeclaration<VflowComponent, "vflow", never, { "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; "isSignal": true; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; "nodes": { "alias": "nodes"; "required": true; }; "edges": { "alias": "edges"; "required": false; }; }, { "onComponentNodeEvent": "onComponentNodeEvent"; }, ["nodeTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], never, true, [{ directive: typeof i1.ChangesControllerDirective; inputs: {}; outputs: { "onNodesChange": "onNodesChange"; "onNodesChange.position": "onNodesChange.position"; "onNodesChange.position.single": "onNodesChange.position.single"; "onNodesChange.position.many": "onNodesChange.position.many"; "onNodesChange.size": "onNodesChange.size"; "onNodesChange.size.single": "onNodesChange.size.single"; "onNodesChange.size.many": "onNodesChange.size.many"; "onNodesChange.add": "onNodesChange.add"; "onNodesChange.add.single": "onNodesChange.add.single"; "onNodesChange.add.many": "onNodesChange.add.many"; "onNodesChange.remove": "onNodesChange.remove"; "onNodesChange.remove.single": "onNodesChange.remove.single"; "onNodesChange.remove.many": "onNodesChange.remove.many"; "onNodesChange.select": "onNodesChange.select"; "onNodesChange.select.single": "onNodesChange.select.single"; "onNodesChange.select.many": "onNodesChange.select.many"; "onEdgesChange": "onEdgesChange"; "onEdgesChange.detached": "onEdgesChange.detached"; "onEdgesChange.detached.single": "onEdgesChange.detached.single"; "onEdgesChange.detached.many": "onEdgesChange.detached.many"; "onEdgesChange.add": "onEdgesChange.add"; "onEdgesChange.add.single": "onEdgesChange.add.single"; "onEdgesChange.add.many": "onEdgesChange.add.many"; "onEdgesChange.remove": "onEdgesChange.remove"; "onEdgesChange.remove.single": "onEdgesChange.remove.single"; "onEdgesChange.remove.many": "onEdgesChange.remove.many"; "onEdgesChange.select": "onEdgesChange.select"; "onEdgesChange.select.single": "onEdgesChange.select.single"; "onEdgesChange.select.many": "onEdgesChange.select.many"; }; }]>;
172
+ static ɵcmp: i0.ɵɵComponentDeclaration<VflowComponent, "vflow", never, { "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; "isSignal": true; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; "elevateEdgesOnSelect": { "alias": "elevateEdgesOnSelect"; "required": false; }; "nodes": { "alias": "nodes"; "required": true; }; "edges": { "alias": "edges"; "required": false; }; }, { "onComponentNodeEvent": "onComponentNodeEvent"; }, ["nodeTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], never, true, [{ directive: typeof i1.ChangesControllerDirective; inputs: {}; outputs: { "onNodesChange": "onNodesChange"; "onNodesChange.position": "onNodesChange.position"; "onNodesChange.position.single": "onNodesChange.position.single"; "onNodesChange.position.many": "onNodesChange.position.many"; "onNodesChange.size": "onNodesChange.size"; "onNodesChange.size.single": "onNodesChange.size.single"; "onNodesChange.size.many": "onNodesChange.size.many"; "onNodesChange.add": "onNodesChange.add"; "onNodesChange.add.single": "onNodesChange.add.single"; "onNodesChange.add.many": "onNodesChange.add.many"; "onNodesChange.remove": "onNodesChange.remove"; "onNodesChange.remove.single": "onNodesChange.remove.single"; "onNodesChange.remove.many": "onNodesChange.remove.many"; "onNodesChange.select": "onNodesChange.select"; "onNodesChange.select.single": "onNodesChange.select.single"; "onNodesChange.select.many": "onNodesChange.select.many"; "onEdgesChange": "onEdgesChange"; "onEdgesChange.detached": "onEdgesChange.detached"; "onEdgesChange.detached.single": "onEdgesChange.detached.single"; "onEdgesChange.detached.many": "onEdgesChange.detached.many"; "onEdgesChange.add": "onEdgesChange.add"; "onEdgesChange.add.single": "onEdgesChange.add.single"; "onEdgesChange.add.many": "onEdgesChange.add.many"; "onEdgesChange.remove": "onEdgesChange.remove"; "onEdgesChange.remove.single": "onEdgesChange.remove.single"; "onEdgesChange.remove.many": "onEdgesChange.remove.many"; "onEdgesChange.select": "onEdgesChange.select"; "onEdgesChange.select.single": "onEdgesChange.select.single"; "onEdgesChange.select.many": "onEdgesChange.select.many"; }; }]>;
168
173
  static ngAcceptInputType_connection: i2.ConnectionSettings;
169
174
  }
@@ -1,5 +1,6 @@
1
- import { Connection } from '../interfaces/connection.interface';
1
+ import { Connection, ReconnectionEvent } from '../interfaces/connection.interface';
2
2
  import { HandleModel } from '../models/handle.model';
3
+ import { EdgeModel } from '../models/edge.model';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class ConnectionControllerDirective {
5
6
  private statusService;
@@ -15,11 +16,13 @@ export declare class ConnectionControllerDirective {
15
16
  * @todo add connect event and deprecate onConnect
16
17
  */
17
18
  readonly onConnect: import("@angular/core").OutputRef<Connection>;
19
+ readonly onReconnect: import("@angular/core").OutputRef<ReconnectionEvent>;
18
20
  protected isStrictMode: import("@angular/core").Signal<boolean>;
19
21
  startConnection(handle: HandleModel): void;
22
+ startReconnection(handle: HandleModel, oldEdge: EdgeModel): void;
20
23
  validateConnection(handle: HandleModel): void;
21
24
  resetValidateConnection(targetHandle: HandleModel): void;
22
25
  endConnection(): void;
23
26
  static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionControllerDirective, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerDirective, "[onConnect]", never, {}, { "onConnect": "onConnect"; }, never, never, true, never>;
27
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerDirective, "[onConnect], [onReconnect]", never, {}, { "onConnect": "onConnect"; "onReconnect": "onReconnect"; }, never, never, true, never>;
25
28
  }
@@ -4,8 +4,11 @@ export declare class SelectableDirective {
4
4
  private selectionService;
5
5
  private parentEdge;
6
6
  private parentNode;
7
- protected onMousedown(): void;
7
+ private host;
8
+ protected selectOnEvent: import("rxjs").Subscription;
9
+ private select;
8
10
  private entity;
11
+ private getEvent$;
9
12
  static ɵfac: i0.ɵɵFactoryDeclaration<SelectableDirective, never>;
10
13
  static ɵdir: i0.ɵɵDirectiveDeclaration<SelectableDirective, "[selectable]", never, {}, {}, never, never, true, never>;
11
14
  }
@@ -1,6 +1,11 @@
1
+ import { Edge } from './edge.interface';
1
2
  export interface Connection {
2
3
  source: string;
3
4
  target: string;
4
5
  sourceHandle?: string;
5
6
  targetHandle?: string;
6
7
  }
8
+ export interface ReconnectionEvent {
9
+ connection: Connection;
10
+ oldEdge: Edge;
11
+ }
@@ -15,4 +15,5 @@ export interface Edge<T = unknown> extends Connection {
15
15
  start?: Marker;
16
16
  end?: Marker;
17
17
  };
18
+ reconnectable?: boolean | 'source' | 'target';
18
19
  }
@@ -9,11 +9,15 @@ export declare class EdgeModel implements FlowEntity {
9
9
  target: import("@angular/core").WritableSignal<NodeModel<unknown> | undefined>;
10
10
  curve: Curve;
11
11
  type: EdgeType;
12
+ reconnectable: boolean | 'source' | 'target';
12
13
  selected: import("@angular/core").WritableSignal<boolean>;
13
14
  selected$: import("rxjs").Observable<boolean>;
15
+ renderOrder: import("@angular/core").WritableSignal<number>;
14
16
  detached: import("@angular/core").Signal<boolean>;
15
17
  detached$: import("rxjs").Observable<boolean>;
16
18
  path: import("@angular/core").Signal<import("../interfaces/path-data.interface").PathData>;
19
+ sourceHandle: import("@angular/core").Signal<import("./handle.model").HandleModel | null>;
20
+ targetHandle: import("@angular/core").Signal<import("./handle.model").HandleModel | null>;
17
21
  edgeLabels: {
18
22
  [position in EdgeLabelPosition]?: EdgeLabelModel;
19
23
  };
@@ -0,0 +1,10 @@
1
+ import { EdgeModel } from '../models/edge.model';
2
+ import * as i0 from "@angular/core";
3
+ export declare class EdgeRenderingService {
4
+ private flowEntitiesService;
5
+ readonly edges: import("@angular/core").Signal<EdgeModel[]>;
6
+ private maxOrder;
7
+ pull(edge: EdgeModel): void;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<EdgeRenderingService, never>;
9
+ static ɵprov: i0.ɵɵInjectableDeclaration<EdgeRenderingService>;
10
+ }
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class FlowSettingsService {
5
5
  entitiesSelectable: WritableSignal<boolean>;
6
6
  elevateNodesOnSelect: WritableSignal<boolean>;
7
+ elevateEdgesOnSelect: WritableSignal<boolean>;
7
8
  /**
8
9
  * @see {VflowComponent.view}
9
10
  */
@@ -1,6 +1,7 @@
1
1
  import { NodeModel } from '../models/node.model';
2
2
  import { HandleModel } from '../models/handle.model';
3
3
  import { ConnectionInternal } from '../interfaces/connection.internal.interface';
4
+ import { EdgeModel } from '../models/edge.model';
4
5
  import * as i0 from "@angular/core";
5
6
  export interface FlowStatusIdle {
6
7
  state: 'idle';
@@ -20,13 +21,35 @@ export interface FlowStatusConnectionEnd {
20
21
  state: 'connection-end';
21
22
  payload: ConnectionInternal;
22
23
  }
23
- export type FlowStatus = FlowStatusIdle | FlowStatusConnectionStart | FlowStatusConnectionValidation | FlowStatusConnectionEnd;
24
+ export interface FlowStatusReconnectionStart {
25
+ state: 'reconnection-start';
26
+ payload: Omit<ConnectionInternal, 'target' | 'targetHandle'> & {
27
+ oldEdge: EdgeModel;
28
+ };
29
+ }
30
+ export interface FlowStatusReconnectionValidation {
31
+ state: 'reconnection-validation';
32
+ payload: ConnectionInternal & {
33
+ valid: boolean;
34
+ oldEdge: EdgeModel;
35
+ };
36
+ }
37
+ export interface FlowStatusReconnectionEnd {
38
+ state: 'reconnection-end';
39
+ payload: ConnectionInternal & {
40
+ oldEdge: EdgeModel;
41
+ };
42
+ }
43
+ export type FlowStatus = FlowStatusIdle | FlowStatusConnectionStart | FlowStatusConnectionValidation | FlowStatusConnectionEnd | FlowStatusReconnectionStart | FlowStatusReconnectionValidation | FlowStatusReconnectionEnd;
24
44
  export declare class FlowStatusService {
25
45
  readonly status: import("@angular/core").WritableSignal<FlowStatus>;
26
46
  setIdleStatus(): void;
27
47
  setConnectionStartStatus(source: NodeModel, sourceHandle: HandleModel): void;
48
+ setReconnectionStartStatus(source: NodeModel, sourceHandle: HandleModel, oldEdge: EdgeModel): void;
28
49
  setConnectionValidationStatus(valid: boolean, source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel): void;
50
+ setReconnectionValidationStatus(valid: boolean, source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel): void;
29
51
  setConnectionEndStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel): void;
52
+ setReconnectionEndStatus(source: NodeModel, target: NodeModel, sourceHandle: HandleModel, targetHandle: HandleModel, oldEdge: EdgeModel): void;
30
53
  static ɵfac: i0.ɵɵFactoryDeclaration<FlowStatusService, never>;
31
54
  static ɵprov: i0.ɵɵInjectableDeclaration<FlowStatusService>;
32
55
  }
@@ -34,6 +34,7 @@ export declare class VflowMockComponent implements AsInterface<VflowComponent>,
34
34
  number
35
35
  ];
36
36
  elevateNodesOnSelect: boolean;
37
+ elevateEdgesOnSelect: boolean;
37
38
  readonly onComponentNodeEvent: import("@angular/core").OutputEmitterRef<any>;
38
39
  protected nodeTemplateDirective: import("@angular/core").Signal<NodeHtmlTemplateMockDirective | undefined>;
39
40
  protected groupNodeTemplateDirective: import("@angular/core").Signal<GroupNodeTemplateMockDirective | undefined>;
@@ -56,6 +57,6 @@ export declare class VflowMockComponent implements AsInterface<VflowComponent>,
56
57
  getDetachedEdges(): Edge[];
57
58
  protected createSignal<T>(value: T): WritableSignal<T>;
58
59
  static ɵfac: i0.ɵɵFactoryDeclaration<VflowMockComponent, never>;
59
- static ɵcmp: i0.ɵɵComponentDeclaration<VflowMockComponent, "vflow", never, { "nodes": { "alias": "nodes"; "required": true; }; "edges": { "alias": "edges"; "required": false; }; "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; "isSignal": true; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; }, { "onComponentNodeEvent": "onComponentNodeEvent"; }, ["nodeTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], ["*"], true, never>;
60
+ static ɵcmp: i0.ɵɵComponentDeclaration<VflowMockComponent, "vflow", never, { "nodes": { "alias": "nodes"; "required": true; }; "edges": { "alias": "edges"; "required": false; }; "view": { "alias": "view"; "required": false; }; "minZoom": { "alias": "minZoom"; "required": false; }; "maxZoom": { "alias": "maxZoom"; "required": false; }; "background": { "alias": "background"; "required": false; }; "optimization": { "alias": "optimization"; "required": false; "isSignal": true; }; "entitiesSelectable": { "alias": "entitiesSelectable"; "required": false; }; "keyboardShortcuts": { "alias": "keyboardShortcuts"; "required": false; }; "connection": { "alias": "connection"; "required": false; }; "snapGrid": { "alias": "snapGrid"; "required": false; }; "elevateNodesOnSelect": { "alias": "elevateNodesOnSelect"; "required": false; }; "elevateEdgesOnSelect": { "alias": "elevateEdgesOnSelect"; "required": false; }; }, { "onComponentNodeEvent": "onComponentNodeEvent"; }, ["nodeTemplateDirective", "groupNodeTemplateDirective", "edgeTemplateDirective", "edgeLabelHtmlDirective", "connectionTemplateDirective"], ["*"], true, never>;
60
61
  static ngAcceptInputType_connection: i1.ConnectionSettings;
61
62
  }
@@ -1,14 +1,16 @@
1
- import { Connection } from '../../interfaces/connection.interface';
1
+ import { Connection, ReconnectionEvent } from '../../interfaces/connection.interface';
2
2
  import { AsInterface } from '../types';
3
3
  import { ConnectionControllerDirective } from '../../directives/connection-controller.directive';
4
4
  import { HandleModel } from '../../models/handle.model';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class ConnectionControllerMockDirective implements AsInterface<ConnectionControllerDirective> {
7
7
  readonly onConnect: import("@angular/core").OutputEmitterRef<Connection>;
8
+ readonly onReconnect: import("@angular/core").OutputEmitterRef<ReconnectionEvent>;
8
9
  startConnection(handle: HandleModel): void;
10
+ startReconnection(handle: HandleModel): void;
9
11
  validateConnection(handle: HandleModel): void;
10
12
  resetValidateConnection(targetHandle: HandleModel): void;
11
13
  endConnection(): void;
12
14
  static ɵfac: i0.ɵɵFactoryDeclaration<ConnectionControllerMockDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerMockDirective, "[onConnect]", never, {}, { "onConnect": "onConnect"; }, never, never, true, never>;
15
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ConnectionControllerMockDirective, "[onConnect]", never, {}, { "onConnect": "onConnect"; "onReconnect": "onReconnect"; }, never, never, true, never>;
14
16
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-vflow",
3
- "version": "1.4.2",
3
+ "version": "1.5.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngx-vflow.org/",
6
6
  "author": "Artem Mangilev",