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.
- package/README.md +35 -69
- package/fesm2022/ngx-vflow-testing.mjs +77 -67
- package/fesm2022/ngx-vflow-testing.mjs.map +1 -1
- package/fesm2022/ngx-vflow.mjs +926 -559
- package/fesm2022/ngx-vflow.mjs.map +1 -1
- package/lib/vflow/components/custom-node-base/custom-node-base.component.d.ts +1 -1
- package/lib/vflow/components/vflow/vflow.component.d.ts +18 -9
- package/lib/vflow/directives/auto-pan.directive.d.ts +16 -0
- package/lib/vflow/directives/changes-controller.directive.d.ts +13 -87
- package/lib/vflow/directives/connection-controller.directive.d.ts +8 -10
- package/lib/vflow/directives/space-point-context.directive.d.ts +2 -1
- package/lib/vflow/interfaces/component-node-event.interface.d.ts +1 -2
- package/lib/vflow/interfaces/connection-events.interface.d.ts +66 -0
- package/lib/vflow/interfaces/connection-settings.interface.d.ts +7 -1
- package/lib/vflow/interfaces/connection.interface.d.ts +0 -5
- package/lib/vflow/interfaces/curve-factory.interface.d.ts +2 -2
- package/lib/vflow/interfaces/edge-label.interface.d.ts +0 -4
- package/lib/vflow/interfaces/edge.interface.d.ts +36 -8
- package/lib/vflow/interfaces/node.interface.d.ts +44 -63
- package/lib/vflow/interfaces/selection-strategy.interface.d.ts +16 -0
- package/lib/vflow/interfaces/template-context.interface.d.ts +8 -3
- package/lib/vflow/models/connection.model.d.ts +1 -1
- package/lib/vflow/models/edge.model.d.ts +20 -23
- package/lib/vflow/models/handle.model.d.ts +1 -1
- package/lib/vflow/models/node.model.d.ts +4 -7
- package/lib/vflow/public-components/custom-node/custom-node.component.d.ts +1 -1
- package/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.d.ts +2 -1
- package/lib/vflow/public-components/minimap/minimap.component.d.ts +1 -1
- package/lib/vflow/services/draggable.service.d.ts +3 -0
- package/lib/vflow/services/flow-entities.service.d.ts +2 -2
- package/lib/vflow/services/flow-settings.service.d.ts +3 -0
- package/lib/vflow/services/flow-status.service.d.ts +35 -7
- package/lib/vflow/services/selection.service.d.ts +4 -1
- package/lib/vflow/strategies/default-selection.strategy.d.ts +6 -0
- package/lib/vflow/strategies/manual-selection.strategy.d.ts +5 -0
- package/lib/vflow/types/selection-mode.type.d.ts +1 -0
- package/lib/vflow/types/unwrap-signal.type.d.ts +4 -0
- package/lib/vflow/utils/adjust-direction.d.ts +2 -6
- package/lib/vflow/utils/identity-checker/reference-identity-checker.d.ts +2 -2
- package/lib/vflow/utils/is-vflow-component.d.ts +0 -2
- package/lib/vflow/utils/signals/to-lazy-signal.d.ts +4 -4
- package/package.json +3 -7
- package/public-api.d.ts +3 -2
- package/testing/component-mocks/vflow-mock.component.d.ts +8 -6
- package/testing/directive-mocks/connection-controller-mock.directive.d.ts +8 -6
- package/esm2022/lib/vflow/components/alignment-helper/alignment-helper.component.mjs +0 -103
- package/esm2022/lib/vflow/components/background/background.component.mjs +0 -121
- package/esm2022/lib/vflow/components/connection/connection.component.mjs +0 -157
- package/esm2022/lib/vflow/components/custom-node-base/custom-node-base.component.mjs +0 -57
- package/esm2022/lib/vflow/components/default-node/default-node.component.mjs +0 -16
- package/esm2022/lib/vflow/components/defs/defs.component.mjs +0 -16
- package/esm2022/lib/vflow/components/edge/edge.component.mjs +0 -54
- package/esm2022/lib/vflow/components/edge-label/edge-label.component.mjs +0 -76
- package/esm2022/lib/vflow/components/node/node.component.mjs +0 -107
- package/esm2022/lib/vflow/components/preview-flow/draw-node.mjs +0 -100
- package/esm2022/lib/vflow/components/preview-flow/preview-flow.component.mjs +0 -62
- package/esm2022/lib/vflow/components/vflow/vflow.component.mjs +0 -437
- package/esm2022/lib/vflow/constants/magic-number-to-fix-glitch-in-chrome.constant.mjs +0 -4
- package/esm2022/lib/vflow/decorators/microtask.decorator.mjs +0 -11
- package/esm2022/lib/vflow/directives/changes-controller.directive.mjs +0 -165
- package/esm2022/lib/vflow/directives/connection-controller.directive.mjs +0 -145
- package/esm2022/lib/vflow/directives/drag-handle.directive.mjs +0 -28
- package/esm2022/lib/vflow/directives/flow-size-controller.directive.mjs +0 -40
- package/esm2022/lib/vflow/directives/handle-size-controller.directive.mjs +0 -41
- package/esm2022/lib/vflow/directives/map-context.directive.mjs +0 -116
- package/esm2022/lib/vflow/directives/node-handles-controller.directive.mjs +0 -33
- package/esm2022/lib/vflow/directives/node-resize-controller.directive.mjs +0 -37
- package/esm2022/lib/vflow/directives/pointer.directive.mjs +0 -84
- package/esm2022/lib/vflow/directives/reference.directive.mjs +0 -17
- package/esm2022/lib/vflow/directives/root-pointer.directive.mjs +0 -58
- package/esm2022/lib/vflow/directives/root-svg-context.directive.mjs +0 -35
- package/esm2022/lib/vflow/directives/selectable.directive.mjs +0 -48
- package/esm2022/lib/vflow/directives/space-point-context.directive.mjs +0 -42
- package/esm2022/lib/vflow/directives/template.directive.mjs +0 -119
- package/esm2022/lib/vflow/interfaces/alignment-helper-settings.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/box.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/component-node-event.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection-settings.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/connection.internal.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/contextable.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/curve-factory.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/edge-label.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/edge.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/fit-view-options.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/flow-entity.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/intersecting-nodes-options.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/marker.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/node-preview.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/node.interface.mjs +0 -53
- package/esm2022/lib/vflow/interfaces/optimization.interface.mjs +0 -7
- package/esm2022/lib/vflow/interfaces/point.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/rect.mjs +0 -10
- package/esm2022/lib/vflow/interfaces/template-context.interface.mjs +0 -2
- package/esm2022/lib/vflow/interfaces/viewport.interface.mjs +0 -2
- package/esm2022/lib/vflow/math/edge-path/bezier-path.mjs +0 -66
- package/esm2022/lib/vflow/math/edge-path/smooth-step-path.mjs +0 -226
- package/esm2022/lib/vflow/math/edge-path/straigh-path.mjs +0 -12
- package/esm2022/lib/vflow/math/point-on-line-by-ratio.mjs +0 -12
- package/esm2022/lib/vflow/models/connection.model.mjs +0 -31
- package/esm2022/lib/vflow/models/edge-label.model.mjs +0 -8
- package/esm2022/lib/vflow/models/edge.model.mjs +0 -208
- package/esm2022/lib/vflow/models/handle.model.mjs +0 -98
- package/esm2022/lib/vflow/models/minimap.model.mjs +0 -7
- package/esm2022/lib/vflow/models/node.model.mjs +0 -181
- package/esm2022/lib/vflow/models/toolbar.model.mjs +0 -36
- package/esm2022/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.mjs +0 -25
- package/esm2022/lib/vflow/public-components/custom-node/custom-node.component.mjs +0 -24
- package/esm2022/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.mjs +0 -29
- package/esm2022/lib/vflow/public-components/handle/handle.component.mjs +0 -53
- package/esm2022/lib/vflow/public-components/minimap/minimap.component.mjs +0 -108
- package/esm2022/lib/vflow/public-components/node-toolbar/node-toolbar.component.mjs +0 -73
- package/esm2022/lib/vflow/public-components/resizable/resizable.component.mjs +0 -272
- package/esm2022/lib/vflow/services/component-event-bus.service.mjs +0 -18
- package/esm2022/lib/vflow/services/draggable.service.mjs +0 -124
- package/esm2022/lib/vflow/services/edge-changes.service.mjs +0 -43
- package/esm2022/lib/vflow/services/edge-rendering.service.mjs +0 -40
- package/esm2022/lib/vflow/services/flow-entities.service.mjs +0 -56
- package/esm2022/lib/vflow/services/flow-rendering.service.mjs +0 -41
- package/esm2022/lib/vflow/services/flow-settings.service.mjs +0 -33
- package/esm2022/lib/vflow/services/flow-status.service.mjs +0 -49
- package/esm2022/lib/vflow/services/handle.service.mjs +0 -30
- package/esm2022/lib/vflow/services/keyboard.service.mjs +0 -47
- package/esm2022/lib/vflow/services/node-accessor.service.mjs +0 -16
- package/esm2022/lib/vflow/services/node-changes.service.mjs +0 -41
- package/esm2022/lib/vflow/services/node-rendering.service.mjs +0 -66
- package/esm2022/lib/vflow/services/overlays.service.mjs +0 -35
- package/esm2022/lib/vflow/services/preview-flow-render-strategy.service.mjs +0 -21
- package/esm2022/lib/vflow/services/selection.service.mjs +0 -54
- package/esm2022/lib/vflow/services/viewport.service.mjs +0 -64
- package/esm2022/lib/vflow/types/background.type.mjs +0 -2
- package/esm2022/lib/vflow/types/connection-mode.type.mjs +0 -2
- package/esm2022/lib/vflow/types/edge-change.type.mjs +0 -2
- package/esm2022/lib/vflow/types/handle-type.type.mjs +0 -2
- package/esm2022/lib/vflow/types/keyboard-action.type.mjs +0 -2
- package/esm2022/lib/vflow/types/node-change.type.mjs +0 -2
- package/esm2022/lib/vflow/types/position.type.mjs +0 -2
- package/esm2022/lib/vflow/types/viewport-change-type.type.mjs +0 -2
- package/esm2022/lib/vflow/utils/add-nodes-to-edges.mjs +0 -11
- package/esm2022/lib/vflow/utils/adjust-direction.mjs +0 -30
- package/esm2022/lib/vflow/utils/align-number.mjs +0 -4
- package/esm2022/lib/vflow/utils/assert-injector.mjs +0 -27
- package/esm2022/lib/vflow/utils/event.mjs +0 -4
- package/esm2022/lib/vflow/utils/get-os.mjs +0 -24
- package/esm2022/lib/vflow/utils/get-overlapping-area.mjs +0 -6
- package/esm2022/lib/vflow/utils/get-space-points.mjs +0 -25
- package/esm2022/lib/vflow/utils/hash.mjs +0 -7
- package/esm2022/lib/vflow/utils/id.mjs +0 -5
- package/esm2022/lib/vflow/utils/identity-checker/reference-identity-checker.mjs +0 -28
- package/esm2022/lib/vflow/utils/is-callable.mjs +0 -10
- package/esm2022/lib/vflow/utils/is-defined.mjs +0 -4
- package/esm2022/lib/vflow/utils/is-group-node.mjs +0 -4
- package/esm2022/lib/vflow/utils/is-vflow-component.mjs +0 -9
- package/esm2022/lib/vflow/utils/nodes.mjs +0 -60
- package/esm2022/lib/vflow/utils/resizable.mjs +0 -11
- package/esm2022/lib/vflow/utils/round.mjs +0 -2
- package/esm2022/lib/vflow/utils/signals/extended-computed.mjs +0 -15
- package/esm2022/lib/vflow/utils/signals/to-lazy-signal.mjs +0 -35
- package/esm2022/lib/vflow/utils/to-unified-node.mjs +0 -24
- package/esm2022/lib/vflow/utils/transform-background.mjs +0 -4
- package/esm2022/lib/vflow/utils/viewport.mjs +0 -51
- package/esm2022/lib/vflow/vflow.mjs +0 -29
- package/esm2022/ngx-vflow.mjs +0 -5
- package/esm2022/public-api.mjs +0 -55
- package/esm2022/testing/component-mocks/custom-template-edge-mock.component.mjs +0 -16
- package/esm2022/testing/component-mocks/handle-mock.component.mjs +0 -26
- package/esm2022/testing/component-mocks/minimap-mock.component.mjs +0 -24
- package/esm2022/testing/component-mocks/node-toolbar-mock.component.mjs +0 -23
- package/esm2022/testing/component-mocks/resizable-mock.component.mjs +0 -27
- package/esm2022/testing/component-mocks/vflow-mock.component.mjs +0 -299
- package/esm2022/testing/directive-mocks/connection-controller-mock.directive.mjs +0 -29
- package/esm2022/testing/directive-mocks/drag-handle-mock.directive.mjs +0 -11
- package/esm2022/testing/directive-mocks/selectable-mock.directive.mjs +0 -14
- package/esm2022/testing/directive-mocks/template-mock.directive.mjs +0 -101
- package/esm2022/testing/ngx-vflow-testing.mjs +0 -5
- package/esm2022/testing/provide-custom-node-mocks.mjs +0 -60
- package/esm2022/testing/public-api.mjs +0 -13
- package/esm2022/testing/types.mjs +0 -2
- package/esm2022/testing/vflow-mocks.mjs +0 -28
- package/lib/vflow/public-components/custom-dynamic-node/custom-dynamic-node.component.d.ts +0 -13
- 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
|
|
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
|
|
97
|
-
export declare function
|
|
98
|
-
export declare function
|
|
99
|
-
export declare function
|
|
100
|
-
export declare function
|
|
101
|
-
export declare function
|
|
102
|
-
export
|
|
103
|
-
export declare function
|
|
104
|
-
export declare function
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
export declare function
|
|
108
|
-
|
|
109
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
38
|
+
node: TemplateGroupNode;
|
|
39
|
+
data: Signal<any>;
|
|
35
40
|
selected: Signal<boolean>;
|
|
36
41
|
width: Signal<number>;
|
|
37
42
|
height: Signal<number>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
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 |
|
|
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
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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
|
|
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 {
|
|
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
|
|
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
|
|
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>
|
|
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,
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CustomNodeComponent<any>, never, never, { "node": { "alias": "node"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
13
|
}
|
package/lib/vflow/public-components/custom-template-edge/custom-template-edge.component.d.ts
CHANGED
|
@@ -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<
|
|
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
|
|
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 {
|
|
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[]
|
|
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
|
|
21
|
-
state: 'connection-
|
|
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
|
|
38
|
-
state: 'reconnection-
|
|
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 |
|
|
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
|
-
|
|
64
|
-
|
|
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
|
|
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 @@
|
|
|
1
|
+
export type SelectionMode = 'default' | 'manual';
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { ConnectionInternal } from '../interfaces/connection.internal.interface';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
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 {
|
|
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[]
|
|
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": "
|
|
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": "^
|
|
20
|
-
"@angular/core": "^
|
|
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
|
}
|