react-pivottable-plus 1.0.16 → 1.0.20

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.
@@ -10,7 +10,9 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
10
  var _Utilities = require("./Utilities");
11
11
  var _CellPipeline = require("./core/CellPipeline");
12
12
  var _VirtualScroller = require("./core/VirtualScroller");
13
+ var _useColumnResize2 = require("./hooks/useColumnResize");
13
14
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
15
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
16
  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
17
  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
18
  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; }
@@ -90,13 +92,14 @@ var toggle = function toggle(set, arr) {
90
92
  };
91
93
  function makeRenderer() {
92
94
  var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
93
- var TableRenderer = /*#__PURE__*/function (_React$PureComponent) {
94
- function TableRenderer() {
95
- _classCallCheck(this, TableRenderer);
96
- return _callSuper(this, TableRenderer, arguments);
95
+ // ─── Inner class (toda la lógica de render) ──────────────────────
96
+ var TableRendererInner = /*#__PURE__*/function (_React$PureComponent) {
97
+ function TableRendererInner() {
98
+ _classCallCheck(this, TableRendererInner);
99
+ return _callSuper(this, TableRendererInner, arguments);
97
100
  }
98
- _inherits(TableRenderer, _React$PureComponent);
99
- return _createClass(TableRenderer, [{
101
+ _inherits(TableRendererInner, _React$PureComponent);
102
+ return _createClass(TableRendererInner, [{
100
103
  key: "render",
101
104
  value: function render() {
102
105
  var _this = this;
@@ -277,10 +280,64 @@ function makeRenderer() {
277
280
  scrollLeft: e.currentTarget.scrollLeft
278
281
  });
279
282
  } : null;
283
+
284
+ // ─── Column widths (resize) ────────────────────────────────
285
+ var resizeWidths = this.props._resizeWidths || {};
286
+ var onStartResize = this.props._onStartResize || null;
287
+
288
+ // Construir colgroup con anchos de todas las columnas de datos
289
+ var buildColgroup = function buildColgroup() {
290
+ var cols = [];
291
+ // Col para row numbers
292
+ if (showRowNumbers) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
293
+ key: "col-rownum",
294
+ style: {
295
+ width: '40px',
296
+ minWidth: '40px'
297
+ }
298
+ }));
299
+ // Cols para rowAttrs
300
+ rowAttrs.forEach(function (_, i) {
301
+ return cols.push(/*#__PURE__*/_react["default"].createElement("col", {
302
+ key: "col-rowattr-".concat(i)
303
+ }));
304
+ });
305
+ // Col padding virtual izquierdo
306
+ if (shouldVirt.cols && colLeftPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
307
+ key: "col-virt-left",
308
+ style: {
309
+ width: colLeftPad
310
+ }
311
+ }));
312
+ // Cols para cada columna de datos
313
+ visibleColKeys.forEach(function (colKey) {
314
+ var label = colKey.join("\0");
315
+ var w = resizeWidths[label];
316
+ cols.push(/*#__PURE__*/_react["default"].createElement("col", {
317
+ key: "col-data-".concat(label),
318
+ style: w ? {
319
+ width: w,
320
+ minWidth: w
321
+ } : undefined
322
+ }));
323
+ });
324
+ // Col padding virtual derecho
325
+ if (shouldVirt.cols && colRightPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
326
+ key: "col-virt-right",
327
+ style: {
328
+ width: colRightPad
329
+ }
330
+ }));
331
+ // Col para totales
332
+ cols.push(/*#__PURE__*/_react["default"].createElement("col", {
333
+ key: "col-totals"
334
+ }));
335
+ return /*#__PURE__*/_react["default"].createElement("colgroup", null, cols);
336
+ };
280
337
  var tableContent = /*#__PURE__*/_react["default"].createElement("table", {
281
338
  id: id,
282
- className: "pvtTable ".concat(rbClass, " ").concat(cbClass)
283
- }, /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
339
+ className: "pvtTable ".concat(rbClass, " ").concat(cbClass).concat(onStartResize ? ' pvtResizable' : '')
340
+ }, buildColgroup(), /*#__PURE__*/_react["default"].createElement("thead", null, colAttrs.map(function (c, j) {
284
341
  var clickable = grouping && colAttrs.length > j + 1;
285
342
  var levelKeys = allColKeys.filter(function (x) {
286
343
  return x.length === j + 1;
@@ -308,15 +365,23 @@ function makeRenderer() {
308
365
  if (x === -1) {
309
366
  return null;
310
367
  }
368
+ // Usar el colKey completo como clave de resize solo en la última fila de headers
369
+ var isLastHeaderRow = j === colAttrs.length - 1;
370
+ var colLabel = colKey.join("\0");
311
371
  return /*#__PURE__*/_react["default"].createElement("th", {
312
372
  className: "pvtColLabel" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)])),
313
373
  key: "colKey-".concat(i, "-").concat(j, "-").concat(colKey[j]),
314
374
  colSpan: x,
315
- rowSpan: j === colAttrs.length - 1 && rowAttrs.length !== 0 ? 2 : 1,
375
+ rowSpan: isLastHeaderRow && rowAttrs.length !== 0 ? 2 : 1,
316
376
  onClick: clickable && colKey[j] ? function (_) {
317
377
  return fold([colKey.slice(0, j + 1)]);
318
378
  } : null
319
- }, colKey[j]);
379
+ }, colKey[j], onStartResize && isLastHeaderRow && /*#__PURE__*/_react["default"].createElement("span", {
380
+ className: "pvtResizeHandle",
381
+ onPointerDown: function onPointerDown(e) {
382
+ return onStartResize(colLabel, e);
383
+ }
384
+ }));
320
385
  }), shouldVirt.cols && colRightPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
321
386
  key: "col-pad-right",
322
387
  style: {
@@ -499,16 +564,44 @@ function makeRenderer() {
499
564
  }
500
565
  }]);
501
566
  }(_react["default"].PureComponent);
502
- TableRenderer.defaultProps = _Utilities.PivotData.defaultProps;
503
- TableRenderer.propTypes = _Utilities.PivotData.propTypes;
504
- TableRenderer.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;
505
- TableRenderer.defaultProps.tableOptions = {};
506
- TableRenderer.propTypes.tableColorScaleGenerator = _propTypes["default"].func;
507
- TableRenderer.propTypes.tableOptions = _propTypes["default"].object;
508
- TableRenderer.defaultProps.compactRows = true;
509
- TableRenderer.propTypes.compactRows = _propTypes["default"].bool;
510
- TableRenderer.defaultProps.showRowNumbers = true;
511
- TableRenderer.propTypes.showRowNumbers = _propTypes["default"].bool;
567
+ TableRendererInner.defaultProps = _Utilities.PivotData.defaultProps;
568
+ TableRendererInner.propTypes = _Utilities.PivotData.propTypes;
569
+ TableRendererInner.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;
570
+ TableRendererInner.defaultProps.tableOptions = {};
571
+ TableRendererInner.propTypes.tableColorScaleGenerator = _propTypes["default"].func;
572
+ TableRendererInner.propTypes.tableOptions = _propTypes["default"].object;
573
+ TableRendererInner.defaultProps.compactRows = true;
574
+ TableRendererInner.propTypes.compactRows = _propTypes["default"].bool;
575
+ TableRendererInner.defaultProps.showRowNumbers = true;
576
+ TableRendererInner.propTypes.showRowNumbers = _propTypes["default"].bool;
577
+ // Resize props (pasadas internamente desde el wrapper)
578
+ TableRendererInner.propTypes._resizeWidths = _propTypes["default"].object;
579
+ TableRendererInner.propTypes._onStartResize = _propTypes["default"].func;
580
+
581
+ // ─── Wrapper funcional para poder usar hooks ─────────────────────
582
+ function TableRenderer(props) {
583
+ var resizing = props.columnResizing === true;
584
+ var _useColumnResize = (0, _useColumnResize2.useColumnResize)({
585
+ initialWidths: props.columnWidths || {},
586
+ minWidth: 50,
587
+ onWidthChange: props.onColumnWidthChange
588
+ }),
589
+ widths = _useColumnResize.widths,
590
+ startResize = _useColumnResize.startResize;
591
+ return /*#__PURE__*/_react["default"].createElement(TableRendererInner, _extends({}, props, {
592
+ _resizeWidths: resizing ? widths : {},
593
+ _onStartResize: resizing ? startResize : null
594
+ }));
595
+ }
596
+ TableRenderer.defaultProps = _objectSpread(_objectSpread({}, TableRendererInner.defaultProps), {}, {
597
+ columnResizing: false,
598
+ columnWidths: {}
599
+ });
600
+ TableRenderer.propTypes = _objectSpread(_objectSpread({}, TableRendererInner.propTypes), {}, {
601
+ columnResizing: _propTypes["default"].bool,
602
+ columnWidths: _propTypes["default"].object,
603
+ onColumnWidthChange: _propTypes["default"].func
604
+ });
512
605
  return TableRenderer;
513
606
  }
514
607
  var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent2) {
@@ -1 +1 @@
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":[]}
1
+ {"version":3,"file":"TableRenderers.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_CellPipeline","_VirtualScroller","_useColumnResize2","e","__esModule","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","ownKeys","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","_objectSpread","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_createForOfIteratorHelper","Symbol","iterator","Array","isArray","_unsupportedIterableToArray","_n","F","s","done","f","TypeError","a","u","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","__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","TableRendererInner","_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","resizeWidths","_resizeWidths","onStartResize","_onStartResize","buildColgroup","createElement","style","width","minWidth","_","label","w","tableContent","className","clickable","levelKeys","rowSpan","colSpan","onClick","isLastHeaderRow","colLabel","onPointerDown","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","TableRenderer","resizing","columnResizing","_useColumnResize","useColumnResize","initialWidths","columnWidths","onWidthChange","onColumnWidthChange","widths","startResize","TSVExportRenderer","_React$PureComponent2","headerRow","aggregatorName","result","row","unshift","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';\nimport { useColumnResize } from './hooks/useColumnResize';\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 // ─── Inner class (toda la lógica de render) ──────────────────────\n class TableRendererInner 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 // ─── Column widths (resize) ────────────────────────────────\n const resizeWidths = this.props._resizeWidths || {};\n const onStartResize = this.props._onStartResize || null;\n\n // Construir colgroup con anchos de todas las columnas de datos\n const buildColgroup = () => {\n const cols = [];\n // Col para row numbers\n if (showRowNumbers) cols.push(<col key=\"col-rownum\" style={{ width: '40px', minWidth: '40px' }} />);\n // Cols para rowAttrs\n rowAttrs.forEach((_, i) => cols.push(<col key={`col-rowattr-${i}`} />));\n // Col padding virtual izquierdo\n if (shouldVirt.cols && colLeftPad > 0) cols.push(<col key=\"col-virt-left\" style={{ width: colLeftPad }} />);\n // Cols para cada columna de datos\n visibleColKeys.forEach((colKey) => {\n const label = colKey.join('\\u0000');\n const w = resizeWidths[label];\n cols.push(<col key={`col-data-${label}`} style={w ? { width: w, minWidth: w } : undefined} />);\n });\n // Col padding virtual derecho\n if (shouldVirt.cols && colRightPad > 0) cols.push(<col key=\"col-virt-right\" style={{ width: colRightPad }} />);\n // Col para totales\n cols.push(<col key=\"col-totals\" />);\n return <colgroup>{cols}</colgroup>;\n };\n\n const tableContent = (\n <table id={id} className={`pvtTable ${rbClass} ${cbClass}${onStartResize ? ' pvtResizable' : ''}`}>\n {buildColgroup()}\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 // Usar el colKey completo como clave de resize solo en la última fila de headers\n const isLastHeaderRow = j === colAttrs.length - 1;\n const colLabel = colKey.join('\\u0000');\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 isLastHeaderRow && 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 {onStartResize && isLastHeaderRow && (\n <span\n className=\"pvtResizeHandle\"\n onPointerDown={e => onStartResize(colLabel, e)}\n />\n )}\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 TableRendererInner.defaultProps = PivotData.defaultProps;\n TableRendererInner.propTypes = PivotData.propTypes;\n TableRendererInner.defaultProps.tableColorScaleGenerator = redColorScaleGenerator;\n TableRendererInner.defaultProps.tableOptions = {};\n TableRendererInner.propTypes.tableColorScaleGenerator = PropTypes.func;\n TableRendererInner.propTypes.tableOptions = PropTypes.object;\n TableRendererInner.defaultProps.compactRows = true;\n TableRendererInner.propTypes.compactRows = PropTypes.bool;\n TableRendererInner.defaultProps.showRowNumbers = true;\n TableRendererInner.propTypes.showRowNumbers = PropTypes.bool;\n // Resize props (pasadas internamente desde el wrapper)\n TableRendererInner.propTypes._resizeWidths = PropTypes.object;\n TableRendererInner.propTypes._onStartResize = PropTypes.func;\n\n // ─── Wrapper funcional para poder usar hooks ─────────────────────\n function TableRenderer(props) {\n const resizing = props.columnResizing === true;\n const { widths, startResize } = useColumnResize({\n initialWidths: props.columnWidths || {},\n minWidth: 50,\n onWidthChange: props.onColumnWidthChange,\n });\n return (\n <TableRendererInner\n {...props}\n _resizeWidths={resizing ? widths : {}}\n _onStartResize={resizing ? startResize : null}\n />\n );\n }\n\n TableRenderer.defaultProps = { ...TableRendererInner.defaultProps, columnResizing: false, columnWidths: {} };\n TableRenderer.propTypes = {\n ...TableRendererInner.propTypes,\n columnResizing: PropTypes.bool,\n columnWidths: PropTypes.object,\n onColumnWidthChange: PropTypes.func,\n };\n\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":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useColumnResize = useColumnResize;
8
+ var _react = require("react");
9
+ 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; }
10
+ 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; }
11
+ 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
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ 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; } }
17
+ 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; }
18
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ /**
21
+ * useColumnResize — Hook para gestionar el redimensionado de columnas.
22
+ *
23
+ * @param {Object} options
24
+ * @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }
25
+ * @param {number} options.minWidth - Ancho mínimo en px (default: 50)
26
+ * @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)
27
+ * @param {Function} options.onWidthChange - Callback cuando cambian los anchos
28
+ *
29
+ * @returns {{ widths: Object, startResize: Function, isResizing: boolean }}
30
+ */
31
+ function useColumnResize() {
32
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
33
+ _ref$initialWidths = _ref.initialWidths,
34
+ initialWidths = _ref$initialWidths === void 0 ? {} : _ref$initialWidths,
35
+ _ref$minWidth = _ref.minWidth,
36
+ minWidth = _ref$minWidth === void 0 ? 50 : _ref$minWidth,
37
+ _ref$maxWidth = _ref.maxWidth,
38
+ maxWidth = _ref$maxWidth === void 0 ? null : _ref$maxWidth,
39
+ _ref$onWidthChange = _ref.onWidthChange,
40
+ onWidthChange = _ref$onWidthChange === void 0 ? null : _ref$onWidthChange;
41
+ // widths: { [colKey]: number }
42
+ var _useState = (0, _react.useState)(initialWidths),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ widths = _useState2[0],
45
+ setWidths = _useState2[1];
46
+
47
+ // Ref para el estado de drag activo (evita closures obsoletas)
48
+ var dragRef = (0, _react.useRef)(null);
49
+ var _useState3 = (0, _react.useState)(false),
50
+ _useState4 = _slicedToArray(_useState3, 2),
51
+ isResizing = _useState4[0],
52
+ setIsResizing = _useState4[1];
53
+
54
+ /**
55
+ * Iniciar resize para una columna específica.
56
+ * @param {string} colKey - Identificador único de la columna
57
+ * @param {PointerEvent} e
58
+ */
59
+ var startResize = (0, _react.useCallback)(function (colKey, e) {
60
+ e.preventDefault();
61
+ e.stopPropagation();
62
+ var th = e.currentTarget.closest('th');
63
+ var startWidth = th ? th.offsetWidth : widths[colKey] || 100;
64
+ dragRef.current = {
65
+ colKey: colKey,
66
+ startX: e.clientX,
67
+ startWidth: startWidth
68
+ };
69
+ setIsResizing(true);
70
+ document.body.classList.add('pvt-is-resizing');
71
+ var onPointerMove = function onPointerMove(moveEvent) {
72
+ if (!dragRef.current) return;
73
+ var _dragRef$current = dragRef.current,
74
+ key = _dragRef$current.colKey,
75
+ startX = _dragRef$current.startX,
76
+ sw = _dragRef$current.startWidth;
77
+ var delta = moveEvent.clientX - startX;
78
+ var newWidth = sw + delta;
79
+
80
+ // Aplicar restricciones
81
+ newWidth = Math.max(minWidth, newWidth);
82
+ if (maxWidth) newWidth = Math.min(maxWidth, newWidth);
83
+ setWidths(function (prev) {
84
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, key, newWidth));
85
+ });
86
+ };
87
+ var _onPointerUp = function onPointerUp() {
88
+ if (!dragRef.current) return;
89
+ var key = dragRef.current.colKey;
90
+ setWidths(function (prev) {
91
+ var next = _objectSpread({}, prev);
92
+ if (onWidthChange) {
93
+ onWidthChange(next);
94
+ }
95
+ return next;
96
+ });
97
+ dragRef.current = null;
98
+ setIsResizing(false);
99
+ document.body.classList.remove('pvt-is-resizing');
100
+ window.removeEventListener('pointermove', onPointerMove);
101
+ window.removeEventListener('pointerup', _onPointerUp);
102
+ };
103
+ window.addEventListener('pointermove', onPointerMove);
104
+ window.addEventListener('pointerup', _onPointerUp);
105
+ }, [minWidth, maxWidth, onWidthChange, widths]);
106
+ return {
107
+ widths: widths,
108
+ startResize: startResize,
109
+ isResizing: isResizing
110
+ };
111
+ }
112
+ //# sourceMappingURL=useColumnResize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnResize.js","names":["_react","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","isArray","useColumnResize","_ref","undefined","_ref$initialWidths","initialWidths","_ref$minWidth","minWidth","_ref$maxWidth","maxWidth","_ref$onWidthChange","onWidthChange","_useState","useState","_useState2","widths","setWidths","dragRef","useRef","_useState3","_useState4","isResizing","setIsResizing","startResize","useCallback","colKey","preventDefault","stopPropagation","th","currentTarget","closest","startWidth","offsetWidth","current","startX","clientX","document","body","classList","add","onPointerMove","moveEvent","_dragRef$current","key","sw","delta","newWidth","Math","max","min","prev","onPointerUp","remove","window","removeEventListener","addEventListener"],"sources":["../../src/hooks/useColumnResize.js"],"sourcesContent":["import { useRef, useState, useCallback } from 'react';\n\n/**\n * useColumnResize — Hook para gestionar el redimensionado de columnas.\n *\n * @param {Object} options\n * @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }\n * @param {number} options.minWidth - Ancho mínimo en px (default: 50)\n * @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)\n * @param {Function} options.onWidthChange - Callback cuando cambian los anchos\n *\n * @returns {{ widths: Object, startResize: Function, isResizing: boolean }}\n */\nexport function useColumnResize({\n initialWidths = {},\n minWidth = 50,\n maxWidth = null,\n onWidthChange = null,\n} = {}) {\n // widths: { [colKey]: number }\n const [widths, setWidths] = useState(initialWidths);\n\n // Ref para el estado de drag activo (evita closures obsoletas)\n const dragRef = useRef(null);\n const [isResizing, setIsResizing] = useState(false);\n\n /**\n * Iniciar resize para una columna específica.\n * @param {string} colKey - Identificador único de la columna\n * @param {PointerEvent} e\n */\n const startResize = useCallback((colKey, e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const th = e.currentTarget.closest('th');\n const startWidth = th ? th.offsetWidth : (widths[colKey] || 100);\n\n dragRef.current = {\n colKey,\n startX: e.clientX,\n startWidth,\n };\n\n setIsResizing(true);\n document.body.classList.add('pvt-is-resizing');\n\n const onPointerMove = (moveEvent) => {\n if (!dragRef.current) return;\n const { colKey: key, startX, startWidth: sw } = dragRef.current;\n const delta = moveEvent.clientX - startX;\n let newWidth = sw + delta;\n\n // Aplicar restricciones\n newWidth = Math.max(minWidth, newWidth);\n if (maxWidth) newWidth = Math.min(maxWidth, newWidth);\n\n setWidths(prev => ({ ...prev, [key]: newWidth }));\n };\n\n const onPointerUp = () => {\n if (!dragRef.current) return;\n const { colKey: key } = dragRef.current;\n\n setWidths(prev => {\n const next = { ...prev };\n if (onWidthChange) {\n onWidthChange(next);\n }\n return next;\n });\n\n dragRef.current = null;\n setIsResizing(false);\n document.body.classList.remove('pvt-is-resizing');\n\n window.removeEventListener('pointermove', onPointerMove);\n window.removeEventListener('pointerup', onPointerUp);\n };\n\n window.addEventListener('pointermove', onPointerMove);\n window.addEventListener('pointerup', onPointerUp);\n }, [minWidth, maxWidth, onWidthChange, widths]);\n\n return { widths, startResize, isResizing };\n}\n"],"mappings":"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","ignoreList":[]}