@ankhzet/graph 0.4.1 → 0.5.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/CHANGELOG.md +12 -0
- package/dist/index.d.ts +42 -10
- package/dist/index.js +300 -305
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/GraphCanvas.tsx +8 -1
- package/src/ManagedGraph.tsx +9 -5
- package/src/graph/nodes/index.ts +1 -1
- package/src/graph/nodes/layout/LayeredLayout.ts +32 -61
- package/src/graph/nodes/layout/Layout.ts +1 -1
- package/src/graph/nodes/layout/Layouter.ts +10 -10
- package/src/index.ts +1 -0
- package/src/utils.ts +0 -4
package/CHANGELOG.md
CHANGED
package/dist/index.d.ts
CHANGED
|
@@ -70,6 +70,27 @@ export declare type ConnectorPoint<Node extends GraphNodeInterface, Input extend
|
|
|
70
70
|
connector?: Connector<Node['id']>;
|
|
71
71
|
});
|
|
72
72
|
|
|
73
|
+
export declare class Coordinates implements Coordinator {
|
|
74
|
+
grid: number;
|
|
75
|
+
gridSize: Position;
|
|
76
|
+
sizes: {
|
|
77
|
+
grid: Position;
|
|
78
|
+
port: number;
|
|
79
|
+
lane: number;
|
|
80
|
+
space: number;
|
|
81
|
+
};
|
|
82
|
+
constructor({ grid, port, lane, space, }?: Partial<SizeOverrides>);
|
|
83
|
+
snap(value: number): number;
|
|
84
|
+
toGraph({ x, y }: Position): {
|
|
85
|
+
x: number;
|
|
86
|
+
y: number;
|
|
87
|
+
};
|
|
88
|
+
toData({ x, y }: Position): {
|
|
89
|
+
x: number;
|
|
90
|
+
y: number;
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
|
|
73
94
|
export declare type Coordinator = {
|
|
74
95
|
grid: number;
|
|
75
96
|
gridSize: Position;
|
|
@@ -135,7 +156,7 @@ export declare class GraphAdapter<Node extends GraphNodeInterface> extends Batch
|
|
|
135
156
|
|
|
136
157
|
export declare type GraphBarrier<N extends GraphNodeInterface> = (node: N) => boolean;
|
|
137
158
|
|
|
138
|
-
export declare function GraphCanvas<Node extends GraphNodeInterface<ID, Data, Render>, ID = any, Data = any, Render = any>({ innerRef, nodes, subset, coordinator, menu, onSelectNode, onContextMenu, ...rest }: GraphNodeProps<Node>): JSX.Element;
|
|
159
|
+
export declare function GraphCanvas<Node extends GraphNodeInterface<ID, Data, Render>, ID = any, Data = any, Render = any>({ innerRef, nodes, subset, coordinator, layouter, menu, onSelectNode, onContextMenu, ...rest }: GraphNodeProps<Node>): JSX.Element;
|
|
139
160
|
|
|
140
161
|
declare interface GraphDTO {
|
|
141
162
|
title: string;
|
|
@@ -231,6 +252,7 @@ export declare class GraphNodeJoints<ID> implements NodeJoints<ID> {
|
|
|
231
252
|
export declare interface GraphNodeProps<Node extends GraphNodeInterface> {
|
|
232
253
|
innerRef?: Ref<GraphRef<Node>>;
|
|
233
254
|
coordinator: Coordinator;
|
|
255
|
+
layouter?: Layouter<Node>;
|
|
234
256
|
nodes: Node[];
|
|
235
257
|
subset?: Node['id'][];
|
|
236
258
|
menu: IMenuProvider<any>;
|
|
@@ -243,12 +265,16 @@ export declare type GraphRef<Node extends GraphNodeInterface> = {
|
|
|
243
265
|
element?: HTMLDivElement;
|
|
244
266
|
};
|
|
245
267
|
|
|
268
|
+
export declare const GRID_SIZE = 16;
|
|
269
|
+
|
|
246
270
|
declare interface GroupableItem<ID> {
|
|
247
271
|
id: ID;
|
|
248
272
|
}
|
|
249
273
|
|
|
250
274
|
export declare type GroupResolver<T extends GroupableItem<any>> = (node: T) => null | undefined | ItemsGroup<T['id']>;
|
|
251
275
|
|
|
276
|
+
export declare const groupResolver: ({ description: { item } }: ManagedGraphNode) => string | null;
|
|
277
|
+
|
|
252
278
|
export declare interface HitTestResult<Node extends GraphNodeInterface> extends Position {
|
|
253
279
|
node: Node;
|
|
254
280
|
width: number;
|
|
@@ -312,13 +338,15 @@ export declare type ItemsGroup<ID> = {
|
|
|
312
338
|
ids: ID[];
|
|
313
339
|
};
|
|
314
340
|
|
|
341
|
+
export declare const LANE_SIZE = 16;
|
|
342
|
+
|
|
315
343
|
export declare interface Layer<Node extends GraphNodeInterface> {
|
|
316
344
|
[id: string]: Node;
|
|
317
345
|
}
|
|
318
346
|
|
|
319
347
|
export declare class LayeredLayout<Node extends GraphNodeInterface> extends NodesGraph<Node> implements Layout<Node> {
|
|
348
|
+
#private;
|
|
320
349
|
layers: Layers<Node>;
|
|
321
|
-
private hash;
|
|
322
350
|
get center(): Position;
|
|
323
351
|
spread(layer: number, nodes: Node['id'][]): number;
|
|
324
352
|
findMax(node: Node): number;
|
|
@@ -327,28 +355,27 @@ export declare class LayeredLayout<Node extends GraphNodeInterface> extends Node
|
|
|
327
355
|
remove(node: Node, layer: number): boolean;
|
|
328
356
|
put(node: Node, layer: number): void;
|
|
329
357
|
findLayer(node: Node): number;
|
|
330
|
-
findLayers(nodes: Node[]):
|
|
358
|
+
findLayers(nodes: Node[]): Record<string, number>;
|
|
331
359
|
shift(node: Node, fromLayer: number, offset: number, chain?: Node[]): number;
|
|
332
360
|
private all;
|
|
333
361
|
private walk;
|
|
334
362
|
}
|
|
335
363
|
|
|
336
|
-
export declare interface Layers<Node extends GraphNodeInterface> extends
|
|
337
|
-
[idx: number]: Layer<Node>;
|
|
364
|
+
export declare interface Layers<Node extends GraphNodeInterface> extends Array<Layer<Node>> {
|
|
338
365
|
}
|
|
339
366
|
|
|
340
|
-
declare interface Layout<Node extends GraphNodeInterface
|
|
367
|
+
declare interface Layout<Node extends GraphNodeInterface> {
|
|
341
368
|
readonly center: Position;
|
|
342
369
|
getSubGraphs(subset?: Node['id'][]): Node['id'][][];
|
|
343
370
|
spread(layer: number, nodes: Node['id'][]): number;
|
|
344
371
|
}
|
|
345
372
|
|
|
346
|
-
export declare class Layouter<Node extends GraphNodeInterface
|
|
373
|
+
export declare class Layouter<Node extends GraphNodeInterface> {
|
|
347
374
|
private readonly isBarrier;
|
|
348
375
|
private readonly klass;
|
|
349
376
|
constructor(klass: Constructor<Layout<Node>, [nodes: Node[], isBarrier: GraphBarrier<Node>]>, isBarrier: GraphBarrier<Node>);
|
|
350
377
|
layout(nodes: Node[], subset?: Node['id'][]): Layout<Node>;
|
|
351
|
-
getSubGraphs(nodes: Node[]): Node["id"][][];
|
|
378
|
+
getSubGraphs(nodes: Node[], subset?: Node['id'][]): Node["id"][][];
|
|
352
379
|
}
|
|
353
380
|
|
|
354
381
|
export declare type Line = {
|
|
@@ -358,7 +385,7 @@ export declare type Line = {
|
|
|
358
385
|
update(): void;
|
|
359
386
|
};
|
|
360
387
|
|
|
361
|
-
export declare const ManagedGraph: <Graph extends IGraph<Item>, Item extends IItem, DTO extends GraphDTO>({ innerRef, graph, selected, sizes, handlers, children, onExport, ...rest }: PropsWithChildren<ManagedGraphProps<Graph, Item, DTO>>) => JSX.Element;
|
|
388
|
+
export declare const ManagedGraph: <Graph extends IGraph<Item>, Item extends IItem, DTO extends GraphDTO>({ innerRef, graph, layouter, selected, sizes, handlers, children, onExport, ...rest }: PropsWithChildren<ManagedGraphProps<Graph, Item, DTO>>) => JSX.Element;
|
|
362
389
|
|
|
363
390
|
export declare class ManagedGraphNode<Item extends IItem = IItem> extends GraphNode<TypeId, NodeData<Item>, Container> implements IMenuProvider<MenuAction> {
|
|
364
391
|
#private;
|
|
@@ -396,6 +423,7 @@ export declare interface ManagedGraphProps<Graph extends IGraph<Item>, Item exte
|
|
|
396
423
|
}>;
|
|
397
424
|
graph: Graph;
|
|
398
425
|
selected?: Item[];
|
|
426
|
+
layouter?: Layouter<ManagedGraphNode<Item>>;
|
|
399
427
|
className?: string;
|
|
400
428
|
sizes?: SizeOverrides;
|
|
401
429
|
handlers?: Partial<GraphHandlers<DTO, Item>>;
|
|
@@ -528,6 +556,8 @@ declare class PIXIText extends Container {
|
|
|
528
556
|
set tint(color: ColorSource);
|
|
529
557
|
}
|
|
530
558
|
|
|
559
|
+
export declare const PORT_SIZE = 8;
|
|
560
|
+
|
|
531
561
|
export declare type Position = {
|
|
532
562
|
x: number;
|
|
533
563
|
y: number;
|
|
@@ -609,13 +639,15 @@ export declare type RequestedConnection<ID, Node> = {
|
|
|
609
639
|
|
|
610
640
|
export declare type Resolver<Item> = (id: TypeId) => Item | undefined;
|
|
611
641
|
|
|
612
|
-
declare type SizeOverrides = {
|
|
642
|
+
export declare type SizeOverrides = {
|
|
613
643
|
grid: number;
|
|
614
644
|
port: number;
|
|
615
645
|
lane: number;
|
|
616
646
|
space: number;
|
|
617
647
|
};
|
|
618
648
|
|
|
649
|
+
export declare const SPACE_SIZE = 32;
|
|
650
|
+
|
|
619
651
|
export declare class Store<Item extends {
|
|
620
652
|
id: TypeId;
|
|
621
653
|
}> extends DisposableEventSource implements StoreInterface<Item> {
|