chore(system): rename BaseNode/BaseEdge types to NodeBase/EdgeBase

This commit is contained in:
moklick
2023-06-13 16:54:26 +02:00
parent 65d1c3bbd4
commit 9dfec49ed5
25 changed files with 499 additions and 550 deletions
+10 -10
View File
@@ -1,5 +1,5 @@
import { Connection, Transform, errorMessages, internalsSymbol, isEdgeBase } from '../..';
import { BaseEdge, BaseNode } from '../../types';
import { EdgeBase, NodeBase } from '../../types';
import { isNumeric, getOverlappingArea, boxToRect, nodeToBox, getBoundsOfBoxes, devWarn } from '../general';
// this is used for straight edges and simple smoothstep edges (LTR, RTL, BTT, TTB)
@@ -25,15 +25,15 @@ export function getEdgeCenter({
const defaultEdgeTree = [{ level: 0, isMaxLevel: true, edges: [] }];
export type GroupedEdges<EdgeType extends BaseEdge> = {
export type GroupedEdges<EdgeType extends EdgeBase> = {
edges: EdgeType[];
level: number;
isMaxLevel: boolean;
};
export function groupEdgesByZLevel<EdgeType extends BaseEdge>(
export function groupEdgesByZLevel<EdgeType extends EdgeBase>(
edges: EdgeType[],
nodes: BaseNode[],
nodes: NodeBase[],
elevateEdgesOnSelect = false
): GroupedEdges<EdgeType>[] {
let maxLevel = -1;
@@ -80,8 +80,8 @@ export function groupEdgesByZLevel<EdgeType extends BaseEdge>(
}
type IsEdgeVisibleParams = {
sourceNode: BaseNode;
targetNode: BaseNode;
sourceNode: NodeBase;
targetNode: NodeBase;
width: number;
height: number;
transform: Transform;
@@ -108,10 +108,10 @@ export function isEdgeVisible({ sourceNode, targetNode, width, height, transform
return getOverlappingArea(viewRect, boxToRect(edgeBox)) > 0;
}
const getEdgeId = ({ source, sourceHandle, target, targetHandle }: Connection | BaseEdge): string =>
const getEdgeId = ({ source, sourceHandle, target, targetHandle }: Connection | EdgeBase): string =>
`xyflow__edge-${source}${sourceHandle || ''}-${target}${targetHandle || ''}`;
const connectionExists = (edge: BaseEdge, edges: BaseEdge[]) => {
const connectionExists = (edge: EdgeBase, edges: EdgeBase[]) => {
return edges.some(
(el) =>
el.source === edge.source &&
@@ -121,7 +121,7 @@ const connectionExists = (edge: BaseEdge, edges: BaseEdge[]) => {
);
};
export const addEdgeBase = <EdgeType extends BaseEdge>(
export const addEdgeBase = <EdgeType extends EdgeBase>(
edgeParams: EdgeType | Connection,
edges: EdgeType[]
): EdgeType[] => {
@@ -152,7 +152,7 @@ export type UpdateEdgeOptions = {
shouldReplaceId?: boolean;
};
export const updateEdgeBase = <EdgeType extends BaseEdge>(
export const updateEdgeBase = <EdgeType extends EdgeBase>(
oldEdge: EdgeType,
newConnection: Connection,
edges: EdgeType[],
+4 -4
View File
@@ -1,15 +1,15 @@
import { EdgePosition } from '../../types/edges';
import { ConnectionMode, OnError } from '../../types/general';
import { BaseNode, NodeHandleBounds } from '../../types/nodes';
import { NodeBase, NodeHandleBounds } from '../../types/nodes';
import { Position, Rect, XYPosition } from '../../types/utils';
import { errorMessages, internalsSymbol } from '../../constants';
import { HandleElement } from '../../types';
export type GetEdgePositionParams = {
id: string;
sourceNode: BaseNode;
sourceNode: NodeBase;
sourceHandle: string | null;
targetNode: BaseNode;
targetNode: NodeBase;
targetHandle: string | null;
connectionMode: ConnectionMode;
onError?: OnError;
@@ -59,7 +59,7 @@ export function getEdgePosition(params: GetEdgePositionParams): EdgePosition | n
};
}
function getHandleDataByNode(node?: BaseNode): [Rect, NodeHandleBounds | null, boolean] {
function getHandleDataByNode(node?: NodeBase): [Rect, NodeHandleBounds | null, boolean] {
const handleBounds = node?.[internalsSymbol]?.handleBounds || null;
const isValid =
+3 -3
View File
@@ -4,7 +4,7 @@ import type {
CoordinateExtent,
Box,
Rect,
BaseNode,
NodeBase,
NodeOrigin,
SnapGrid,
Transform,
@@ -58,7 +58,7 @@ export const boxToRect = ({ x, y, x2, y2 }: Box): Rect => ({
height: y2 - y,
});
export const nodeToRect = (node: BaseNode, nodeOrigin: NodeOrigin = [0, 0]): Rect => {
export const nodeToRect = (node: NodeBase, nodeOrigin: NodeOrigin = [0, 0]): Rect => {
const { positionAbsolute } = getNodePositionWithOrigin(node, node.origin || nodeOrigin);
return {
@@ -68,7 +68,7 @@ export const nodeToRect = (node: BaseNode, nodeOrigin: NodeOrigin = [0, 0]): Rec
};
};
export const nodeToBox = (node: BaseNode, nodeOrigin: NodeOrigin = [0, 0]): Box => {
export const nodeToBox = (node: NodeBase, nodeOrigin: NodeOrigin = [0, 0]): Box => {
const { positionAbsolute } = getNodePositionWithOrigin(node, node.origin || nodeOrigin);
return {
+13 -13
View File
@@ -17,8 +17,8 @@ import {
type XYPosition,
type Rect,
type NodeOrigin,
type BaseNode,
type BaseEdge,
type NodeBase,
type EdgeBase,
type FitViewParamsBase,
type FitViewOptionsBase,
NodeDragItem,
@@ -27,15 +27,15 @@ import {
} from '../types';
import { errorMessages } from '../constants';
export const isEdgeBase = <NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>(
export const isEdgeBase = <NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>(
element: NodeType | Connection | EdgeType
): element is EdgeType => 'id' in element && 'source' in element && 'target' in element;
export const isNodeBase = <NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>(
export const isNodeBase = <NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>(
element: NodeType | Connection | EdgeType
): element is NodeType => 'id' in element && !('source' in element) && !('target' in element);
export const getOutgoersBase = <NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>(
export const getOutgoersBase = <NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>(
node: NodeType,
nodes: NodeType[],
edges: EdgeType[]
@@ -48,7 +48,7 @@ export const getOutgoersBase = <NodeType extends BaseNode = BaseNode, EdgeType e
return nodes.filter((n) => outgoerIds.includes(n.id));
};
export const getIncomersBase = <NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>(
export const getIncomersBase = <NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>(
node: NodeType,
nodes: NodeType[],
edges: EdgeType[]
@@ -62,7 +62,7 @@ export const getIncomersBase = <NodeType extends BaseNode = BaseNode, EdgeType e
};
export const getNodePositionWithOrigin = (
node: BaseNode | undefined,
node: NodeBase | undefined,
nodeOrigin: NodeOrigin = [0, 0]
): XYPosition & { positionAbsolute: XYPosition } => {
if (!node) {
@@ -95,7 +95,7 @@ export const getNodePositionWithOrigin = (
};
};
export const getRectOfNodes = (nodes: BaseNode[], nodeOrigin: NodeOrigin = [0, 0]): Rect => {
export const getRectOfNodes = (nodes: NodeBase[], nodeOrigin: NodeOrigin = [0, 0]): Rect => {
if (nodes.length === 0) {
return { x: 0, y: 0, width: 0, height: 0 };
}
@@ -119,7 +119,7 @@ export const getRectOfNodes = (nodes: BaseNode[], nodeOrigin: NodeOrigin = [0, 0
return boxToRect(box);
};
export const getNodesInside = <NodeType extends BaseNode>(
export const getNodesInside = <NodeType extends NodeBase>(
nodes: NodeType[],
rect: Rect,
[tx, ty, tScale]: Transform = [0, 0, 1],
@@ -158,7 +158,7 @@ export const getNodesInside = <NodeType extends BaseNode>(
return visibleNodes;
};
export const getConnectedEdgesBase = <NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>(
export const getConnectedEdgesBase = <NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>(
nodes: NodeType[],
edges: EdgeType[]
): EdgeType[] => {
@@ -167,7 +167,7 @@ export const getConnectedEdgesBase = <NodeType extends BaseNode = BaseNode, Edge
return edges.filter((edge) => nodeIds.includes(edge.source) || nodeIds.includes(edge.target));
};
export function fitView<Params extends FitViewParamsBase<BaseNode>, Options extends FitViewOptionsBase<BaseNode>>(
export function fitView<Params extends FitViewParamsBase<NodeBase>, Options extends FitViewOptionsBase<NodeBase>>(
{ nodes, width, height, panZoom, minZoom, maxZoom, nodeOrigin = [0, 0] }: Params,
options?: Options
) {
@@ -203,7 +203,7 @@ export function fitView<Params extends FitViewParamsBase<BaseNode>, Options exte
return false;
}
export function calcNextPosition<NodeType extends BaseNode>(
export function calcNextPosition<NodeType extends NodeBase>(
node: NodeDragItem | NodeType,
nextPosition: XYPosition,
nodes: NodeType[],
@@ -263,7 +263,7 @@ export function calcNextPosition<NodeType extends BaseNode>(
// helper function to get arrays of nodes and edges that can be deleted
// you can pass in a list of nodes and edges that should be deleted
// and the function only returns elements that are deletable and also handles connected nodes and child nodes
export function getElementsToRemove<NodeType extends BaseNode = BaseNode, EdgeType extends BaseEdge = BaseEdge>({
export function getElementsToRemove<NodeType extends NodeBase = NodeBase, EdgeType extends EdgeBase = EdgeBase>({
nodesToRemove,
edgesToRemove,
nodes,
+2 -2
View File
@@ -1,4 +1,4 @@
import type { BaseEdge, EdgeMarker, EdgeMarkerType, MarkerProps } from '../types';
import type { EdgeBase, EdgeMarker, EdgeMarkerType, MarkerProps } from '../types';
export function getMarkerId(marker: EdgeMarkerType | undefined, id?: string | null): string {
if (!marker) {
@@ -18,7 +18,7 @@ export function getMarkerId(marker: EdgeMarkerType | undefined, id?: string | nu
}
export function createMarkerIds(
edges: BaseEdge[],
edges: EdgeBase[],
{ id, defaultColor }: { id?: string | null; defaultColor?: string }
) {
const ids: string[] = [];
+7 -7
View File
@@ -1,6 +1,6 @@
import { internalsSymbol } from '../constants';
import {
BaseNode,
NodeBase,
CoordinateExtent,
Dimensions,
NodeDimensionUpdate,
@@ -16,7 +16,7 @@ import { getNodePositionWithOrigin } from './graph';
type ParentNodes = Record<string, boolean>;
export function updateAbsolutePositions<NodeType extends BaseNode>(
export function updateAbsolutePositions<NodeType extends NodeBase>(
nodes: NodeType[],
nodeOrigin: NodeOrigin = [0, 0],
parentNodes?: ParentNodes
@@ -54,13 +54,13 @@ export function updateAbsolutePositions<NodeType extends BaseNode>(
});
}
type UpdateNodesOptions<NodeType extends BaseNode> = {
type UpdateNodesOptions<NodeType extends NodeBase> = {
nodeOrigin?: NodeOrigin;
elevateNodesOnSelect?: boolean;
defaults?: Partial<NodeType>;
};
export function updateNodes<NodeType extends BaseNode>(
export function updateNodes<NodeType extends NodeBase>(
nodes: NodeType[],
storeNodes: NodeType[],
options: UpdateNodesOptions<NodeType> = {
@@ -104,7 +104,7 @@ export function updateNodes<NodeType extends BaseNode>(
return nodesWithPositions;
}
function calculateXYZPosition<NodeType extends BaseNode>(
function calculateXYZPosition<NodeType extends NodeBase>(
node: NodeType,
nodes: NodeType[],
result: XYZPosition,
@@ -131,11 +131,11 @@ function calculateXYZPosition<NodeType extends BaseNode>(
export function updateNodeDimensions(
updates: NodeDimensionUpdate[],
nodes: BaseNode[],
nodes: NodeBase[],
domNode: HTMLElement | null,
nodeOrigin?: NodeOrigin,
onUpdate?: (id: string, dimensions: Dimensions) => void
): BaseNode[] | null {
): NodeBase[] | null {
const viewportNode = domNode?.querySelector('.xyflow__viewport');
if (!viewportNode) {