@antv/g2
Version:
the Grammar of Graphics in Javascript
43 lines (38 loc) • 1.04 kB
text/typescript
import { isArray, isNumber } from '@antv/util';
import { Padding, ViewPadding } from '../interface';
/**
* @ignore
* 是否是自动 padding
* @param padding
*/
export function isAutoPadding(padding: ViewPadding): padding is 'auto' {
return !isNumber(padding) && !isArray(padding);
}
/**
* @ignore
* padding 的解析逻辑
* @param padding
* @return [ top, right, bottom, left ]
*/
export function parsePadding(padding: number[] | number = 0): Padding {
let paddingArray = isArray(padding) ? padding : [padding];
switch (paddingArray.length) {
case 0:
paddingArray = [0, 0, 0, 0];
break;
case 1:
paddingArray = new Array(4).fill(paddingArray[0]);
break;
case 2:
paddingArray = [...paddingArray, ...paddingArray];
break;
case 3:
paddingArray = [...paddingArray, paddingArray[1]];
break;
default:
// 其他情况,只去四个
paddingArray = paddingArray.slice(0, 4);
break;
}
return paddingArray as [number, number, number, number];
}