Files
railwaysystem/RuoYi-Vue/ruoyi-ui/node_modules1/@antv/graphlib/es/util.js
T
2026-09-10 15:40:10 +08:00

83 lines
1.8 KiB
JavaScript

import { GraphEnum } from './Graph/enum';
/**
* @description add one to key's value in map
* @description.zh-CN 在 map 中 key 的值加 1
* @param map
* @param key
*/
export function incrementOrInitEntry(map, key) {
var val = map.get(key) || 0;
map.set(key, val + 1);
}
/**
* @description minus one from key's value in map, is value is 0, delete the key
* @description.zh-CN 在 map 中 key 的值减 1,如果值为 0,则删除 key
*/
export function decrementOrRemoveEntry(map, key) {
var val = map.get(key);
if (val !== undefined) {
val = val - 1;
if (val > 0) {
map.set(key, val);
} else {
map.delete(key);
}
}
}
/**
* @description convert edge to string id
* @description.zh-CN 转换边为字符串 id
*/
export function edgeArgsToId(isDirected, v_, w_, name) {
var v = String(v_);
var w = String(w_);
if (!isDirected && v > w) {
var tmp = v;
v = w;
w = tmp;
}
return v + GraphEnum.EDGE_KEY_DELIM + w + GraphEnum.EDGE_KEY_DELIM + (name === undefined ? GraphEnum.DEFAULT_EDGE_NAME : name);
}
/**
* @description convert edge arguments to edge object
* @description.zh-CN 转换边参数为边对象
*/
export function edgeArgsToObj(isDirected, v, w, name) {
var strV = String(v);
var strW = String(w);
var edgeObj = {
v: v,
w: w
};
if (!isDirected && strV > strW) {
var tmp = edgeObj.v;
edgeObj.v = edgeObj.w;
edgeObj.w = tmp;
}
if (name !== undefined) {
edgeObj.name = name;
}
return edgeObj;
}
/**
* @description convert edge object to string id
* @description.zh-CN 转换边对象为字符串 id
*/
export function edgeObjToId(isDirected, edgeObj) {
return edgeArgsToId(isDirected, edgeObj.v, edgeObj.w, edgeObj.name);
}
export function isFunction(obj) {
return typeof obj === 'function';
}