mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-21 08:02:26 +00:00
nit dataflow dark mode colors
This commit is contained in:
@@ -3,16 +3,8 @@ This file contains "middleware" functions that sanitize user input (UserNodeType
|
||||
maintain consistency between previous
|
||||
|
||||
*/
|
||||
import {
|
||||
bottomCb,
|
||||
leftCb,
|
||||
rightCb,
|
||||
topCb,
|
||||
} from '../../edges/controllers/anchorCbUser';
|
||||
import type { UserEdgeType, UserNodeType } from '../../types/types';
|
||||
|
||||
|
||||
|
||||
import { bottomCb, leftCb, rightCb, topCb } from '../../edges/controllers/anchorCbUser'
|
||||
import type { UserEdgeType, UserNodeType } from '../../types/types'
|
||||
|
||||
/**
|
||||
* sanitizeUserNodesAndEdges will sanitize the data initially passed in to Svelvet component. For example, the node that user specified have an integar as its id but to instantiate a Node and be compatible with uuid we will need to convert the integar id to a string.
|
||||
@@ -20,15 +12,12 @@ import type { UserEdgeType, UserNodeType } from '../../types/types';
|
||||
* @param userEdges The array of edges that have a UserEdgeType
|
||||
* @returns An object of sanitized userNodes and userEdges
|
||||
*/
|
||||
export function sanitizeUserNodesAndEdges(
|
||||
userNodes: UserNodeType[],
|
||||
userEdges: UserEdgeType[]
|
||||
) {
|
||||
convertIdToString(userNodes);
|
||||
convertEdgeIdsToString(userEdges);
|
||||
convertAnchorPositionsToCallbacks(userNodes, userEdges);
|
||||
setDefaultEdgeType(userEdges);
|
||||
return { userNodes, userEdges };
|
||||
export function sanitizeUserNodesAndEdges(userNodes: UserNodeType[], userEdges: UserEdgeType[]) {
|
||||
convertIdToString(userNodes)
|
||||
convertEdgeIdsToString(userEdges)
|
||||
convertAnchorPositionsToCallbacks(userNodes, userEdges)
|
||||
setDefaultEdgeType(userEdges)
|
||||
return { userNodes, userEdges }
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -37,10 +26,10 @@ export function sanitizeUserNodesAndEdges(
|
||||
* @returns No return, the function edits the objects in place
|
||||
*/
|
||||
function setDefaultEdgeType(userEdges) {
|
||||
for (let userEdge of userEdges) {
|
||||
if (!['smoothstep', 'step', 'bezier', 'straight'].includes(userEdge.type))
|
||||
userEdge.type = 'bezier';
|
||||
}
|
||||
for (let userEdge of userEdges) {
|
||||
if (!['smoothstep', 'step', 'bezier', 'straight'].includes(userEdge.type))
|
||||
userEdge.type = 'bezier'
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -57,25 +46,23 @@ function setDefaultEdgeType(userEdges) {
|
||||
* consistent user experience. However, we suggest that this functionality (parsing Svelvet5 syntax into
|
||||
* Svelvet6 syntax) be removed completely in favor of only using Svelvet6 syntax in order to reduce edge cases.
|
||||
*/
|
||||
function convertAnchorPositionsToCallbacks(
|
||||
userNodes: UserNodeType[],
|
||||
userEdges: UserEdgeType[]
|
||||
) {
|
||||
// convert userNodes array into object for constant time lookup by id
|
||||
const userNodesObj: { [key: string]: UserNodeType } = {};
|
||||
for (let userNode of userNodes) userNodesObj[userNode.id] = userNode;
|
||||
function convertAnchorPositionsToCallbacks(userNodes: UserNodeType[], userEdges: UserEdgeType[]) {
|
||||
// convert userNodes array into object for constant time lookup by id
|
||||
const userNodesObj: { [key: string]: UserNodeType } = {}
|
||||
for (let userNode of userNodes) userNodesObj[userNode.id] = userNode
|
||||
|
||||
// iterate through userEdges, and check the source/target nodes.
|
||||
for (let userEdge of userEdges) {
|
||||
const userNodeSource = userNodesObj[userEdge.source];
|
||||
const userNodeTarget = userNodesObj[userEdge.target];
|
||||
const sourcePosition = userNodeSource.sourcePosition;
|
||||
const targetPosition = userNodeTarget.targetPosition;
|
||||
// iterate through userEdges, and check the source/target nodes.
|
||||
for (let userEdge of userEdges) {
|
||||
const userNodeSource = userNodesObj[userEdge.source]
|
||||
const userNodeTarget = userNodesObj[userEdge.target]
|
||||
if (!userNodeSource || !userNodeTarget) continue
|
||||
const sourcePosition = userNodeSource.sourcePosition
|
||||
const targetPosition = userNodeTarget.targetPosition
|
||||
|
||||
const cbs = { left: leftCb, right: rightCb, top: topCb, bottom: bottomCb };
|
||||
if (sourcePosition) userEdge.sourceAnchorCb = cbs[sourcePosition];
|
||||
if (targetPosition) userEdge.targetAnchorCb = cbs[targetPosition];
|
||||
}
|
||||
const cbs = { left: leftCb, right: rightCb, top: topCb, bottom: bottomCb }
|
||||
if (sourcePosition) userEdge.sourceAnchorCb = cbs[sourcePosition]
|
||||
if (targetPosition) userEdge.targetAnchorCb = cbs[targetPosition]
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -83,14 +70,12 @@ function convertAnchorPositionsToCallbacks(
|
||||
* @param userNodes The array of userNodes (not yet sanitized)
|
||||
*/
|
||||
function convertIdToString(userNodes: UserNodeType[]) {
|
||||
userNodes = userNodes.map((node) => {
|
||||
node.id = node.id.toString();
|
||||
node.childNodes =
|
||||
node.childNodes === undefined
|
||||
? []
|
||||
: node.childNodes.map((childId) => childId.toString());
|
||||
return node;
|
||||
});
|
||||
userNodes = userNodes.map((node) => {
|
||||
node.id = node.id.toString()
|
||||
node.childNodes =
|
||||
node.childNodes === undefined ? [] : node.childNodes.map((childId) => childId.toString())
|
||||
return node
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -98,9 +83,9 @@ function convertIdToString(userNodes: UserNodeType[]) {
|
||||
* @param userEdges The array of userEdges (not yet sanitized)
|
||||
*/
|
||||
function convertEdgeIdsToString(userEdges: UserEdgeType[]) {
|
||||
userEdges = userEdges.map((edge) => {
|
||||
edge.source = edge.source.toString();
|
||||
edge.target = edge.target.toString();
|
||||
return edge;
|
||||
});
|
||||
userEdges = userEdges.map((edge) => {
|
||||
edge.source = edge.source.toString()
|
||||
edge.target = edge.target.toString()
|
||||
return edge
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user