react-pivottable-plus 1.0.18 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +110 -16
- package/dist/PivotTable.js +6 -28
- package/dist/PivotTable.js.map +1 -1
- package/dist/PivotTableUI.js +153 -159
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +616 -490
- package/dist/TableRenderers.js.map +1 -1
- package/dist/Utilities.js +50 -55
- package/dist/Utilities.js.map +1 -1
- package/dist/__tests__/Modules.test.js +227 -0
- package/dist/__tests__/Modules.test.js.map +1 -0
- package/dist/__tests__/PivotEngine.test.js +176 -0
- package/dist/__tests__/PivotEngine.test.js.map +1 -0
- package/dist/__tests__/PivotTableUI-test.js +4 -175
- package/dist/__tests__/PivotTableUI-test.js.map +1 -1
- package/dist/core/PivotCore.js +3 -252
- package/dist/core/PivotCore.js.map +1 -1
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +1 -1
- package/package.json +8 -4
package/dist/TableRenderers.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
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
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
@@ -12,18 +11,10 @@ var _CellPipeline = require("./core/CellPipeline");
|
|
|
12
11
|
var _VirtualScroller = require("./core/VirtualScroller");
|
|
13
12
|
var _useColumnResize2 = require("./hooks/useColumnResize");
|
|
14
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
15
|
-
function
|
|
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; }
|
|
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; }
|
|
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; }
|
|
19
|
-
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; } } }; }
|
|
20
|
-
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; } }
|
|
21
|
-
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; }
|
|
14
|
+
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); }
|
|
22
15
|
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
23
16
|
function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
|
|
24
17
|
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
25
|
-
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
26
|
-
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); }
|
|
27
18
|
function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
|
|
28
19
|
function _possibleConstructorReturn(t, e) { if (e && ("object" == _typeof(e) || "function" == typeof e)) return e; if (void 0 !== e) throw new TypeError("Derived constructors may only return object or undefined"); return _assertThisInitialized(t); }
|
|
29
20
|
function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
|
|
@@ -31,7 +22,20 @@ function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.
|
|
|
31
22
|
function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
|
|
32
23
|
function _inherits(t, e) { if ("function" != typeof e && null !== e) throw new TypeError("Super expression must either be null or a function"); t.prototype = Object.create(e && e.prototype, { constructor: { value: t, writable: !0, configurable: !0 } }), Object.defineProperty(t, "prototype", { writable: !1 }), e && _setPrototypeOf(t, e); }
|
|
33
24
|
function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
|
|
34
|
-
|
|
25
|
+
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); }
|
|
26
|
+
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; } } }; }
|
|
27
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
28
|
+
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."); }
|
|
29
|
+
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; } }
|
|
30
|
+
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; }
|
|
31
|
+
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; } }
|
|
32
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
33
|
+
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; }
|
|
34
|
+
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; }
|
|
35
|
+
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; }
|
|
36
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
37
|
+
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); }
|
|
38
|
+
// ─── Helper: spanSize ──────────────────────────────────────────────────────────
|
|
35
39
|
var spanSize = function spanSize(arr, i, j) {
|
|
36
40
|
var no_loop = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
|
|
37
41
|
var x;
|
|
@@ -90,495 +94,617 @@ var remove = function remove(set, arr) {
|
|
|
90
94
|
var toggle = function toggle(set, arr) {
|
|
91
95
|
return (has(set, arr) ? remove : add)(set, arr);
|
|
92
96
|
};
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
var
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
|
|
98
|
+
// ─── Sub-render: Column Headers (thead) ────────────────────────────────────────
|
|
99
|
+
function renderColHeaders(_ref) {
|
|
100
|
+
var colAttrs = _ref.colAttrs,
|
|
101
|
+
rowAttrs = _ref.rowAttrs,
|
|
102
|
+
visibleColKeys = _ref.visibleColKeys,
|
|
103
|
+
allColKeys = _ref.allColKeys,
|
|
104
|
+
allRowKeys = _ref.allRowKeys,
|
|
105
|
+
showRowNumbers = _ref.showRowNumbers,
|
|
106
|
+
grouping = _ref.grouping,
|
|
107
|
+
isFolded = _ref.isFolded,
|
|
108
|
+
fold = _ref.fold,
|
|
109
|
+
clickClass = _ref.clickClass,
|
|
110
|
+
shouldVirt = _ref.shouldVirt,
|
|
111
|
+
colLeftPad = _ref.colLeftPad,
|
|
112
|
+
colRightPad = _ref.colRightPad,
|
|
113
|
+
onStartResize = _ref.onStartResize;
|
|
114
|
+
return colAttrs.map(function (c, j) {
|
|
115
|
+
var clickable = grouping && colAttrs.length > j + 1;
|
|
116
|
+
var levelKeys = allColKeys.filter(function (x) {
|
|
117
|
+
return x.length === j + 1;
|
|
118
|
+
});
|
|
119
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
120
|
+
key: "colAttr".concat(j)
|
|
121
|
+
}, showRowNumbers && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
122
|
+
className: "pvtRowNumber pvtAxisLabel",
|
|
123
|
+
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
124
|
+
}, "#"), j === 0 && rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
125
|
+
colSpan: rowAttrs.length,
|
|
126
|
+
rowSpan: colAttrs.length
|
|
127
|
+
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
128
|
+
className: "pvtAxisLabel" + clickClass(clickable, isFolded(levelKeys)),
|
|
129
|
+
onClick: clickable ? function (_) {
|
|
130
|
+
return fold(levelKeys);
|
|
131
|
+
} : null
|
|
132
|
+
}, c), shouldVirt.cols && colLeftPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
133
|
+
key: "col-pad-left",
|
|
134
|
+
style: {
|
|
135
|
+
minWidth: colLeftPad
|
|
136
|
+
}
|
|
137
|
+
}), visibleColKeys.map(function (colKey, i) {
|
|
138
|
+
var x = spanSize(visibleColKeys, i, j);
|
|
139
|
+
if (x === -1) {
|
|
140
|
+
return null;
|
|
141
|
+
}
|
|
142
|
+
var isLastHeaderRow = j === colAttrs.length - 1;
|
|
143
|
+
var colLabel = colKey.join("\0");
|
|
144
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
145
|
+
className: "pvtColLabel" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)])),
|
|
146
|
+
key: "colKey-".concat(i, "-").concat(j, "-").concat(colKey[j]),
|
|
147
|
+
colSpan: x,
|
|
148
|
+
rowSpan: isLastHeaderRow && rowAttrs.length !== 0 ? 2 : 1,
|
|
149
|
+
onClick: clickable && colKey[j] ? function (_) {
|
|
150
|
+
return fold([colKey.slice(0, j + 1)]);
|
|
151
|
+
} : null
|
|
152
|
+
}, colKey[j], onStartResize && isLastHeaderRow && /*#__PURE__*/_react["default"].createElement("span", {
|
|
153
|
+
className: "pvtResizeHandle",
|
|
154
|
+
onPointerDown: function onPointerDown(e) {
|
|
155
|
+
return onStartResize(colLabel, e);
|
|
156
|
+
}
|
|
157
|
+
}));
|
|
158
|
+
}), shouldVirt.cols && colRightPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
159
|
+
key: "col-pad-right",
|
|
160
|
+
style: {
|
|
161
|
+
minWidth: colRightPad
|
|
162
|
+
}
|
|
163
|
+
}), j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
164
|
+
className: "pvtTotalLabel",
|
|
165
|
+
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
166
|
+
}, "Totals"));
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// ─── Sub-render: Row Attrs Header Row ──────────────────────────────────────────
|
|
171
|
+
function renderRowAttrsHeader(_ref2) {
|
|
172
|
+
var rowAttrs = _ref2.rowAttrs,
|
|
173
|
+
colAttrs = _ref2.colAttrs,
|
|
174
|
+
showRowNumbers = _ref2.showRowNumbers,
|
|
175
|
+
grouping = _ref2.grouping,
|
|
176
|
+
allRowKeys = _ref2.allRowKeys,
|
|
177
|
+
isFolded = _ref2.isFolded,
|
|
178
|
+
fold = _ref2.fold,
|
|
179
|
+
clickClass = _ref2.clickClass;
|
|
180
|
+
if (rowAttrs.length === 0) return null;
|
|
181
|
+
return /*#__PURE__*/_react["default"].createElement("tr", null, showRowNumbers && colAttrs.length === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
182
|
+
className: "pvtRowNumber pvtAxisLabel",
|
|
183
|
+
rowSpan: "1"
|
|
184
|
+
}, "#"), rowAttrs.map(function (r, i) {
|
|
185
|
+
var clickable = grouping && rowAttrs.length > i + 1;
|
|
186
|
+
var levelKeys = allRowKeys.filter(function (x) {
|
|
187
|
+
return x.length === i + 1;
|
|
188
|
+
});
|
|
189
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
190
|
+
className: "pvtAxisLabel" + clickClass(clickable, isFolded(levelKeys)),
|
|
191
|
+
onClick: clickable ? function (_) {
|
|
192
|
+
return fold(levelKeys);
|
|
193
|
+
} : null,
|
|
194
|
+
key: "rowAttr".concat(i)
|
|
195
|
+
}, r);
|
|
196
|
+
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
197
|
+
className: "pvtTotalLabel"
|
|
198
|
+
}, colAttrs.length === 0 ? 'Totals' : null));
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// ─── Sub-render: Body Rows ─────────────────────────────────────────────────────
|
|
202
|
+
function renderBodyRows(_ref3) {
|
|
203
|
+
var visibleRowKeys = _ref3.visibleRowKeys,
|
|
204
|
+
visibleColKeys = _ref3.visibleColKeys,
|
|
205
|
+
rowAttrs = _ref3.rowAttrs,
|
|
206
|
+
colAttrs = _ref3.colAttrs,
|
|
207
|
+
pivotData = _ref3.pivotData,
|
|
208
|
+
pipeline = _ref3.pipeline,
|
|
209
|
+
compactRows = _ref3.compactRows,
|
|
210
|
+
specialCase = _ref3.specialCase,
|
|
211
|
+
grouping = _ref3.grouping,
|
|
212
|
+
isFolded = _ref3.isFolded,
|
|
213
|
+
fold = _ref3.fold,
|
|
214
|
+
clickClass = _ref3.clickClass,
|
|
215
|
+
showRowNumbers = _ref3.showRowNumbers,
|
|
216
|
+
startOffset = _ref3.startOffset,
|
|
217
|
+
shouldVirt = _ref3.shouldVirt,
|
|
218
|
+
scroller = _ref3.scroller,
|
|
219
|
+
virtualRowStartOffset = _ref3.virtualRowStartOffset,
|
|
220
|
+
colLeftPad = _ref3.colLeftPad,
|
|
221
|
+
colRightPad = _ref3.colRightPad,
|
|
222
|
+
valueCellColors = _ref3.valueCellColors,
|
|
223
|
+
colTotalColors = _ref3.colTotalColors,
|
|
224
|
+
getClickHandler = _ref3.getClickHandler;
|
|
225
|
+
return visibleRowKeys.map(function (rowKey, localI) {
|
|
226
|
+
var globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;
|
|
227
|
+
var totalAggregator = pivotData.getAggregator(rowKey, []);
|
|
228
|
+
var rowGap = rowAttrs.length - rowKey.length;
|
|
229
|
+
var rowTotalResult = pipeline.processTotal({
|
|
230
|
+
aggregator: totalAggregator,
|
|
231
|
+
rowKey: rowKey,
|
|
232
|
+
type: 'row'
|
|
233
|
+
});
|
|
234
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
235
|
+
key: "rowKeyRow".concat(globalI),
|
|
236
|
+
className: (rowGap ? "pvtLevel" + rowGap : "pvtData") + " pvtRow-data",
|
|
237
|
+
style: shouldVirt.rows ? {
|
|
238
|
+
height: scroller.rowHeight
|
|
239
|
+
} : undefined
|
|
240
|
+
}, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
|
|
241
|
+
className: "pvtRowNumber"
|
|
242
|
+
}, startOffset + globalI + 1), rowKey.map(function (txt, j) {
|
|
243
|
+
if (compactRows && j < rowKey.length - 1) {
|
|
244
|
+
return null;
|
|
245
|
+
}
|
|
246
|
+
var clickable = grouping && rowAttrs.length > j + 1;
|
|
247
|
+
var x = compactRows ? 1 : spanSize(visibleRowKeys, localI, j, specialCase);
|
|
248
|
+
if (x === -1) {
|
|
249
|
+
return null;
|
|
250
|
+
}
|
|
251
|
+
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
252
|
+
key: "rowKeyLabel-".concat(globalI, "-").concat(j, "-").concat(txt),
|
|
253
|
+
className: "pvtRowLabel" + clickClass(clickable && rowKey[j], isFolded([rowKey.slice(0, j + 1)])),
|
|
254
|
+
rowSpan: x,
|
|
255
|
+
colSpan: compactRows ? rowAttrs.length + 1 : j === rowAttrs.length - 1 && colAttrs.length !== 0 ? 2 : 1,
|
|
256
|
+
style: {
|
|
257
|
+
paddingLeft: compactRows ? "calc(var(--pvt-row-padding, 5px) + ".concat(j, " * var(--pvt-row-indent, 20px))") : null
|
|
258
|
+
},
|
|
259
|
+
onClick: clickable && rowKey[j] ? function (_) {
|
|
260
|
+
return fold([rowKey.slice(0, j + 1)]);
|
|
261
|
+
} : null
|
|
262
|
+
}, txt);
|
|
263
|
+
}), !compactRows && rowGap ? /*#__PURE__*/_react["default"].createElement("th", {
|
|
264
|
+
className: "pvtRowLabel",
|
|
265
|
+
colSpan: rowGap + 1
|
|
266
|
+
}, "Total (" + rowKey[rowKey.length - 1] + ")") : null, shouldVirt.cols && colLeftPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
267
|
+
key: "col-pad-left",
|
|
268
|
+
style: {
|
|
269
|
+
minWidth: colLeftPad
|
|
270
|
+
}
|
|
271
|
+
}), visibleColKeys.map(function (colKey, j) {
|
|
272
|
+
var aggregator = pivotData.getAggregator(rowKey, colKey);
|
|
273
|
+
var colGap = colAttrs.length - colKey.length;
|
|
274
|
+
var cellResult = pipeline.process({
|
|
275
|
+
aggregator: aggregator,
|
|
276
|
+
rowKey: rowKey,
|
|
277
|
+
colKey: colKey,
|
|
278
|
+
pivotData: pivotData
|
|
279
|
+
});
|
|
280
|
+
var isNumeric = typeof cellResult.value === 'number';
|
|
281
|
+
var mergedStyle = _objectSpread(_objectSpread({}, valueCellColors(rowKey, colKey, cellResult.value)), cellResult.style || {});
|
|
282
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
283
|
+
className: "pvtVal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : "") + (cellResult.className ? " " + cellResult.className : ""),
|
|
284
|
+
key: "pvtVal".concat(globalI, "-").concat(j),
|
|
285
|
+
onClick: getClickHandler && getClickHandler(cellResult.value, rowKey, colKey),
|
|
286
|
+
style: Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined
|
|
287
|
+
}, cellResult.rendered);
|
|
288
|
+
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
289
|
+
key: "col-pad-right",
|
|
290
|
+
style: {
|
|
291
|
+
minWidth: colRightPad
|
|
292
|
+
}
|
|
293
|
+
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
294
|
+
className: "pvtTotal" + (typeof rowTotalResult.value === 'number' ? " pvtVal-numeric" : ""),
|
|
295
|
+
onClick: getClickHandler && getClickHandler(rowTotalResult.value, rowKey, [null]),
|
|
296
|
+
style: colTotalColors(rowTotalResult.value) || rowTotalResult.style
|
|
297
|
+
}, rowTotalResult.rendered));
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// ─── Sub-render: Totals Row ────────────────────────────────────────────────────
|
|
302
|
+
function renderTotalsRow(_ref4) {
|
|
303
|
+
var visibleColKeys = _ref4.visibleColKeys,
|
|
304
|
+
rowAttrs = _ref4.rowAttrs,
|
|
305
|
+
colAttrs = _ref4.colAttrs,
|
|
306
|
+
pivotData = _ref4.pivotData,
|
|
307
|
+
grandTotalAggregator = _ref4.grandTotalAggregator,
|
|
308
|
+
showRowNumbers = _ref4.showRowNumbers,
|
|
309
|
+
shouldVirt = _ref4.shouldVirt,
|
|
310
|
+
colLeftPad = _ref4.colLeftPad,
|
|
311
|
+
colRightPad = _ref4.colRightPad,
|
|
312
|
+
rowTotalColors = _ref4.rowTotalColors,
|
|
313
|
+
getClickHandler = _ref4.getClickHandler;
|
|
314
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
315
|
+
className: "pvtTotalRow"
|
|
316
|
+
}, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
|
|
317
|
+
className: "pvtTotalLabel"
|
|
318
|
+
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
319
|
+
className: "pvtTotalLabel",
|
|
320
|
+
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
321
|
+
}, "Totals"), shouldVirt.cols && colLeftPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
322
|
+
key: "total-col-pad-left",
|
|
323
|
+
style: {
|
|
324
|
+
minWidth: colLeftPad
|
|
325
|
+
}
|
|
326
|
+
}), visibleColKeys.map(function (colKey, i) {
|
|
327
|
+
var totalAggregator = pivotData.getAggregator([], colKey);
|
|
328
|
+
var colGap = colAttrs.length - colKey.length;
|
|
329
|
+
var totalVal = totalAggregator.value();
|
|
330
|
+
var isNumeric = typeof totalVal === 'number';
|
|
331
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
332
|
+
className: "pvtTotal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : ""),
|
|
333
|
+
key: "total".concat(i),
|
|
334
|
+
onClick: getClickHandler && getClickHandler(totalVal, [null], colKey),
|
|
335
|
+
style: rowTotalColors(totalVal)
|
|
336
|
+
}, totalAggregator.format(totalVal));
|
|
337
|
+
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
338
|
+
key: "total-col-pad-right",
|
|
339
|
+
style: {
|
|
340
|
+
minWidth: colRightPad
|
|
100
341
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
var pivotData = new _Utilities.PivotData(this.props);
|
|
107
|
-
var id = pivotData.props.id;
|
|
108
|
-
var colAttrs = pivotData.props.cols;
|
|
109
|
-
var rowAttrs = pivotData.props.rows;
|
|
110
|
-
var rowKeys = pivotData.getRowKeys(true);
|
|
111
|
-
var colKeys = pivotData.getColKeys(true);
|
|
112
|
-
var grandTotalAggregator = pivotData.getAggregator([], []);
|
|
342
|
+
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
343
|
+
onClick: getClickHandler && getClickHandler(grandTotalAggregator.value(), [null], [null]),
|
|
344
|
+
className: "pvtGrandTotal" + (typeof grandTotalAggregator.value() === 'number' ? " pvtVal-numeric" : "")
|
|
345
|
+
}, grandTotalAggregator.format(grandTotalAggregator.value())));
|
|
346
|
+
}
|
|
113
347
|
|
|
114
|
-
|
|
115
|
-
|
|
348
|
+
// ─── Sub-render: Empty Pad Rows (pagination) ───────────────────────────────────
|
|
349
|
+
function renderEmptyPadRows(_ref5) {
|
|
350
|
+
var visibleRowKeys = _ref5.visibleRowKeys,
|
|
351
|
+
visibleColKeys = _ref5.visibleColKeys,
|
|
352
|
+
rowAttrs = _ref5.rowAttrs,
|
|
353
|
+
colAttrs = _ref5.colAttrs,
|
|
354
|
+
showRowNumbers = _ref5.showRowNumbers,
|
|
355
|
+
pageSize = _ref5.pageSize,
|
|
356
|
+
startOffset = _ref5.startOffset,
|
|
357
|
+
shouldVirt = _ref5.shouldVirt;
|
|
358
|
+
if (!showRowNumbers || visibleRowKeys.length >= pageSize || shouldVirt.rows) {
|
|
359
|
+
return null;
|
|
360
|
+
}
|
|
361
|
+
return Array.from({
|
|
362
|
+
length: pageSize - visibleRowKeys.length
|
|
363
|
+
}).map(function (_, padIdx) {
|
|
364
|
+
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
365
|
+
key: "padRow".concat(padIdx),
|
|
366
|
+
className: "pvtRow-data pvtEmptyRow"
|
|
367
|
+
}, /*#__PURE__*/_react["default"].createElement("th", {
|
|
368
|
+
className: "pvtRowNumber"
|
|
369
|
+
}, startOffset + visibleRowKeys.length + padIdx + 1), /*#__PURE__*/_react["default"].createElement("th", {
|
|
370
|
+
className: "pvtRowLabel",
|
|
371
|
+
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
372
|
+
}), visibleColKeys.map(function (colKey, j) {
|
|
373
|
+
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
374
|
+
key: "padVal".concat(padIdx, "-").concat(j),
|
|
375
|
+
className: "pvtVal pvtEmptyCell"
|
|
376
|
+
});
|
|
377
|
+
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
378
|
+
className: "pvtTotal pvtEmptyCell"
|
|
379
|
+
}));
|
|
380
|
+
});
|
|
381
|
+
}
|
|
116
382
|
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
});
|
|
129
|
-
var grouping = pivotData.props.grouping;
|
|
130
|
-
var compactRows = grouping && this.props.compactRows;
|
|
131
|
-
// speacial case for spanSize counting (no_loop)
|
|
132
|
-
var specialCase = grouping && !this.props.rowGroupBefore;
|
|
133
|
-
var folded = (this.state || {}).folded || new Set();
|
|
134
|
-
var isFolded = function isFolded(keys) {
|
|
135
|
-
return has(folded, keys.map(flatKey));
|
|
136
|
-
};
|
|
137
|
-
var fold = function fold(keys) {
|
|
138
|
-
return _this.setState({
|
|
139
|
-
folded: toggle(new Set(folded), keys.map(flatKey))
|
|
140
|
-
});
|
|
141
|
-
};
|
|
142
|
-
if (grouping) {
|
|
143
|
-
var _iterator = _createForOfIteratorHelper(folded),
|
|
144
|
-
_step;
|
|
145
|
-
try {
|
|
146
|
-
var _loop = function _loop() {
|
|
147
|
-
var key = _step.value;
|
|
148
|
-
colKeys = colKeys.filter(function (colKey) {
|
|
149
|
-
return !flatKey(colKey).startsWith(key + String.fromCharCode(0));
|
|
150
|
-
});
|
|
151
|
-
rowKeys = rowKeys.filter(function (rowKey) {
|
|
152
|
-
return !flatKey(rowKey).startsWith(key + String.fromCharCode(0));
|
|
153
|
-
});
|
|
154
|
-
};
|
|
155
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
156
|
-
_loop();
|
|
157
|
-
}
|
|
158
|
-
} catch (err) {
|
|
159
|
-
_iterator.e(err);
|
|
160
|
-
} finally {
|
|
161
|
-
_iterator.f();
|
|
162
|
-
}
|
|
163
|
-
}
|
|
383
|
+
// ─── Main Renderer Factory ─────────────────────────────────────────────────────
|
|
384
|
+
function makeRenderer() {
|
|
385
|
+
var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
386
|
+
function TableRendererCore(props) {
|
|
387
|
+
var pivotData = new _Utilities.PivotData(props);
|
|
388
|
+
var id = pivotData.props.id;
|
|
389
|
+
var colAttrs = pivotData.props.cols;
|
|
390
|
+
var rowAttrs = pivotData.props.rows;
|
|
391
|
+
var rowKeys = pivotData.getRowKeys(true);
|
|
392
|
+
var colKeys = pivotData.getColKeys(true);
|
|
393
|
+
var grandTotalAggregator = pivotData.getAggregator([], []);
|
|
164
394
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
var allRowKeys = rowKeys;
|
|
168
|
-
var totalRows = rowKeys.length;
|
|
169
|
-
var startOffset = 0;
|
|
170
|
-
if (this.props.pagination) {
|
|
171
|
-
var start = (this.props.page - 1) * this.props.pageSize;
|
|
172
|
-
startOffset = start;
|
|
173
|
-
var end = start + this.props.pageSize;
|
|
174
|
-
rowKeys = rowKeys.slice(start, end);
|
|
175
|
-
}
|
|
395
|
+
// ─── Cell Pipeline ────────────────────────────────────────────────
|
|
396
|
+
var pipeline = props.cellPipeline ? new _CellPipeline.CellPipeline(props.cellPipeline) : _CellPipeline.CellPipeline["default"]();
|
|
176
397
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
398
|
+
// ─── Virtualización ───────────────────────────────────────────────
|
|
399
|
+
var virtConfig = props.virtualization || {};
|
|
400
|
+
var scroller = new _VirtualScroller.VirtualScroller({
|
|
401
|
+
enabled: virtConfig.enabled !== undefined ? virtConfig.enabled : false,
|
|
402
|
+
rowHeight: virtConfig.rowHeight || 32,
|
|
403
|
+
colWidth: virtConfig.colWidth || 100,
|
|
404
|
+
overscanRows: virtConfig.overscanRows || 5,
|
|
405
|
+
overscanCols: virtConfig.overscanCols || 3,
|
|
406
|
+
containerHeight: virtConfig.containerHeight || 400,
|
|
407
|
+
containerWidth: virtConfig.containerWidth || 800,
|
|
408
|
+
threshold: virtConfig.threshold || 100
|
|
409
|
+
});
|
|
410
|
+
var grouping = pivotData.props.grouping;
|
|
411
|
+
var compactRows = grouping && props.compactRows;
|
|
412
|
+
var specialCase = grouping && !props.rowGroupBefore;
|
|
413
|
+
|
|
414
|
+
// Folding state via React.useState (replaces class this.state)
|
|
415
|
+
var _React$useState = _react["default"].useState(new Set()),
|
|
416
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
417
|
+
folded = _React$useState2[0],
|
|
418
|
+
setFolded = _React$useState2[1];
|
|
419
|
+
var _React$useState3 = _react["default"].useState(0),
|
|
420
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
421
|
+
scrollTop = _React$useState4[0],
|
|
422
|
+
setScrollTop = _React$useState4[1];
|
|
423
|
+
var _React$useState5 = _react["default"].useState(0),
|
|
424
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
425
|
+
scrollLeft = _React$useState6[0],
|
|
426
|
+
setScrollLeft = _React$useState6[1];
|
|
427
|
+
var isFolded = function isFolded(keys) {
|
|
428
|
+
return has(folded, keys.map(flatKey));
|
|
429
|
+
};
|
|
430
|
+
var fold = function fold(keys) {
|
|
431
|
+
return setFolded(function (prev) {
|
|
432
|
+
return toggle(new Set(prev), keys.map(flatKey));
|
|
433
|
+
});
|
|
434
|
+
};
|
|
435
|
+
if (grouping) {
|
|
436
|
+
var _iterator = _createForOfIteratorHelper(folded),
|
|
437
|
+
_step;
|
|
438
|
+
try {
|
|
439
|
+
var _loop = function _loop() {
|
|
440
|
+
var key = _step.value;
|
|
441
|
+
colKeys = colKeys.filter(function (colKey) {
|
|
442
|
+
return !flatKey(colKey).startsWith(key + String.fromCharCode(0));
|
|
210
443
|
});
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
return pivotData.getAggregator(x, []).value();
|
|
444
|
+
rowKeys = rowKeys.filter(function (rowKey) {
|
|
445
|
+
return !flatKey(rowKey).startsWith(key + String.fromCharCode(0));
|
|
214
446
|
});
|
|
215
|
-
colTotalColors = colorScaleGenerator(colTotalValues);
|
|
216
|
-
if (opts.heatmapMode === 'full') {
|
|
217
|
-
var allValues = [];
|
|
218
|
-
rowKeys.map(function (r) {
|
|
219
|
-
return colKeys.map(function (c) {
|
|
220
|
-
return allValues.push(pivotData.getAggregator(r, c).value());
|
|
221
|
-
});
|
|
222
|
-
});
|
|
223
|
-
var colorScale = colorScaleGenerator(allValues);
|
|
224
|
-
valueCellColors = function valueCellColors(r, c, v) {
|
|
225
|
-
return colorScale(v);
|
|
226
|
-
};
|
|
227
|
-
} else if (opts.heatmapMode === 'row') {
|
|
228
|
-
var rowColorScales = {};
|
|
229
|
-
rowKeys.map(function (r) {
|
|
230
|
-
var rowValues = colKeys.map(function (x) {
|
|
231
|
-
return pivotData.getAggregator(r, x).value();
|
|
232
|
-
});
|
|
233
|
-
rowColorScales[r] = colorScaleGenerator(rowValues);
|
|
234
|
-
});
|
|
235
|
-
valueCellColors = function valueCellColors(r, c, v) {
|
|
236
|
-
return rowColorScales[r](v);
|
|
237
|
-
};
|
|
238
|
-
} else if (opts.heatmapMode === 'col') {
|
|
239
|
-
var colColorScales = {};
|
|
240
|
-
colKeys.map(function (c) {
|
|
241
|
-
var colValues = rowKeys.map(function (x) {
|
|
242
|
-
return pivotData.getAggregator(x, c).value();
|
|
243
|
-
});
|
|
244
|
-
colColorScales[c] = colorScaleGenerator(colValues);
|
|
245
|
-
});
|
|
246
|
-
valueCellColors = function valueCellColors(r, c, v) {
|
|
247
|
-
return colColorScales[c](v);
|
|
248
|
-
};
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
var getClickHandler = this.props.tableOptions && this.props.tableOptions.clickCallback ? function (value, rowValues, colValues) {
|
|
252
|
-
var filters = {};
|
|
253
|
-
for (var _i = 0, _Object$keys = Object.keys(colAttrs || {}); _i < _Object$keys.length; _i++) {
|
|
254
|
-
var i = _Object$keys[_i];
|
|
255
|
-
var attr = colAttrs[i];
|
|
256
|
-
if (colValues[i] !== null) {
|
|
257
|
-
filters[attr] = colValues[i];
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
for (var _i2 = 0, _Object$keys2 = Object.keys(rowAttrs || {}); _i2 < _Object$keys2.length; _i2++) {
|
|
261
|
-
var _i3 = _Object$keys2[_i2];
|
|
262
|
-
var _attr = rowAttrs[_i3];
|
|
263
|
-
if (rowValues[_i3] !== null) {
|
|
264
|
-
filters[_attr] = rowValues[_i3];
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
return function (e) {
|
|
268
|
-
return _this.props.tableOptions.clickCallback(e, value, filters, pivotData);
|
|
269
|
-
};
|
|
270
|
-
} : null;
|
|
271
|
-
var rbClass = grouping ? this.props.rowGroupBefore ? "rowGroupBefore" : "rowGroupAfter" : "";
|
|
272
|
-
var cbClass = grouping ? this.props.colGroupBefore ? "colGroupBefore" : "colGroupAfter" : "";
|
|
273
|
-
var clickClass = function clickClass(pred, closed) {
|
|
274
|
-
return pred ? " pvtClickable" + (closed ? " closed" : "") : "";
|
|
275
447
|
};
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
448
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
449
|
+
_loop();
|
|
450
|
+
}
|
|
451
|
+
} catch (err) {
|
|
452
|
+
_iterator.e(err);
|
|
453
|
+
} finally {
|
|
454
|
+
_iterator.f();
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
var allColKeys = colKeys;
|
|
458
|
+
var allRowKeys = rowKeys;
|
|
459
|
+
var totalRows = rowKeys.length;
|
|
460
|
+
var startOffset = 0;
|
|
461
|
+
if (props.pagination) {
|
|
462
|
+
var start = (props.page - 1) * props.pageSize;
|
|
463
|
+
startOffset = start;
|
|
464
|
+
var end = start + props.pageSize;
|
|
465
|
+
rowKeys = rowKeys.slice(start, end);
|
|
466
|
+
}
|
|
287
467
|
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
468
|
+
// Virtualización bidireccional
|
|
469
|
+
var shouldVirt = scroller.shouldVirtualize(rowKeys.length, colKeys.length);
|
|
470
|
+
var visibleRowKeys = rowKeys;
|
|
471
|
+
var rowTopPad = 0;
|
|
472
|
+
var rowBottomPad = 0;
|
|
473
|
+
var virtualRowStartOffset = 0;
|
|
474
|
+
if (shouldVirt.rows) {
|
|
475
|
+
var rowRange = scroller.getVisibleRowRange(scrollTop, rowKeys.length);
|
|
476
|
+
visibleRowKeys = rowKeys.slice(rowRange.startIndex, rowRange.endIndex + 1);
|
|
477
|
+
rowTopPad = rowRange.topPadding;
|
|
478
|
+
rowBottomPad = rowRange.bottomPadding;
|
|
479
|
+
virtualRowStartOffset = rowRange.startIndex;
|
|
480
|
+
}
|
|
481
|
+
var visibleColKeys = colKeys;
|
|
482
|
+
var colLeftPad = 0;
|
|
483
|
+
var colRightPad = 0;
|
|
484
|
+
if (shouldVirt.cols) {
|
|
485
|
+
var colRange = scroller.getVisibleColRange(scrollLeft, colKeys.length);
|
|
486
|
+
visibleColKeys = colKeys.slice(colRange.startIndex, colRange.endIndex + 1);
|
|
487
|
+
colLeftPad = colRange.leftPadding;
|
|
488
|
+
colRightPad = colRange.rightPadding;
|
|
489
|
+
}
|
|
490
|
+
var showRowNumbers = props.showRowNumbers !== false;
|
|
491
|
+
var isVirtualized = shouldVirt.rows || shouldVirt.cols;
|
|
492
|
+
var valueCellColors = function valueCellColors() {};
|
|
493
|
+
var rowTotalColors = function rowTotalColors() {};
|
|
494
|
+
var colTotalColors = function colTotalColors() {};
|
|
495
|
+
if (opts.heatmapMode) {
|
|
496
|
+
var colorScaleGenerator = props.tableColorScaleGenerator;
|
|
497
|
+
var rowTotalValues = colKeys.map(function (x) {
|
|
498
|
+
return pivotData.getAggregator([], x).value();
|
|
499
|
+
});
|
|
500
|
+
rowTotalColors = colorScaleGenerator(rowTotalValues);
|
|
501
|
+
var colTotalValues = rowKeys.map(function (x) {
|
|
502
|
+
return pivotData.getAggregator(x, []).value();
|
|
503
|
+
});
|
|
504
|
+
colTotalColors = colorScaleGenerator(colTotalValues);
|
|
505
|
+
if (opts.heatmapMode === 'full') {
|
|
506
|
+
var allValues = [];
|
|
507
|
+
rowKeys.map(function (r) {
|
|
508
|
+
return colKeys.map(function (c) {
|
|
509
|
+
return allValues.push(pivotData.getAggregator(r, c).value());
|
|
323
510
|
});
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
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);
|
|
511
|
+
});
|
|
512
|
+
var colorScale = colorScaleGenerator(allValues);
|
|
513
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
514
|
+
return colorScale(v);
|
|
336
515
|
};
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
var levelKeys = allColKeys.filter(function (x) {
|
|
343
|
-
return x.length === j + 1;
|
|
344
|
-
});
|
|
345
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
346
|
-
key: "colAttr".concat(j)
|
|
347
|
-
}, showRowNumbers && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
348
|
-
className: "pvtRowNumber pvtAxisLabel",
|
|
349
|
-
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
350
|
-
}, "#"), j === 0 && rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
351
|
-
colSpan: rowAttrs.length,
|
|
352
|
-
rowSpan: colAttrs.length
|
|
353
|
-
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
354
|
-
className: "pvtAxisLabel" + clickClass(clickable, isFolded(levelKeys)),
|
|
355
|
-
onClick: clickable ? function (_) {
|
|
356
|
-
return fold(levelKeys);
|
|
357
|
-
} : null
|
|
358
|
-
}, c), shouldVirt.cols && colLeftPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
359
|
-
key: "col-pad-left",
|
|
360
|
-
style: {
|
|
361
|
-
minWidth: colLeftPad
|
|
362
|
-
}
|
|
363
|
-
}), visibleColKeys.map(function (colKey, i) {
|
|
364
|
-
var x = spanSize(visibleColKeys, i, j);
|
|
365
|
-
if (x === -1) {
|
|
366
|
-
return null;
|
|
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");
|
|
371
|
-
return /*#__PURE__*/_react["default"].createElement("th", {
|
|
372
|
-
className: "pvtColLabel" + clickClass(clickable && colKey[j], isFolded([colKey.slice(0, j + 1)])),
|
|
373
|
-
key: "colKey-".concat(i, "-").concat(j, "-").concat(colKey[j]),
|
|
374
|
-
colSpan: x,
|
|
375
|
-
rowSpan: isLastHeaderRow && rowAttrs.length !== 0 ? 2 : 1,
|
|
376
|
-
onClick: clickable && colKey[j] ? function (_) {
|
|
377
|
-
return fold([colKey.slice(0, j + 1)]);
|
|
378
|
-
} : null
|
|
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
|
-
}));
|
|
385
|
-
}), shouldVirt.cols && colRightPad > 0 && j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
386
|
-
key: "col-pad-right",
|
|
387
|
-
style: {
|
|
388
|
-
minWidth: colRightPad
|
|
389
|
-
}
|
|
390
|
-
}), j === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
391
|
-
className: "pvtTotalLabel",
|
|
392
|
-
rowSpan: colAttrs.length + (rowAttrs.length === 0 ? 0 : 1)
|
|
393
|
-
}, "Totals"));
|
|
394
|
-
}), rowAttrs.length !== 0 && /*#__PURE__*/_react["default"].createElement("tr", null, showRowNumbers && colAttrs.length === 0 && /*#__PURE__*/_react["default"].createElement("th", {
|
|
395
|
-
className: "pvtRowNumber pvtAxisLabel",
|
|
396
|
-
rowSpan: "1"
|
|
397
|
-
}, "#"), rowAttrs.map(function (r, i) {
|
|
398
|
-
var clickable = grouping && rowAttrs.length > i + 1;
|
|
399
|
-
var levelKeys = allRowKeys.filter(function (x) {
|
|
400
|
-
return x.length === i + 1;
|
|
516
|
+
} else if (opts.heatmapMode === 'row') {
|
|
517
|
+
var rowColorScales = {};
|
|
518
|
+
rowKeys.map(function (r) {
|
|
519
|
+
var rowValues = colKeys.map(function (x) {
|
|
520
|
+
return pivotData.getAggregator(r, x).value();
|
|
401
521
|
});
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
key: "virt-top-spacer",
|
|
413
|
-
style: {
|
|
414
|
-
height: rowTopPad
|
|
415
|
-
}
|
|
416
|
-
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
417
|
-
colSpan: 999
|
|
418
|
-
})), visibleRowKeys.map(function (rowKey, localI) {
|
|
419
|
-
var globalI = shouldVirt.rows ? virtualRowStartOffset + localI : localI;
|
|
420
|
-
var totalAggregator = pivotData.getAggregator(rowKey, []);
|
|
421
|
-
var rowGap = rowAttrs.length - rowKey.length;
|
|
422
|
-
var rowTotalResult = pipeline.processTotal({
|
|
423
|
-
aggregator: totalAggregator,
|
|
424
|
-
rowKey: rowKey,
|
|
425
|
-
type: 'row'
|
|
522
|
+
rowColorScales[r] = colorScaleGenerator(rowValues);
|
|
523
|
+
});
|
|
524
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
525
|
+
return rowColorScales[r](v);
|
|
526
|
+
};
|
|
527
|
+
} else if (opts.heatmapMode === 'col') {
|
|
528
|
+
var colColorScales = {};
|
|
529
|
+
colKeys.map(function (c) {
|
|
530
|
+
var colValues = rowKeys.map(function (x) {
|
|
531
|
+
return pivotData.getAggregator(x, c).value();
|
|
426
532
|
});
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
var cellResult = pipeline.process({
|
|
468
|
-
aggregator: aggregator,
|
|
469
|
-
rowKey: rowKey,
|
|
470
|
-
colKey: colKey,
|
|
471
|
-
pivotData: pivotData
|
|
472
|
-
});
|
|
473
|
-
var isNumeric = typeof cellResult.value === 'number';
|
|
474
|
-
var mergedStyle = _objectSpread(_objectSpread({}, valueCellColors(rowKey, colKey, cellResult.value)), cellResult.style || {});
|
|
475
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
476
|
-
className: "pvtVal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : "") + (cellResult.className ? " " + cellResult.className : ""),
|
|
477
|
-
key: "pvtVal".concat(globalI, "-").concat(j),
|
|
478
|
-
onClick: getClickHandler && getClickHandler(cellResult.value, rowKey, colKey),
|
|
479
|
-
style: Object.keys(mergedStyle).length > 0 ? mergedStyle : undefined
|
|
480
|
-
}, cellResult.rendered);
|
|
481
|
-
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
482
|
-
key: "col-pad-right",
|
|
483
|
-
style: {
|
|
484
|
-
minWidth: colRightPad
|
|
485
|
-
}
|
|
486
|
-
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
487
|
-
className: "pvtTotal" + (typeof rowTotalResult.value === 'number' ? " pvtVal-numeric" : ""),
|
|
488
|
-
onClick: getClickHandler && getClickHandler(rowTotalResult.value, rowKey, [null]),
|
|
489
|
-
style: colTotalColors(rowTotalResult.value) || rowTotalResult.style
|
|
490
|
-
}, rowTotalResult.rendered));
|
|
491
|
-
}), shouldVirt.rows && rowBottomPad > 0 && /*#__PURE__*/_react["default"].createElement("tr", {
|
|
492
|
-
key: "virt-bottom-spacer",
|
|
493
|
-
style: {
|
|
494
|
-
height: rowBottomPad
|
|
495
|
-
}
|
|
496
|
-
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
497
|
-
colSpan: 999
|
|
498
|
-
})), showRowNumbers && this.props.pagination && visibleRowKeys.length < this.props.pageSize && !shouldVirt.rows && Array.from({
|
|
499
|
-
length: this.props.pageSize - visibleRowKeys.length
|
|
500
|
-
}).map(function (_, padIdx) {
|
|
501
|
-
return /*#__PURE__*/_react["default"].createElement("tr", {
|
|
502
|
-
key: "padRow".concat(padIdx),
|
|
503
|
-
className: "pvtRow-data pvtEmptyRow"
|
|
504
|
-
}, /*#__PURE__*/_react["default"].createElement("th", {
|
|
505
|
-
className: "pvtRowNumber"
|
|
506
|
-
}, startOffset + visibleRowKeys.length + padIdx + 1), /*#__PURE__*/_react["default"].createElement("th", {
|
|
507
|
-
className: "pvtRowLabel",
|
|
508
|
-
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
509
|
-
}), visibleColKeys.map(function (colKey, j) {
|
|
510
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
511
|
-
key: "padVal".concat(padIdx, "-").concat(j),
|
|
512
|
-
className: "pvtVal pvtEmptyCell"
|
|
513
|
-
});
|
|
514
|
-
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
515
|
-
className: "pvtTotal pvtEmptyCell"
|
|
516
|
-
}));
|
|
517
|
-
}), /*#__PURE__*/_react["default"].createElement("tr", {
|
|
518
|
-
className: "pvtTotalRow"
|
|
519
|
-
}, showRowNumbers && /*#__PURE__*/_react["default"].createElement("th", {
|
|
520
|
-
className: "pvtTotalLabel"
|
|
521
|
-
}), /*#__PURE__*/_react["default"].createElement("th", {
|
|
522
|
-
className: "pvtTotalLabel",
|
|
523
|
-
colSpan: rowAttrs.length + (colAttrs.length === 0 ? 0 : 1)
|
|
524
|
-
}, "Totals"), shouldVirt.cols && colLeftPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
525
|
-
key: "total-col-pad-left",
|
|
526
|
-
style: {
|
|
527
|
-
minWidth: colLeftPad
|
|
528
|
-
}
|
|
529
|
-
}), visibleColKeys.map(function (colKey, i) {
|
|
530
|
-
var totalAggregator = pivotData.getAggregator([], colKey);
|
|
531
|
-
var colGap = colAttrs.length - colKey.length;
|
|
532
|
-
var totalVal = totalAggregator.value();
|
|
533
|
-
var isNumeric = typeof totalVal === 'number';
|
|
534
|
-
return /*#__PURE__*/_react["default"].createElement("td", {
|
|
535
|
-
className: "pvtTotal" + (colGap ? " pvtLevel" + colGap : "") + (isNumeric ? " pvtVal-numeric" : ""),
|
|
536
|
-
key: "total".concat(i),
|
|
537
|
-
onClick: getClickHandler && getClickHandler(totalVal, [null], colKey),
|
|
538
|
-
style: rowTotalColors(totalVal)
|
|
539
|
-
}, totalAggregator.format(totalVal));
|
|
540
|
-
}), shouldVirt.cols && colRightPad > 0 && /*#__PURE__*/_react["default"].createElement("td", {
|
|
541
|
-
key: "total-col-pad-right",
|
|
542
|
-
style: {
|
|
543
|
-
minWidth: colRightPad
|
|
544
|
-
}
|
|
545
|
-
}), /*#__PURE__*/_react["default"].createElement("td", {
|
|
546
|
-
onClick: getClickHandler && getClickHandler(grandTotalAggregator.value(), [null], [null]),
|
|
547
|
-
className: "pvtGrandTotal" + (typeof grandTotalAggregator.value() === 'number' ? " pvtVal-numeric" : "")
|
|
548
|
-
}, grandTotalAggregator.format(grandTotalAggregator.value())))));
|
|
533
|
+
colColorScales[c] = colorScaleGenerator(colValues);
|
|
534
|
+
});
|
|
535
|
+
valueCellColors = function valueCellColors(r, c, v) {
|
|
536
|
+
return colColorScales[c](v);
|
|
537
|
+
};
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
var getClickHandler = props.tableOptions && props.tableOptions.clickCallback ? function (value, rowValues, colValues) {
|
|
541
|
+
var filters = {};
|
|
542
|
+
for (var _i = 0, _Object$keys = Object.keys(colAttrs || {}); _i < _Object$keys.length; _i++) {
|
|
543
|
+
var i = _Object$keys[_i];
|
|
544
|
+
var attr = colAttrs[i];
|
|
545
|
+
if (colValues[i] !== null) {
|
|
546
|
+
filters[attr] = colValues[i];
|
|
547
|
+
}
|
|
548
|
+
}
|
|
549
|
+
for (var _i2 = 0, _Object$keys2 = Object.keys(rowAttrs || {}); _i2 < _Object$keys2.length; _i2++) {
|
|
550
|
+
var _i3 = _Object$keys2[_i2];
|
|
551
|
+
var _attr = rowAttrs[_i3];
|
|
552
|
+
if (rowValues[_i3] !== null) {
|
|
553
|
+
filters[_attr] = rowValues[_i3];
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
return function (e) {
|
|
557
|
+
return props.tableOptions.clickCallback(e, value, filters, pivotData);
|
|
558
|
+
};
|
|
559
|
+
} : null;
|
|
560
|
+
var rbClass = grouping ? props.rowGroupBefore ? "rowGroupBefore" : "rowGroupAfter" : "";
|
|
561
|
+
var cbClass = grouping ? props.colGroupBefore ? "colGroupBefore" : "colGroupAfter" : "";
|
|
562
|
+
var clickClass = function clickClass(pred, closed) {
|
|
563
|
+
return pred ? " pvtClickable" + (closed ? " closed" : "") : "";
|
|
564
|
+
};
|
|
565
|
+
var handleScroll = isVirtualized ? function (e) {
|
|
566
|
+
setScrollTop(e.currentTarget.scrollTop);
|
|
567
|
+
setScrollLeft(e.currentTarget.scrollLeft);
|
|
568
|
+
} : null;
|
|
569
|
+
|
|
570
|
+
// ─── Column widths (resize) ────────────────────────────────
|
|
571
|
+
var resizeWidths = props._resizeWidths || {};
|
|
572
|
+
var onStartResize = props._onStartResize || null;
|
|
549
573
|
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
position: 'relative'
|
|
559
|
-
},
|
|
560
|
-
onScroll: handleScroll
|
|
561
|
-
}, tableContent);
|
|
574
|
+
// Colgroup con anchos
|
|
575
|
+
var buildColgroup = function buildColgroup() {
|
|
576
|
+
var cols = [];
|
|
577
|
+
if (showRowNumbers) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
578
|
+
key: "col-rownum",
|
|
579
|
+
style: {
|
|
580
|
+
width: '40px',
|
|
581
|
+
minWidth: '40px'
|
|
562
582
|
}
|
|
563
|
-
|
|
583
|
+
}));
|
|
584
|
+
rowAttrs.forEach(function (_, i) {
|
|
585
|
+
return cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
586
|
+
key: "col-rowattr-".concat(i)
|
|
587
|
+
}));
|
|
588
|
+
});
|
|
589
|
+
if (shouldVirt.cols && colLeftPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
590
|
+
key: "col-virt-left",
|
|
591
|
+
style: {
|
|
592
|
+
width: colLeftPad
|
|
593
|
+
}
|
|
594
|
+
}));
|
|
595
|
+
visibleColKeys.forEach(function (colKey) {
|
|
596
|
+
var label = colKey.join("\0");
|
|
597
|
+
var w = resizeWidths[label];
|
|
598
|
+
cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
599
|
+
key: "col-data-".concat(label),
|
|
600
|
+
style: w ? {
|
|
601
|
+
width: w,
|
|
602
|
+
minWidth: w
|
|
603
|
+
} : undefined
|
|
604
|
+
}));
|
|
605
|
+
});
|
|
606
|
+
if (shouldVirt.cols && colRightPad > 0) cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
607
|
+
key: "col-virt-right",
|
|
608
|
+
style: {
|
|
609
|
+
width: colRightPad
|
|
610
|
+
}
|
|
611
|
+
}));
|
|
612
|
+
cols.push(/*#__PURE__*/_react["default"].createElement("col", {
|
|
613
|
+
key: "col-totals"
|
|
614
|
+
}));
|
|
615
|
+
return /*#__PURE__*/_react["default"].createElement("colgroup", null, cols);
|
|
616
|
+
};
|
|
617
|
+
|
|
618
|
+
// ─── Shared params for sub-renders ─────────────────────────
|
|
619
|
+
var sharedParams = {
|
|
620
|
+
colAttrs: colAttrs,
|
|
621
|
+
rowAttrs: rowAttrs,
|
|
622
|
+
visibleColKeys: visibleColKeys,
|
|
623
|
+
allColKeys: allColKeys,
|
|
624
|
+
allRowKeys: allRowKeys,
|
|
625
|
+
showRowNumbers: showRowNumbers,
|
|
626
|
+
grouping: grouping,
|
|
627
|
+
isFolded: isFolded,
|
|
628
|
+
fold: fold,
|
|
629
|
+
clickClass: clickClass,
|
|
630
|
+
shouldVirt: shouldVirt,
|
|
631
|
+
colLeftPad: colLeftPad,
|
|
632
|
+
colRightPad: colRightPad,
|
|
633
|
+
onStartResize: onStartResize,
|
|
634
|
+
pivotData: pivotData,
|
|
635
|
+
pipeline: pipeline,
|
|
636
|
+
compactRows: compactRows,
|
|
637
|
+
specialCase: specialCase,
|
|
638
|
+
startOffset: startOffset,
|
|
639
|
+
scroller: scroller,
|
|
640
|
+
virtualRowStartOffset: virtualRowStartOffset,
|
|
641
|
+
valueCellColors: valueCellColors,
|
|
642
|
+
colTotalColors: colTotalColors,
|
|
643
|
+
rowTotalColors: rowTotalColors,
|
|
644
|
+
getClickHandler: getClickHandler,
|
|
645
|
+
grandTotalAggregator: grandTotalAggregator
|
|
646
|
+
};
|
|
647
|
+
var tableContent = /*#__PURE__*/_react["default"].createElement("table", {
|
|
648
|
+
id: id,
|
|
649
|
+
className: "pvtTable ".concat(rbClass, " ").concat(cbClass).concat(onStartResize ? ' pvtResizable' : '')
|
|
650
|
+
}, buildColgroup(), /*#__PURE__*/_react["default"].createElement("thead", null, renderColHeaders(sharedParams), renderRowAttrsHeader(sharedParams)), /*#__PURE__*/_react["default"].createElement("tbody", null, shouldVirt.rows && rowTopPad > 0 && /*#__PURE__*/_react["default"].createElement("tr", {
|
|
651
|
+
key: "virt-top-spacer",
|
|
652
|
+
style: {
|
|
653
|
+
height: rowTopPad
|
|
654
|
+
}
|
|
655
|
+
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
656
|
+
colSpan: 999
|
|
657
|
+
})), renderBodyRows(_objectSpread(_objectSpread({}, sharedParams), {}, {
|
|
658
|
+
visibleRowKeys: visibleRowKeys
|
|
659
|
+
})), shouldVirt.rows && rowBottomPad > 0 && /*#__PURE__*/_react["default"].createElement("tr", {
|
|
660
|
+
key: "virt-bottom-spacer",
|
|
661
|
+
style: {
|
|
662
|
+
height: rowBottomPad
|
|
564
663
|
}
|
|
565
|
-
}]
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
664
|
+
}, /*#__PURE__*/_react["default"].createElement("td", {
|
|
665
|
+
colSpan: 999
|
|
666
|
+
})), props.pagination && renderEmptyPadRows({
|
|
667
|
+
visibleRowKeys: visibleRowKeys,
|
|
668
|
+
visibleColKeys: visibleColKeys,
|
|
669
|
+
rowAttrs: rowAttrs,
|
|
670
|
+
colAttrs: colAttrs,
|
|
671
|
+
showRowNumbers: showRowNumbers,
|
|
672
|
+
pageSize: props.pageSize,
|
|
673
|
+
startOffset: startOffset,
|
|
674
|
+
shouldVirt: shouldVirt
|
|
675
|
+
}), renderTotalsRow(sharedParams)));
|
|
676
|
+
|
|
677
|
+
// Wrapper con scroll si virtualización está activa
|
|
678
|
+
if (isVirtualized) {
|
|
679
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
680
|
+
className: "pvtVirtualContainer",
|
|
681
|
+
style: {
|
|
682
|
+
maxHeight: scroller.containerHeight,
|
|
683
|
+
maxWidth: scroller.containerWidth,
|
|
684
|
+
overflow: 'auto',
|
|
685
|
+
position: 'relative'
|
|
686
|
+
},
|
|
687
|
+
onScroll: handleScroll
|
|
688
|
+
}, tableContent);
|
|
689
|
+
}
|
|
690
|
+
return tableContent;
|
|
691
|
+
}
|
|
692
|
+
TableRendererCore.defaultProps = _objectSpread(_objectSpread({}, _Utilities.PivotData.defaultProps), {}, {
|
|
693
|
+
tableColorScaleGenerator: redColorScaleGenerator,
|
|
694
|
+
tableOptions: {},
|
|
695
|
+
compactRows: true,
|
|
696
|
+
showRowNumbers: true
|
|
697
|
+
});
|
|
698
|
+
TableRendererCore.propTypes = _objectSpread(_objectSpread({}, _Utilities.PivotData.propTypes), {}, {
|
|
699
|
+
tableColorScaleGenerator: _propTypes["default"].func,
|
|
700
|
+
tableOptions: _propTypes["default"].object,
|
|
701
|
+
compactRows: _propTypes["default"].bool,
|
|
702
|
+
showRowNumbers: _propTypes["default"].bool,
|
|
703
|
+
_resizeWidths: _propTypes["default"].object,
|
|
704
|
+
_onStartResize: _propTypes["default"].func
|
|
705
|
+
});
|
|
580
706
|
|
|
581
|
-
// ─── Wrapper
|
|
707
|
+
// ─── Wrapper for column resize hook ─────────────────────────
|
|
582
708
|
function TableRenderer(props) {
|
|
583
709
|
var resizing = props.columnResizing === true;
|
|
584
710
|
var _useColumnResize = (0, _useColumnResize2.useColumnResize)({
|
|
@@ -588,28 +714,28 @@ function makeRenderer() {
|
|
|
588
714
|
}),
|
|
589
715
|
widths = _useColumnResize.widths,
|
|
590
716
|
startResize = _useColumnResize.startResize;
|
|
591
|
-
return /*#__PURE__*/_react["default"].createElement(
|
|
717
|
+
return /*#__PURE__*/_react["default"].createElement(TableRendererCore, _extends({}, props, {
|
|
592
718
|
_resizeWidths: resizing ? widths : {},
|
|
593
719
|
_onStartResize: resizing ? startResize : null
|
|
594
720
|
}));
|
|
595
721
|
}
|
|
596
|
-
TableRenderer.defaultProps = _objectSpread(_objectSpread({},
|
|
722
|
+
TableRenderer.defaultProps = _objectSpread(_objectSpread({}, TableRendererCore.defaultProps), {}, {
|
|
597
723
|
columnResizing: false,
|
|
598
724
|
columnWidths: {}
|
|
599
725
|
});
|
|
600
|
-
TableRenderer.propTypes = _objectSpread(_objectSpread({},
|
|
726
|
+
TableRenderer.propTypes = _objectSpread(_objectSpread({}, TableRendererCore.propTypes), {}, {
|
|
601
727
|
columnResizing: _propTypes["default"].bool,
|
|
602
728
|
columnWidths: _propTypes["default"].object,
|
|
603
729
|
onColumnWidthChange: _propTypes["default"].func
|
|
604
730
|
});
|
|
605
731
|
return TableRenderer;
|
|
606
732
|
}
|
|
607
|
-
var TSVExportRenderer = /*#__PURE__*/function (_React$
|
|
733
|
+
var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent) {
|
|
608
734
|
function TSVExportRenderer() {
|
|
609
735
|
_classCallCheck(this, TSVExportRenderer);
|
|
610
736
|
return _callSuper(this, TSVExportRenderer, arguments);
|
|
611
737
|
}
|
|
612
|
-
_inherits(TSVExportRenderer, _React$
|
|
738
|
+
_inherits(TSVExportRenderer, _React$PureComponent);
|
|
613
739
|
return _createClass(TSVExportRenderer, [{
|
|
614
740
|
key: "render",
|
|
615
741
|
value: function render() {
|
|
@@ -648,8 +774,8 @@ var TSVExportRenderer = /*#__PURE__*/function (_React$PureComponent2) {
|
|
|
648
774
|
return r.join('\t');
|
|
649
775
|
}).join('\n'),
|
|
650
776
|
style: {
|
|
651
|
-
width:
|
|
652
|
-
height:
|
|
777
|
+
width: '100%',
|
|
778
|
+
height: '50vh'
|
|
653
779
|
},
|
|
654
780
|
readOnly: true
|
|
655
781
|
});
|