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

117 lines
3.5 KiB
Java

import { get, map } from '@antv/util';
/**
* @ignore
* get the grid theme by type
* @param theme
* @param direction
* @returns theme object
*/
export function getGridThemeCfg(theme, direction) {
return get(theme, ['components', 'axis', direction, 'grid'], {});
}
/**
* @ignore
* get axis grid items
* @param coordinate
* @param scale
* @param dim
* @return items
*/
export function getLineGridItems(coordinate, scale, dim, alignTick) {
var items = [];
var ticks = scale.getTicks();
if (coordinate.isPolar) {
// 补全 ticks
ticks.push({
value: 1,
text: '',
tickValue: '',
});
}
ticks.reduce(function (preTick, currentTick, currentIndex) {
var currentValue = currentTick.value;
if (alignTick) {
items.push({
points: [
coordinate.convert(dim === 'y' ? { x: 0, y: currentValue } : { x: currentValue, y: 0 }),
coordinate.convert(dim === 'y' ? { x: 1, y: currentValue } : { x: currentValue, y: 1 }),
],
});
}
else {
if (currentIndex) {
var preValue = preTick.value;
var middleValue = (preValue + currentValue) / 2;
items.push({
points: [
coordinate.convert(dim === 'y' ? { x: 0, y: middleValue } : { x: middleValue, y: 0 }),
coordinate.convert(dim === 'y' ? { x: 1, y: middleValue } : { x: middleValue, y: 1 }),
],
});
}
}
return currentTick;
}, ticks[0]);
return items;
}
/**
* @ignore
* get
* @param coordinate
* @param xScale
* @param yScale
* @param dim
* @returns items
*/
export function getCircleGridItems(coordinate, xScale, yScale, alignTick, dim) {
var count = xScale.values.length;
var items = [];
var ticks = yScale.getTicks();
ticks.reduce(function (preTick, currentTick) {
var preValue = preTick ? preTick.value : currentTick.value; // 只有一项数据时取当前值
var currentValue = currentTick.value;
var middleValue = (preValue + currentValue) / 2;
if (dim === 'x') {
// 如果是 x 轴作为半径轴,那么只需要取圆弧收尾两个即可
items.push({
points: [
coordinate.convert({
x: alignTick ? currentValue : middleValue,
y: 0,
}),
coordinate.convert({
x: alignTick ? currentValue : middleValue,
y: 1,
}),
]
});
}
else {
items.push({
points: map(Array(count + 1), function (__, idx) {
return coordinate.convert({
x: idx / count,
y: alignTick ? currentValue : middleValue,
});
}),
});
}
return currentTick;
}, ticks[0]);
return items;
}
/**
* @ignore
* show grid or not
* @param axisTheme
* @param axisOption
*/
export function showGrid(axisTheme, axisOption) {
var userGrid = get(axisOption, 'grid');
if (userGrid === null) {
return false;
}
var themeGrid = get(axisTheme, 'grid');
return !(userGrid === undefined && themeGrid === null);
}
//# sourceMappingURL=grid.js.map