UNPKG

@rxflow/base

Version:

BaseFlow - 核心 Flow 组件库

89 lines (87 loc) 3.09 kB
/* * @author: yanxianliang * @date: 2025-05-17 22:24 * @desc: dimension 计算 utils * * Copyright (c) 2025 by yanxianliang, All Rights Reserved. */ /** * 计算节点的宽度 * @param node * @param nodeTypes * @param theme * @param nodeLookup */ export function getNodeWidth(node, nodeTypes, theme, nodeLookup) { // 优先级,lookup > node measured 配置>size>calc if (nodeLookup && nodeLookup.has(node.id)) { var _lookup$measured; var lookup = nodeLookup.get(node.id); if (typeof (lookup === null || lookup === void 0 || (_lookup$measured = lookup.measured) === null || _lookup$measured === void 0 ? void 0 : _lookup$measured.width) === 'number') { var _lookup$measured2; return lookup === null || lookup === void 0 || (_lookup$measured2 = lookup.measured) === null || _lookup$measured2 === void 0 ? void 0 : _lookup$measured2.width; // 实际的高度 } } var type = node.type, measured = node.measured, width = node.width; if (typeof (measured === null || measured === void 0 ? void 0 : measured.width) === 'number') { return measured.width; } if (typeof width === 'number') { return width; } if (!type || !(nodeTypes !== null && nodeTypes !== void 0 && nodeTypes[type]) || !(nodeTypes !== null && nodeTypes !== void 0 && nodeTypes[type].defaultSize)) { return 1; } var ctr = nodeTypes[type]; var defaults = ctr.defaultSize; if (defaults.width) { if (typeof defaults.width === 'number') { return defaults.width; } return defaults.width(node, theme); } else { return 1; } } /** * 计算节点的高度 * @param node * @param nodeTypes * @param theme * @param nodeLookup */ export function getNodeHeight(node, nodeTypes, theme, nodeLookup) { // 优先级,lookup > node measured 配置>size>calc if (nodeLookup && nodeLookup.has(node.id)) { var _lookup$measured3; var lookup = nodeLookup.get(node.id); if (typeof (lookup === null || lookup === void 0 || (_lookup$measured3 = lookup.measured) === null || _lookup$measured3 === void 0 ? void 0 : _lookup$measured3.height) === 'number') { var _lookup$measured4; return lookup === null || lookup === void 0 || (_lookup$measured4 = lookup.measured) === null || _lookup$measured4 === void 0 ? void 0 : _lookup$measured4.height; // 实际的高度 } } var type = node.type, measured = node.measured, height = node.height; if (typeof (measured === null || measured === void 0 ? void 0 : measured.height) === 'number') { return measured.height; } if (typeof height === 'number') { return height; } if (!type || !(nodeTypes !== null && nodeTypes !== void 0 && nodeTypes[type]) || !(nodeTypes !== null && nodeTypes !== void 0 && nodeTypes[type].defaultSize)) { return 1; } var ctr = nodeTypes[type]; var defaults = ctr === null || ctr === void 0 ? void 0 : ctr.defaultSize; if (defaults.height) { if (typeof defaults.height === 'number') { return defaults.height; } return defaults.height(node, theme); } else { return 1; } }