ngx-vflow 0.15.0 → 0.16.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.
@@ -9,6 +9,19 @@ export declare class BackgroundComponent {
9
9
  protected y: import("@angular/core").Signal<number>;
10
10
  protected patternColor: import("@angular/core").Signal<string>;
11
11
  protected patternSize: import("@angular/core").Signal<number>;
12
+ protected bgImageSrc: import("@angular/core").Signal<string>;
13
+ protected imageSize: import("@angular/core").Signal<{
14
+ width: number;
15
+ height: number;
16
+ } | {
17
+ width: number;
18
+ height: number;
19
+ }>;
20
+ protected scaledImageWidth: import("@angular/core").Signal<number>;
21
+ protected scaledImageHeight: import("@angular/core").Signal<number>;
22
+ protected imageX: import("@angular/core").Signal<number>;
23
+ protected imageY: import("@angular/core").Signal<number>;
24
+ protected repeated: import("@angular/core").Signal<boolean>;
12
25
  protected patternId: string;
13
26
  protected patternUrl: string;
14
27
  constructor();
@@ -80,6 +80,8 @@ export declare class VflowComponent implements OnInit {
80
80
  */
81
81
  set nodes(newNodes: Node[] | DynamicNode[]);
82
82
  protected nodeModels: Signal<NodeModel<unknown>[]>;
83
+ protected groups: Signal<NodeModel<unknown>[]>;
84
+ protected nonGroups: Signal<NodeModel<unknown>[]>;
83
85
  /**
84
86
  * Edges to render
85
87
  */
@@ -2,7 +2,7 @@ import { Connection } from "./connection.interface";
2
2
  import { EdgeLabel, EdgeLabelPosition } from "./edge-label.interface";
3
3
  import { Marker } from "./marker.interface";
4
4
  export type EdgeType = 'default' | 'template';
5
- export type Curve = 'straight' | 'bezier';
5
+ export type Curve = 'straight' | 'bezier' | 'smooth-step' | 'step';
6
6
  export interface Edge<T = unknown> extends Connection {
7
7
  id: string;
8
8
  type?: EdgeType;
@@ -1,3 +1,16 @@
1
1
  export interface Optimization {
2
+ /**
3
+ * If true, compute the right nodes order by z-axis inside groups on initial render.
4
+ *
5
+ * @default true
6
+ * @deprecated
7
+ */
2
8
  computeLayersOnInit: boolean;
9
+ /**
10
+ * If true, the layer with groups will be placed behind the edges layer.
11
+ * This approach fixes the issue when you can't select an edge inside group.
12
+ *
13
+ * @default false
14
+ */
15
+ detachedGroupsLayer: boolean;
3
16
  }
@@ -0,0 +1,5 @@
1
+ import { PathData } from '../../interfaces/path-data.interface';
2
+ import { Point } from '../../interfaces/point.interface';
3
+ import { Position } from '../../types/position.type';
4
+ export declare function getEdgeCenter(source: Point, target: Point): [number, number, number, number];
5
+ export declare function smoothStepPath(source: Point, target: Point, sourcePosition: Position, targetPosition: Position, borderRadius?: number): PathData;
@@ -3,6 +3,8 @@ import * as i0 from "@angular/core";
3
3
  export declare class NodeRenderingService {
4
4
  private flowEntitiesService;
5
5
  readonly nodes: import("@angular/core").Signal<NodeModel<unknown>[]>;
6
+ readonly groups: import("@angular/core").Signal<NodeModel<unknown>[]>;
7
+ readonly nonGroups: import("@angular/core").Signal<NodeModel<unknown>[]>;
6
8
  private maxOrder;
7
9
  pullNode(node: NodeModel): void;
8
10
  static ɵfac: i0.ɵɵFactoryDeclaration<NodeRenderingService, never>;
@@ -1,4 +1,4 @@
1
- export type Background = ColorBackground | DotsBackground;
1
+ export type Background = ColorBackground | DotsBackground | ImageBackground;
2
2
  export interface ColorBackground {
3
3
  type: 'solid';
4
4
  color: string;
@@ -22,3 +22,26 @@ export interface DotsBackground {
22
22
  */
23
23
  backgroundColor?: string;
24
24
  }
25
+ export interface ImageBackground {
26
+ type: 'image';
27
+ /**
28
+ * Path to image. Passes as a href to this element:
29
+ *
30
+ * https://developer.mozilla.org/en-US/docs/Web/SVG/Element/image
31
+ */
32
+ src: string;
33
+ /**
34
+ * If true, image will be fixed on the background (not moving with the flow, zoom also doesn't affect it)
35
+ */
36
+ fixed?: boolean;
37
+ /**
38
+ * If true, image will be repeated
39
+ */
40
+ repeat?: boolean;
41
+ /**
42
+ * Scale relative to natural image size.
43
+ *
44
+ * For example, if image is 100x100 and scale is 0.5, it will be rendered as 50x50
45
+ */
46
+ scale?: number;
47
+ }
@@ -0,0 +1,2 @@
1
+ import { NodeModel } from "../models/node.model";
2
+ export declare function isGroupNode(node: NodeModel): boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ngx-vflow",
3
- "version": "0.15.0",
3
+ "version": "0.16.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://www.ngx-vflow.org/",
6
6
  "author": "Artem Mangilev",
@@ -16,8 +16,8 @@
16
16
  "type": "git"
17
17
  },
18
18
  "peerDependencies": {
19
- "@angular/common": "^16.2.0 || 17.x || 18.x",
20
- "@angular/core": "^16.2.0 || 17.x || 18.x",
19
+ "@angular/common": "^16.2.0 || 17.x || 18.x || 19.x",
20
+ "@angular/core": "^16.2.0 || 17.x || 18.x || 19.x",
21
21
  "d3-drag": "^3.0.0",
22
22
  "d3-selection": "^3.0.0",
23
23
  "d3-zoom": "^3.0.0",