react-pivottable-plus 1.0.14 → 1.0.16
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/dist/PivotTableUI.js +131 -211
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +160 -29
- package/dist/TableRenderers.js.map +1 -1
- package/dist/core/CellPipeline.js +167 -0
- package/dist/core/CellPipeline.js.map +1 -0
- package/dist/core/ColumnEngine.js +299 -0
- package/dist/core/ColumnEngine.js.map +1 -0
- package/dist/core/EventBus.js +109 -0
- package/dist/core/EventBus.js.map +1 -0
- package/dist/core/ModuleRegistry.js +140 -0
- package/dist/core/ModuleRegistry.js.map +1 -0
- package/dist/core/PivotCore.js +254 -0
- package/dist/core/PivotCore.js.map +1 -0
- package/dist/core/PivotEngine.js +151 -0
- package/dist/core/PivotEngine.js.map +1 -0
- package/dist/core/StateManager.js +142 -0
- package/dist/core/StateManager.js.map +1 -0
- package/dist/core/VirtualScroller.js +138 -0
- package/dist/core/VirtualScroller.js.map +1 -0
- package/dist/core/api/ColumnApi.js +162 -0
- package/dist/core/api/ColumnApi.js.map +1 -0
- package/dist/core/api/GridApi.js +208 -0
- package/dist/core/api/GridApi.js.map +1 -0
- package/dist/core/index.js +89 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/rowModels/ClientSideRowModel.js +177 -0
- package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
- package/dist/core/rowModels/index.js +13 -0
- package/dist/core/rowModels/index.js.map +1 -0
- package/dist/hooks/usePivot.js +63 -155
- package/dist/hooks/usePivot.js.map +1 -1
- package/dist/modules/FilterModule.js +156 -0
- package/dist/modules/FilterModule.js.map +1 -0
- package/dist/modules/PaginationModule.js +115 -0
- package/dist/modules/PaginationModule.js.map +1 -0
- package/dist/modules/SortModule.js +88 -0
- package/dist/modules/SortModule.js.map +1 -0
- package/dist/modules/ThemeModule.js +83 -0
- package/dist/modules/ThemeModule.js.map +1 -0
- package/dist/modules/VirtualizationModule.js +89 -0
- package/dist/modules/VirtualizationModule.js.map +1 -0
- package/dist/modules/index.js +41 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/react/index.js +13 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/usePivotGrid.js +116 -0
- package/dist/react/usePivotGrid.js.map +1 -0
- package/dist/renderers/RadixUI.js +1 -1
- package/dist/renderers/RadixUI.js.map +1 -1
- package/dist/renderers/ShadcnDashboardUI.js +1 -1
- package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
- package/dist/renderers/TailwindUI.js +1 -1
- package/dist/renderers/TailwindUI.js.map +1 -1
- package/package.json +4 -2
- package/pivottable.css +13 -12
package/dist/TableRenderers.js
CHANGED
|
@@ -8,7 +8,12 @@ exports["default"] = void 0;
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
10
10
|
var _Utilities = require("./Utilities");
|
|
11
|
+
var _CellPipeline = require("./core/CellPipeline");
|
|
12
|
+
var _VirtualScroller = require("./core/VirtualScroller");
|
|
11
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
14
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
15
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
16
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
12
17
|
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
18
|
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
19
|
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; }
|
|
@@ -102,6 +107,22 @@ function makeRenderer() {
|
|
|
102
107
|
var rowKeys = pivotData.getRowKeys(true);
|
|
103
108
|
var colKeys = pivotData.getColKeys(true);
|
|
104
109
|
var grandTotalAggregator = pivotData.getAggregator([], []);
|
|
110
|
+
|
|
111
|
+
// ─── Cell Pipeline ────────────────────────────────────────────────
|
|
112
|
+
var pipeline = this.props.cellPipeline ? new _CellPipeline.CellPipeline(this.props.cellPipeline) : _CellPipeline.CellPipeline["default"]();
|
|
113
|
+
|
|
114
|
+
// ─── Virtualización ───────────────────────────────────────────────
|
|
115
|
+
var virtConfig = this.props.virtualization || {};
|
|
116
|
+
var scroller = new _VirtualScroller.VirtualScroller({
|
|
117
|
+
enabled: virtConfig.enabled !== undefined ? virtConfig.enabled : false,
|
|
118
|
+
rowHeight: virtConfig.rowHeight || 32,
|
|
119
|
+
colWidth: virtConfig.colWidth || 100,
|
|
120
|
+
overscanRows: virtConfig.overscanRows || 5,
|
|
121
|
+
overscanCols: virtConfig.overscanCols || 3,
|
|
122
|
+
containerHeight: virtConfig.containerHeight || 400,
|
|
123
|
+
containerWidth: virtConfig.containerWidth || 800,
|
|
124
|
+
threshold: virtConfig.threshold || 100
|
|
125
|
+
});
|
|
105
126
|
var grouping = pivotData.props.grouping;
|
|
106
127
|
var compactRows = grouping && this.props.compactRows;
|
|
107
128
|
// speacial case for spanSize counting (no_loop)
|
|
@@ -137,6 +158,10 @@ function makeRenderer() {
|
|
|
137
158
|
_iterator.f();
|
|
138
159
|
}
|
|
139
160
|
}
|
|
161
|
+
|
|
162
|
+
// Guardar todos los colKeys para totales (SIEMPRE calcula sobre todo)
|
|
163
|
+
var allColKeys = colKeys;
|
|
164
|
+
var allRowKeys = rowKeys;
|
|
140
165
|
var totalRows = rowKeys.length;
|
|
141
166
|
var startOffset = 0;
|
|
142
167
|
if (this.props.pagination) {
|
|
@@ -145,7 +170,33 @@ function makeRenderer() {
|
|
|
145
170
|
var end = start + this.props.pageSize;
|
|
146
171
|
rowKeys = rowKeys.slice(start, end);
|
|
147
172
|
}
|
|
173
|
+
|
|
174
|
+
// Aplicar virtualización bidireccional
|
|
175
|
+
var shouldVirt = scroller.shouldVirtualize(rowKeys.length, colKeys.length);
|
|
176
|
+
var scrollTop = (this.state || {}).scrollTop || 0;
|
|
177
|
+
var scrollLeft = (this.state || {}).scrollLeft || 0;
|
|
178
|
+
var visibleRowKeys = rowKeys;
|
|
179
|
+
var rowTopPad = 0;
|
|
180
|
+
var rowBottomPad = 0;
|
|
181
|
+
var virtualRowStartOffset = 0;
|
|
182
|
+
if (shouldVirt.rows) {
|
|
183
|
+
var rowRange = scroller.getVisibleRowRange(scrollTop, rowKeys.length);
|
|
184
|
+
visibleRowKeys = rowKeys.slice(rowRange.startIndex, rowRange.endIndex + 1);
|
|
185
|
+
rowTopPad = rowRange.topPadding;
|
|
186
|
+
rowBottomPad = rowRange.bottomPadding;
|
|
187
|
+
virtualRowStartOffset = rowRange.startIndex;
|
|
188
|
+
}
|
|
189
|
+
var visibleColKeys = colKeys;
|
|
190
|
+
var colLeftPad = 0;
|
|
191
|
+
var colRightPad = 0;
|
|
192
|
+
if (shouldVirt.cols) {
|
|
193
|
+
var colRange = scroller.getVisibleColRange(scrollLeft, colKeys.length);
|
|
194
|
+
visibleColKeys = colKeys.slice(colRange.startIndex, colRange.endIndex + 1);
|
|
195
|
+
colLeftPad = colRange.leftPadding;
|
|
196
|
+
colRightPad = colRange.rightPadding;
|
|
197
|
+
}
|
|
148
198
|
var showRowNumbers = this.props.showRowNumbers !== false;
|
|
199
|
+
var isVirtualized = shouldVirt.rows || shouldVirt.cols;
|
|
149
200
|
var valueCellColors = function valueCellColors() {};
|
|
150
201
|
var rowTotalColors = function rowTotalColors() {};
|
|
151
202
|
var colTotalColors = function colTotalColors() {};
|
|
@@ -219,12 +270,19 @@ function makeRenderer() {
|
|
|
219
270
|
var clickClass = function clickClass(pred, closed) {
|
|
220
271
|
return pred ? " pvtClickable" + (closed ? " closed" : "") : "";
|
|
221
272
|
};
|
|
222
|
-
|
|
273
|
+
// ─── Render de la tabla ────────────────────────────────────────────
|
|
274
|
+
var handleScroll = isVirtualized ? function (e) {
|
|
275
|
+
_this.setState({
|
|
276
|
+
scrollTop: e.currentTarget.scrollTop,
|
|
277
|
+
scrollLeft: e.currentTarget.scrollLeft
|
|
278
|
+
});
|
|
279
|
+
} : null;
|
|
280
|
+
var tableContent = /*#__PURE__*/_react["default"].createElement("table", {
|
|
223
281
|
id: id,
|
|
224
282
|
className: "pvtTable ".concat(rbClass, " ").concat(cbClass)
|
|
225
283
|
}, /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
|
|
226
284
|
var clickable = grouping && colAttrs.length > j + 1;
|
|
227
|
-
var levelKeys =
|
|
285
|
+
var levelKeys = allColKeys.filter(function (x) {
|
|
228
286
|
return x.length === j + 1;
|
|
229
287
|
});
|
|
230
288
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
@@ -240,8 +298,13 @@ function makeRenderer() {
|
|
|
240
298
|
onClick: clickable ? function (_) {
|
|
241
299
|
return fold(levelKeys);
|
|
242
300
|
} : null
|
|
243
|
-
}, c),
|
|
244
|
-
|
|
301
|
+
}, c), shouldVirt.cols && colLeftPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
302
|
+
key: "col-pad-left",
|
|
303
|
+
style: {
|
|
304
|
+
minWidth: colLeftPad
|
|
305
|
+
}
|
|
306
|
+
}), visibleColKeys.map(function (colKey, i) {
|
|
307
|
+
var x = spanSize(visibleColKeys, i, j);
|
|
245
308
|
if (x === -1) {
|
|
246
309
|
return null;
|
|
247
310
|
}
|
|
@@ -254,6 +317,11 @@ function makeRenderer() {
|
|
|
254
317
|
return fold([colKey.slice(0, j + 1)]);
|
|
255
318
|
} : null
|
|
256
319
|
}, colKey[j]);
|
|
320
|
+
}), shouldVirt.cols && colRightPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
321
|
+
key: "col-pad-right",
|
|
322
|
+
style: {
|
|
323
|
+
minWidth: colRightPad
|
|
324
|
+
}
|
|
257
325
|
}), j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
258
326
|
className: "pvtTotalLabel",
|
|
259
327
|
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
@@ -263,7 +331,7 @@ function makeRenderer() {
|
|
|
263
331
|
rowSpan: "1"
|
|
264
332
|
}, "#"), rowAttrs.map(function (r, i) {
|
|
265
333
|
var clickable = grouping && rowAttrs.length > i + 1;
|
|
266
|
-
var levelKeys =
|
|
334
|
+
var levelKeys = allRowKeys.filter(function (x) {
|
|
267
335
|
return x.length === i + 1;
|
|
268
336
|
});
|
|
269
337
|
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
@@ -275,26 +343,41 @@ function makeRenderer() {
|
|
|
275
343
|
}, r);
|
|
276
344
|
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
277
345
|
className: "pvtTotalLabel"
|
|
278
|
-
}, colAttrs.length === 0 ? 'Totals' : null))), /*#__PURE__*/_react["default"].createElement("tbody", null,
|
|
346
|
+
}, colAttrs.length === 0 ? 'Totals' : null))), /*#__PURE__*/_react["default"].createElement("tbody", null, shouldVirt.rows && rowTopPad > 0 && /*#__PURE__*/_react["default"].createElement("tr", {
|
|
347
|
+
key: "virt-top-spacer",
|
|
348
|
+
style: {
|
|
349
|
+
height: rowTopPad
|
|
350
|
+
}
|
|
351
|
+
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
352
|
+
colSpan: 999
|
|
353
|
+
})), visibleRowKeys.map(function (rowKey, localI) {
|
|
354
|
+
var globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;
|
|
279
355
|
var totalAggregator = pivotData.getAggregator(rowKey, []);
|
|
280
356
|
var rowGap = rowAttrs.length - rowKey.length;
|
|
281
|
-
var
|
|
357
|
+
var rowTotalResult = pipeline.processTotal({
|
|
358
|
+
aggregator: totalAggregator,
|
|
359
|
+
rowKey: rowKey,
|
|
360
|
+
type: 'row'
|
|
361
|
+
});
|
|
282
362
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
283
|
-
key: "rowKeyRow".concat(
|
|
284
|
-
className: (rowGap ? "pvtLevel" + rowGap : "pvtData") + " pvtRow-data"
|
|
363
|
+
key: "rowKeyRow".concat(globalI),
|
|
364
|
+
className: (rowGap ? "pvtLevel" + rowGap : "pvtData") + " pvtRow-data",
|
|
365
|
+
style: shouldVirt.rows ? {
|
|
366
|
+
height: scroller.rowHeight
|
|
367
|
+
} : undefined
|
|
285
368
|
}, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
|
|
286
369
|
className: "pvtRowNumber"
|
|
287
|
-
}, startOffset +
|
|
370
|
+
}, startOffset + globalI + 1), rowKey.map(function (txt, j) {
|
|
288
371
|
if (compactRows && j < rowKey.length - 1) {
|
|
289
372
|
return null;
|
|
290
373
|
}
|
|
291
374
|
var clickable = grouping && rowAttrs.length > j + 1;
|
|
292
|
-
var x = compactRows ? 1 : spanSize(
|
|
375
|
+
var x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);
|
|
293
376
|
if (x === -1) {
|
|
294
377
|
return null;
|
|
295
378
|
}
|
|
296
379
|
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
297
|
-
key: "rowKeyLabel-".concat(
|
|
380
|
+
key: "rowKeyLabel-".concat(globalI, "-").concat(j, "-").concat(txt),
|
|
298
381
|
className: "pvtRowLabel" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)])),
|
|
299
382
|
rowSpan: x,
|
|
300
383
|
colSpan: compactRows ? rowAttrs.length + 1 : j === rowAttrs.length - 1 && colAttrs.length !== 0 ? 2 : 1,
|
|
@@ -308,34 +391,57 @@ function makeRenderer() {
|
|
|
308
391
|
}), !compactRows && rowGap ? /*#__PURE__*/_react["default"].createElement("th", {
|
|
309
392
|
className: "pvtRowLabel",
|
|
310
393
|
colSpan: rowGap + 1
|
|
311
|
-
}, "Total (" + rowKey[rowKey.length - 1] + ")") : null,
|
|
394
|
+
}, "Total (" + rowKey[rowKey.length - 1] + ")") : null, shouldVirt.cols && colLeftPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
395
|
+
key: "col-pad-left",
|
|
396
|
+
style: {
|
|
397
|
+
minWidth: colLeftPad
|
|
398
|
+
}
|
|
399
|
+
}), visibleColKeys.map(function (colKey, j) {
|
|
312
400
|
var aggregator = pivotData.getAggregator(rowKey, colKey);
|
|
313
401
|
var colGap = colAttrs.length - colKey.length;
|
|
314
|
-
var
|
|
315
|
-
|
|
402
|
+
var cellResult = pipeline.process({
|
|
403
|
+
aggregator: aggregator,
|
|
404
|
+
rowKey: rowKey,
|
|
405
|
+
colKey: colKey,
|
|
406
|
+
pivotData: pivotData
|
|
407
|
+
});
|
|
408
|
+
var isNumeric = typeof cellResult.value === 'number';
|
|
409
|
+
var mergedStyle = _objectSpread(_objectSpread({}, valueCellColors(rowKey, colKey, cellResult.value)), cellResult.style || {});
|
|
316
410
|
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
317
|
-
className: "pvtVal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : ""),
|
|
318
|
-
key: "pvtVal".concat(
|
|
319
|
-
onClick: getClickHandler && getClickHandler(
|
|
320
|
-
style:
|
|
321
|
-
},
|
|
411
|
+
className: "pvtVal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : "") + (cellResult.className ? " " + cellResult.className : ""),
|
|
412
|
+
key: "pvtVal".concat(globalI, "-").concat(j),
|
|
413
|
+
onClick: getClickHandler && getClickHandler(cellResult.value, rowKey, colKey),
|
|
414
|
+
style: Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined
|
|
415
|
+
}, cellResult.rendered);
|
|
416
|
+
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
417
|
+
key: "col-pad-right",
|
|
418
|
+
style: {
|
|
419
|
+
minWidth: colRightPad
|
|
420
|
+
}
|
|
322
421
|
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
323
|
-
className: "pvtTotal" + (typeof
|
|
324
|
-
onClick: getClickHandler && getClickHandler(
|
|
325
|
-
style: colTotalColors(
|
|
326
|
-
},
|
|
327
|
-
}),
|
|
328
|
-
|
|
422
|
+
className: "pvtTotal" + (typeof rowTotalResult.value === 'number' ? " pvtVal-numeric" : ""),
|
|
423
|
+
onClick: getClickHandler && getClickHandler(rowTotalResult.value, rowKey, [null]),
|
|
424
|
+
style: colTotalColors(rowTotalResult.value) || rowTotalResult.style
|
|
425
|
+
}, rowTotalResult.rendered));
|
|
426
|
+
}), shouldVirt.rows && rowBottomPad > 0 && /*#__PURE__*/_react["default"].createElement("tr", {
|
|
427
|
+
key: "virt-bottom-spacer",
|
|
428
|
+
style: {
|
|
429
|
+
height: rowBottomPad
|
|
430
|
+
}
|
|
431
|
+
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
432
|
+
colSpan: 999
|
|
433
|
+
})), showRowNumbers && this.props.pagination && visibleRowKeys.length < this.props.pageSize && !shouldVirt.rows && Array.from({
|
|
434
|
+
length: this.props.pageSize - visibleRowKeys.length
|
|
329
435
|
}).map(function (_, padIdx) {
|
|
330
436
|
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
331
437
|
key: "padRow".concat(padIdx),
|
|
332
438
|
className: "pvtRow-data pvtEmptyRow"
|
|
333
439
|
}, /*#__PURE__*/_react["default"].createElement("th", {
|
|
334
440
|
className: "pvtRowNumber"
|
|
335
|
-
}, startOffset +
|
|
441
|
+
}, startOffset + visibleRowKeys.length + padIdx + 1), /*#__PURE__*/_react["default"].createElement("th", {
|
|
336
442
|
className: "pvtRowLabel",
|
|
337
443
|
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
338
|
-
}),
|
|
444
|
+
}), visibleColKeys.map(function (colKey, j) {
|
|
339
445
|
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
340
446
|
key: "padVal".concat(padIdx, "-").concat(j),
|
|
341
447
|
className: "pvtVal pvtEmptyCell"
|
|
@@ -350,7 +456,12 @@ function makeRenderer() {
|
|
|
350
456
|
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
351
457
|
className: "pvtTotalLabel",
|
|
352
458
|
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
353
|
-
}, "Totals"),
|
|
459
|
+
}, "Totals"), shouldVirt.cols && colLeftPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
460
|
+
key: "total-col-pad-left",
|
|
461
|
+
style: {
|
|
462
|
+
minWidth: colLeftPad
|
|
463
|
+
}
|
|
464
|
+
}), visibleColKeys.map(function (colKey, i) {
|
|
354
465
|
var totalAggregator = pivotData.getAggregator([], colKey);
|
|
355
466
|
var colGap = colAttrs.length - colKey.length;
|
|
356
467
|
var totalVal = totalAggregator.value();
|
|
@@ -361,10 +472,30 @@ function makeRenderer() {
|
|
|
361
472
|
onClick: getClickHandler && getClickHandler(totalVal, [null], colKey),
|
|
362
473
|
style: rowTotalColors(totalVal)
|
|
363
474
|
}, totalAggregator.format(totalVal));
|
|
475
|
+
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
476
|
+
key: "total-col-pad-right",
|
|
477
|
+
style: {
|
|
478
|
+
minWidth: colRightPad
|
|
479
|
+
}
|
|
364
480
|
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
365
481
|
onClick: getClickHandler && getClickHandler(grandTotalAggregator.value(), [null], [null]),
|
|
366
482
|
className: "pvtGrandTotal" + (typeof grandTotalAggregator.value() === 'number' ? " pvtVal-numeric" : "")
|
|
367
483
|
}, grandTotalAggregator.format(grandTotalAggregator.value())))));
|
|
484
|
+
|
|
485
|
+
// Wrappear en container con scroll si virtualización está activa
|
|
486
|
+
if (isVirtualized) {
|
|
487
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
488
|
+
className: "pvtVirtualContainer",
|
|
489
|
+
style: {
|
|
490
|
+
maxHeight: scroller.containerHeight,
|
|
491
|
+
maxWidth: scroller.containerWidth,
|
|
492
|
+
overflow: 'auto',
|
|
493
|
+
position: 'relative'
|
|
494
|
+
},
|
|
495
|
+
onScroll: handleScroll
|
|
496
|
+
}, tableContent);
|
|
497
|
+
}
|
|
498
|
+
return tableContent;
|
|
368
499
|
}
|
|
369
500
|
}]);
|
|
370
501
|
}(_react["default"].PureComponent);
|
|
@@ -1 +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","startOffset","pagination","start","page","pageSize","showRowNumbers","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","rowSpan","colSpan","onClick","_","totalAggregator","rowGap","rowTotalValue","txt","style","paddingLeft","aggregator","colGap","val","isNumeric","format","padIdx","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"],"sources":["../src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData } from './Utilities';\n\n// helper function for setting row/col-span in pivotTableRenderer\nconst spanSize = function (arr, i, j, no_loop = false) {\n let x;\n if (i !== 0) {\n let asc, end;\n let noDraw = true;\n for (\n x = 0, end = j, asc = end >= 0;\n asc ? x <= end : x >= end;\n asc ? x++ : x--\n ) {\n if (arr[i - 1][x] !== arr[i][x]) {\n noDraw = false;\n }\n }\n if (noDraw) {\n return -1;\n }\n }\n let len = 0;\n while (i + len < arr.length) {\n let asc1, end1;\n let stop = false;\n for (\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\n asc1 ? x <= end1 : x >= end1;\n asc1 ? x++ : x--\n ) {\n if (arr[i][x] !== arr[i + len][x]) {\n stop = true;\n }\n }\n if (stop) {\n break;\n }\n len++;\n }\n return len;\n};\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return { backgroundColor: `rgb(255,${nonRed},${nonRed})` };\n };\n}\n\nconst flatKey = arr => arr.join(String.fromCharCode(0));\nconst has = (set, arr) => arr.every(set.has, set);\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\n\nfunction makeRenderer(opts = {}) {\n class TableRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const id = pivotData.props.id;\n const colAttrs = pivotData.props.cols;\n const rowAttrs = pivotData.props.rows;\n let rowKeys = pivotData.getRowKeys(true);\n let colKeys = pivotData.getColKeys(true);\n const grandTotalAggregator = pivotData.getAggregator([], []);\n\n const grouping = pivotData.props.grouping;\n const compactRows = grouping && this.props.compactRows;\n // speacial case for spanSize counting (no_loop)\n const specialCase = grouping && !this.props.rowGroupBefore;\n const folded = (this.state || {}).folded || new Set();\n const isFolded = keys => has(folded, keys.map(flatKey));\n const fold = keys => this.setState({ folded: toggle(new Set(folded), keys.map(flatKey)) });\n\n if (grouping) {\n for (const key of folded) {\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\n }\n }\n\n const totalRows = rowKeys.length;\n let startOffset = 0;\n if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n startOffset = start;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\n const showRowNumbers = this.props.showRowNumbers !== false;\n\n let valueCellColors = () => { };\n let rowTotalColors = () => { };\n let colTotalColors = () => { };\n if (opts.heatmapMode) {\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\n const rowTotalValues = colKeys.map(x =>\n pivotData.getAggregator([], x).value()\n );\n rowTotalColors = colorScaleGenerator(rowTotalValues);\n const colTotalValues = rowKeys.map(x =>\n pivotData.getAggregator(x, []).value()\n );\n colTotalColors = colorScaleGenerator(colTotalValues);\n\n if (opts.heatmapMode === 'full') {\n const allValues = [];\n rowKeys.map(r =>\n colKeys.map(c =>\n allValues.push(pivotData.getAggregator(r, c).value())\n )\n );\n const colorScale = colorScaleGenerator(allValues);\n valueCellColors = (r, c, v) => colorScale(v);\n } else if (opts.heatmapMode === 'row') {\n const rowColorScales = {};\n rowKeys.map(r => {\n const rowValues = colKeys.map(x =>\n pivotData.getAggregator(r, x).value()\n );\n rowColorScales[r] = colorScaleGenerator(rowValues);\n });\n valueCellColors = (r, c, v) => rowColorScales[r](v);\n } else if (opts.heatmapMode === 'col') {\n const colColorScales = {};\n colKeys.map(c => {\n const colValues = rowKeys.map(x =>\n pivotData.getAggregator(x, c).value()\n );\n colColorScales[c] = colorScaleGenerator(colValues);\n });\n valueCellColors = (r, c, v) => colColorScales[c](v);\n }\n }\n\n const getClickHandler =\n this.props.tableOptions && this.props.tableOptions.clickCallback\n ? (value, rowValues, colValues) => {\n const filters = {};\n for (const i of Object.keys(colAttrs || {})) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n for (const i of Object.keys(rowAttrs || {})) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(\n e,\n value,\n filters,\n pivotData\n );\n }\n : null;\n\n const rbClass = grouping ? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\n const cbClass = grouping ? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\n const clickClass = (pred, closed) => pred ? \" pvtClickable\" + (closed ? \" closed\" : \"\") : \"\";\n return (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}`}>\n <thead>\n {colAttrs.map(function (c, j) {\n const clickable = grouping && colAttrs.length > j + 1;\n const levelKeys = colKeys.filter(x => x.length === j + 1);\n return (\n <tr key={`colAttr${j}`}>\n {showRowNumbers && j === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan={colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)}>#</th>\n )}\n {j === 0 && rowAttrs.length !== 0 && (\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\n )}\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n >{c}</th>\n {colKeys.map(function (colKey, i) {\n const x = spanSize(colKeys, i, j);\n if (x === -1) {\n return null;\n }\n return (\n <th\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\n key={`colKey-${i}-${j}-${colKey[j]}`}\n colSpan={x}\n rowSpan={\n j === colAttrs.length - 1 && rowAttrs.length !== 0\n ? 2\n : 1\n }\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\n >\n {colKey[j]}\n </th>\n );\n })}\n\n {j === 0 && (\n <th\n className=\"pvtTotalLabel\"\n rowSpan={\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\n }\n >\n Totals\n </th>\n )}\n </tr>\n );\n })}\n\n {rowAttrs.length !== 0 && (\n <tr>\n {showRowNumbers && colAttrs.length === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan=\"1\">#</th>\n )}\n {rowAttrs.map(function (r, i) {\n const clickable = grouping && rowAttrs.length > i + 1;\n const levelKeys = rowKeys.filter(x => x.length === i + 1);\n return (\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n key={`rowAttr${i}`}>\n {r}\n </th>\n );\n })}\n <th className=\"pvtTotalLabel\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n </tr>\n )}\n </thead>\n\n <tbody>\n {rowKeys.map(function (rowKey, i) {\n const totalAggregator = pivotData.getAggregator(rowKey, []);\n const rowGap = rowAttrs.length - rowKey.length;\n const rowTotalValue = totalAggregator.value();\n return (\n <tr key={`rowKeyRow${i}`}\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}>\n {showRowNumbers && (\n <th className=\"pvtRowNumber\">{startOffset + i + 1}</th>\n )}\n {rowKey.map(function (txt, j) {\n if (compactRows && j < rowKey.length - 1) {\n return null;\n }\n const clickable = grouping && rowAttrs.length > j + 1;\n const x = compactRows ? 1 : spanSize(rowKeys, i, j, specialCase);\n if (x === -1) {\n return null;\n }\n return (\n <th\n key={`rowKeyLabel-${i}-${j}-${txt}`}\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\n rowSpan={x}\n colSpan={\n compactRows ?\n rowAttrs.length + 1 :\n j === rowAttrs.length - 1 && colAttrs.length !== 0\n ? 2\n : 1\n }\n style={{ paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null }}\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\n >\n {txt}\n </th>\n );\n })}\n {!compactRows && rowGap\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\n : null\n }\n {colKeys.map(function (colKey, j) {\n const aggregator = pivotData.getAggregator(rowKey, colKey);\n const colGap = colAttrs.length - colKey.length;\n const val = aggregator.value();\n const isNumeric = typeof val === 'number';\n return (\n <td\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`pvtVal${i}-${j}`}\n onClick={\n getClickHandler &&\n getClickHandler(val, rowKey, colKey)\n }\n style={valueCellColors(\n rowKey,\n colKey,\n val\n )}\n >\n {aggregator.format(val)}\n </td>\n );\n })}\n <td\n className={\"pvtTotal\" + (typeof rowTotalValue === 'number' ? \" pvtVal-numeric\" : \"\")}\n onClick={\n getClickHandler &&\n getClickHandler(rowTotalValue, rowKey, [null])\n }\n style={colTotalColors(rowTotalValue)}\n >\n {totalAggregator.format(rowTotalValue)}\n </td>\n </tr>\n );\n })}\n\n {showRowNumbers && this.props.pagination && rowKeys.length < this.props.pageSize && (\n Array.from({ length: this.props.pageSize - rowKeys.length }).map((_, padIdx) => (\n <tr key={`padRow${padIdx}`} className=\"pvtRow-data pvtEmptyRow\">\n <th className=\"pvtRowNumber\">{startOffset + rowKeys.length + padIdx + 1}</th>\n <th className=\"pvtRowLabel\" colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}></th>\n {colKeys.map((colKey, j) => <td key={`padVal${padIdx}-${j}`} className=\"pvtVal pvtEmptyCell\"></td>)}\n <td className=\"pvtTotal pvtEmptyCell\"></td>\n </tr>\n ))\n )}\n\n <tr className=\"pvtTotalRow\">\n {showRowNumbers && <th className=\"pvtTotalLabel\"></th>}\n <th\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n\n {colKeys.map(function (colKey, i) {\n const totalAggregator = pivotData.getAggregator([], colKey);\n const colGap = colAttrs.length - colKey.length;\n const totalVal = totalAggregator.value();\n const isNumeric = typeof totalVal === 'number';\n return (\n <td\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`total${i}`}\n onClick={\n getClickHandler &&\n getClickHandler(totalVal, [null], colKey)\n }\n style={rowTotalColors(totalVal)}\n >\n {totalAggregator.format(totalVal)}\n </td>\n );\n })}\n\n <td\n onClick={\n getClickHandler &&\n getClickHandler(grandTotalAggregator.value(), [null], [null])\n }\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\n >\n {grandTotalAggregator.format(grandTotalAggregator.value())}\n </td>\n </tr>\n </tbody>\n </table>\n );\n }\n }\n\n TableRenderer.defaultProps = PivotData.defaultProps;\n TableRenderer.propTypes = PivotData.propTypes;\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRenderer.defaultProps.tableOptions = {};\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRenderer.propTypes.tableOptions = PropTypes.object;\n TableRenderer.defaultProps.compactRows = true;\n TableRenderer.propTypes.compactRows = PropTypes.bool;\n TableRenderer.defaultProps.showRowNumbers = true;\n TableRenderer.propTypes.showRowNumbers = PropTypes.bool;\n return TableRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const v = pivotData.getAggregator(r, c).value();\n row.push(v ? v : '');\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{ width: window.innerWidth / 2, height: window.innerHeight / 2 }}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n Table: makeRenderer(),\n 'Table Heatmap': makeRenderer({ heatmapMode: 'full' }),\n 'Table Col Heatmap': makeRenderer({ heatmapMode: 'col' }),\n 'Table Row Heatmap': makeRenderer({ heatmapMode: 'row' }),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_CellPipeline","_VirtualScroller","e","__esModule","ownKeys","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","n","done","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","constructor","name","from","test","_classCallCheck","_defineProperties","key","_createClass","prototype","i","_toPrimitive","_typeof","toPrimitive","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","_setPrototypeOf","spanSize","arr","j","no_loop","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","remove","toggle","makeRenderer","opts","TableRenderer","_React$PureComponent","render","_this","pivotData","PivotData","props","id","colAttrs","cols","rowAttrs","rows","rowKeys","getRowKeys","colKeys","getColKeys","grandTotalAggregator","getAggregator","pipeline","cellPipeline","CellPipeline","virtConfig","virtualization","scroller","VirtualScroller","enabled","rowHeight","colWidth","overscanRows","overscanCols","containerHeight","containerWidth","threshold","grouping","compactRows","specialCase","rowGroupBefore","folded","state","Set","isFolded","map","fold","setState","_iterator","_step","_loop","colKey","startsWith","rowKey","err","allColKeys","allRowKeys","totalRows","startOffset","pagination","start","page","pageSize","shouldVirt","shouldVirtualize","scrollTop","scrollLeft","visibleRowKeys","rowTopPad","rowBottomPad","virtualRowStartOffset","rowRange","getVisibleRowRange","startIndex","endIndex","topPadding","bottomPadding","visibleColKeys","colLeftPad","colRightPad","colRange","getVisibleColRange","leftPadding","rightPadding","showRowNumbers","isVirtualized","valueCellColors","rowTotalColors","colTotalColors","heatmapMode","colorScaleGenerator","tableColorScaleGenerator","rowTotalValues","colTotalValues","allValues","c","colorScale","v","rowColorScales","rowValues","colColorScales","colValues","getClickHandler","tableOptions","clickCallback","filters","_i","_Object$keys","attr","_i2","_Object$keys2","rbClass","cbClass","colGroupBefore","clickClass","pred","closed","handleScroll","currentTarget","tableContent","createElement","className","clickable","levelKeys","rowSpan","colSpan","onClick","_","style","minWidth","height","localI","globalI","totalAggregator","rowGap","rowTotalResult","processTotal","aggregator","type","txt","paddingLeft","colGap","cellResult","process","isNumeric","mergedStyle","rendered","padIdx","totalVal","format","maxHeight","maxWidth","overflow","position","onScroll","React","PureComponent","defaultProps","propTypes","PropTypes","func","object","bool","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","width","window","innerWidth","innerHeight","readOnly","_default","exports","Table"],"sources":["../src/TableRenderers.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData } from './Utilities';\nimport { CellPipeline } from './core/CellPipeline';\nimport { VirtualScroller } from './core/VirtualScroller';\n\n// helper function for setting row/col-span in pivotTableRenderer\nconst spanSize = function (arr, i, j, no_loop = false) {\n let x;\n if (i !== 0) {\n let asc, end;\n let noDraw = true;\n for (\n x = 0, end = j, asc = end >= 0;\n asc ? x <= end : x >= end;\n asc ? x++ : x--\n ) {\n if (arr[i - 1][x] !== arr[i][x]) {\n noDraw = false;\n }\n }\n if (noDraw) {\n return -1;\n }\n }\n let len = 0;\n while (i + len < arr.length) {\n let asc1, end1;\n let stop = false;\n for (\n x = no_loop ? j : 0, end1 = j, asc1 = end1 >= 0;\n asc1 ? x <= end1 : x >= end1;\n asc1 ? x++ : x--\n ) {\n if (arr[i][x] !== arr[i + len][x]) {\n stop = true;\n }\n }\n if (stop) {\n break;\n }\n len++;\n }\n return len;\n};\n\nfunction redColorScaleGenerator(values) {\n const min = Math.min.apply(Math, values);\n const max = Math.max.apply(Math, values);\n return x => {\n // eslint-disable-next-line no-magic-numbers\n const nonRed = 255 - Math.round((255 * (x - min)) / (max - min));\n return { backgroundColor: `rgb(255,${nonRed},${nonRed})` };\n };\n}\n\nconst flatKey = arr => arr.join(String.fromCharCode(0));\nconst has = (set, arr) => arr.every(set.has, set);\nconst add = (set, arr) => (arr.forEach(set.add, set) || set);\nconst remove = (set, arr) => (arr.forEach(set.delete, set) || set);\nconst toggle = (set, arr) => (has(set, arr) ? remove : add)(set, arr);\n\nfunction makeRenderer(opts = {}) {\n class TableRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const id = pivotData.props.id;\n const colAttrs = pivotData.props.cols;\n const rowAttrs = pivotData.props.rows;\n let rowKeys = pivotData.getRowKeys(true);\n let colKeys = pivotData.getColKeys(true);\n const grandTotalAggregator = pivotData.getAggregator([], []);\n\n // ─── Cell Pipeline ────────────────────────────────────────────────\n const pipeline = this.props.cellPipeline\n ? new CellPipeline(this.props.cellPipeline)\n : CellPipeline.default();\n\n // ─── Virtualización ───────────────────────────────────────────────\n const virtConfig = this.props.virtualization || {};\n const scroller = new VirtualScroller({\n enabled: virtConfig.enabled !== undefined ? virtConfig.enabled : false,\n rowHeight: virtConfig.rowHeight || 32,\n colWidth: virtConfig.colWidth || 100,\n overscanRows: virtConfig.overscanRows || 5,\n overscanCols: virtConfig.overscanCols || 3,\n containerHeight: virtConfig.containerHeight || 400,\n containerWidth: virtConfig.containerWidth || 800,\n threshold: virtConfig.threshold || 100,\n });\n\n const grouping = pivotData.props.grouping;\n const compactRows = grouping && this.props.compactRows;\n // speacial case for spanSize counting (no_loop)\n const specialCase = grouping && !this.props.rowGroupBefore;\n const folded = (this.state || {}).folded || new Set();\n const isFolded = keys => has(folded, keys.map(flatKey));\n const fold = keys => this.setState({ folded: toggle(new Set(folded), keys.map(flatKey)) });\n\n if (grouping) {\n for (const key of folded) {\n colKeys = colKeys.filter(colKey => !flatKey(colKey).startsWith(key + String.fromCharCode(0)));\n rowKeys = rowKeys.filter(rowKey => !flatKey(rowKey).startsWith(key + String.fromCharCode(0)));\n }\n }\n\n // Guardar todos los colKeys para totales (SIEMPRE calcula sobre todo)\n const allColKeys = colKeys;\n const allRowKeys = rowKeys;\n\n const totalRows = rowKeys.length;\n let startOffset = 0;\n if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n startOffset = start;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\n\n // Aplicar virtualización bidireccional\n const shouldVirt = scroller.shouldVirtualize(rowKeys.length, colKeys.length);\n const scrollTop = (this.state || {}).scrollTop || 0;\n const scrollLeft = (this.state || {}).scrollLeft || 0;\n\n let visibleRowKeys = rowKeys;\n let rowTopPad = 0;\n let rowBottomPad = 0;\n let virtualRowStartOffset = 0;\n\n if (shouldVirt.rows) {\n const rowRange = scroller.getVisibleRowRange(scrollTop, rowKeys.length);\n visibleRowKeys = rowKeys.slice(rowRange.startIndex, rowRange.endIndex + 1);\n rowTopPad = rowRange.topPadding;\n rowBottomPad = rowRange.bottomPadding;\n virtualRowStartOffset = rowRange.startIndex;\n }\n\n let visibleColKeys = colKeys;\n let colLeftPad = 0;\n let colRightPad = 0;\n\n if (shouldVirt.cols) {\n const colRange = scroller.getVisibleColRange(scrollLeft, colKeys.length);\n visibleColKeys = colKeys.slice(colRange.startIndex, colRange.endIndex + 1);\n colLeftPad = colRange.leftPadding;\n colRightPad = colRange.rightPadding;\n }\n\n const showRowNumbers = this.props.showRowNumbers !== false;\n const isVirtualized = shouldVirt.rows || shouldVirt.cols;\n\n let valueCellColors = () => { };\n let rowTotalColors = () => { };\n let colTotalColors = () => { };\n if (opts.heatmapMode) {\n const colorScaleGenerator = this.props.tableColorScaleGenerator;\n const rowTotalValues = colKeys.map(x =>\n pivotData.getAggregator([], x).value()\n );\n rowTotalColors = colorScaleGenerator(rowTotalValues);\n const colTotalValues = rowKeys.map(x =>\n pivotData.getAggregator(x, []).value()\n );\n colTotalColors = colorScaleGenerator(colTotalValues);\n\n if (opts.heatmapMode === 'full') {\n const allValues = [];\n rowKeys.map(r =>\n colKeys.map(c =>\n allValues.push(pivotData.getAggregator(r, c).value())\n )\n );\n const colorScale = colorScaleGenerator(allValues);\n valueCellColors = (r, c, v) => colorScale(v);\n } else if (opts.heatmapMode === 'row') {\n const rowColorScales = {};\n rowKeys.map(r => {\n const rowValues = colKeys.map(x =>\n pivotData.getAggregator(r, x).value()\n );\n rowColorScales[r] = colorScaleGenerator(rowValues);\n });\n valueCellColors = (r, c, v) => rowColorScales[r](v);\n } else if (opts.heatmapMode === 'col') {\n const colColorScales = {};\n colKeys.map(c => {\n const colValues = rowKeys.map(x =>\n pivotData.getAggregator(x, c).value()\n );\n colColorScales[c] = colorScaleGenerator(colValues);\n });\n valueCellColors = (r, c, v) => colColorScales[c](v);\n }\n }\n\n const getClickHandler =\n this.props.tableOptions && this.props.tableOptions.clickCallback\n ? (value, rowValues, colValues) => {\n const filters = {};\n for (const i of Object.keys(colAttrs || {})) {\n const attr = colAttrs[i];\n if (colValues[i] !== null) {\n filters[attr] = colValues[i];\n }\n }\n for (const i of Object.keys(rowAttrs || {})) {\n const attr = rowAttrs[i];\n if (rowValues[i] !== null) {\n filters[attr] = rowValues[i];\n }\n }\n return e =>\n this.props.tableOptions.clickCallback(\n e,\n value,\n filters,\n pivotData\n );\n }\n : null;\n\n const rbClass = grouping ? this.props.rowGroupBefore ? \"rowGroupBefore\" : \"rowGroupAfter\" : \"\";\n const cbClass = grouping ? this.props.colGroupBefore ? \"colGroupBefore\" : \"colGroupAfter\" : \"\";\n const clickClass = (pred, closed) => pred ? \" pvtClickable\" + (closed ? \" closed\" : \"\") : \"\";\n // ─── Render de la tabla ────────────────────────────────────────────\n const handleScroll = isVirtualized ? (e) => {\n this.setState({\n scrollTop: e.currentTarget.scrollTop,\n scrollLeft: e.currentTarget.scrollLeft,\n });\n } : null;\n\n const tableContent = (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}`}>\n <thead>\n {colAttrs.map(function (c, j) {\n const clickable = grouping && colAttrs.length > j + 1;\n const levelKeys = allColKeys.filter(x => x.length === j + 1);\n return (\n <tr key={`colAttr${j}`}>\n {showRowNumbers && j === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan={colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)}>#</th>\n )}\n {j === 0 && rowAttrs.length !== 0 && (\n <th colSpan={rowAttrs.length} rowSpan={colAttrs.length} />\n )}\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n >{c}</th>\n {shouldVirt.cols && colLeftPad > 0 && j === 0 && (\n <th key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const x = spanSize(visibleColKeys, i, j);\n if (x === -1) {\n return null;\n }\n return (\n <th\n className={\"pvtColLabel\" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)]))}\n key={`colKey-${i}-${j}-${colKey[j]}`}\n colSpan={x}\n rowSpan={\n j === colAttrs.length - 1 && rowAttrs.length !== 0\n ? 2\n : 1\n }\n onClick={clickable && colKey[j] ? _ => fold([colKey.slice(0, j + 1)]) : null}\n >\n {colKey[j]}\n </th>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && j === 0 && (\n <th key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n {j === 0 && (\n <th\n className=\"pvtTotalLabel\"\n rowSpan={\n colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)\n }\n >\n Totals\n </th>\n )}\n </tr>\n );\n })}\n\n {rowAttrs.length !== 0 && (\n <tr>\n {showRowNumbers && colAttrs.length === 0 && (\n <th className=\"pvtRowNumber pvtAxisLabel\" rowSpan=\"1\">#</th>\n )}\n {rowAttrs.map(function (r, i) {\n const clickable = grouping && rowAttrs.length > i + 1;\n const levelKeys = allRowKeys.filter(x => x.length === i + 1);\n return (\n <th className={\"pvtAxisLabel\" + clickClass(clickable, isFolded(levelKeys))}\n onClick={clickable ? _ => fold(levelKeys) : null}\n key={`rowAttr${i}`}>\n {r}\n </th>\n );\n })}\n <th className=\"pvtTotalLabel\">\n {colAttrs.length === 0 ? 'Totals' : null}\n </th>\n </tr>\n )}\n </thead>\n\n <tbody>\n {/* Spacer top para virtualización de filas */}\n {shouldVirt.rows && rowTopPad > 0 && (\n <tr key=\"virt-top-spacer\" style={{ height: rowTopPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {visibleRowKeys.map(function (rowKey, localI) {\n const globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;\n const totalAggregator = pivotData.getAggregator(rowKey, []);\n const rowGap = rowAttrs.length - rowKey.length;\n const rowTotalResult = pipeline.processTotal({ aggregator: totalAggregator, rowKey, type: 'row' });\n return (\n <tr key={`rowKeyRow${globalI}`}\n className={(rowGap ? \"pvtLevel\" + rowGap : \"pvtData\") + \" pvtRow-data\"}\n style={shouldVirt.rows ? { height: scroller.rowHeight } : undefined}>\n {showRowNumbers && (\n <th className=\"pvtRowNumber\">{startOffset + globalI + 1}</th>\n )}\n {rowKey.map(function (txt, j) {\n if (compactRows && j < rowKey.length - 1) {\n return null;\n }\n const clickable = grouping && rowAttrs.length > j + 1;\n const x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);\n if (x === -1) {\n return null;\n }\n return (\n <th\n key={`rowKeyLabel-${globalI}-${j}-${txt}`}\n className={\"pvtRowLabel\" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)]))}\n rowSpan={x}\n colSpan={\n compactRows ?\n rowAttrs.length + 1 :\n j === rowAttrs.length - 1 && colAttrs.length !== 0\n ? 2\n : 1\n }\n style={{ paddingLeft: compactRows ? `calc(var(--pvt-row-padding, 5px) + ${j} * var(--pvt-row-indent, 20px))` : null }}\n onClick={clickable && rowKey[j] ? _ => fold([rowKey.slice(0, j + 1)]) : null}\n >\n {txt}\n </th>\n );\n })}\n {!compactRows && rowGap\n ? <th className=\"pvtRowLabel\" colSpan={rowGap + 1}>{\"Total (\" + rowKey[rowKey.length - 1] + \")\"}</th>\n : null\n }\n {/* Spacer left para virtualización de columnas */}\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, j) {\n const aggregator = pivotData.getAggregator(rowKey, colKey);\n const colGap = colAttrs.length - colKey.length;\n const cellResult = pipeline.process({ aggregator, rowKey, colKey, pivotData });\n const isNumeric = typeof cellResult.value === 'number';\n const mergedStyle = {\n ...valueCellColors(rowKey, colKey, cellResult.value),\n ...(cellResult.style || {}),\n };\n return (\n <td\n className={\"pvtVal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\") + (cellResult.className ? \" \" + cellResult.className : \"\")}\n key={`pvtVal${globalI}-${j}`}\n onClick={\n getClickHandler &&\n getClickHandler(cellResult.value, rowKey, colKey)\n }\n style={Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined}\n >\n {cellResult.rendered}\n </td>\n );\n })}\n {/* Spacer right para virtualización de columnas */}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n <td\n className={\"pvtTotal\" + (typeof rowTotalResult.value === 'number' ? \" pvtVal-numeric\" : \"\")}\n onClick={\n getClickHandler &&\n getClickHandler(rowTotalResult.value, rowKey, [null])\n }\n style={colTotalColors(rowTotalResult.value) || rowTotalResult.style}\n >\n {rowTotalResult.rendered}\n </td>\n </tr>\n );\n })}\n\n {/* Spacer bottom para virtualización de filas */}\n {shouldVirt.rows && rowBottomPad > 0 && (\n <tr key=\"virt-bottom-spacer\" style={{ height: rowBottomPad }}>\n <td colSpan={999} />\n </tr>\n )}\n\n {showRowNumbers && this.props.pagination && visibleRowKeys.length < this.props.pageSize && !shouldVirt.rows && (\n Array.from({ length: this.props.pageSize - visibleRowKeys.length }).map((_, padIdx) => (\n <tr key={`padRow${padIdx}`} className=\"pvtRow-data pvtEmptyRow\">\n <th className=\"pvtRowNumber\">{startOffset + visibleRowKeys.length + padIdx + 1}</th>\n <th className=\"pvtRowLabel\" colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}></th>\n {visibleColKeys.map((colKey, j) => <td key={`padVal${padIdx}-${j}`} className=\"pvtVal pvtEmptyCell\"></td>)}\n <td className=\"pvtTotal pvtEmptyCell\"></td>\n </tr>\n ))\n )}\n\n {/* Totals row — siempre calcula sobre TODOS los datos */}\n <tr className=\"pvtTotalRow\">\n {showRowNumbers && <th className=\"pvtTotalLabel\"></th>}\n <th\n className=\"pvtTotalLabel\"\n colSpan={rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)}\n >\n Totals\n </th>\n\n {shouldVirt.cols && colLeftPad > 0 && (\n <td key=\"total-col-pad-left\" style={{ minWidth: colLeftPad }} />\n )}\n {visibleColKeys.map(function (colKey, i) {\n const totalAggregator = pivotData.getAggregator([], colKey);\n const colGap = colAttrs.length - colKey.length;\n const totalVal = totalAggregator.value();\n const isNumeric = typeof totalVal === 'number';\n return (\n <td\n className={\"pvtTotal\" + (colGap ? \" pvtLevel\" + colGap : \"\") + (isNumeric ? \" pvtVal-numeric\" : \"\")}\n key={`total${i}`}\n onClick={\n getClickHandler &&\n getClickHandler(totalVal, [null], colKey)\n }\n style={rowTotalColors(totalVal)}\n >\n {totalAggregator.format(totalVal)}\n </td>\n );\n })}\n {shouldVirt.cols && colRightPad > 0 && (\n <td key=\"total-col-pad-right\" style={{ minWidth: colRightPad }} />\n )}\n\n <td\n onClick={\n getClickHandler &&\n getClickHandler(grandTotalAggregator.value(), [null], [null])\n }\n className={\"pvtGrandTotal\" + (typeof grandTotalAggregator.value() === 'number' ? \" pvtVal-numeric\" : \"\")}\n >\n {grandTotalAggregator.format(grandTotalAggregator.value())}\n </td>\n </tr>\n </tbody>\n </table>\n );\n\n // Wrappear en container con scroll si virtualización está activa\n if (isVirtualized) {\n return (\n <div\n className=\"pvtVirtualContainer\"\n style={{\n maxHeight: scroller.containerHeight,\n maxWidth: scroller.containerWidth,\n overflow: 'auto',\n position: 'relative',\n }}\n onScroll={handleScroll}\n >\n {tableContent}\n </div>\n );\n }\n\n return tableContent;\n }\n }\n\n TableRenderer.defaultProps = PivotData.defaultProps;\n TableRenderer.propTypes = PivotData.propTypes;\n TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRenderer.defaultProps.tableOptions = {};\n TableRenderer.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRenderer.propTypes.tableOptions = PropTypes.object;\n TableRenderer.defaultProps.compactRows = true;\n TableRenderer.propTypes.compactRows = PropTypes.bool;\n TableRenderer.defaultProps.showRowNumbers = true;\n TableRenderer.propTypes.showRowNumbers = PropTypes.bool;\n return TableRenderer;\n}\n\nclass TSVExportRenderer extends React.PureComponent {\n render() {\n const pivotData = new PivotData(this.props);\n const rowKeys = pivotData.getRowKeys();\n const colKeys = pivotData.getColKeys();\n if (rowKeys.length === 0) {\n rowKeys.push([]);\n }\n if (colKeys.length === 0) {\n colKeys.push([]);\n }\n\n const headerRow = pivotData.props.rows.map(r => r);\n if (colKeys.length === 1 && colKeys[0].length === 0) {\n headerRow.push(this.props.aggregatorName);\n } else {\n colKeys.map(c => headerRow.push(c.join('-')));\n }\n\n const result = rowKeys.map(r => {\n const row = r.map(x => x);\n colKeys.map(c => {\n const v = pivotData.getAggregator(r, c).value();\n row.push(v ? v : '');\n });\n return row;\n });\n\n result.unshift(headerRow);\n\n return (\n <textarea\n value={result.map(r => r.join('\\t')).join('\\n')}\n style={{ width: window.innerWidth / 2, height: window.innerHeight / 2 }}\n readOnly={true}\n />\n );\n }\n}\n\nTSVExportRenderer.defaultProps = PivotData.defaultProps;\nTSVExportRenderer.propTypes = PivotData.propTypes;\n\nexport default {\n Table: makeRenderer(),\n 'Table Heatmap': makeRenderer({ heatmapMode: 'full' }),\n 'Table Col Heatmap': makeRenderer({ heatmapMode: 'col' }),\n 'Table Row Heatmap': makeRenderer({ heatmapMode: 'row' }),\n 'Exportable TSV': TSVExportRenderer,\n};\n"],"mappings":"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","ignoreList":[]}
|