UNPKG

@gooddata/react-components

Version:

GoodData.UI - A powerful JavaScript library for building analytical applications

99 lines 4.7 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); 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 noop = require("lodash/noop"); var pick = require("lodash/pick"); var React = require("react"); var headerPredicate_1 = require("../../../helpers/headerPredicate"); var Table_1 = require("./Table"); var dataTransformation_1 = require("./utils/dataTransformation"); var sort_1 = require("./utils/sort"); function renderDefaultTable(props) { return React.createElement(Table_1.Table, __assign({}, props)); } var TableTransformation = /** @class */ (function (_super) { __extends(TableTransformation, _super); function TableTransformation() { return _super !== null && _super.apply(this, arguments) || this; } TableTransformation.prototype.render = function () { var _a = this.props, config = _a.config, drillableItems = _a.drillableItems, executionRequest = _a.executionRequest, executionResponse = _a.executionResponse, executionResult = _a.executionResult, height = _a.height, maxHeight = _a.maxHeight, onFiredDrillEvent = _a.onFiredDrillEvent, onSortChange = _a.onSortChange, width = _a.width, totals = _a.totals, totalsEditAllowed = _a.totalsEditAllowed, onTotalsEdit = _a.onTotalsEdit, afterRender = _a.afterRender, lastAddedTotalType = _a.lastAddedTotalType, onLastAddedTotalRowHighlightPeriodEnd = _a.onLastAddedTotalRowHighlightPeriodEnd; var headers = dataTransformation_1.getHeaders(executionResponse); var rows = dataTransformation_1.getRows(executionResult); var totalsWithData = dataTransformation_1.getTotalsWithData(totals, executionResult); var drillablePredicates = headerPredicate_1.convertDrillableItemsToPredicates(drillableItems); dataTransformation_1.validateTableProportions(headers, rows); var sortItem = sort_1.getSortItem(executionRequest); var EMPTY_SORT_INFO = { sortBy: undefined, sortDir: undefined }; var _b = sortItem ? sort_1.getSortInfo(sortItem, headers) : EMPTY_SORT_INFO, sortBy = _b.sortBy, sortDir = _b.sortDir; var tableProps = __assign({}, pick(config, [ "rowsPerPage", "onMore", "onLess", "sortInTooltip", "stickyHeaderOffset", "separators", ]), { afterRender: afterRender, totalsWithData: totalsWithData, totalsEditAllowed: totalsEditAllowed, onTotalsEdit: onTotalsEdit, drillablePredicates: drillablePredicates, executionRequest: executionRequest, executionResponse: executionResponse, headers: headers, onFiredDrillEvent: onFiredDrillEvent, onSortChange: onSortChange, rows: rows, sortBy: sortBy, sortDir: sortDir, lastAddedTotalType: lastAddedTotalType, onLastAddedTotalRowHighlightPeriodEnd: onLastAddedTotalRowHighlightPeriodEnd }); if (height) { tableProps.containerHeight = height; } if (maxHeight) { tableProps.containerMaxHeight = maxHeight; } if (width) { tableProps.containerWidth = width; } return this.props.tableRenderer(tableProps); }; TableTransformation.defaultProps = { afterRender: noop, totals: [], onTotalsEdit: noop, config: {}, drillableItems: [], onFiredDrillEvent: function () { return true; }, onSortChange: noop, tableRenderer: renderDefaultTable, onLastAddedTotalRowHighlightPeriodEnd: noop, }; return TableTransformation; }(React.Component)); exports.TableTransformation = TableTransformation; //# sourceMappingURL=TableTransformation.js.map