NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/esm/chart/layout/auto.js
2023-09-14 14:47:11 +08:00

52 lines
2.0 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { each } from '@antv/util';
import { COMPONENT_TYPE } from '../../constant';
import { BBox } from '../../util/bbox';
import { isAutoPadding, parsePadding } from '../../util/padding';
import { PaddingCal } from './padding-cal';
/**
* @ignore
* 根据 view 中的组件,计算实际的 padding 数值
* @param view
*/
export function calculatePadding(view) {
var padding = view.padding;
// 如果不是 auto padding那么直接解析之后返回
if (!isAutoPadding(padding)) {
return parsePadding(padding);
}
// 是 auto padding根据组件的情况来计算 padding
var viewBBox = view.viewBBox, autoPadding = view.autoPadding;
var paddingCal = new PaddingCal();
each(view.getComponents(), function (co) {
var component = co.component, type = co.type;
// grid, tooltip 不参入 padding 布局
if (type === COMPONENT_TYPE.GRID || type === COMPONENT_TYPE.TOOLTIP) {
return;
}
var bboxObject = component.getLayoutBBox();
var componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);
if (type === COMPONENT_TYPE.AXIS) {
var exceed = componentBBox.exceed(viewBBox);
paddingCal.shrink(exceed);
}
else {
// 按照方向计算 padding
var direction = co.direction;
// const direction =
// type === COMPONENT_TYPE.AXIS ? getTranslateDirection(co.direction, view.getCoordinate()) : co.direction;
paddingCal.inc(componentBBox, direction);
}
});
var calculatedPadding = paddingCal.getPadding();
if (autoPadding) {
// 取上一次以及当前计算结果的最大区间
return [
Math.max(autoPadding[0], calculatedPadding[0]),
Math.max(autoPadding[1], calculatedPadding[1]),
Math.max(autoPadding[2], calculatedPadding[2]),
Math.max(autoPadding[3], calculatedPadding[3]),
];
}
return calculatedPadding;
}
//# sourceMappingURL=auto.js.map