@foblex/flow-dagre-layout 18.5.0 → 18.6.1
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/fesm2022/foblex-flow-dagre-layout.mjs +3 -3
- package/fesm2022/foblex-flow-dagre-layout.mjs.map +1 -1
- package/index.d.ts +27 -5
- package/package.json +1 -3
- package/esm2022/foblex-flow-dagre-layout.mjs +0 -5
- package/esm2022/lib/configurations/default-dagre-layout-engine-options.mjs +0 -11
- package/esm2022/lib/configurations/index.mjs +0 -2
- package/esm2022/lib/engines/dagre-layout-engine.mjs +0 -93
- package/esm2022/lib/engines/index.mjs +0 -2
- package/esm2022/lib/enums/e-dagre-layout-algorithm.mjs +0 -7
- package/esm2022/lib/enums/index.mjs +0 -2
- package/esm2022/lib/index.mjs +0 -5
- package/esm2022/lib/models/i-dagre-layout-engine-options.mjs +0 -2
- package/esm2022/lib/models/index.mjs +0 -2
- package/esm2022/public-api.mjs +0 -2
- package/lib/configurations/default-dagre-layout-engine-options.d.ts +0 -2
- package/lib/configurations/index.d.ts +0 -1
- package/lib/engines/dagre-layout-engine.d.ts +0 -13
- package/lib/engines/index.d.ts +0 -1
- package/lib/enums/e-dagre-layout-algorithm.d.ts +0 -5
- package/lib/enums/index.d.ts +0 -1
- package/lib/index.d.ts +0 -4
- package/lib/models/i-dagre-layout-engine-options.d.ts +0 -4
- package/lib/models/index.d.ts +0 -1
- package/public-api.d.ts +0 -1
|
@@ -98,10 +98,10 @@ class DagreLayoutEngine extends FLayoutEngine {
|
|
|
98
98
|
return 'TB';
|
|
99
99
|
}
|
|
100
100
|
}
|
|
101
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
102
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
101
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DagreLayoutEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
102
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DagreLayoutEngine });
|
|
103
103
|
}
|
|
104
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
104
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: DagreLayoutEngine, decorators: [{
|
|
105
105
|
type: Injectable
|
|
106
106
|
}], ctorParameters: () => [] });
|
|
107
107
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"foblex-flow-dagre-layout.mjs","sources":["../../../libs/f-layout/dagre/src/lib/enums/e-dagre-layout-algorithm.ts","../../../libs/f-layout/dagre/src/lib/configurations/default-dagre-layout-engine-options.ts","../../../libs/f-layout/dagre/src/lib/engines/dagre-layout-engine.ts","../../../libs/f-layout/dagre/src/foblex-flow-dagre-layout.ts"],"sourcesContent":["export enum EDagreLayoutAlgorithm {\n NETWORK_SIMPLEX = 'network-simplex',\n TIGHT_TREE = 'tight-tree',\n LONGEST_PATH = 'longest-path',\n}\n","import { SizeExtensions } from '@foblex/2d';\nimport { EFLayoutDirection } from '@foblex/flow';\nimport { EDagreLayoutAlgorithm } from '../enums';\nimport { IDagreLayoutEngineOptions } from '../models';\n\nexport const DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS: IDagreLayoutEngineOptions = {\n direction: EFLayoutDirection.TOP_BOTTOM,\n nodeGap: 48,\n layerGap: 64,\n algorithm: EDagreLayoutAlgorithm.NETWORK_SIMPLEX,\n defaultNodeSize: SizeExtensions.initialize(120, 72),\n};\n","import { Injectable } from '@angular/core';\nimport { PointExtensions, SizeExtensions } from '@foblex/2d';\nimport * as dagre from 'dagre';\nimport { graphlib } from 'dagre';\nimport {\n EFLayoutDirection,\n FLayoutEngine,\n IFLayoutCalculationOptions,\n IFLayoutConnection,\n IFLayoutNode,\n IFLayoutResult,\n mergeLayoutNodes,\n} from '@foblex/flow';\nimport { DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS } from '../configurations';\nimport { EDagreLayoutAlgorithm } from '../enums';\nimport { IDagreLayoutEngineOptions } from '../models';\n\n@Injectable()\nexport class DagreLayoutEngine extends FLayoutEngine<IDagreLayoutEngineOptions> {\n public constructor() {\n super(DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS);\n }\n\n protected override mergeOptions(\n currentOptions: IDagreLayoutEngineOptions,\n nextOptions: Partial<IDagreLayoutEngineOptions> = {},\n ): IDagreLayoutEngineOptions {\n return {\n ...currentOptions,\n ...nextOptions,\n defaultNodeSize: nextOptions.defaultNodeSize\n ? SizeExtensions.initialize(\n nextOptions.defaultNodeSize.width,\n nextOptions.defaultNodeSize.height,\n )\n : SizeExtensions.initialize(\n currentOptions.defaultNodeSize.width,\n currentOptions.defaultNodeSize.height,\n ),\n };\n }\n\n public override async calculate(\n nodes: IFLayoutNode[],\n connections: IFLayoutConnection[],\n options?: IFLayoutCalculationOptions<IDagreLayoutEngineOptions>,\n ): Promise<IFLayoutResult> {\n const layoutOptions = this.resolveLayoutOptions(options);\n const graph = this._buildGraph(nodes, connections, layoutOptions);\n const positions = new Map<string, { x: number; y: number }>();\n\n dagre.layout(graph);\n\n graph.nodes().forEach((nodeId) => {\n const graphNode = graph.node(nodeId);\n const sourceNode = nodes.find((node) => node.id === nodeId);\n\n if (!graphNode || !sourceNode) {\n return;\n }\n\n const size = sourceNode.size ?? layoutOptions.defaultNodeSize;\n\n positions.set(\n nodeId,\n PointExtensions.initialize(graphNode.x - size.width / 2, graphNode.y - size.height / 2),\n );\n });\n\n return {\n nodes: mergeLayoutNodes(nodes, positions),\n };\n }\n\n private _buildGraph(\n nodes: IFLayoutNode[],\n connections: IFLayoutConnection[],\n options: IDagreLayoutEngineOptions,\n ): graphlib.Graph {\n const graph = new dagre.graphlib.Graph();\n\n graph.setDefaultEdgeLabel(() => ({}));\n graph.setGraph({\n rankdir: this._mapDirection(options.direction),\n nodesep: options.nodeGap,\n ranksep: options.layerGap,\n ranker: this._mapAlgorithm(options.algorithm),\n });\n\n nodes.forEach((node) => {\n const size = node.size ?? options.defaultNodeSize;\n\n graph.setNode(node.id, {\n width: size.width,\n height: size.height,\n });\n });\n\n connections.forEach((connection) => {\n if (!graph.hasNode(connection.source) || !graph.hasNode(connection.target)) {\n return;\n }\n\n graph.setEdge(connection.source, connection.target, {});\n });\n\n return graph;\n }\n\n private _mapAlgorithm(\n algorithm: EDagreLayoutAlgorithm,\n ): 'network-simplex' | 'tight-tree' | 'longest-path' {\n switch (algorithm) {\n case EDagreLayoutAlgorithm.TIGHT_TREE:\n return 'tight-tree';\n case EDagreLayoutAlgorithm.LONGEST_PATH:\n return 'longest-path';\n case EDagreLayoutAlgorithm.NETWORK_SIMPLEX:\n default:\n return 'network-simplex';\n }\n }\n\n private _mapDirection(direction: EFLayoutDirection): 'TB' | 'BT' | 'LR' | 'RL' {\n switch (direction) {\n case EFLayoutDirection.BOTTOM_TOP:\n return 'BT';\n case EFLayoutDirection.LEFT_RIGHT:\n return 'LR';\n case EFLayoutDirection.RIGHT_LEFT:\n return 'RL';\n case EFLayoutDirection.TOP_BOTTOM:\n default:\n return 'TB';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;IAAY
|
|
1
|
+
{"version":3,"file":"foblex-flow-dagre-layout.mjs","sources":["../../../libs/f-layout/dagre/src/lib/enums/e-dagre-layout-algorithm.ts","../../../libs/f-layout/dagre/src/lib/configurations/default-dagre-layout-engine-options.ts","../../../libs/f-layout/dagre/src/lib/engines/dagre-layout-engine.ts","../../../libs/f-layout/dagre/src/foblex-flow-dagre-layout.ts"],"sourcesContent":["export enum EDagreLayoutAlgorithm {\n NETWORK_SIMPLEX = 'network-simplex',\n TIGHT_TREE = 'tight-tree',\n LONGEST_PATH = 'longest-path',\n}\n","import { SizeExtensions } from '@foblex/2d';\nimport { EFLayoutDirection } from '@foblex/flow';\nimport { EDagreLayoutAlgorithm } from '../enums';\nimport { IDagreLayoutEngineOptions } from '../models';\n\nexport const DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS: IDagreLayoutEngineOptions = {\n direction: EFLayoutDirection.TOP_BOTTOM,\n nodeGap: 48,\n layerGap: 64,\n algorithm: EDagreLayoutAlgorithm.NETWORK_SIMPLEX,\n defaultNodeSize: SizeExtensions.initialize(120, 72),\n};\n","import { Injectable } from '@angular/core';\nimport { PointExtensions, SizeExtensions } from '@foblex/2d';\nimport * as dagre from 'dagre';\nimport { graphlib } from 'dagre';\nimport {\n EFLayoutDirection,\n FLayoutEngine,\n IFLayoutCalculationOptions,\n IFLayoutConnection,\n IFLayoutNode,\n IFLayoutResult,\n mergeLayoutNodes,\n} from '@foblex/flow';\nimport { DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS } from '../configurations';\nimport { EDagreLayoutAlgorithm } from '../enums';\nimport { IDagreLayoutEngineOptions } from '../models';\n\n@Injectable()\nexport class DagreLayoutEngine extends FLayoutEngine<IDagreLayoutEngineOptions> {\n public constructor() {\n super(DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS);\n }\n\n protected override mergeOptions(\n currentOptions: IDagreLayoutEngineOptions,\n nextOptions: Partial<IDagreLayoutEngineOptions> = {},\n ): IDagreLayoutEngineOptions {\n return {\n ...currentOptions,\n ...nextOptions,\n defaultNodeSize: nextOptions.defaultNodeSize\n ? SizeExtensions.initialize(\n nextOptions.defaultNodeSize.width,\n nextOptions.defaultNodeSize.height,\n )\n : SizeExtensions.initialize(\n currentOptions.defaultNodeSize.width,\n currentOptions.defaultNodeSize.height,\n ),\n };\n }\n\n public override async calculate(\n nodes: IFLayoutNode[],\n connections: IFLayoutConnection[],\n options?: IFLayoutCalculationOptions<IDagreLayoutEngineOptions>,\n ): Promise<IFLayoutResult> {\n const layoutOptions = this.resolveLayoutOptions(options);\n const graph = this._buildGraph(nodes, connections, layoutOptions);\n const positions = new Map<string, { x: number; y: number }>();\n\n dagre.layout(graph);\n\n graph.nodes().forEach((nodeId) => {\n const graphNode = graph.node(nodeId);\n const sourceNode = nodes.find((node) => node.id === nodeId);\n\n if (!graphNode || !sourceNode) {\n return;\n }\n\n const size = sourceNode.size ?? layoutOptions.defaultNodeSize;\n\n positions.set(\n nodeId,\n PointExtensions.initialize(graphNode.x - size.width / 2, graphNode.y - size.height / 2),\n );\n });\n\n return {\n nodes: mergeLayoutNodes(nodes, positions),\n };\n }\n\n private _buildGraph(\n nodes: IFLayoutNode[],\n connections: IFLayoutConnection[],\n options: IDagreLayoutEngineOptions,\n ): graphlib.Graph {\n const graph = new dagre.graphlib.Graph();\n\n graph.setDefaultEdgeLabel(() => ({}));\n graph.setGraph({\n rankdir: this._mapDirection(options.direction),\n nodesep: options.nodeGap,\n ranksep: options.layerGap,\n ranker: this._mapAlgorithm(options.algorithm),\n });\n\n nodes.forEach((node) => {\n const size = node.size ?? options.defaultNodeSize;\n\n graph.setNode(node.id, {\n width: size.width,\n height: size.height,\n });\n });\n\n connections.forEach((connection) => {\n if (!graph.hasNode(connection.source) || !graph.hasNode(connection.target)) {\n return;\n }\n\n graph.setEdge(connection.source, connection.target, {});\n });\n\n return graph;\n }\n\n private _mapAlgorithm(\n algorithm: EDagreLayoutAlgorithm,\n ): 'network-simplex' | 'tight-tree' | 'longest-path' {\n switch (algorithm) {\n case EDagreLayoutAlgorithm.TIGHT_TREE:\n return 'tight-tree';\n case EDagreLayoutAlgorithm.LONGEST_PATH:\n return 'longest-path';\n case EDagreLayoutAlgorithm.NETWORK_SIMPLEX:\n default:\n return 'network-simplex';\n }\n }\n\n private _mapDirection(direction: EFLayoutDirection): 'TB' | 'BT' | 'LR' | 'RL' {\n switch (direction) {\n case EFLayoutDirection.BOTTOM_TOP:\n return 'BT';\n case EFLayoutDirection.LEFT_RIGHT:\n return 'LR';\n case EFLayoutDirection.RIGHT_LEFT:\n return 'RL';\n case EFLayoutDirection.TOP_BOTTOM:\n default:\n return 'TB';\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
*
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { IFLayoutAlgorithmOptions, FLayoutEngine, IFLayoutNode, IFLayoutConnection, IFLayoutCalculationOptions, IFLayoutResult } from '@foblex/flow';
|
|
2
|
+
import * as i0 from '@angular/core';
|
|
3
|
+
|
|
4
|
+
declare enum EDagreLayoutAlgorithm {
|
|
5
|
+
NETWORK_SIMPLEX = "network-simplex",
|
|
6
|
+
TIGHT_TREE = "tight-tree",
|
|
7
|
+
LONGEST_PATH = "longest-path"
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
interface IDagreLayoutEngineOptions extends IFLayoutAlgorithmOptions<EDagreLayoutAlgorithm> {
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
declare const DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS: IDagreLayoutEngineOptions;
|
|
14
|
+
|
|
15
|
+
declare class DagreLayoutEngine extends FLayoutEngine<IDagreLayoutEngineOptions> {
|
|
16
|
+
constructor();
|
|
17
|
+
protected mergeOptions(currentOptions: IDagreLayoutEngineOptions, nextOptions?: Partial<IDagreLayoutEngineOptions>): IDagreLayoutEngineOptions;
|
|
18
|
+
calculate(nodes: IFLayoutNode[], connections: IFLayoutConnection[], options?: IFLayoutCalculationOptions<IDagreLayoutEngineOptions>): Promise<IFLayoutResult>;
|
|
19
|
+
private _buildGraph;
|
|
20
|
+
private _mapAlgorithm;
|
|
21
|
+
private _mapDirection;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<DagreLayoutEngine, never>;
|
|
23
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<DagreLayoutEngine>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export { DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS, DagreLayoutEngine, EDagreLayoutAlgorithm };
|
|
27
|
+
export type { IDagreLayoutEngineOptions };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@foblex/flow-dagre-layout",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.6.1",
|
|
4
4
|
"description": "Dagre layout engine adapter for Foblex Flow.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -45,8 +45,6 @@
|
|
|
45
45
|
},
|
|
46
46
|
".": {
|
|
47
47
|
"types": "./index.d.ts",
|
|
48
|
-
"esm2022": "./esm2022/foblex-flow-dagre-layout.mjs",
|
|
49
|
-
"esm": "./esm2022/foblex-flow-dagre-layout.mjs",
|
|
50
48
|
"default": "./fesm2022/foblex-flow-dagre-layout.mjs"
|
|
51
49
|
}
|
|
52
50
|
}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ibGV4LWZsb3ctZGFncmUtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGlicy9mLWxheW91dC9kYWdyZS9zcmMvZm9ibGV4LWZsb3ctZGFncmUtbGF5b3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { SizeExtensions } from '@foblex/2d';
|
|
2
|
-
import { EFLayoutDirection } from '@foblex/flow';
|
|
3
|
-
import { EDagreLayoutAlgorithm } from '../enums';
|
|
4
|
-
export const DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS = {
|
|
5
|
-
direction: EFLayoutDirection.TOP_BOTTOM,
|
|
6
|
-
nodeGap: 48,
|
|
7
|
-
layerGap: 64,
|
|
8
|
-
algorithm: EDagreLayoutAlgorithm.NETWORK_SIMPLEX,
|
|
9
|
-
defaultNodeSize: SizeExtensions.initialize(120, 72),
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kYWdyZS1sYXlvdXQtZW5naW5lLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvY29uZmlndXJhdGlvbnMvZGVmYXVsdC1kYWdyZS1sYXlvdXQtZW5naW5lLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBR2pELE1BQU0sQ0FBQyxNQUFNLG1DQUFtQyxHQUE4QjtJQUM1RSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsVUFBVTtJQUN2QyxPQUFPLEVBQUUsRUFBRTtJQUNYLFFBQVEsRUFBRSxFQUFFO0lBQ1osU0FBUyxFQUFFLHFCQUFxQixDQUFDLGVBQWU7SUFDaEQsZUFBZSxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztDQUNwRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2l6ZUV4dGVuc2lvbnMgfSBmcm9tICdAZm9ibGV4LzJkJztcbmltcG9ydCB7IEVGTGF5b3V0RGlyZWN0aW9uIH0gZnJvbSAnQGZvYmxleC9mbG93JztcbmltcG9ydCB7IEVEYWdyZUxheW91dEFsZ29yaXRobSB9IGZyb20gJy4uL2VudW1zJztcbmltcG9ydCB7IElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnMgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9EQUdSRV9MQVlPVVRfRU5HSU5FX09QVElPTlM6IElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnMgPSB7XG4gIGRpcmVjdGlvbjogRUZMYXlvdXREaXJlY3Rpb24uVE9QX0JPVFRPTSxcbiAgbm9kZUdhcDogNDgsXG4gIGxheWVyR2FwOiA2NCxcbiAgYWxnb3JpdGhtOiBFRGFncmVMYXlvdXRBbGdvcml0aG0uTkVUV09SS19TSU1QTEVYLFxuICBkZWZhdWx0Tm9kZVNpemU6IFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoMTIwLCA3MiksXG59O1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './default-dagre-layout-engine-options';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvY29uZmlndXJhdGlvbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVmYXVsdC1kYWdyZS1sYXlvdXQtZW5naW5lLW9wdGlvbnMnO1xuIl19
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { PointExtensions, SizeExtensions } from '@foblex/2d';
|
|
3
|
-
import * as dagre from 'dagre';
|
|
4
|
-
import { EFLayoutDirection, FLayoutEngine, mergeLayoutNodes, } from '@foblex/flow';
|
|
5
|
-
import { DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS } from '../configurations';
|
|
6
|
-
import { EDagreLayoutAlgorithm } from '../enums';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class DagreLayoutEngine extends FLayoutEngine {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(DEFAULT_DAGRE_LAYOUT_ENGINE_OPTIONS);
|
|
11
|
-
}
|
|
12
|
-
mergeOptions(currentOptions, nextOptions = {}) {
|
|
13
|
-
return {
|
|
14
|
-
...currentOptions,
|
|
15
|
-
...nextOptions,
|
|
16
|
-
defaultNodeSize: nextOptions.defaultNodeSize
|
|
17
|
-
? SizeExtensions.initialize(nextOptions.defaultNodeSize.width, nextOptions.defaultNodeSize.height)
|
|
18
|
-
: SizeExtensions.initialize(currentOptions.defaultNodeSize.width, currentOptions.defaultNodeSize.height),
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
async calculate(nodes, connections, options) {
|
|
22
|
-
const layoutOptions = this.resolveLayoutOptions(options);
|
|
23
|
-
const graph = this._buildGraph(nodes, connections, layoutOptions);
|
|
24
|
-
const positions = new Map();
|
|
25
|
-
dagre.layout(graph);
|
|
26
|
-
graph.nodes().forEach((nodeId) => {
|
|
27
|
-
const graphNode = graph.node(nodeId);
|
|
28
|
-
const sourceNode = nodes.find((node) => node.id === nodeId);
|
|
29
|
-
if (!graphNode || !sourceNode) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
const size = sourceNode.size ?? layoutOptions.defaultNodeSize;
|
|
33
|
-
positions.set(nodeId, PointExtensions.initialize(graphNode.x - size.width / 2, graphNode.y - size.height / 2));
|
|
34
|
-
});
|
|
35
|
-
return {
|
|
36
|
-
nodes: mergeLayoutNodes(nodes, positions),
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
_buildGraph(nodes, connections, options) {
|
|
40
|
-
const graph = new dagre.graphlib.Graph();
|
|
41
|
-
graph.setDefaultEdgeLabel(() => ({}));
|
|
42
|
-
graph.setGraph({
|
|
43
|
-
rankdir: this._mapDirection(options.direction),
|
|
44
|
-
nodesep: options.nodeGap,
|
|
45
|
-
ranksep: options.layerGap,
|
|
46
|
-
ranker: this._mapAlgorithm(options.algorithm),
|
|
47
|
-
});
|
|
48
|
-
nodes.forEach((node) => {
|
|
49
|
-
const size = node.size ?? options.defaultNodeSize;
|
|
50
|
-
graph.setNode(node.id, {
|
|
51
|
-
width: size.width,
|
|
52
|
-
height: size.height,
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
connections.forEach((connection) => {
|
|
56
|
-
if (!graph.hasNode(connection.source) || !graph.hasNode(connection.target)) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
graph.setEdge(connection.source, connection.target, {});
|
|
60
|
-
});
|
|
61
|
-
return graph;
|
|
62
|
-
}
|
|
63
|
-
_mapAlgorithm(algorithm) {
|
|
64
|
-
switch (algorithm) {
|
|
65
|
-
case EDagreLayoutAlgorithm.TIGHT_TREE:
|
|
66
|
-
return 'tight-tree';
|
|
67
|
-
case EDagreLayoutAlgorithm.LONGEST_PATH:
|
|
68
|
-
return 'longest-path';
|
|
69
|
-
case EDagreLayoutAlgorithm.NETWORK_SIMPLEX:
|
|
70
|
-
default:
|
|
71
|
-
return 'network-simplex';
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
_mapDirection(direction) {
|
|
75
|
-
switch (direction) {
|
|
76
|
-
case EFLayoutDirection.BOTTOM_TOP:
|
|
77
|
-
return 'BT';
|
|
78
|
-
case EFLayoutDirection.LEFT_RIGHT:
|
|
79
|
-
return 'LR';
|
|
80
|
-
case EFLayoutDirection.RIGHT_LEFT:
|
|
81
|
-
return 'RL';
|
|
82
|
-
case EFLayoutDirection.TOP_BOTTOM:
|
|
83
|
-
default:
|
|
84
|
-
return 'TB';
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DagreLayoutEngine, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
88
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DagreLayoutEngine });
|
|
89
|
-
}
|
|
90
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DagreLayoutEngine, decorators: [{
|
|
91
|
-
type: Injectable
|
|
92
|
-
}], ctorParameters: () => [] });
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGFncmUtbGF5b3V0LWVuZ2luZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvZi1sYXlvdXQvZGFncmUvc3JjL2xpYi9lbmdpbmVzL2RhZ3JlLWxheW91dC1lbmdpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUM3RCxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUvQixPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLGFBQWEsRUFLYixnQkFBZ0IsR0FDakIsTUFBTSxjQUFjLENBQUM7QUFDdEIsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sVUFBVSxDQUFDOztBQUlqRCxNQUFNLE9BQU8saUJBQWtCLFNBQVEsYUFBd0M7SUFDN0U7UUFDRSxLQUFLLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRWtCLFlBQVksQ0FDN0IsY0FBeUMsRUFDekMsY0FBa0QsRUFBRTtRQUVwRCxPQUFPO1lBQ0wsR0FBRyxjQUFjO1lBQ2pCLEdBQUcsV0FBVztZQUNkLGVBQWUsRUFBRSxXQUFXLENBQUMsZUFBZTtnQkFDMUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQ3ZCLFdBQVcsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUNqQyxXQUFXLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDbkM7Z0JBQ0gsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQ3ZCLGNBQWMsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUNwQyxjQUFjLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FDdEM7U0FDTixDQUFDO0lBQ0osQ0FBQztJQUVlLEtBQUssQ0FBQyxTQUFTLENBQzdCLEtBQXFC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QUNmLENBQUM7SUFFTyxhQUFhLENBQ25CLFNBQWdDO1FBRWhDLFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDbEIsS0FBSyxxQkFBcUIsQ0FBQyxVQUFVO2dCQUNuQyxPQUFPLFlBQVksQ0FBQztZQUN0QixLQUFLLHFCQUFxQixDQUFDLFlBQVk7Z0JBQ3JDLE9BQU8sY0FBYyxDQUFDO1lBQ3hCLEtBQUsscUJBQXFCLENBQUMsZUFBZSxDQUFDO1lBQzNDO2dCQUNFLE9BQU8saUJBQWlCLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTyxhQUFhLENBQUMsU0FBNEI7UUFDaEQsUUFBUSxTQUFTLEVBQUUsQ0FBQztZQUNsQixLQUFLLGlCQUFpQixDQUFDLFVBQVU7Z0JBQy9CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsS0FBSyxpQkFBaUIsQ0FBQyxVQUFVO2dCQUMvQixPQUFPLElBQUksQ0FBQztZQUNkLEtBQUssaUJBQWlCLENBQUMsVUFBVTtnQkFDL0IsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLGlCQUFpQixDQUFDLFVBQVUsQ0FBQztZQUNsQztnQkFDRSxPQUFPLElBQUksQ0FBQztRQUNoQixDQUFDO0lBQ0gsQ0FBQzt3R0FySFUsaUJBQWlCOzRHQUFqQixpQkFBaUI7OzRGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQb2ludEV4dGVuc2lvbnMsIFNpemVFeHRlbnNpb25zIH0gZnJvbSAnQGZvYmxleC8yZCc7XG5pbXBvcnQgKiBhcyBkYWdyZSBmcm9tICdkYWdyZSc7XG5pbXBvcnQgeyBncmFwaGxpYiB9IGZyb20gJ2RhZ3JlJztcbmltcG9ydCB7XG4gIEVGTGF5b3V0RGlyZWN0aW9uLFxuICBGTGF5b3V0RW5naW5lLFxuICBJRkxheW91dENhbGN1bGF0aW9uT3B0aW9ucyxcbiAgSUZMYXlvdXRDb25uZWN0aW9uLFxuICBJRkxheW91dE5vZGUsXG4gIElGTGF5b3V0UmVzdWx0LFxuICBtZXJnZUxheW91dE5vZGVzLFxufSBmcm9tICdAZm9ibGV4L2Zsb3cnO1xuaW1wb3J0IHsgREVGQVVMVF9EQUdSRV9MQVlPVVRfRU5HSU5FX09QVElPTlMgfSBmcm9tICcuLi9jb25maWd1cmF0aW9ucyc7XG5pbXBvcnQgeyBFRGFncmVMYXlvdXRBbGdvcml0aG0gfSBmcm9tICcuLi9lbnVtcyc7XG5pbXBvcnQgeyBJRGFncmVMYXlvdXRFbmdpbmVPcHRpb25zIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIERhZ3JlTGF5b3V0RW5naW5lIGV4dGVuZHMgRkxheW91dEVuZ2luZTxJRGFncmVMYXlvdXRFbmdpbmVPcHRpb25zPiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihERUZBVUxUX0RBR1JFX0xBWU9VVF9FTkdJTkVfT1BUSU9OUyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgbWVyZ2VPcHRpb25zKFxuICAgIGN1cnJlbnRPcHRpb25zOiBJRGFncmVMYXlvdXRFbmdpbmVPcHRpb25zLFxuICAgIG5leHRPcHRpb25zOiBQYXJ0aWFsPElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnM+ID0ge30sXG4gICk6IElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5jdXJyZW50T3B0aW9ucyxcbiAgICAgIC4uLm5leHRPcHRpb25zLFxuICAgICAgZGVmYXVsdE5vZGVTaXplOiBuZXh0T3B0aW9ucy5kZWZhdWx0Tm9kZVNpemVcbiAgICAgICAgPyBTaXplRXh0ZW5zaW9ucy5pbml0aWFsaXplKFxuICAgICAgICAgICAgbmV4dE9wdGlvbnMuZGVmYXVsdE5vZGVTaXplLndpZHRoLFxuICAgICAgICAgICAgbmV4dE9wdGlvbnMuZGVmYXVsdE5vZGVTaXplLmhlaWdodCxcbiAgICAgICAgICApXG4gICAgICAgIDogU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShcbiAgICAgICAgICAgIGN1cnJlbnRPcHRpb25zLmRlZmF1bHROb2RlU2l6ZS53aWR0aCxcbiAgICAgICAgICAgIGN1cnJlbnRPcHRpb25zLmRlZmF1bHROb2RlU2l6ZS5oZWlnaHQsXG4gICAgICAgICAgKSxcbiAgICB9O1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGFzeW5jIGNhbGN1bGF0ZShcbiAgICBub2RlczogSUZMYXlvdXROb2RlW10sXG4gICAgY29ubmVjdGlvbnM6IElGTGF5b3V0Q29ubmVjdGlvbltdLFxuICAgIG9wdGlvbnM/OiBJRkxheW91dENhbGN1bGF0aW9uT3B0aW9uczxJRGFncmVMYXlvdXRFbmdpbmVPcHRpb25zPixcbiAgKTogUHJvbWlzZTxJRkxheW91dFJlc3VsdD4ge1xuICAgIGNvbnN0IGxheW91dE9wdGlvbnMgPSB0aGlzLnJlc29sdmVMYXlvdXRPcHRpb25zKG9wdGlvbnMpO1xuICAgIGNvbnN0IGdyYXBoID0gdGhpcy5fYnVpbGRHcmFwaChub2RlcywgY29ubmVjdGlvbnMsIGxheW91dE9wdGlvbnMpO1xuICAgIGNvbnN0IHBvc2l0aW9ucyA9IG5ldyBNYXA8c3RyaW5nLCB7IHg6IG51bWJlcjsgeTogbnVtYmVyIH0+KCk7XG5cbiAgICBkYWdyZS5sYXlvdXQoZ3JhcGgpO1xuXG4gICAgZ3JhcGgubm9kZXMoKS5mb3JFYWNoKChub2RlSWQpID0+IHtcbiAgICAgIGNvbnN0IGdyYXBoTm9kZSA9IGdyYXBoLm5vZGUobm9kZUlkKTtcbiAgICAgIGNvbnN0IHNvdXJjZU5vZGUgPSBub2Rlcy5maW5kKChub2RlKSA9PiBub2RlLmlkID09PSBub2RlSWQpO1xuXG4gICAgICBpZiAoIWdyYXBoTm9kZSB8fCAhc291cmNlTm9kZSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHNpemUgPSBzb3VyY2VOb2RlLnNpemUgPz8gbGF5b3V0T3B0aW9ucy5kZWZhdWx0Tm9kZVNpemU7XG5cbiAgICAgIHBvc2l0aW9ucy5zZXQoXG4gICAgICAgIG5vZGVJZCxcbiAgICAgICAgUG9pbnRFeHRlbnNpb25zLmluaXRpYWxpemUoZ3JhcGhOb2RlLnggLSBzaXplLndpZHRoIC8gMiwgZ3JhcGhOb2RlLnkgLSBzaXplLmhlaWdodCAvIDIpLFxuICAgICAgKTtcbiAgICB9KTtcblxuICAgIHJldHVybiB7XG4gICAgICBub2RlczogbWVyZ2VMYXlvdXROb2Rlcyhub2RlcywgcG9zaXRpb25zKSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRHcmFwaChcbiAgICBub2RlczogSUZMYXlvdXROb2RlW10sXG4gICAgY29ubmVjdGlvbnM6IElGTGF5b3V0Q29ubmVjdGlvbltdLFxuICAgIG9wdGlvbnM6IElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnMsXG4gICk6IGdyYXBobGliLkdyYXBoIHtcbiAgICBjb25zdCBncmFwaCA9IG5ldyBkYWdyZS5ncmFwaGxpYi5HcmFwaCgpO1xuXG4gICAgZ3JhcGguc2V0RGVmYXVsdEVkZ2VMYWJlbCgoKSA9PiAoe30pKTtcbiAgICBncmFwaC5zZXRHcmFwaCh7XG4gICAgICByYW5rZGlyOiB0aGlzLl9tYXBEaXJlY3Rpb24ob3B0aW9ucy5kaXJlY3Rpb24pLFxuICAgICAgbm9kZXNlcDogb3B0aW9ucy5ub2RlR2FwLFxuICAgICAgcmFua3NlcDogb3B0aW9ucy5sYXllckdhcCxcbiAgICAgIHJhbmtlcjogdGhpcy5fbWFwQWxnb3JpdGhtKG9wdGlvbnMuYWxnb3JpdGhtKSxcbiAgICB9KTtcblxuICAgIG5vZGVzLmZvckVhY2goKG5vZGUpID0+IHtcbiAgICAgIGNvbnN0IHNpemUgPSBub2RlLnNpemUgPz8gb3B0aW9ucy5kZWZhdWx0Tm9kZVNpemU7XG5cbiAgICAgIGdyYXBoLnNldE5vZGUobm9kZS5pZCwge1xuICAgICAgICB3aWR0aDogc2l6ZS53aWR0aCxcbiAgICAgICAgaGVpZ2h0OiBzaXplLmhlaWdodCxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgY29ubmVjdGlvbnMuZm9yRWFjaCgoY29ubmVjdGlvbikgPT4ge1xuICAgICAgaWYgKCFncmFwaC5oYXNOb2RlKGNvbm5lY3Rpb24uc291cmNlKSB8fCAhZ3JhcGguaGFzTm9kZShjb25uZWN0aW9uLnRhcmdldCkpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBncmFwaC5zZXRFZGdlKGNvbm5lY3Rpb24uc291cmNlLCBjb25uZWN0aW9uLnRhcmdldCwge30pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGdyYXBoO1xuICB9XG5cbiAgcHJpdmF0ZSBfbWFwQWxnb3JpdGhtKFxuICAgIGFsZ29yaXRobTogRURhZ3JlTGF5b3V0QWxnb3JpdGhtLFxuICApOiAnbmV0d29yay1zaW1wbGV4JyB8ICd0aWdodC10cmVlJyB8ICdsb25nZXN0LXBhdGgnIHtcbiAgICBzd2l0Y2ggKGFsZ29yaXRobSkge1xuICAgICAgY2FzZSBFRGFncmVMYXlvdXRBbGdvcml0aG0uVElHSFRfVFJFRTpcbiAgICAgICAgcmV0dXJuICd0aWdodC10cmVlJztcbiAgICAgIGNhc2UgRURhZ3JlTGF5b3V0QWxnb3JpdGhtLkxPTkdFU1RfUEFUSDpcbiAgICAgICAgcmV0dXJuICdsb25nZXN0LXBhdGgnO1xuICAgICAgY2FzZSBFRGFncmVMYXlvdXRBbGdvcml0aG0uTkVUV09SS19TSU1QTEVYOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICduZXR3b3JrLXNpbXBsZXgnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX21hcERpcmVjdGlvbihkaXJlY3Rpb246IEVGTGF5b3V0RGlyZWN0aW9uKTogJ1RCJyB8ICdCVCcgfCAnTFInIHwgJ1JMJyB7XG4gICAgc3dpdGNoIChkaXJlY3Rpb24pIHtcbiAgICAgIGNhc2UgRUZMYXlvdXREaXJlY3Rpb24uQk9UVE9NX1RPUDpcbiAgICAgICAgcmV0dXJuICdCVCc7XG4gICAgICBjYXNlIEVGTGF5b3V0RGlyZWN0aW9uLkxFRlRfUklHSFQ6XG4gICAgICAgIHJldHVybiAnTFInO1xuICAgICAgY2FzZSBFRkxheW91dERpcmVjdGlvbi5SSUdIVF9MRUZUOlxuICAgICAgICByZXR1cm4gJ1JMJztcbiAgICAgIGNhc2UgRUZMYXlvdXREaXJlY3Rpb24uVE9QX0JPVFRPTTpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnVEInO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './dagre-layout-engine';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvZW5naW5lcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kYWdyZS1sYXlvdXQtZW5naW5lJztcbiJdfQ==
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export var EDagreLayoutAlgorithm;
|
|
2
|
-
(function (EDagreLayoutAlgorithm) {
|
|
3
|
-
EDagreLayoutAlgorithm["NETWORK_SIMPLEX"] = "network-simplex";
|
|
4
|
-
EDagreLayoutAlgorithm["TIGHT_TREE"] = "tight-tree";
|
|
5
|
-
EDagreLayoutAlgorithm["LONGEST_PATH"] = "longest-path";
|
|
6
|
-
})(EDagreLayoutAlgorithm || (EDagreLayoutAlgorithm = {}));
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZS1kYWdyZS1sYXlvdXQtYWxnb3JpdGhtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9mLWxheW91dC9kYWdyZS9zcmMvbGliL2VudW1zL2UtZGFncmUtbGF5b3V0LWFsZ29yaXRobS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSxxQkFJWDtBQUpELFdBQVkscUJBQXFCO0lBQy9CLDREQUFtQyxDQUFBO0lBQ25DLGtEQUF5QixDQUFBO0lBQ3pCLHNEQUE2QixDQUFBO0FBQy9CLENBQUMsRUFKVyxxQkFBcUIsS0FBckIscUJBQXFCLFFBSWhDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gRURhZ3JlTGF5b3V0QWxnb3JpdGhtIHtcbiAgTkVUV09SS19TSU1QTEVYID0gJ25ldHdvcmstc2ltcGxleCcsXG4gIFRJR0hUX1RSRUUgPSAndGlnaHQtdHJlZScsXG4gIExPTkdFU1RfUEFUSCA9ICdsb25nZXN0LXBhdGgnLFxufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './e-dagre-layout-algorithm';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvZW51bXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZS1kYWdyZS1sYXlvdXQtYWxnb3JpdGhtJztcbiJdfQ==
|
package/esm2022/lib/index.mjs
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export * from './configurations';
|
|
2
|
-
export * from './engines';
|
|
3
|
-
export * from './enums';
|
|
4
|
-
export * from './models';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLFdBQVcsQ0FBQztBQUMxQixjQUFjLFNBQVMsQ0FBQztBQUN4QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY29uZmlndXJhdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9lbmdpbmVzJztcbmV4cG9ydCAqIGZyb20gJy4vZW51bXMnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMnO1xuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaS1kYWdyZS1sYXlvdXQtZW5naW5lLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvbW9kZWxzL2ktZGFncmUtbGF5b3V0LWVuZ2luZS1vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRkxheW91dEFsZ29yaXRobU9wdGlvbnMgfSBmcm9tICdAZm9ibGV4L2Zsb3cnO1xuaW1wb3J0IHsgRURhZ3JlTGF5b3V0QWxnb3JpdGhtIH0gZnJvbSAnLi4vZW51bXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElEYWdyZUxheW91dEVuZ2luZU9wdGlvbnNcbiAgZXh0ZW5kcyBJRkxheW91dEFsZ29yaXRobU9wdGlvbnM8RURhZ3JlTGF5b3V0QWxnb3JpdGhtPiB7fVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './i-dagre-layout-engine-options';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2YtbGF5b3V0L2RhZ3JlL3NyYy9saWIvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ktZGFncmUtbGF5b3V0LWVuZ2luZS1vcHRpb25zJztcbiJdfQ==
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './lib';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYnMvZi1sYXlvdXQvZGFncmUvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxPQUFPLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYic7XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './default-dagre-layout-engine-options';
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { FLayoutEngine, IFLayoutCalculationOptions, IFLayoutConnection, IFLayoutNode, IFLayoutResult } from '@foblex/flow';
|
|
2
|
-
import { IDagreLayoutEngineOptions } from '../models';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class DagreLayoutEngine extends FLayoutEngine<IDagreLayoutEngineOptions> {
|
|
5
|
-
constructor();
|
|
6
|
-
protected mergeOptions(currentOptions: IDagreLayoutEngineOptions, nextOptions?: Partial<IDagreLayoutEngineOptions>): IDagreLayoutEngineOptions;
|
|
7
|
-
calculate(nodes: IFLayoutNode[], connections: IFLayoutConnection[], options?: IFLayoutCalculationOptions<IDagreLayoutEngineOptions>): Promise<IFLayoutResult>;
|
|
8
|
-
private _buildGraph;
|
|
9
|
-
private _mapAlgorithm;
|
|
10
|
-
private _mapDirection;
|
|
11
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<DagreLayoutEngine, never>;
|
|
12
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<DagreLayoutEngine>;
|
|
13
|
-
}
|
package/lib/engines/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './dagre-layout-engine';
|
package/lib/enums/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './e-dagre-layout-algorithm';
|
package/lib/index.d.ts
DELETED
package/lib/models/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './i-dagre-layout-engine-options';
|
package/public-api.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './lib';
|