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