@antv/s2
Version:
effective spreadsheet render core lib
74 lines • 2.96 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.AxisCornerHeader = void 0;
const s2_1 = require("@antv/s2");
const axis_corner_cell_1 = require("../cell/axis-corner-cell");
class AxisCornerHeader extends s2_1.CornerHeader {
/**
* Get corner Header by config
*/
static getCornerHeader(options) {
var _a;
const { panelBBox, cornerBBox, seriesNumberWidth, layoutResult, spreadsheet, } = options;
const { y, viewportWidth, viewportHeight } = panelBBox;
const { originalWidth: cornerOriginalWidth, width: cornerWidth } = cornerBBox;
const { axisColsHierarchy } = layoutResult;
const position = {
x: cornerBBox.x,
y: y + viewportHeight,
};
const height = (_a = axisColsHierarchy === null || axisColsHierarchy === void 0 ? void 0 : axisColsHierarchy.height) !== null && _a !== void 0 ? _a : 0;
const cornerNodes = this.getCornerNodes({
position,
width: cornerOriginalWidth,
height,
layoutResult,
seriesNumberWidth,
spreadsheet,
});
return new AxisCornerHeader({
nodes: cornerNodes,
position,
width: cornerWidth,
height,
originalWidth: cornerOriginalWidth,
originalHeight: height,
viewportWidth,
viewportHeight,
seriesNumberWidth,
spreadsheet,
});
}
static getCornerNodes(options) {
const cornerNodes = [];
// 创建角头区域竖轴
const { layoutResult, spreadsheet } = options;
const { axisColsHierarchy } = layoutResult;
const colAxisNode = axisColsHierarchy === null || axisColsHierarchy === void 0 ? void 0 : axisColsHierarchy.sampleNodeForLastLevel;
if (colAxisNode) {
const cornerNode = new s2_1.Node({
id: colAxisNode.id,
field: colAxisNode.field,
value: spreadsheet.dataSet.getFieldName(colAxisNode.field),
x: 0,
y: 0,
width: spreadsheet.facet.cornerBBox.originalWidth,
height: colAxisNode.height,
isPivotMode: true,
cornerType: s2_1.CornerNodeType.Col,
spreadsheet,
});
cornerNodes.push(cornerNode);
}
return cornerNodes;
}
getCellInstance(node) {
const headerConfig = this.getHeaderConfig();
const { spreadsheet } = headerConfig;
const { axisCornerCell } = spreadsheet.options;
return ((axisCornerCell === null || axisCornerCell === void 0 ? void 0 : axisCornerCell(node, spreadsheet, headerConfig)) ||
new axis_corner_cell_1.AxisCornerCell(node, spreadsheet, headerConfig));
}
}
exports.AxisCornerHeader = AxisCornerHeader;
//# sourceMappingURL=axis-corner.js.map