UNPKG

@revolist/revogrid

Version:

Virtual reactive data grid spreadsheet component - RevoGrid.

61 lines (60 loc) 2.42 kB
/*! * Built by Revolist OU ❤️ */ import { h } from "@stencil/core"; import { FilterButton } from "../../plugins/filter/filter.button"; import { SortingSign } from "../../plugins/sorting/sorting.sign"; import { DATA_COL, FOCUS_CLASS, HEADER_CLASS, HEADER_SORTABLE_CLASS, MIN_COL_SIZE, } from "../../utils/consts"; import { HeaderCellRenderer } from "./header-cell-renderer"; const HeaderRenderer = (p) => { var _a, _b, _c, _d, _e; const cellClass = { [HEADER_CLASS]: true, [HEADER_SORTABLE_CLASS]: !!((_a = p.data) === null || _a === void 0 ? void 0 : _a.sortable), }; if ((_b = p.data) === null || _b === void 0 ? void 0 : _b.order) { cellClass[p.data.order] = true; } const dataProps = { [DATA_COL]: p.column.itemIndex, canResize: p.canResize, minWidth: ((_c = p.data) === null || _c === void 0 ? void 0 : _c.minSize) || MIN_COL_SIZE, maxWidth: (_d = p.data) === null || _d === void 0 ? void 0 : _d.maxSize, active: p.active || ['r'], class: cellClass, style: { width: `${p.column.size}px`, transform: `translateX(${p.column.start}px)`, }, onResize: p.onResize, onDblClick(originalEvent) { var _a; (_a = p.onDblClick) === null || _a === void 0 ? void 0 : _a.call(p, { column: p.data, index: p.column.itemIndex, originalEvent, providers: p.data.providers, }); }, onClick(originalEvent) { if (originalEvent.defaultPrevented || !p.onClick) { return; } p.onClick({ column: p.data, index: p.column.itemIndex, originalEvent, providers: p.data.providers, }); }, }; if (p.range) { if (p.column.itemIndex >= p.range.x && p.column.itemIndex <= p.range.x1) { if (typeof dataProps.class === 'object') { dataProps.class[FOCUS_CLASS] = true; } } } return (h(HeaderCellRenderer, { data: p.data, props: dataProps, additionalData: p.additionalData }, h(SortingSign, { column: p.data }), p.canFilter && ((_e = p.data) === null || _e === void 0 ? void 0 : _e.filter) !== false ? (h(FilterButton, { column: p.data })) : (''))); }; export default HeaderRenderer;