@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
84 lines • 3.75 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 });
// (C) 2007-2020 GoodData Corporation
var React = require("react");
var omit = require("lodash/omit");
var noop = require("lodash/noop");
var PivotTable_1 = require("./core/PivotTable");
var DataSourceProvider_1 = require("./afm/DataSourceProvider");
var conversion_1 = require("../helpers/conversion");
var dimensions_1 = require("../helpers/dimensions");
var resultSpec_1 = require("../helpers/resultSpec");
var bucketNames_1 = require("../constants/bucketNames");
var errorHandlers_1 = require("../helpers/errorHandlers");
exports.getBuckets = function (props) {
var measures = props.measures, rows = props.rows, columns = props.columns, totals = props.totals;
return [
{
localIdentifier: bucketNames_1.MEASURES,
items: measures || [],
},
{
// ATTRIBUTE for backwards compatibility with Table component. Actually ROWS
localIdentifier: bucketNames_1.ATTRIBUTE,
items: rows || [],
totals: totals || [],
},
{
localIdentifier: bucketNames_1.COLUMNS,
items: columns || [],
},
];
};
// noop is never called because resultSpec is always provided
var DataSourceProvider = DataSourceProvider_1.dataSourceProvider(PivotTable_1.PivotTable, noop, "PivotTable");
/**
* Update link to documentation [PivotTable](https://sdk.gooddata.com/gooddata-ui/docs/next/pivot_table_component.html)
* is a component with bucket props measures, rows, columns, totals, sortBy, filters
*/
var PivotTable = /** @class */ (function (_super) {
__extends(PivotTable, _super);
function PivotTable() {
return _super !== null && _super.apply(this, arguments) || this;
}
PivotTable.prototype.render = function () {
var _a = this.props, sortBy = _a.sortBy, filters = _a.filters, exportTitle = _a.exportTitle;
var buckets = exports.getBuckets(this.props);
var afm = conversion_1.convertBucketsToAFM(buckets, filters);
var resultSpec = resultSpec_1.getResultSpec(buckets, sortBy, dimensions_1.getPivotTableDimensions);
errorHandlers_1.hasDuplicateIdentifiers(buckets);
// PivotTable component still has 'rows' prop even though this is translated into ATTRIBUTE bucket
var newProps = omit(this.props, ["measures", "rows", "columns", "totals", "filters", "sortBy"]);
return (React.createElement(DataSourceProvider, __assign({}, newProps, { afm: afm, resultSpec: resultSpec, exportTitle: exportTitle })));
};
PivotTable.defaultProps = {
groupRows: true,
};
return PivotTable;
}(React.Component));
exports.PivotTable = PivotTable;
//# sourceMappingURL=PivotTable.js.map