@antv/s2
Version:
effective spreadsheet render core lib
58 lines • 2.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SeriesNumberHeader = void 0;
const g_1 = require("@antv/g");
const series_number_cell_1 = require("../../cell/series-number-cell");
const common_1 = require("../../common");
const row_1 = require("./row");
const util_1 = require("./util");
class SeriesNumberHeader extends row_1.RowHeader {
/**
* Get seriesNumber header by config
*/
static getSeriesNumberHeader(options) {
var _a, _b;
const { panelBBox, seriesNumberWidth, rowsHierarchy, spreadsheet, cornerWidth, } = options;
const { height, viewportHeight } = panelBBox;
const layoutSeriesNumberNodes = (_b = (_a = spreadsheet.options) === null || _a === void 0 ? void 0 : _a.layoutSeriesNumberNodes) !== null && _b !== void 0 ? _b : util_1.getSeriesNumberNodes;
return new SeriesNumberHeader({
width: cornerWidth,
height,
viewportWidth: cornerWidth,
viewportHeight,
position: { x: 0, y: panelBBox.y },
nodes: layoutSeriesNumberNodes(rowsHierarchy, seriesNumberWidth, spreadsheet),
spreadsheet,
});
}
initGroups() {
this.scrollGroup = this.appendChild(new g_1.Group({
name: common_1.KEY_GROUP_ROW_INDEX_SCROLL,
style: { zIndex: common_1.FRONT_GROUND_GROUP_SCROLL_Z_INDEX },
}));
this.frozenGroup = this.appendChild(new g_1.Group({
name: common_1.KEY_GROUP_ROW_INDEX_FROZEN,
style: { zIndex: common_1.FRONT_GROUND_GROUP_FROZEN_Z_INDEX },
}));
this.frozenTrailingGroup = this.appendChild(new g_1.Group({
name: common_1.KEY_GROUP_ROW_INDEX_FROZEN_TRAILING,
style: { zIndex: common_1.FRONT_GROUND_GROUP_FROZEN_Z_INDEX },
}));
const { spreadsheet, nodes } = this.getHeaderConfig();
this.extraFrozenNodes = (0, util_1.getExtraFrozenSeriesNodes)(spreadsheet.facet, nodes);
}
getCellInstance(node) {
const headerConfig = this.getHeaderConfig();
const { spreadsheet } = headerConfig;
const { seriesNumberCell } = spreadsheet.options;
return ((seriesNumberCell === null || seriesNumberCell === void 0 ? void 0 : seriesNumberCell(node, spreadsheet, headerConfig)) ||
new series_number_cell_1.SeriesNumberCell(node, spreadsheet, headerConfig));
}
emitRenderEvent(cell) {
const { spreadsheet } = this.getHeaderConfig();
spreadsheet.emit(common_1.S2Event.SERIES_NUMBER_CELL_RENDER, cell);
spreadsheet.emit(common_1.S2Event.LAYOUT_CELL_RENDER, cell);
}
}
exports.SeriesNumberHeader = SeriesNumberHeader;
//# sourceMappingURL=series-number.js.map