@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
99 lines • 4.7 kB
JavaScript
;
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