@antv/g6
Version:
A Graph Visualization Framework in JavaScript
20 lines (18 loc) • 708 B
text/typescript
import type { Placement, RelativePlacement } from '../types';
import { isBetween } from './math';
/**
* <zh/> 解析位置
*
* <en/> Parse position
* @param placement - <zh/> 位置 | <en/> placement
* @returns <zh/> 相对位置 | <en/> relative placement
*/
export function parsePlacement(placement: Placement): RelativePlacement {
if (Array.isArray(placement)) {
return isBetween(placement[0], 0, 1) && isBetween(placement[1], 0, 1) ? placement : [0.5, 0.5];
}
const direction = placement.split('-');
const x = direction.includes('left') ? 0 : direction.includes('right') ? 1 : 0.5;
const y = direction.includes('top') ? 0 : direction.includes('bottom') ? 1 : 0.5;
return [x, y];
}