react-pivottable-plus 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/PivotTable.js +51 -0
- package/PivotTable.js.map +1 -0
- package/PivotTableUI.js +786 -0
- package/PivotTableUI.js.map +1 -0
- package/PlotlyRenderers.js +267 -0
- package/PlotlyRenderers.js.map +1 -0
- package/README.md +94 -0
- package/TableRenderers.js +417 -0
- package/TableRenderers.js.map +1 -0
- package/Utilities.js +868 -0
- package/Utilities.js.map +1 -0
- package/grouping.css +111 -0
- package/hooks/usePivot.js +176 -0
- package/hooks/usePivot.js.map +1 -0
- package/package.json +102 -0
- package/pivottable.css +441 -0
- package/renderers/RadixUI.js +381 -0
- package/renderers/RadixUI.js.map +1 -0
- package/renderers/ShadcnDashboardUI.js +425 -0
- package/renderers/ShadcnDashboardUI.js.map +1 -0
- package/renderers/TailwindUI.js +425 -0
- package/renderers/TailwindUI.js.map +1 -0
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
|
+
var _Utilities = require("./Utilities");
|
|
11
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
12
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
13
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
14
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
15
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
16
|
+
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
17
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
18
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
19
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
20
|
+
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
21
|
+
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
22
|
+
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
23
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
24
|
+
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
25
|
+
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
26
|
+
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
27
|
+
// helper function for setting row/col-span in pivotTableRenderer
|
|
28
|
+
var spanSize = function spanSize(arr, i, j) {
|
|
29
|
+
var no_loop = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
30
|
+
var x;
|
|
31
|
+
if (i !== 0) {
|
|
32
|
+
var asc, end;
|
|
33
|
+
var noDraw = true;
|
|
34
|
+
for (x = 0, end = j, asc = end >= 0; asc ? x <= end : x >= end; asc ? x++ : x--) {
|
|
35
|
+
if (arr[i - 1][x] !== arr[i][x]) {
|
|
36
|
+
noDraw = false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (noDraw) {
|
|
40
|
+
return -1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
var len = 0;
|
|
44
|
+
while (i + len < arr.length) {
|
|
45
|
+
var asc1 = void 0,
|
|
46
|
+
end1 = void 0;
|
|
47
|
+
var stop = false;
|
|
48
|
+
for (x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0; asc1 ? x <= end1 : x >= end1; asc1 ? x++ : x--) {
|
|
49
|
+
if (arr[i][x] !== arr[i + len][x]) {
|
|
50
|
+
stop = true;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
if (stop) {
|
|
54
|
+
break;
|
|
55
|
+
}
|
|
56
|
+
len++;
|
|
57
|
+
}
|
|
58
|
+
return len;
|
|
59
|
+
};
|
|
60
|
+
function redColorScaleGenerator(values) {
|
|
61
|
+
var min = Math.min.apply(Math, values);
|
|
62
|
+
var max = Math.max.apply(Math, values);
|
|
63
|
+
return function (x) {
|
|
64
|
+
// eslint-disable-next-line no-magic-numbers
|
|
65
|
+
var nonRed = 255 - Math.round(255 * (x - min) / (max - min));
|
|
66
|
+
return {
|
|
67
|
+
backgroundColor: "rgb(255,".concat(nonRed, ",").concat(nonRed, ")")
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
var flatKey = function flatKey(arr) {
|
|
72
|
+
return arr.join(String.fromCharCode(0));
|
|
73
|
+
};
|
|
74
|
+
var has = function has(set, arr) {
|
|
75
|
+
return arr.every(set.has, set);
|
|
76
|
+
};
|
|
77
|
+
var add = function add(set, arr) {
|
|
78
|
+
return arr.forEach(set.add, set) || set;
|
|
79
|
+
};
|
|
80
|
+
var remove = function remove(set, arr) {
|
|
81
|
+
return arr.forEach(set["delete"], set) || set;
|
|
82
|
+
};
|
|
83
|
+
var toggle = function toggle(set, arr) {
|
|
84
|
+
return (has(set, arr) ? remove : add)(set, arr);
|
|
85
|
+
};
|
|
86
|
+
function makeRenderer() {
|
|
87
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
88
|
+
var TableRenderer = /*#__PURE__*/function (_React$PureComponent) {
|
|
89
|
+
function TableRenderer() {
|
|
90
|
+
_classCallCheck(this, TableRenderer);
|
|
91
|
+
return _callSuper(this, TableRenderer, arguments);
|
|
92
|
+
}
|
|
93
|
+
_inherits(TableRenderer, _React$PureComponent);
|
|
94
|
+
return _createClass(TableRenderer, [{
|
|
95
|
+
key: "render",
|
|
96
|
+
value: function render() {
|
|
97
|
+
var _this = this;
|
|
98
|
+
var pivotData = new _Utilities.PivotData(this.props);
|
|
99
|
+
var id = pivotData.props.id;
|
|
100
|
+
var colAttrs = pivotData.props.cols;
|
|
101
|
+
var rowAttrs = pivotData.props.rows;
|
|
102
|
+
var rowKeys = pivotData.getRowKeys(true);
|
|
103
|
+
var colKeys = pivotData.getColKeys(true);
|
|
104
|
+
var grandTotalAggregator = pivotData.getAggregator([], []);
|
|
105
|
+
var grouping = pivotData.props.grouping;
|
|
106
|
+
var compactRows = grouping && this.props.compactRows;
|
|
107
|
+
// speacial case for spanSize counting (no_loop)
|
|
108
|
+
var specialCase = grouping && !this.props.rowGroupBefore;
|
|
109
|
+
var folded = (this.state || {}).folded || new Set();
|
|
110
|
+
var isFolded = function isFolded(keys) {
|
|
111
|
+
return has(folded, keys.map(flatKey));
|
|
112
|
+
};
|
|
113
|
+
var fold = function fold(keys) {
|
|
114
|
+
return _this.setState({
|
|
115
|
+
folded: toggle(new Set(folded), keys.map(flatKey))
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
if (grouping) {
|
|
119
|
+
var _iterator = _createForOfIteratorHelper(folded),
|
|
120
|
+
_step;
|
|
121
|
+
try {
|
|
122
|
+
var _loop = function _loop() {
|
|
123
|
+
var key = _step.value;
|
|
124
|
+
colKeys = colKeys.filter(function (colKey) {
|
|
125
|
+
return !flatKey(colKey).startsWith(key + String.fromCharCode(0));
|
|
126
|
+
});
|
|
127
|
+
rowKeys = rowKeys.filter(function (rowKey) {
|
|
128
|
+
return !flatKey(rowKey).startsWith(key + String.fromCharCode(0));
|
|
129
|
+
});
|
|
130
|
+
};
|
|
131
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
132
|
+
_loop();
|
|
133
|
+
}
|
|
134
|
+
} catch (err) {
|
|
135
|
+
_iterator.e(err);
|
|
136
|
+
} finally {
|
|
137
|
+
_iterator.f();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
var totalRows = rowKeys.length;
|
|
141
|
+
if (this.props.pagination) {
|
|
142
|
+
var start = (this.props.page - 1) * this.props.pageSize;
|
|
143
|
+
var end = start + this.props.pageSize;
|
|
144
|
+
rowKeys = rowKeys.slice(start, end);
|
|
145
|
+
}
|
|
146
|
+
var valueCellColors = function valueCellColors() {};
|
|
147
|
+
var rowTotalColors = function rowTotalColors() {};
|
|
148
|
+
var colTotalColors = function colTotalColors() {};
|
|
149
|
+
if (opts.heatmapMode) {
|
|
150
|
+
var colorScaleGenerator = this.props.tableColorScaleGenerator;
|
|
151
|
+
var rowTotalValues = colKeys.map(function (x) {
|
|
152
|
+
return pivotData.getAggregator([], x).value();
|
|
153
|
+
});
|
|
154
|
+
rowTotalColors = colorScaleGenerator(rowTotalValues);
|
|
155
|
+
var colTotalValues = rowKeys.map(function (x) {
|
|
156
|
+
return pivotData.getAggregator(x, []).value();
|
|
157
|
+
});
|
|
158
|
+
colTotalColors = colorScaleGenerator(colTotalValues);
|
|
159
|
+
if (opts.heatmapMode === 'full') {
|
|
160
|
+
var allValues = [];
|
|
161
|
+
rowKeys.map(function (r) {
|
|
162
|
+
return colKeys.map(function (c) {
|
|
163
|
+
return allValues.push(pivotData.getAggregator(r, c).value());
|
|
164
|
+
});
|
|
165
|
+
});
|
|
166
|
+
var colorScale = colorScaleGenerator(allValues);
|
|
167
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
168
|
+
return colorScale(v);
|
|
169
|
+
};
|
|
170
|
+
} else if (opts.heatmapMode === 'row') {
|
|
171
|
+
var rowColorScales = {};
|
|
172
|
+
rowKeys.map(function (r) {
|
|
173
|
+
var rowValues = colKeys.map(function (x) {
|
|
174
|
+
return pivotData.getAggregator(r, x).value();
|
|
175
|
+
});
|
|
176
|
+
rowColorScales[r] = colorScaleGenerator(rowValues);
|
|
177
|
+
});
|
|
178
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
179
|
+
return rowColorScales[r](v);
|
|
180
|
+
};
|
|
181
|
+
} else if (opts.heatmapMode === 'col') {
|
|
182
|
+
var colColorScales = {};
|
|
183
|
+
colKeys.map(function (c) {
|
|
184
|
+
var colValues = rowKeys.map(function (x) {
|
|
185
|
+
return pivotData.getAggregator(x, c).value();
|
|
186
|
+
});
|
|
187
|
+
colColorScales[c] = colorScaleGenerator(colValues);
|
|
188
|
+
});
|
|
189
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
190
|
+
return colColorScales[c](v);
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
var getClickHandler = this.props.tableOptions && this.props.tableOptions.clickCallback ? function (value, rowValues, colValues) {
|
|
195
|
+
var filters = {};
|
|
196
|
+
for (var _i = 0, _Object$keys = Object.keys(colAttrs || {}); _i < _Object$keys.length; _i++) {
|
|
197
|
+
var i = _Object$keys[_i];
|
|
198
|
+
var attr = colAttrs[i];
|
|
199
|
+
if (colValues[i] !== null) {
|
|
200
|
+
filters[attr] = colValues[i];
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(rowAttrs || {}); _i2 < _Object$keys2.length; _i2++) {
|
|
204
|
+
var _i3 = _Object$keys2[_i2];
|
|
205
|
+
var _attr = rowAttrs[_i3];
|
|
206
|
+
if (rowValues[_i3] !== null) {
|
|
207
|
+
filters[_attr] = rowValues[_i3];
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
return function (e) {
|
|
211
|
+
return _this.props.tableOptions.clickCallback(e, value, filters, pivotData);
|
|
212
|
+
};
|
|
213
|
+
} : null;
|
|
214
|
+
var rbClass = grouping ? this.props.rowGroupBefore ? "rowGroupBefore" : "rowGroupAfter" : "";
|
|
215
|
+
var cbClass = grouping ? this.props.colGroupBefore ? "colGroupBefore" : "colGroupAfter" : "";
|
|
216
|
+
var clickClass = function clickClass(pred, closed) {
|
|
217
|
+
return pred ? " pvtClickable" + (closed ? " closed" : "") : "";
|
|
218
|
+
};
|
|
219
|
+
return /*#__PURE__*/_react["default"].createElement("table", {
|
|
220
|
+
id: id,
|
|
221
|
+
className: "pvtTable ".concat(rbClass, " ").concat(cbClass)
|
|
222
|
+
}, /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
|
|
223
|
+
var clickable = grouping && colAttrs.length > j + 1;
|
|
224
|
+
var levelKeys = colKeys.filter(function (x) {
|
|
225
|
+
return x.length === j + 1;
|
|
226
|
+
});
|
|
227
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
228
|
+
key: "colAttr".concat(j)
|
|
229
|
+
}, j === 0 && rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
230
|
+
colSpan: rowAttrs.length,
|
|
231
|
+
rowSpan: colAttrs.length
|
|
232
|
+
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
233
|
+
className: "pvtAxisLabel" + clickClass(clickable, isFolded(levelKeys)),
|
|
234
|
+
onClick: clickable ? function (_) {
|
|
235
|
+
return fold(levelKeys);
|
|
236
|
+
} : null
|
|
237
|
+
}, c), colKeys.map(function (colKey, i) {
|
|
238
|
+
var x = spanSize(colKeys, i, j);
|
|
239
|
+
if (x === -1) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
243
|
+
className: "pvtColLabel" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)])),
|
|
244
|
+
key: "colKey-".concat(i, "-").concat(j, "-").concat(colKey[j]),
|
|
245
|
+
colSpan: x,
|
|
246
|
+
rowSpan: j === colAttrs.length - 1 && rowAttrs.length !== 0 ? 2 : 1,
|
|
247
|
+
onClick: clickable && colKey[j] ? function (_) {
|
|
248
|
+
return fold([colKey.slice(0, j + 1)]);
|
|
249
|
+
} : null
|
|
250
|
+
}, colKey[j]);
|
|
251
|
+
}), j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
252
|
+
className: "pvtTotalLabel",
|
|
253
|
+
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
254
|
+
}, "Totals"));
|
|
255
|
+
}), rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("tr", null, rowAttrs.map(function (r, i) {
|
|
256
|
+
var clickable = grouping && rowAttrs.length > i + 1;
|
|
257
|
+
var levelKeys = rowKeys.filter(function (x) {
|
|
258
|
+
return x.length === i + 1;
|
|
259
|
+
});
|
|
260
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
261
|
+
className: "pvtAxisLabel" + clickClass(clickable, isFolded(levelKeys)),
|
|
262
|
+
onClick: clickable ? function (_) {
|
|
263
|
+
return fold(levelKeys);
|
|
264
|
+
} : null,
|
|
265
|
+
key: "rowAttr".concat(i)
|
|
266
|
+
}, r);
|
|
267
|
+
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
268
|
+
className: "pvtTotalLabel"
|
|
269
|
+
}, colAttrs.length === 0 ? 'Totals' : null))), /*#__PURE__*/_react["default"].createElement("tbody", null, rowKeys.map(function (rowKey, i) {
|
|
270
|
+
var totalAggregator = pivotData.getAggregator(rowKey, []);
|
|
271
|
+
var rowGap = rowAttrs.length - rowKey.length;
|
|
272
|
+
var rowTotalValue = totalAggregator.value();
|
|
273
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
274
|
+
key: "rowKeyRow".concat(i),
|
|
275
|
+
className: (rowGap ? "pvtLevel" + rowGap : "pvtData") + " pvtRow-data"
|
|
276
|
+
}, rowKey.map(function (txt, j) {
|
|
277
|
+
if (compactRows && j < rowKey.length - 1) {
|
|
278
|
+
return null;
|
|
279
|
+
}
|
|
280
|
+
var clickable = grouping && rowAttrs.length > j + 1;
|
|
281
|
+
var x = compactRows ? 1 : spanSize(rowKeys, i, j, specialCase);
|
|
282
|
+
if (x === -1) {
|
|
283
|
+
return null;
|
|
284
|
+
}
|
|
285
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
286
|
+
key: "rowKeyLabel-".concat(i, "-").concat(j, "-").concat(txt),
|
|
287
|
+
className: "pvtRowLabel" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)])),
|
|
288
|
+
rowSpan: x,
|
|
289
|
+
colSpan: compactRows ? rowAttrs.length + 1 : j === rowAttrs.length - 1 && colAttrs.length !== 0 ? 2 : 1,
|
|
290
|
+
style: {
|
|
291
|
+
paddingLeft: compactRows ? "calc(var(--pvt-row-padding, 5px) + ".concat(j, " * var(--pvt-row-indent, 20px))") : null
|
|
292
|
+
},
|
|
293
|
+
onClick: clickable && rowKey[j] ? function (_) {
|
|
294
|
+
return fold([rowKey.slice(0, j + 1)]);
|
|
295
|
+
} : null
|
|
296
|
+
}, txt);
|
|
297
|
+
}), !compactRows && rowGap ? /*#__PURE__*/_react["default"].createElement("th", {
|
|
298
|
+
className: "pvtRowLabel",
|
|
299
|
+
colSpan: rowGap + 1
|
|
300
|
+
}, "Total (" + rowKey[rowKey.length - 1] + ")") : null, colKeys.map(function (colKey, j) {
|
|
301
|
+
var aggregator = pivotData.getAggregator(rowKey, colKey);
|
|
302
|
+
var colGap = colAttrs.length - colKey.length;
|
|
303
|
+
var val = aggregator.value();
|
|
304
|
+
var isNumeric = typeof val === 'number';
|
|
305
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
306
|
+
className: "pvtVal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : ""),
|
|
307
|
+
key: "pvtVal".concat(i, "-").concat(j),
|
|
308
|
+
onClick: getClickHandler && getClickHandler(val, rowKey, colKey),
|
|
309
|
+
style: valueCellColors(rowKey, colKey, val)
|
|
310
|
+
}, aggregator.format(val));
|
|
311
|
+
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
312
|
+
className: "pvtTotal" + (typeof rowTotalValue === 'number' ? " pvtVal-numeric" : ""),
|
|
313
|
+
onClick: getClickHandler && getClickHandler(rowTotalValue, rowKey, [null]),
|
|
314
|
+
style: colTotalColors(rowTotalValue)
|
|
315
|
+
}, totalAggregator.format(rowTotalValue)));
|
|
316
|
+
}), /*#__PURE__*/_react["default"].createElement("tr", {
|
|
317
|
+
className: "pvtTotalRow"
|
|
318
|
+
}, /*#__PURE__*/_react["default"].createElement("th", {
|
|
319
|
+
className: "pvtTotalLabel",
|
|
320
|
+
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
321
|
+
}, "Totals"), colKeys.map(function (colKey, i) {
|
|
322
|
+
var totalAggregator = pivotData.getAggregator([], colKey);
|
|
323
|
+
var colGap = colAttrs.length - colKey.length;
|
|
324
|
+
var totalVal = totalAggregator.value();
|
|
325
|
+
var isNumeric = typeof totalVal === 'number';
|
|
326
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
327
|
+
className: "pvtTotal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : ""),
|
|
328
|
+
key: "total".concat(i),
|
|
329
|
+
onClick: getClickHandler && getClickHandler(totalVal, [null], colKey),
|
|
330
|
+
style: rowTotalColors(totalVal)
|
|
331
|
+
}, totalAggregator.format(totalVal));
|
|
332
|
+
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
333
|
+
onClick: getClickHandler && getClickHandler(grandTotalAggregator.value(), [null], [null]),
|
|
334
|
+
className: "pvtGrandTotal" + (typeof grandTotalAggregator.value() === 'number' ? " pvtVal-numeric" : "")
|
|
335
|
+
}, grandTotalAggregator.format(grandTotalAggregator.value())))));
|
|
336
|
+
}
|
|
337
|
+
}]);
|
|
338
|
+
}(_react["default"].PureComponent);
|
|
339
|
+
TableRenderer.defaultProps = _Utilities.PivotData.defaultProps;
|
|
340
|
+
TableRenderer.propTypes = _Utilities.PivotData.propTypes;
|
|
341
|
+
TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;
|
|
342
|
+
TableRenderer.defaultProps.tableOptions = {};
|
|
343
|
+
TableRenderer.propTypes.tableColorScaleGenerator = _propTypes["default"].func;
|
|
344
|
+
TableRenderer.propTypes.tableOptions = _propTypes["default"].object;
|
|
345
|
+
TableRenderer.defaultProps.compactRows = true;
|
|
346
|
+
TableRenderer.propTypes.compactRows = _propTypes["default"].bool;
|
|
347
|
+
return TableRenderer;
|
|
348
|
+
}
|
|
349
|
+
var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent2) {
|
|
350
|
+
function TSVExportRenderer() {
|
|
351
|
+
_classCallCheck(this, TSVExportRenderer);
|
|
352
|
+
return _callSuper(this, TSVExportRenderer, arguments);
|
|
353
|
+
}
|
|
354
|
+
_inherits(TSVExportRenderer, _React$PureComponent2);
|
|
355
|
+
return _createClass(TSVExportRenderer, [{
|
|
356
|
+
key: "render",
|
|
357
|
+
value: function render() {
|
|
358
|
+
var pivotData = new _Utilities.PivotData(this.props);
|
|
359
|
+
var rowKeys = pivotData.getRowKeys();
|
|
360
|
+
var colKeys = pivotData.getColKeys();
|
|
361
|
+
if (rowKeys.length === 0) {
|
|
362
|
+
rowKeys.push([]);
|
|
363
|
+
}
|
|
364
|
+
if (colKeys.length === 0) {
|
|
365
|
+
colKeys.push([]);
|
|
366
|
+
}
|
|
367
|
+
var headerRow = pivotData.props.rows.map(function (r) {
|
|
368
|
+
return r;
|
|
369
|
+
});
|
|
370
|
+
if (colKeys.length === 1 && colKeys[0].length === 0) {
|
|
371
|
+
headerRow.push(this.props.aggregatorName);
|
|
372
|
+
} else {
|
|
373
|
+
colKeys.map(function (c) {
|
|
374
|
+
return headerRow.push(c.join('-'));
|
|
375
|
+
});
|
|
376
|
+
}
|
|
377
|
+
var result = rowKeys.map(function (r) {
|
|
378
|
+
var row = r.map(function (x) {
|
|
379
|
+
return x;
|
|
380
|
+
});
|
|
381
|
+
colKeys.map(function (c) {
|
|
382
|
+
var v = pivotData.getAggregator(r, c).value();
|
|
383
|
+
row.push(v ? v : '');
|
|
384
|
+
});
|
|
385
|
+
return row;
|
|
386
|
+
});
|
|
387
|
+
result.unshift(headerRow);
|
|
388
|
+
return /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
389
|
+
value: result.map(function (r) {
|
|
390
|
+
return r.join('\t');
|
|
391
|
+
}).join('\n'),
|
|
392
|
+
style: {
|
|
393
|
+
width: window.innerWidth / 2,
|
|
394
|
+
height: window.innerHeight / 2
|
|
395
|
+
},
|
|
396
|
+
readOnly: true
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
}]);
|
|
400
|
+
}(_react["default"].PureComponent);
|
|
401
|
+
TSVExportRenderer.defaultProps = _Utilities.PivotData.defaultProps;
|
|
402
|
+
TSVExportRenderer.propTypes = _Utilities.PivotData.propTypes;
|
|
403
|
+
var _default = exports["default"] = {
|
|
404
|
+
Table: makeRenderer(),
|
|
405
|
+
'Table Heatmap': makeRenderer({
|
|
406
|
+
heatmapMode: 'full'
|
|
407
|
+
}),
|
|
408
|
+
'Table Col Heatmap': makeRenderer({
|
|
409
|
+
heatmapMode: 'col'
|
|
410
|
+
}),
|
|
411
|
+
'Table Row Heatmap': makeRenderer({
|
|
412
|
+
heatmapMode: 'row'
|
|
413
|
+
}),
|
|
414
|
+
'Exportable TSV': TSVExportRenderer
|
|
415
|
+
};
|
|
416
|
+
module.exports = exports.default;
|
|
417
|
+
//# sourceMappingURL=TableRenderers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","e","__esModule","_createForOfIteratorHelper","r","t","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","o","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","spanSize","arr","j","no_loop","arguments","undefined","x","asc","end","noDraw","len","asc1","end1","stop","redColorScaleGenerator","values","min","Math","max","nonRed","round","backgroundColor","concat","flatKey","join","fromCharCode","has","set","every","add","forEach","remove","toggle","makeRenderer","opts","TableRenderer","_React$PureComponent","render","_this","pivotData","PivotData","props","id","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","grouping","compactRows","specialCase","rowGroupBefore","folded","state","Set","isFolded","keys","map","fold","setState","_iterator","_step","_loop","filter","colKey","startsWith","rowKey","err","totalRows","pagination","start","page","pageSize","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","colTotalValues","allValues","c","push","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","_i","_Object$keys","attr","_i2","_Object$keys2","rbClass","cbClass","colGroupBefore","clickClass","pred","closed","createElement","className","clickable","levelKeys","colSpan","rowSpan","onClick","_","totalAggregator","rowGap","rowTotalValue","txt","style","paddingLeft","aggregator","colGap","val","isNumeric","format","totalVal","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","bool","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","width","window","innerWidth","height","innerHeight","readOnly","_default","exports","Table","module","default"],"sources":["src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport {PivotData} from './Utilities';\r\n\r\n// helper function for setting row/col-span in pivotTableRenderer\r\nconst spanSize = function(arr, i, j, no_loop = false) {\r\n let x;\r\n if (i !== 0) {\r\n let asc, end;\r\n let noDraw = true;\r\n for (\r\n x = 0, end = j, asc = end >= 0;\r\n asc ? x <= end : x >= end;\r\n asc ? x++ : x--\r\n ) {\r\n if (arr[i - 1][x] !== arr[i][x]) {\r\n noDraw = false;\r\n }\r\n }\r\n if (noDraw) {\r\n return -1;\r\n }\r\n }\r\n let len = 0;\r\n while (i + len < arr.length) {\r\n let asc1, end1;\r\n let stop = false;\r\n for (\r\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\r\n asc1 ? x <= end1 : x >= end1;\r\n asc1 ? x++ : x--\r\n ) {\r\n if (arr[i][x] !== arr[i + len][x]) {\r\n stop = true;\r\n }\r\n }\r\n if (stop) {\r\n break;\r\n }\r\n len++;\r\n }\r\n return len;\r\n};\r\n\r\nfunction redColorScaleGenerator(values) {\r\n const min = Math.min.apply(Math, values);\r\n const max = Math.max.apply(Math, values);\r\n return x => {\r\n // eslint-disable-next-line no-magic-numbers\r\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\r\n return {backgroundColor: `rgb(255,${nonRed},${nonRed})`};\r\n };\r\n}\r\n\r\nconst flatKey = arr => arr.join(String.fromCharCode(0));\r\nconst has = (set, arr) => arr.every(set.has, set);\r\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\r\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\r\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\r\n\r\nfunction makeRenderer(opts = {}) {\r\n class TableRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const id = pivotData.props.id;\r\n const colAttrs = pivotData.props.cols;\r\n const rowAttrs = pivotData.props.rows;\r\n let rowKeys = pivotData.getRowKeys(true);\r\n let colKeys = pivotData.getColKeys(true);\r\n const grandTotalAggregator = pivotData.getAggregator([], []);\r\n\r\n const grouping = pivotData.props.grouping;\r\n const compactRows = grouping && this.props.compactRows;\r\n // speacial case for spanSize counting (no_loop)\r\n const specialCase = grouping && !this.props.rowGroupBefore;\r\n const folded = (this.state || {}).folded || new Set();\r\n const isFolded = keys => has(folded, keys.map(flatKey));\r\n const fold = keys => this.setState({folded: toggle(new Set(folded), keys.map(flatKey))});\r\n\r\n if(grouping){\r\n for (const key of folded) {\r\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\r\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\r\n }\r\n }\r\n\r\n const totalRows = rowKeys.length;\r\n if (this.props.pagination) {\r\n const start = (this.props.page - 1) * this.props.pageSize;\r\n const end = start + this.props.pageSize;\r\n rowKeys = rowKeys.slice(start, end);\r\n }\r\n\r\n let valueCellColors = () => {};\r\n let rowTotalColors = () => {};\r\n let colTotalColors = () => {};\r\n if (opts.heatmapMode) {\r\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\r\n const rowTotalValues = colKeys.map(x =>\r\n pivotData.getAggregator([], x).value()\r\n );\r\n rowTotalColors = colorScaleGenerator(rowTotalValues);\r\n const colTotalValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, []).value()\r\n );\r\n colTotalColors = colorScaleGenerator(colTotalValues);\r\n\r\n if (opts.heatmapMode === 'full') {\r\n const allValues = [];\r\n rowKeys.map(r =>\r\n colKeys.map(c =>\r\n allValues.push(pivotData.getAggregator(r, c).value())\r\n )\r\n );\r\n const colorScale = colorScaleGenerator(allValues);\r\n valueCellColors = (r, c, v) => colorScale(v);\r\n } else if (opts.heatmapMode === 'row') {\r\n const rowColorScales = {};\r\n rowKeys.map(r => {\r\n const rowValues = colKeys.map(x =>\r\n pivotData.getAggregator(r, x).value()\r\n );\r\n rowColorScales[r] = colorScaleGenerator(rowValues);\r\n });\r\n valueCellColors = (r, c, v) => rowColorScales[r](v);\r\n } else if (opts.heatmapMode === 'col') {\r\n const colColorScales = {};\r\n colKeys.map(c => {\r\n const colValues = rowKeys.map(x =>\r\n pivotData.getAggregator(x, c).value()\r\n );\r\n colColorScales[c] = colorScaleGenerator(colValues);\r\n });\r\n valueCellColors = (r, c, v) => colColorScales[c](v);\r\n }\r\n }\r\n\r\n const getClickHandler =\r\n this.props.tableOptions && this.props.tableOptions.clickCallback\r\n ? (value, rowValues, colValues) => {\r\n const filters = {};\r\n for (const i of Object.keys(colAttrs || {})) {\r\n const attr = colAttrs[i];\r\n if (colValues[i] !== null) {\r\n filters[attr] = colValues[i];\r\n }\r\n }\r\n for (const i of Object.keys(rowAttrs || {})) {\r\n const attr = rowAttrs[i];\r\n if (rowValues[i] !== null) {\r\n filters[attr] = rowValues[i];\r\n }\r\n }\r\n return e =>\r\n this.props.tableOptions.clickCallback(\r\n e,\r\n value,\r\n filters,\r\n pivotData\r\n );\r\n }\r\n : null;\r\n\r\n const rbClass = grouping? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\r\n const cbClass = grouping? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\r\n const clickClass = (pred, closed) => pred? \" pvtClickable\" + (closed? \" closed\": \"\") : \"\";\r\n return (\r\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}`}>\r\n <thead>\r\n {colAttrs.map(function(c, j) {\r\n const clickable = grouping && colAttrs.length > j + 1;\r\n const levelKeys = colKeys.filter(x => x.length === j+1);\r\n return (\r\n <tr key={`colAttr${j}`}>\r\n {j === 0 && rowAttrs.length !== 0 && (\r\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\r\n )}\r\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\r\n onClick={clickable? _ => fold(levelKeys): null}\r\n >{c}</th>\r\n {colKeys.map(function(colKey, i) {\r\n const x = spanSize(colKeys, i, j);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n <th\r\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\r\n key={`colKey-${i}-${j}-${colKey[j]}`}\r\n colSpan={x}\r\n rowSpan={\r\n j === colAttrs.length - 1 && rowAttrs.length !== 0\r\n ? 2\r\n : 1\r\n }\r\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\r\n >\r\n {colKey[j]}\r\n </th>\r\n );\r\n })}\r\n\r\n {j === 0 && (\r\n <th\r\n className=\"pvtTotalLabel\"\r\n rowSpan={\r\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\r\n }\r\n >\r\n Totals\r\n </th>\r\n )}\r\n </tr>\r\n );\r\n })}\r\n\r\n {rowAttrs.length !== 0 && (\r\n <tr>\r\n {rowAttrs.map(function(r, i) {\r\n const clickable = grouping && rowAttrs.length > i + 1;\r\n const levelKeys = rowKeys.filter(x => x.length === i+1);\r\n return (\r\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\r\n onClick={clickable? _ => fold(levelKeys): null}\r\n key={`rowAttr${i}`}>\r\n {r}\r\n </th>\r\n );\r\n })}\r\n <th className=\"pvtTotalLabel\">\r\n {colAttrs.length === 0 ? 'Totals' : null}\r\n </th>\r\n </tr>\r\n )}\r\n </thead>\r\n\r\n <tbody>\r\n {rowKeys.map(function(rowKey, i) {\r\n const totalAggregator = pivotData.getAggregator(rowKey, []);\r\n const rowGap = rowAttrs.length - rowKey.length;\r\n const rowTotalValue = totalAggregator.value();\r\n return (\r\n <tr key={`rowKeyRow${i}`}\r\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}>\r\n {rowKey.map(function(txt, j) {\r\n if (compactRows && j < rowKey.length - 1) {\r\n return null;\r\n }\r\n const clickable = grouping && rowAttrs.length > j + 1;\r\n const x = compactRows ? 1 : spanSize(rowKeys, i, j, specialCase);\r\n if (x === -1) {\r\n return null;\r\n }\r\n return (\r\n <th\r\n key={`rowKeyLabel-${i}-${j}-${txt}`}\r\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\r\n rowSpan={x}\r\n colSpan={\r\n compactRows ?\r\n rowAttrs.length + 1 :\r\n j === rowAttrs.length - 1 && colAttrs.length !== 0\r\n ? 2\r\n : 1\r\n }\r\n style={{paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null}}\r\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\r\n >\r\n {txt}\r\n </th>\r\n );\r\n })}\r\n {!compactRows && rowGap\r\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\r\n : null\r\n }\r\n {colKeys.map(function(colKey, j) {\r\n const aggregator = pivotData.getAggregator(rowKey, colKey);\r\n const colGap = colAttrs.length - colKey.length;\r\n const val = aggregator.value();\r\n const isNumeric = typeof val === 'number';\r\n return (\r\n <td\r\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\r\n key={`pvtVal${i}-${j}`}\r\n onClick={\r\n getClickHandler &&\r\n getClickHandler(val, rowKey, colKey)\r\n }\r\n style={valueCellColors(\r\n rowKey,\r\n colKey,\r\n val\r\n )}\r\n >\r\n {aggregator.format(val)}\r\n </td>\r\n );\r\n })}\r\n <td\r\n className={\"pvtTotal\" + (typeof rowTotalValue === 'number' ? \" pvtVal-numeric\" : \"\")}\r\n onClick={\r\n getClickHandler &&\r\n getClickHandler(rowTotalValue, rowKey, [null])\r\n }\r\n style={colTotalColors(rowTotalValue)}\r\n >\r\n {totalAggregator.format(rowTotalValue)}\r\n </td>\r\n </tr>\r\n );\r\n })}\r\n\r\n <tr className=\"pvtTotalRow\">\r\n <th\r\n className=\"pvtTotalLabel\"\r\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\r\n >\r\n Totals\r\n </th>\r\n\r\n {colKeys.map(function(colKey, i) {\r\n const totalAggregator = pivotData.getAggregator([], colKey);\r\n const colGap = colAttrs.length - colKey.length;\r\n const totalVal = totalAggregator.value();\r\n const isNumeric = typeof totalVal === 'number';\r\n return (\r\n <td\r\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\r\n key={`total${i}`}\r\n onClick={\r\n getClickHandler &&\r\n getClickHandler(totalVal, [null], colKey)\r\n }\r\n style={rowTotalColors(totalVal)}\r\n >\r\n {totalAggregator.format(totalVal)}\r\n </td>\r\n );\r\n })}\r\n\r\n <td\r\n onClick={\r\n getClickHandler &&\r\n getClickHandler(grandTotalAggregator.value(), [null], [null])\r\n }\r\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\r\n >\r\n {grandTotalAggregator.format(grandTotalAggregator.value())}\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n );\r\n }\r\n }\r\n\r\n TableRenderer.defaultProps = PivotData.defaultProps;\r\n TableRenderer.propTypes = PivotData.propTypes;\r\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\r\n TableRenderer.defaultProps.tableOptions = {};\r\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\r\n TableRenderer.propTypes.tableOptions = PropTypes.object;\r\n TableRenderer.defaultProps.compactRows = true;\r\n TableRenderer.propTypes.compactRows = PropTypes.bool;\r\n return TableRenderer;\r\n}\r\n\r\nclass TSVExportRenderer extends React.PureComponent {\r\n render() {\r\n const pivotData = new PivotData(this.props);\r\n const rowKeys = pivotData.getRowKeys();\r\n const colKeys = pivotData.getColKeys();\r\n if (rowKeys.length === 0) {\r\n rowKeys.push([]);\r\n }\r\n if (colKeys.length === 0) {\r\n colKeys.push([]);\r\n }\r\n\r\n const headerRow = pivotData.props.rows.map(r => r);\r\n if (colKeys.length === 1 && colKeys[0].length === 0) {\r\n headerRow.push(this.props.aggregatorName);\r\n } else {\r\n colKeys.map(c => headerRow.push(c.join('-')));\r\n }\r\n\r\n const result = rowKeys.map(r => {\r\n const row = r.map(x => x);\r\n colKeys.map(c => {\r\n const v = pivotData.getAggregator(r, c).value();\r\n row.push(v ? v : '');\r\n });\r\n return row;\r\n });\r\n\r\n result.unshift(headerRow);\r\n\r\n return (\r\n <textarea\r\n value={result.map(r => r.join('\\t')).join('\\n')}\r\n style={{width: window.innerWidth / 2, height: window.innerHeight / 2}}\r\n readOnly={true}\r\n />\r\n );\r\n }\r\n}\r\n\r\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\r\nTSVExportRenderer.propTypes = PivotData.propTypes;\r\n\r\nexport default {\r\n Table: makeRenderer(),\r\n 'Table Heatmap': makeRenderer({heatmapMode: 'full'}),\r\n 'Table Col Heatmap': makeRenderer({heatmapMode: 'col'}),\r\n 'Table Row Heatmap': makeRenderer({heatmapMode: 'row'}),\r\n 'Exportable TSV': TSVExportRenderer,\r\n};\r\n"],"mappings":"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","ignoreList":[]}
|