UNPKG

5.17 kBSource Map (JSON)View Raw
1{"version":3,"file":"auto.js","sourceRoot":"","sources":["../../../src/chart/layout/auto.ts"],"names":[],"mappings":"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","sourcesContent":["import { each } from '@antv/util';\nimport { COMPONENT_TYPE } from '../../constant';\nimport { ComponentOption, Padding } from '../../interface';\nimport { BBox } from '../../util/bbox';\nimport { isAutoPadding, parsePadding } from '../../util/padding';\nimport View from '../view';\nimport { PaddingCal } from './padding-cal';\n\n/**\n * @ignore\n * 根据 view 中的组件,计算实际的 padding 数值\n * @param view\n */\nexport function calculatePadding(view: View): PaddingCal {\n const padding = view.padding;\n\n // 如果不是 auto padding,那么直接解析之后返回\n if (!isAutoPadding(padding)) {\n return new PaddingCal(...parsePadding(padding));\n }\n\n // 是 auto padding,根据组件的情况,来计算 padding\n const { viewBBox } = view;\n\n const paddingCal = new PaddingCal();\n\n const axisComponents = [];\n const paddingComponents = [];\n const otherComponents = [];\n\n each(view.getComponents(), (co: ComponentOption) => {\n const { type } = co;\n if (type === COMPONENT_TYPE.AXIS) {\n axisComponents.push(co);\n } else if ([COMPONENT_TYPE.LEGEND, COMPONENT_TYPE.SLIDER, COMPONENT_TYPE.SCROLLBAR].includes(type)) {\n paddingComponents.push(co);\n } else if (type !== COMPONENT_TYPE.GRID && type !== COMPONENT_TYPE.TOOLTIP) {\n otherComponents.push(co);\n }\n });\n\n // 进行坐标轴布局,应该是取 padding 的并集,而不是进行相加\n each(axisComponents, (co: ComponentOption) => {\n const { component } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n\n const exceed = componentBBox.exceed(viewBBox);\n\n // 在对组件分组之后,先对 axis 进行处理,然后取最大的超出即可。\n paddingCal.max(exceed);\n });\n\n // 有 padding 的组件布局\n each(paddingComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentPadding: Padding = component.get('padding');\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height).expand(\n componentPadding\n );\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n // 其他组件布局\n each(otherComponents, (co: ComponentOption) => {\n const { component, direction } = co;\n const bboxObject = component.getLayoutBBox();\n const componentBBox = new BBox(bboxObject.x, bboxObject.y, bboxObject.width, bboxObject.height);\n // 按照方向计算 padding\n paddingCal.inc(componentBBox, direction);\n });\n\n return paddingCal;\n}\n"]}
\No newline at end of file