react-pivottable-plus 1.0.13 → 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.
Files changed (56) hide show
  1. package/dist/PivotTableUI.js +133 -210
  2. package/dist/PivotTableUI.js.map +1 -1
  3. package/dist/TableRenderers.js +193 -28
  4. package/dist/TableRenderers.js.map +1 -1
  5. package/dist/core/CellPipeline.js +167 -0
  6. package/dist/core/CellPipeline.js.map +1 -0
  7. package/dist/core/ColumnEngine.js +299 -0
  8. package/dist/core/ColumnEngine.js.map +1 -0
  9. package/dist/core/EventBus.js +109 -0
  10. package/dist/core/EventBus.js.map +1 -0
  11. package/dist/core/ModuleRegistry.js +140 -0
  12. package/dist/core/ModuleRegistry.js.map +1 -0
  13. package/dist/core/PivotCore.js +254 -0
  14. package/dist/core/PivotCore.js.map +1 -0
  15. package/dist/core/PivotEngine.js +151 -0
  16. package/dist/core/PivotEngine.js.map +1 -0
  17. package/dist/core/StateManager.js +142 -0
  18. package/dist/core/StateManager.js.map +1 -0
  19. package/dist/core/VirtualScroller.js +138 -0
  20. package/dist/core/VirtualScroller.js.map +1 -0
  21. package/dist/core/api/ColumnApi.js +162 -0
  22. package/dist/core/api/ColumnApi.js.map +1 -0
  23. package/dist/core/api/GridApi.js +208 -0
  24. package/dist/core/api/GridApi.js.map +1 -0
  25. package/dist/core/index.js +89 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/core/rowModels/ClientSideRowModel.js +177 -0
  28. package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
  29. package/dist/core/rowModels/index.js +13 -0
  30. package/dist/core/rowModels/index.js.map +1 -0
  31. package/dist/hooks/usePivot.js +63 -155
  32. package/dist/hooks/usePivot.js.map +1 -1
  33. package/dist/modules/FilterModule.js +156 -0
  34. package/dist/modules/FilterModule.js.map +1 -0
  35. package/dist/modules/PaginationModule.js +115 -0
  36. package/dist/modules/PaginationModule.js.map +1 -0
  37. package/dist/modules/SortModule.js +88 -0
  38. package/dist/modules/SortModule.js.map +1 -0
  39. package/dist/modules/ThemeModule.js +83 -0
  40. package/dist/modules/ThemeModule.js.map +1 -0
  41. package/dist/modules/VirtualizationModule.js +89 -0
  42. package/dist/modules/VirtualizationModule.js.map +1 -0
  43. package/dist/modules/index.js +41 -0
  44. package/dist/modules/index.js.map +1 -0
  45. package/dist/react/index.js +13 -0
  46. package/dist/react/index.js.map +1 -0
  47. package/dist/react/usePivotGrid.js +116 -0
  48. package/dist/react/usePivotGrid.js.map +1 -0
  49. package/dist/renderers/RadixUI.js +1 -1
  50. package/dist/renderers/RadixUI.js.map +1 -1
  51. package/dist/renderers/ShadcnDashboardUI.js +1 -1
  52. package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
  53. package/dist/renderers/TailwindUI.js +1 -1
  54. package/dist/renderers/TailwindUI.js.map +1 -1
  55. package/package.json +4 -2
  56. package/pivottable.css +56 -0
@@ -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,12 +158,45 @@ 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;
166
+ var startOffset = 0;
141
167
  if (this.props.pagination) {
142
168
  var start = (this.props.page - 1) * this.props.pageSize;
169
+ startOffset = start;
143
170
  var end = start + this.props.pageSize;
144
171
  rowKeys = rowKeys.slice(start, end);
145
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
+ }
198
+ var showRowNumbers = this.props.showRowNumbers !== false;
199
+ var isVirtualized = shouldVirt.rows || shouldVirt.cols;
146
200
  var valueCellColors = function valueCellColors() {};
147
201
  var rowTotalColors = function rowTotalColors() {};
148
202
  var colTotalColors = function colTotalColors() {};
@@ -216,17 +270,27 @@ function makeRenderer() {
216
270
  var clickClass = function clickClass(pred, closed) {
217
271
  return pred ? " pvtClickable" + (closed ? " closed" : "") : "";
218
272
  };
219
- return /*#__PURE__*/_react["default"].createElement("table", {
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", {
220
281
  id: id,
221
282
  className: "pvtTable ".concat(rbClass, " ").concat(cbClass)
222
283
  }, /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
223
284
  var clickable = grouping && colAttrs.length > j + 1;
224
- var levelKeys = colKeys.filter(function (x) {
285
+ var levelKeys = allColKeys.filter(function (x) {
225
286
  return x.length === j + 1;
226
287
  });
227
288
  return /*#__PURE__*/_react["default"].createElement("tr", {
228
289
  key: "colAttr".concat(j)
229
- }, j === 0 && rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("th", {
290
+ }, showRowNumbers && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
291
+ className: "pvtRowNumber pvtAxisLabel",
292
+ rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
293
+ }, "#"), j === 0 && rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("th", {
230
294
  colSpan: rowAttrs.length,
231
295
  rowSpan: colAttrs.length
232
296
  }), /*#__PURE__*/_react["default"].createElement("th", {
@@ -234,8 +298,13 @@ function makeRenderer() {
234
298
  onClick: clickable ? function (_) {
235
299
  return fold(levelKeys);
236
300
  } : null
237
- }, c), colKeys.map(function (colKey, i) {
238
- var x = spanSize(colKeys, i, j);
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);
239
308
  if (x === -1) {
240
309
  return null;
241
310
  }
@@ -248,13 +317,21 @@ function makeRenderer() {
248
317
  return fold([colKey.slice(0, j + 1)]);
249
318
  } : null
250
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
+ }
251
325
  }), j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
252
326
  className: "pvtTotalLabel",
253
327
  rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
254
328
  }, "Totals"));
255
- }), rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("tr", null, rowAttrs.map(function (r, i) {
329
+ }), rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("tr", null, showRowNumbers && colAttrs.length === 0 && /*#__PURE__*/_react["default"].createElement("th", {
330
+ className: "pvtRowNumber pvtAxisLabel",
331
+ rowSpan: "1"
332
+ }, "#"), rowAttrs.map(function (r, i) {
256
333
  var clickable = grouping && rowAttrs.length > i + 1;
257
- var levelKeys = rowKeys.filter(function (x) {
334
+ var levelKeys = allRowKeys.filter(function (x) {
258
335
  return x.length === i + 1;
259
336
  });
260
337
  return /*#__PURE__*/_react["default"].createElement("th", {
@@ -266,24 +343,41 @@ function makeRenderer() {
266
343
  }, r);
267
344
  }), /*#__PURE__*/_react["default"].createElement("th", {
268
345
  className: "pvtTotalLabel"
269
- }, colAttrs.length === 0 ? 'Totals' : null))), /*#__PURE__*/_react["default"].createElement("tbody", null, rowKeys.map(function (rowKey, i) {
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;
270
355
  var totalAggregator = pivotData.getAggregator(rowKey, []);
271
356
  var rowGap = rowAttrs.length - rowKey.length;
272
- var rowTotalValue = totalAggregator.value();
357
+ var rowTotalResult = pipeline.processTotal({
358
+ aggregator: totalAggregator,
359
+ rowKey: rowKey,
360
+ type: 'row'
361
+ });
273
362
  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) {
363
+ key: "rowKeyRow".concat(globalI),
364
+ className: (rowGap ? "pvtLevel" + rowGap : "pvtData") + " pvtRow-data",
365
+ style: shouldVirt.rows ? {
366
+ height: scroller.rowHeight
367
+ } : undefined
368
+ }, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
369
+ className: "pvtRowNumber"
370
+ }, startOffset + globalI + 1), rowKey.map(function (txt, j) {
277
371
  if (compactRows && j < rowKey.length - 1) {
278
372
  return null;
279
373
  }
280
374
  var clickable = grouping && rowAttrs.length > j + 1;
281
- var x = compactRows ? 1 : spanSize(rowKeys, i, j, specialCase);
375
+ var x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);
282
376
  if (x === -1) {
283
377
  return null;
284
378
  }
285
379
  return /*#__PURE__*/_react["default"].createElement("th", {
286
- key: "rowKeyLabel-".concat(i, "-").concat(j, "-").concat(txt),
380
+ key: "rowKeyLabel-".concat(globalI, "-").concat(j, "-").concat(txt),
287
381
  className: "pvtRowLabel" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)])),
288
382
  rowSpan: x,
289
383
  colSpan: compactRows ? rowAttrs.length + 1 : j === rowAttrs.length - 1 && colAttrs.length !== 0 ? 2 : 1,
@@ -297,28 +391,77 @@ function makeRenderer() {
297
391
  }), !compactRows && rowGap ? /*#__PURE__*/_react["default"].createElement("th", {
298
392
  className: "pvtRowLabel",
299
393
  colSpan: rowGap + 1
300
- }, "Total (" + rowKey[rowKey.length - 1] + ")") : null, colKeys.map(function (colKey, j) {
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) {
301
400
  var aggregator = pivotData.getAggregator(rowKey, colKey);
302
401
  var colGap = colAttrs.length - colKey.length;
303
- var val = aggregator.value();
304
- var isNumeric = typeof val === 'number';
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 || {});
410
+ return /*#__PURE__*/_react["default"].createElement("td", {
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
+ }
421
+ }), /*#__PURE__*/_react["default"].createElement("td", {
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
435
+ }).map(function (_, padIdx) {
436
+ return /*#__PURE__*/_react["default"].createElement("tr", {
437
+ key: "padRow".concat(padIdx),
438
+ className: "pvtRow-data pvtEmptyRow"
439
+ }, /*#__PURE__*/_react["default"].createElement("th", {
440
+ className: "pvtRowNumber"
441
+ }, startOffset + visibleRowKeys.length + padIdx + 1), /*#__PURE__*/_react["default"].createElement("th", {
442
+ className: "pvtRowLabel",
443
+ colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
444
+ }), visibleColKeys.map(function (colKey, j) {
305
445
  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));
446
+ key: "padVal".concat(padIdx, "-").concat(j),
447
+ className: "pvtVal pvtEmptyCell"
448
+ });
311
449
  }), /*#__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)));
450
+ className: "pvtTotal pvtEmptyCell"
451
+ }));
316
452
  }), /*#__PURE__*/_react["default"].createElement("tr", {
317
453
  className: "pvtTotalRow"
318
- }, /*#__PURE__*/_react["default"].createElement("th", {
454
+ }, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
455
+ className: "pvtTotalLabel"
456
+ }), /*#__PURE__*/_react["default"].createElement("th", {
319
457
  className: "pvtTotalLabel",
320
458
  colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
321
- }, "Totals"), colKeys.map(function (colKey, i) {
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) {
322
465
  var totalAggregator = pivotData.getAggregator([], colKey);
323
466
  var colGap = colAttrs.length - colKey.length;
324
467
  var totalVal = totalAggregator.value();
@@ -329,10 +472,30 @@ function makeRenderer() {
329
472
  onClick: getClickHandler && getClickHandler(totalVal, [null], colKey),
330
473
  style: rowTotalColors(totalVal)
331
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
+ }
332
480
  }), /*#__PURE__*/_react["default"].createElement("td", {
333
481
  onClick: getClickHandler && getClickHandler(grandTotalAggregator.value(), [null], [null]),
334
482
  className: "pvtGrandTotal" + (typeof grandTotalAggregator.value() === 'number' ? " pvtVal-numeric" : "")
335
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;
336
499
  }
337
500
  }]);
338
501
  }(_react["default"].PureComponent);
@@ -344,6 +507,8 @@ function makeRenderer() {
344
507
  TableRenderer.propTypes.tableOptions = _propTypes["default"].object;
345
508
  TableRenderer.defaultProps.compactRows = true;
346
509
  TableRenderer.propTypes.compactRows = _propTypes["default"].bool;
510
+ TableRenderer.defaultProps.showRowNumbers = true;
511
+ TableRenderer.propTypes.showRowNumbers = _propTypes["default"].bool;
347
512
  return TableRenderer;
348
513
  }
349
514
  var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent2) {
@@ -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","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"],"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 if (this.props.pagination) {\n const start = (this.props.page - 1) * this.props.pageSize;\n const end = start + this.props.pageSize;\n rowKeys = rowKeys.slice(start, end);\n }\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 {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 {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 {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 <tr className=\"pvtTotalRow\">\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 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":[]}