UNPKG

@revolist/revogrid

Version:

Virtual reactive data grid spreadsheet component - RevoGrid.

105 lines (98 loc) 4.72 kB
/*! * Built by Revolist OU ❤️ */ 'use strict'; const index = require('./index-8006d065.js'); const dimension_helpers = require('./dimension.helpers-29797371.js'); const column_service = require('./column.service-e6411bc8.js'); const SortingSign = ({ column }) => { var _a; return index.h("i", { class: (_a = column === null || column === void 0 ? void 0 : column.order) !== null && _a !== void 0 ? _a : 'sort-off' }); }; const PADDING_DEPTH = 10; const RowRenderer = ({ rowClass, index: index$1, size, start, depth }, cells) => { const props = Object.assign({ [dimension_helpers.DATA_ROW]: index$1 }); return (index.h("div", Object.assign({}, props, { class: `rgRow ${rowClass || ''}`, style: { height: `${size}px`, transform: `translateY(${start}px)`, paddingLeft: depth ? `${PADDING_DEPTH * depth}px` : undefined, } }), cells)); }; function expandEvent(e, model, virtualIndex) { var _a; const event = new CustomEvent(column_service.GROUP_EXPAND_EVENT, { detail: { model, virtualIndex, }, cancelable: true, bubbles: true, }); (_a = e.target) === null || _a === void 0 ? void 0 : _a.dispatchEvent(event); } const GroupingRowRenderer = (props) => { const { model, itemIndex, hasExpand, groupingCustomRenderer } = props; const name = model[column_service.PSEUDO_GROUP_ITEM]; const expanded = model[column_service.GROUP_EXPANDED]; const depth = parseInt(model[column_service.GROUP_DEPTH], 10) || 0; if (groupingCustomRenderer) { return (index.h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), index.h("div", { onClick: e => expandEvent(e, model, itemIndex) }, groupingCustomRenderer(index.h, Object.assign(Object.assign({}, props), { colType: props.providers.colType, name, expanded, depth }))))); } return (index.h(RowRenderer, Object.assign({}, props, { rowClass: "groupingRow", depth: depth }), hasExpand && [ index.h("button", { class: { [column_service.GROUP_EXPAND_BTN]: true }, onClick: e => expandEvent(e, model, itemIndex) }, expandSvgIconVNode(expanded)), name, ])); }; const expandSvgIconVNode = (expanded = false) => { return (index.h("svg", { "aria-hidden": "true", style: { transform: `rotate(${!expanded ? -90 : 0}deg)` }, focusable: "false", viewBox: "0 0 448 512" }, index.h("path", { fill: "currentColor", d: "M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z" }))); }; function renderCell(v) { var _a; const els = []; // #region Custom cell const template = (_a = v.schemaModel.column) === null || _a === void 0 ? void 0 : _a.cellTemplate; if (template) { els.push(template(index.h, v.schemaModel, v.additionalData)); } // #endregion // #region Regular cell else { if (!v.schemaModel.column) { // something is wrong with data if (index.Build === null || index.Build === void 0 ? void 0 : index.Build.isDev) { console.error('Investigate column problem.', v.schemaModel); } return ''; } // Row drag if (v.schemaModel.column.rowDrag && column_service.isRowDragService(v.schemaModel.column.rowDrag, v.schemaModel)) { els.push(index.h("span", { class: dimension_helpers.DRAGGABLE_CLASS, onMouseDown: originalEvent => { var _a; return (_a = v.dragStartCell) === null || _a === void 0 ? void 0 : _a.emit({ originalEvent, model: v.schemaModel, }); } }, index.h("span", { class: dimension_helpers.DRAG_ICON_CLASS }))); } els.push(`${column_service.getCellDataParsed(v.schemaModel.model, v.schemaModel.column)}`); } return els; } const CellRenderer = ({ renderProps, cellProps, }) => { const render = renderCell.bind(null, renderProps); return (index.h("div", Object.assign({}, cellProps, { redraw: render }), render())); }; exports.CellRenderer = CellRenderer; exports.GroupingRowRenderer = GroupingRowRenderer; exports.PADDING_DEPTH = PADDING_DEPTH; exports.RowRenderer = RowRenderer; exports.SortingSign = SortingSign; exports.expandEvent = expandEvent; exports.expandSvgIconVNode = expandSvgIconVNode; //# sourceMappingURL=cell-renderer-e5481ec8.js.map