UNPKG

@progress/kendo-react-excel-export

Version:
100 lines 3.65 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var ReactDOMServer = require("react-dom/server"); /* tslint:disable align */ /* tslint:disable:no-use-before-declare */ var compileTemplate = function (Template, context, updateContext) { var result = function (data) { updateContext(context, data); var templateResult = ReactDOMServer.renderToStaticMarkup(React.createElement(Template, __assign({}, context))); var parsed = Number(templateResult); return isNaN(parsed) ? templateResult : parsed; }; return result; }; var updateGroupHeaderContext = function (context, data) { context.$implicit = context.group = data; context.field = data.field; context.value = data.value; context.aggregates = data.aggregates; }; var updateGroupFooterContext = function (context, data) { context.group = data.group; context.$implicit = context.aggregates = data; }; var updateFooterContext = function (_context, _data) { }; /* tslint:disable-line no-empty */ /** * @hidden */ exports.toExporterColumns = function (sourceColumns) { var exporterColumns = []; var columnIndex = 0; var addColumns = function (columns, result, level) { columns.forEach(function (column) { if (column.level === level) { var exporterColumn = new ExporterColumn(column, columnIndex); result.push(exporterColumn); if (column.children && column.children.length > 1) { var children = exporterColumn.columns = []; addColumns(column.children, children, level + 1); } else { columnIndex++; } } }); }; addColumns(sourceColumns, exporterColumns, 0); return exporterColumns; }; /** * @hidden */ var ExporterColumn = /** @class */ (function () { function ExporterColumn(column, columnIndex) { this.title = column.title; this.field = column.field; this.hidden = column.hidden; this.locked = column.locked; this.width = column.width; this.headerCellOptions = column.headerCellOptions; this.cellOptions = column.cellOptions; this.groupHeaderCellOptions = column.groupHeaderCellOptions; this.groupFooterCellOptions = column.groupFooterCellOptions; this.footerCellOptions = column.footerCellOptions; if (column.footer) { this.footerTemplate = compileTemplate(column.footer, { $implicit: column, column: column, columnIndex: columnIndex }, updateFooterContext); } if (column.groupFooter) { this.groupFooterTemplate = compileTemplate(column.groupFooter, { column: column, field: column.field }, updateGroupFooterContext); } if (column.groupHeader) { this.groupHeaderTemplate = compileTemplate(column.groupHeader, {}, updateGroupHeaderContext); } } return ExporterColumn; }()); exports.ExporterColumn = ExporterColumn; //# sourceMappingURL=ExporterColumns.js.map