UNPKG

@antv/s2

Version:

effective spreadsheet render core lib

54 lines 2.67 kB
import { Group } from '@antv/g'; import { SeriesNumberCell } from '../../cell/series-number-cell'; import { FRONT_GROUND_GROUP_FROZEN_Z_INDEX, FRONT_GROUND_GROUP_SCROLL_Z_INDEX, KEY_GROUP_ROW_INDEX_FROZEN, KEY_GROUP_ROW_INDEX_FROZEN_TRAILING, KEY_GROUP_ROW_INDEX_SCROLL, S2Event, } from '../../common'; import { RowHeader } from './row'; import { getExtraFrozenSeriesNodes, getSeriesNumberNodes } from './util'; export class SeriesNumberHeader extends 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 : 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 Group({ name: KEY_GROUP_ROW_INDEX_SCROLL, style: { zIndex: FRONT_GROUND_GROUP_SCROLL_Z_INDEX }, })); this.frozenGroup = this.appendChild(new Group({ name: KEY_GROUP_ROW_INDEX_FROZEN, style: { zIndex: FRONT_GROUND_GROUP_FROZEN_Z_INDEX }, })); this.frozenTrailingGroup = this.appendChild(new Group({ name: KEY_GROUP_ROW_INDEX_FROZEN_TRAILING, style: { zIndex: FRONT_GROUND_GROUP_FROZEN_Z_INDEX }, })); const { spreadsheet, nodes } = this.getHeaderConfig(); this.extraFrozenNodes = 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 SeriesNumberCell(node, spreadsheet, headerConfig)); } emitRenderEvent(cell) { const { spreadsheet } = this.getHeaderConfig(); spreadsheet.emit(S2Event.SERIES_NUMBER_CELL_RENDER, cell); spreadsheet.emit(S2Event.LAYOUT_CELL_RENDER, cell); } } //# sourceMappingURL=series-number.js.map