UNPKG

ze-react-component-library

Version:
125 lines (105 loc) 3.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _underscore = _interopRequireDefault(require("underscore")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } var __assign = void 0 && (void 0).__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); }; var _default = function _default(apiResult, config) { if (!apiResult) return apiResult; var result = apiResult.result, columnProperties = apiResult.columnProperties, logicform = apiResult.logicform; var groupedData = _underscore.default.groupBy(result, function (i) { return config.rows.map(function (r) { return _typeof(i[r]) === "object" ? i[r]._id : i[r]; }).join(""); }); var pivotedData = []; var pivotedColumnProperties = []; var pivotedLogicform = JSON.parse(JSON.stringify(logicform)); pivotedLogicform.groupby = []; pivotedLogicform.preds = []; // pivot column properties config.rows.forEach(function (r) { pivotedColumnProperties.push(columnProperties.find(function (p) { return p.name === r; })); pivotedLogicform.groupby.push(logicform.groupby.find(function (g) { return g.name === r; })); }); var keyArr = _underscore.default.uniq(result.map(function (i) { return config.rows.map(function (r) { return _typeof(i[r]) === "object" ? i[r]._id : i[r]; }).join(""); })); // pivot data keyArr.forEach(function (key) { var array = groupedData[key]; var resultItem = { _id: key, origin: array }; config.rows.forEach(function (r) { resultItem[r] = array[0][r]; }); array.forEach(function (arrayItem) { var newKey = config.cols.map(function (c) { if (_typeof(arrayItem[c]) === "object") { var property = columnProperties.find(function (p) { return p.name === c; }); if (property.schema) { var nameProp = property.schema.properties.find(function (p) { return p.is_name; }); if (nameProp) { return arrayItem[c][nameProp.name]; } } } return _typeof(arrayItem[c]) === "object" ? arrayItem[c]._id : arrayItem[c]; }).join(""); arrayItem.key = newKey; config.values.forEach(function (vKey) { var pivotedKey = "" + newKey + vKey; resultItem[pivotedKey] = arrayItem[vKey]; if (!pivotedColumnProperties.find(function (p) { return p.name === pivotedKey; })) { var oldProperty = columnProperties.find(function (p) { return p.name === vKey; }); pivotedColumnProperties.push(__assign(__assign({}, oldProperty), { name: pivotedKey })); var oldPred = logicform.preds.find(function (p) { return p.name === vKey; }); pivotedLogicform.preds.push(__assign(__assign({}, oldPred || {}), { name: pivotedKey })); } }); }); pivotedData.push(resultItem); }); return __assign(__assign({}, apiResult), { logicform: pivotedLogicform, result: pivotedData, columnProperties: pivotedColumnProperties }); }; exports.default = _default;