import type { Padding, STDPadding } from '../types/padding';
/**
* 解析 padding
*
* parse padding
* @param padding - padding | padding
* @returns 标准 padding | standard padding
*/
export function parsePadding(padding: Padding = 0): STDPadding {
if (Array.isArray(padding)) {
const [top = 0, right = top, bottom = top, left = right] = padding;
return [top, right, bottom, left];
}
return [padding, padding, padding, padding];
}
/**
* 获取在垂直方向上的 padding
*
* get vertical padding
* @param padding - padding | padding
* @returns 垂直方向上的 padding | vertical padding
*/
export function getVerticalPadding(padding: Padding = 0): number {
const parsedPadding = parsePadding(padding);
return parsedPadding[0] + parsedPadding[2];
}
/**
* 获取在水平方向上的 padding
*
* get horizontal padding
* @param padding - padding | padding
* @returns 水平方向上的 padding | horizontal padding
*/
export function getHorizontalPadding(padding: Padding = 0): number {
const parsedPadding = parsePadding(padding);
return parsedPadding[1] + parsedPadding[3];
}