react-pivottable-plus 1.0.0 → 1.0.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/LICENSE +21 -21
- package/PivotTable.js.map +1 -1
- package/PivotTableUI.js +243 -187
- package/PivotTableUI.js.map +1 -1
- package/PlotlyRenderers.js.map +1 -1
- package/README.md +93 -94
- package/TableRenderers.js.map +1 -1
- package/Utilities.js +12 -12
- package/Utilities.js.map +1 -1
- package/grouping.css +111 -111
- package/hooks/usePivot.js +5 -13
- package/hooks/usePivot.js.map +1 -1
- package/package.json +105 -102
- package/pivottable.css +441 -441
- package/renderers/RadixUI.js.map +1 -1
- package/renderers/ShadcnDashboardUI.js.map +1 -1
- package/renderers/TailwindUI.js.map +1 -1
package/PivotTableUI.js
CHANGED
|
@@ -10,6 +10,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
10
10
|
var _immutabilityHelper = _interopRequireDefault(require("immutability-helper"));
|
|
11
11
|
var _Utilities = require("./Utilities");
|
|
12
12
|
var _PivotTable = _interopRequireDefault(require("./PivotTable"));
|
|
13
|
+
var _TableRenderers = _interopRequireDefault(require("./TableRenderers"));
|
|
13
14
|
var _reactDraggable = _interopRequireDefault(require("react-draggable"));
|
|
14
15
|
var _core = require("@dnd-kit/core");
|
|
15
16
|
var _sortable = require("@dnd-kit/sortable");
|
|
@@ -163,9 +164,6 @@ var DraggableAttribute = exports.DraggableAttribute = /*#__PURE__*/_react["defau
|
|
|
163
164
|
}, ' ', "\u25BE")), open ? getFilterBox() : null);
|
|
164
165
|
});
|
|
165
166
|
DraggableAttribute.displayName = 'DraggableAttribute';
|
|
166
|
-
|
|
167
|
-
// ─── SortableAttribute: wrapper que conecta dnd-kit con DraggableAttribute ────
|
|
168
|
-
|
|
169
167
|
var SortableAttribute = function SortableAttribute(_ref2) {
|
|
170
168
|
var id = _ref2.id,
|
|
171
169
|
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
@@ -191,9 +189,6 @@ var SortableAttribute = function SortableAttribute(_ref2) {
|
|
|
191
189
|
})
|
|
192
190
|
}, rest));
|
|
193
191
|
};
|
|
194
|
-
|
|
195
|
-
// ─── Dropdown ─────────────────────────────────────────────────────────────────
|
|
196
|
-
|
|
197
192
|
var Dropdown = exports.Dropdown = function Dropdown(_ref3) {
|
|
198
193
|
var _ref3$zIndex = _ref3.zIndex,
|
|
199
194
|
zIndex = _ref3$zIndex === void 0 ? 1 : _ref3$zIndex,
|
|
@@ -235,9 +230,6 @@ var Dropdown = exports.Dropdown = function Dropdown(_ref3) {
|
|
|
235
230
|
}, r);
|
|
236
231
|
})));
|
|
237
232
|
};
|
|
238
|
-
|
|
239
|
-
// ─── DnDCell: lista sortable con dnd-kit ──────────────────────────────────────
|
|
240
|
-
|
|
241
233
|
var DnDCell = function DnDCell(_ref4) {
|
|
242
234
|
var id = _ref4.id,
|
|
243
235
|
items = _ref4.items,
|
|
@@ -280,11 +272,52 @@ var DnDCell = function DnDCell(_ref4) {
|
|
|
280
272
|
});
|
|
281
273
|
}))));
|
|
282
274
|
};
|
|
283
|
-
|
|
284
|
-
// ─── PivotTableUI ─────────────────────────────────────────────────────────────
|
|
285
|
-
|
|
286
275
|
var PivotTableUI = function PivotTableUI(props) {
|
|
287
|
-
var _aggregators$aggregat, _aggregators$aggregat2
|
|
276
|
+
var _aggregators$aggregat, _aggregators$aggregat2;
|
|
277
|
+
var _props$data = props.data,
|
|
278
|
+
data = _props$data === void 0 ? [] : _props$data,
|
|
279
|
+
_props$onChange = props.onChange,
|
|
280
|
+
onChange = _props$onChange === void 0 ? function () {} : _props$onChange,
|
|
281
|
+
_props$rows = props.rows,
|
|
282
|
+
rows = _props$rows === void 0 ? [] : _props$rows,
|
|
283
|
+
_props$cols = props.cols,
|
|
284
|
+
cols = _props$cols === void 0 ? [] : _props$cols,
|
|
285
|
+
_props$vals = props.vals,
|
|
286
|
+
vals = _props$vals === void 0 ? [] : _props$vals,
|
|
287
|
+
_props$aggregatorName = props.aggregatorName,
|
|
288
|
+
aggregatorName = _props$aggregatorName === void 0 ? 'Count' : _props$aggregatorName,
|
|
289
|
+
_props$aggregators = props.aggregators,
|
|
290
|
+
aggregators = _props$aggregators === void 0 ? _Utilities.aggregators : _props$aggregators,
|
|
291
|
+
_props$rendererName = props.rendererName,
|
|
292
|
+
rendererName = _props$rendererName === void 0 ? 'Table' : _props$rendererName,
|
|
293
|
+
_props$renderers = props.renderers,
|
|
294
|
+
renderers = _props$renderers === void 0 ? _TableRenderers["default"] : _props$renderers,
|
|
295
|
+
_props$valueFilter = props.valueFilter,
|
|
296
|
+
valueFilter = _props$valueFilter === void 0 ? {} : _props$valueFilter,
|
|
297
|
+
_props$sorters = props.sorters,
|
|
298
|
+
sorters = _props$sorters === void 0 ? {} : _props$sorters,
|
|
299
|
+
_props$menuLimit = props.menuLimit,
|
|
300
|
+
menuLimit = _props$menuLimit === void 0 ? 500 : _props$menuLimit,
|
|
301
|
+
_props$unusedOrientat = props.unusedOrientationCutoff,
|
|
302
|
+
unusedOrientationCutoff = _props$unusedOrientat === void 0 ? 85 : _props$unusedOrientat,
|
|
303
|
+
_props$hiddenAttribut = props.hiddenAttributes,
|
|
304
|
+
hiddenAttributes = _props$hiddenAttribut === void 0 ? [] : _props$hiddenAttribut,
|
|
305
|
+
_props$hiddenFromAggr = props.hiddenFromAggregators,
|
|
306
|
+
hiddenFromAggregators = _props$hiddenFromAggr === void 0 ? [] : _props$hiddenFromAggr,
|
|
307
|
+
_props$hiddenFromDrag = props.hiddenFromDragDrop,
|
|
308
|
+
hiddenFromDragDrop = _props$hiddenFromDrag === void 0 ? [] : _props$hiddenFromDrag,
|
|
309
|
+
_props$pagination = props.pagination,
|
|
310
|
+
pagination = _props$pagination === void 0 ? false : _props$pagination,
|
|
311
|
+
_props$page = props.page,
|
|
312
|
+
page = _props$page === void 0 ? 1 : _props$page,
|
|
313
|
+
_props$pageSize = props.pageSize,
|
|
314
|
+
pageSize = _props$pageSize === void 0 ? 20 : _props$pageSize,
|
|
315
|
+
_props$rowOrder = props.rowOrder,
|
|
316
|
+
rowOrder = _props$rowOrder === void 0 ? 'key_a_to_z' : _props$rowOrder,
|
|
317
|
+
_props$colOrder = props.colOrder,
|
|
318
|
+
colOrder = _props$colOrder === void 0 ? 'key_a_to_z' : _props$colOrder,
|
|
319
|
+
_props$derivedAttribu = props.derivedAttributes,
|
|
320
|
+
derivedAttributes = _props$derivedAttribu === void 0 ? {} : _props$derivedAttribu;
|
|
288
321
|
var _useState5 = (0, _react.useState)({
|
|
289
322
|
unusedOrder: [],
|
|
290
323
|
zIndices: {},
|
|
@@ -297,40 +330,10 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
297
330
|
_useState6 = _slicedToArray(_useState5, 2),
|
|
298
331
|
state = _useState6[0],
|
|
299
332
|
setState = _useState6[1];
|
|
300
|
-
|
|
301
|
-
// activeId: el atributo que se está arrastrando
|
|
302
333
|
var _useState7 = (0, _react.useState)(null),
|
|
303
334
|
_useState8 = _slicedToArray(_useState7, 2),
|
|
304
335
|
activeId = _useState8[0],
|
|
305
336
|
setActiveId = _useState8[1];
|
|
306
|
-
var data = props.data,
|
|
307
|
-
onChange = props.onChange,
|
|
308
|
-
rows = props.rows,
|
|
309
|
-
cols = props.cols,
|
|
310
|
-
aggregatorName = props.aggregatorName,
|
|
311
|
-
aggregators = props.aggregators,
|
|
312
|
-
vals = props.vals,
|
|
313
|
-
rendererName = props.rendererName,
|
|
314
|
-
renderers = props.renderers,
|
|
315
|
-
valueFilter = props.valueFilter,
|
|
316
|
-
sorters = props.sorters,
|
|
317
|
-
menuLimit = props.menuLimit,
|
|
318
|
-
unusedOrientationCutoff = props.unusedOrientationCutoff,
|
|
319
|
-
hiddenAttributes = props.hiddenAttributes,
|
|
320
|
-
hiddenFromAggregators = props.hiddenFromAggregators,
|
|
321
|
-
hiddenFromDragDrop = props.hiddenFromDragDrop,
|
|
322
|
-
pagination = props.pagination,
|
|
323
|
-
page = props.page,
|
|
324
|
-
pageSize = props.pageSize,
|
|
325
|
-
rowOrder = props.rowOrder,
|
|
326
|
-
colOrder = props.colOrder,
|
|
327
|
-
derivedAttributes = props.derivedAttributes;
|
|
328
|
-
var onChangeRef = (0, _react.useRef)(onChange);
|
|
329
|
-
(0, _react.useEffect)(function () {
|
|
330
|
-
onChangeRef.current = onChange;
|
|
331
|
-
}, [onChange]);
|
|
332
|
-
|
|
333
|
-
// ── Materializar datos ───────────────────────────────────────────────────────
|
|
334
337
|
(0, _react.useEffect)(function () {
|
|
335
338
|
if (state.data === data) return;
|
|
336
339
|
var newState = {
|
|
@@ -359,8 +362,10 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
359
362
|
return _objectSpread(_objectSpread({}, s), newState);
|
|
360
363
|
});
|
|
361
364
|
}, [data, derivedAttributes, state.data]);
|
|
362
|
-
|
|
363
|
-
|
|
365
|
+
var sendPropUpdate = (0, _react.useCallback)(function (command) {
|
|
366
|
+
var newProps = (0, _immutabilityHelper["default"])(props, command);
|
|
367
|
+
if (onChange) onChange(newProps);
|
|
368
|
+
}, [props, onChange]);
|
|
364
369
|
var handleDuplicates = function handleDuplicates(newAttrs, existingAttrs) {
|
|
365
370
|
if (!newAttrs || !existingAttrs) return existingAttrs || [];
|
|
366
371
|
var dups = newAttrs.filter(function (item) {
|
|
@@ -370,11 +375,6 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
370
375
|
return !dups.includes(item);
|
|
371
376
|
}) : existingAttrs;
|
|
372
377
|
};
|
|
373
|
-
var sendPropUpdate = (0, _react.useCallback)(function (command) {
|
|
374
|
-
var _onChangeRef$current;
|
|
375
|
-
var newProps = (0, _immutabilityHelper["default"])(props, command);
|
|
376
|
-
(_onChangeRef$current = onChangeRef.current) === null || _onChangeRef$current === void 0 || _onChangeRef$current.call(onChangeRef, newProps);
|
|
377
|
-
}, [props]);
|
|
378
378
|
var propUpdater = (0, _react.useCallback)(function (key) {
|
|
379
379
|
return function (value) {
|
|
380
380
|
var updateObj = _defineProperty({}, key, {
|
|
@@ -433,8 +433,6 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
433
433
|
});
|
|
434
434
|
});
|
|
435
435
|
}, []);
|
|
436
|
-
|
|
437
|
-
// ── Listas de atributos ──────────────────────────────────────────────────────
|
|
438
436
|
var unusedAttrs = Object.keys(state.attrValues).filter(function (e) {
|
|
439
437
|
return e && e.trim() !== '' && !rows.includes(e) && !cols.includes(e) && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e);
|
|
440
438
|
}).sort((0, _Utilities.sortAs)(state.unusedOrder));
|
|
@@ -448,9 +446,6 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
448
446
|
var rowAttrs = rows.filter(function (e) {
|
|
449
447
|
return e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e);
|
|
450
448
|
});
|
|
451
|
-
|
|
452
|
-
// ── Mapa de zona → lista actual ──────────────────────────────────────────────
|
|
453
|
-
// Para saber a qué lista pertenece cada atributo durante el drag
|
|
454
449
|
var getZoneOfItem = function getZoneOfItem(id) {
|
|
455
450
|
if (rowAttrs.includes(id)) return 'rows';
|
|
456
451
|
if (colAttrs.includes(id)) return 'cols';
|
|
@@ -475,18 +470,14 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
475
470
|
};
|
|
476
471
|
return function () {};
|
|
477
472
|
};
|
|
478
|
-
|
|
479
|
-
// ── Sensores dnd-kit ─────────────────────────────────────────────────────────
|
|
480
473
|
var sensors = (0, _core.useSensors)((0, _core.useSensor)(_core.PointerSensor, {
|
|
481
474
|
activationConstraint: {
|
|
482
475
|
distance: 5
|
|
483
476
|
}
|
|
484
477
|
}));
|
|
485
|
-
|
|
486
|
-
// ── Handlers de dnd-kit ──────────────────────────────────────────────────────
|
|
487
478
|
var handleDragStart = function handleDragStart(_ref5) {
|
|
488
479
|
var active = _ref5.active;
|
|
489
|
-
setActiveId(active.id);
|
|
480
|
+
return setActiveId(active.id);
|
|
490
481
|
};
|
|
491
482
|
var handleDragOver = function handleDragOver(_ref6) {
|
|
492
483
|
var _over$data$current$so, _over$data;
|
|
@@ -495,30 +486,18 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
495
486
|
if (!over) return;
|
|
496
487
|
var activeZone = getZoneOfItem(active.id);
|
|
497
488
|
var overZone = (_over$data$current$so = (_over$data = over.data) === null || _over$data === void 0 || (_over$data = _over$data.current) === null || _over$data === void 0 || (_over$data = _over$data.sortable) === null || _over$data === void 0 ? void 0 : _over$data.containerId) !== null && _over$data$current$so !== void 0 ? _over$data$current$so : getZoneOfItem(over.id);
|
|
498
|
-
|
|
499
|
-
// Guardia 1: Ambos deben tener zona y ser distintas
|
|
500
489
|
if (!activeZone || !overZone || activeZone === overZone) return;
|
|
501
|
-
|
|
502
|
-
// Mover entre zonas en tiempo real (mientras se arrastra)
|
|
503
490
|
var activeList = _toConsumableArray(getListByZone(activeZone));
|
|
504
491
|
var overList = _toConsumableArray(getListByZone(overZone));
|
|
505
492
|
var activeIndex = activeList.indexOf(active.id);
|
|
506
493
|
var overIndex = overList.indexOf(over.id);
|
|
507
|
-
|
|
508
|
-
// Guardia 2: El item debe existir en la lista de origen (evita splice -1)
|
|
509
494
|
if (activeIndex === -1) return;
|
|
510
|
-
|
|
511
|
-
// Guardia 3: Evitar duplicados en la lista de destino
|
|
512
495
|
if (overList.includes(active.id)) return;
|
|
513
496
|
activeList.splice(activeIndex, 1);
|
|
514
497
|
var insertAt = overIndex >= 0 ? overIndex : overList.length;
|
|
515
498
|
overList.splice(insertAt, 0, active.id);
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
var updateActiveZone = getUpdaterByZone(activeZone);
|
|
519
|
-
var updateOverZone = getUpdaterByZone(overZone);
|
|
520
|
-
updateActiveZone(activeList);
|
|
521
|
-
updateOverZone(overList);
|
|
499
|
+
getUpdaterByZone(activeZone)(activeList);
|
|
500
|
+
getUpdaterByZone(overZone)(overList);
|
|
522
501
|
};
|
|
523
502
|
var handleDragEnd = function handleDragEnd(_ref7) {
|
|
524
503
|
var _over$data$current$so2, _over$data2;
|
|
@@ -530,23 +509,16 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
530
509
|
var overZone = (_over$data$current$so2 = (_over$data2 = over.data) === null || _over$data2 === void 0 || (_over$data2 = _over$data2.current) === null || _over$data2 === void 0 || (_over$data2 = _over$data2.sortable) === null || _over$data2 === void 0 ? void 0 : _over$data2.containerId) !== null && _over$data$current$so2 !== void 0 ? _over$data$current$so2 : getZoneOfItem(over.id);
|
|
531
510
|
if (!activeZone || !overZone) return;
|
|
532
511
|
if (activeZone === overZone) {
|
|
533
|
-
// Reordenamiento dentro de la misma zona
|
|
534
512
|
var list = getListByZone(activeZone);
|
|
535
513
|
var oldIndex = list.indexOf(active.id);
|
|
536
514
|
var newIndex = list.indexOf(over.id);
|
|
537
|
-
if (oldIndex !== newIndex)
|
|
538
|
-
getUpdaterByZone(activeZone)((0, _sortable.arrayMove)(list, oldIndex, newIndex));
|
|
539
|
-
}
|
|
515
|
+
if (oldIndex !== newIndex) getUpdaterByZone(activeZone)((0, _sortable.arrayMove)(list, oldIndex, newIndex));
|
|
540
516
|
}
|
|
541
|
-
// Si activeZone !== overZone, ya fue manejado en handleDragOver
|
|
542
517
|
};
|
|
543
|
-
|
|
544
|
-
// ── UI ───────────────────────────────────────────────────────────────────────
|
|
545
518
|
var isOpen = function isOpen(dropdown) {
|
|
546
519
|
return state.openDropdown === dropdown;
|
|
547
520
|
};
|
|
548
521
|
var numValsAllowed = ((_aggregators$aggregat = aggregators[aggregatorName]) === null || _aggregators$aggregat === void 0 || (_aggregators$aggregat2 = _aggregators$aggregat.call(aggregators, [])) === null || _aggregators$aggregat2 === void 0 || (_aggregators$aggregat2 = _aggregators$aggregat2()) === null || _aggregators$aggregat2 === void 0 ? void 0 : _aggregators$aggregat2.numInputs) || 0;
|
|
549
|
-
var aggregatorCellOutlet = (_aggregators$aggregat3 = aggregators[aggregatorName]) === null || _aggregators$aggregat3 === void 0 || (_aggregators$aggregat4 = _aggregators$aggregat3.call(aggregators, [])) === null || _aggregators$aggregat4 === void 0 || (_aggregators$aggregat4 = _aggregators$aggregat4()) === null || _aggregators$aggregat4 === void 0 ? void 0 : _aggregators$aggregat4.outlet;
|
|
550
522
|
var actualRendererName = rendererName in renderers ? rendererName : Object.keys(renderers)[0];
|
|
551
523
|
var sortIcons = {
|
|
552
524
|
key_a_to_z: {
|
|
@@ -575,7 +547,90 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
575
547
|
moveFilterBoxToTop: moveFilterBoxToTop,
|
|
576
548
|
removeValuesFromFilter: removeValuesFromFilter
|
|
577
549
|
};
|
|
578
|
-
var
|
|
550
|
+
var renderFooter = function renderFooter() {
|
|
551
|
+
var pivotData = new _Utilities.PivotData(_objectSpread(_objectSpread({}, props), {}, {
|
|
552
|
+
data: state.materializedInput
|
|
553
|
+
}));
|
|
554
|
+
var totalPivotRows = pivotData.getRowKeys().length;
|
|
555
|
+
var totalRecords = state.materializedInput.length;
|
|
556
|
+
var totalPages = Math.ceil(totalPivotRows / pageSize);
|
|
557
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
558
|
+
className: "pvtFooter"
|
|
559
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
560
|
+
className: "pvtFooterInfo"
|
|
561
|
+
}, "Total registros: ", totalRecords, " | Filas: ", totalPivotRows), /*#__PURE__*/_react["default"].createElement("div", {
|
|
562
|
+
className: "pvtFooterPagination"
|
|
563
|
+
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
564
|
+
className: "pvtButton",
|
|
565
|
+
disabled: page <= 1,
|
|
566
|
+
onClick: function onClick() {
|
|
567
|
+
return propUpdater('page')(1);
|
|
568
|
+
}
|
|
569
|
+
}, "\xAB"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
570
|
+
className: "pvtButton",
|
|
571
|
+
disabled: page <= 1,
|
|
572
|
+
onClick: function onClick() {
|
|
573
|
+
return propUpdater('page')(page - 1);
|
|
574
|
+
}
|
|
575
|
+
}, "\u2039"), /*#__PURE__*/_react["default"].createElement("span", null, "P\xE1gina ", /*#__PURE__*/_react["default"].createElement("input", {
|
|
576
|
+
type: "number",
|
|
577
|
+
className: "pvtPageInput",
|
|
578
|
+
value: page,
|
|
579
|
+
min: 1,
|
|
580
|
+
max: totalPages,
|
|
581
|
+
onChange: function onChange(e) {
|
|
582
|
+
var val = parseInt(e.target.value, 10);
|
|
583
|
+
if (val > 0 && val <= totalPages) propUpdater('page')(val);
|
|
584
|
+
}
|
|
585
|
+
}), " de ", totalPages), /*#__PURE__*/_react["default"].createElement("button", {
|
|
586
|
+
className: "pvtButton",
|
|
587
|
+
disabled: page >= totalPages,
|
|
588
|
+
onClick: function onClick() {
|
|
589
|
+
return propUpdater('page')(page + 1);
|
|
590
|
+
}
|
|
591
|
+
}, "\u203A"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
592
|
+
className: "pvtButton",
|
|
593
|
+
disabled: page >= totalPages,
|
|
594
|
+
onClick: function onClick() {
|
|
595
|
+
return propUpdater('page')(totalPages);
|
|
596
|
+
}
|
|
597
|
+
}, "\xBB"), /*#__PURE__*/_react["default"].createElement("select", {
|
|
598
|
+
className: "pvtPageSize",
|
|
599
|
+
value: pageSize,
|
|
600
|
+
onChange: function onChange(e) {
|
|
601
|
+
sendPropUpdate({
|
|
602
|
+
pageSize: {
|
|
603
|
+
$set: parseInt(e.target.value, 10)
|
|
604
|
+
},
|
|
605
|
+
page: {
|
|
606
|
+
$set: 1
|
|
607
|
+
}
|
|
608
|
+
});
|
|
609
|
+
}
|
|
610
|
+
}, [10, 20, 50, 100].map(function (n) {
|
|
611
|
+
return /*#__PURE__*/_react["default"].createElement("option", {
|
|
612
|
+
key: n,
|
|
613
|
+
value: n
|
|
614
|
+
}, n, " / p\xE1g");
|
|
615
|
+
}))));
|
|
616
|
+
};
|
|
617
|
+
return /*#__PURE__*/_react["default"].createElement(_core.DndContext, {
|
|
618
|
+
sensors: sensors,
|
|
619
|
+
collisionDetection: _core.closestCorners,
|
|
620
|
+
onDragStart: handleDragStart,
|
|
621
|
+
onDragOver: handleDragOver,
|
|
622
|
+
onDragEnd: handleDragEnd
|
|
623
|
+
}, /*#__PURE__*/_react["default"].createElement("table", {
|
|
624
|
+
className: "pvtUi"
|
|
625
|
+
}, /*#__PURE__*/_react["default"].createElement("tbody", {
|
|
626
|
+
onClick: function onClick() {
|
|
627
|
+
return setState(function (s) {
|
|
628
|
+
return _objectSpread(_objectSpread({}, s), {}, {
|
|
629
|
+
openDropdown: false
|
|
630
|
+
});
|
|
631
|
+
});
|
|
632
|
+
}
|
|
633
|
+
}, horizUnused ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
|
|
579
634
|
className: "pvtRenderers"
|
|
580
635
|
}, /*#__PURE__*/_react["default"].createElement(Dropdown, {
|
|
581
636
|
current: actualRendererName,
|
|
@@ -590,8 +645,12 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
590
645
|
});
|
|
591
646
|
},
|
|
592
647
|
setValue: propUpdater('rendererName')
|
|
593
|
-
}))
|
|
594
|
-
|
|
648
|
+
})), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
649
|
+
id: "unused",
|
|
650
|
+
items: unusedAttrs,
|
|
651
|
+
classes: "pvtAxisContainer pvtUnused pvtHorizList",
|
|
652
|
+
isHorizontal: true
|
|
653
|
+
}, sharedCellProps))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
|
|
595
654
|
className: "pvtVals"
|
|
596
655
|
}, /*#__PURE__*/_react["default"].createElement(Dropdown, {
|
|
597
656
|
current: aggregatorName,
|
|
@@ -644,120 +703,112 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
644
703
|
}), i + 1 !== numValsAllowed ? /*#__PURE__*/_react["default"].createElement("br", {
|
|
645
704
|
key: "br".concat(i)
|
|
646
705
|
}) : null];
|
|
647
|
-
}),
|
|
648
|
-
var unusedAttrsCell = /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
649
|
-
id: "unused",
|
|
650
|
-
items: unusedAttrs,
|
|
651
|
-
classes: "pvtAxisContainer pvtUnused ".concat(horizUnused ? 'pvtHorizList' : 'pvtVertList'),
|
|
652
|
-
isHorizontal: horizUnused
|
|
653
|
-
}, sharedCellProps));
|
|
654
|
-
var colAttrsCell = /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
706
|
+
})), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
655
707
|
id: "cols",
|
|
656
708
|
items: colAttrs,
|
|
657
709
|
classes: "pvtAxisContainer pvtHorizList pvtCols",
|
|
658
710
|
isHorizontal: true
|
|
659
|
-
}, sharedCellProps))
|
|
660
|
-
var rowAttrsCell = /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
711
|
+
}, sharedCellProps))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
661
712
|
id: "rows",
|
|
662
713
|
items: rowAttrs,
|
|
663
714
|
classes: "pvtAxisContainer pvtVertList pvtRows",
|
|
664
715
|
isHorizontal: false
|
|
665
|
-
}, sharedCellProps))
|
|
666
|
-
|
|
667
|
-
// Footer de paginación
|
|
668
|
-
var renderFooter = function renderFooter() {
|
|
669
|
-
var pivotData = new _Utilities.PivotData(_objectSpread(_objectSpread({}, props), {}, {
|
|
670
|
-
data: state.materializedInput
|
|
671
|
-
}));
|
|
672
|
-
var totalPivotRows = pivotData.getRowKeys().length;
|
|
673
|
-
var totalRecords = state.materializedInput.length;
|
|
674
|
-
var totalPages = Math.ceil(totalPivotRows / pageSize);
|
|
675
|
-
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
676
|
-
className: "pvtFooter"
|
|
677
|
-
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
678
|
-
className: "pvtFooterInfo"
|
|
679
|
-
}, "Total registros: ", totalRecords, " | Filas: ", totalPivotRows), /*#__PURE__*/_react["default"].createElement("div", {
|
|
680
|
-
className: "pvtFooterPagination"
|
|
681
|
-
}, /*#__PURE__*/_react["default"].createElement("button", {
|
|
682
|
-
className: "pvtButton",
|
|
683
|
-
disabled: page <= 1,
|
|
684
|
-
onClick: function onClick() {
|
|
685
|
-
return propUpdater('page')(1);
|
|
686
|
-
}
|
|
687
|
-
}, "\xAB"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
688
|
-
className: "pvtButton",
|
|
689
|
-
disabled: page <= 1,
|
|
690
|
-
onClick: function onClick() {
|
|
691
|
-
return propUpdater('page')(page - 1);
|
|
692
|
-
}
|
|
693
|
-
}, "\u2039"), /*#__PURE__*/_react["default"].createElement("span", null, "P\xE1gina", ' ', /*#__PURE__*/_react["default"].createElement("input", {
|
|
694
|
-
type: "number",
|
|
695
|
-
className: "pvtPageInput",
|
|
696
|
-
value: page,
|
|
697
|
-
min: 1,
|
|
698
|
-
max: totalPages,
|
|
699
|
-
onChange: function onChange(e) {
|
|
700
|
-
var val = parseInt(e.target.value, 10);
|
|
701
|
-
if (val > 0 && val <= totalPages) propUpdater('page')(val);
|
|
702
|
-
}
|
|
703
|
-
}), ' ', "de ", totalPages), /*#__PURE__*/_react["default"].createElement("button", {
|
|
704
|
-
className: "pvtButton",
|
|
705
|
-
disabled: page >= totalPages,
|
|
706
|
-
onClick: function onClick() {
|
|
707
|
-
return propUpdater('page')(page + 1);
|
|
708
|
-
}
|
|
709
|
-
}, "\u203A"), /*#__PURE__*/_react["default"].createElement("button", {
|
|
710
|
-
className: "pvtButton",
|
|
711
|
-
disabled: page >= totalPages,
|
|
712
|
-
onClick: function onClick() {
|
|
713
|
-
return propUpdater('page')(totalPages);
|
|
714
|
-
}
|
|
715
|
-
}, "\xBB"), /*#__PURE__*/_react["default"].createElement("select", {
|
|
716
|
-
className: "pvtPageSize",
|
|
717
|
-
value: pageSize,
|
|
718
|
-
onChange: function onChange(e) {
|
|
719
|
-
var _onChangeRef$current2;
|
|
720
|
-
var newSize = parseInt(e.target.value, 10);
|
|
721
|
-
(_onChangeRef$current2 = onChangeRef.current) === null || _onChangeRef$current2 === void 0 || _onChangeRef$current2.call(onChangeRef, (0, _immutabilityHelper["default"])(props, {
|
|
722
|
-
pageSize: {
|
|
723
|
-
$set: newSize
|
|
724
|
-
},
|
|
725
|
-
page: {
|
|
726
|
-
$set: 1
|
|
727
|
-
}
|
|
728
|
-
}));
|
|
729
|
-
}
|
|
730
|
-
}, [10, 20, 50, 100].map(function (n) {
|
|
731
|
-
return /*#__PURE__*/_react["default"].createElement("option", {
|
|
732
|
-
key: n,
|
|
733
|
-
value: n
|
|
734
|
-
}, n, " / p\xE1g");
|
|
735
|
-
}))));
|
|
736
|
-
};
|
|
737
|
-
var outputCell = /*#__PURE__*/_react["default"].createElement("td", {
|
|
716
|
+
}, sharedCellProps)), /*#__PURE__*/_react["default"].createElement("td", {
|
|
738
717
|
className: "pvtOutput"
|
|
739
718
|
}, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], (0, _immutabilityHelper["default"])(props, {
|
|
740
719
|
data: {
|
|
741
720
|
$set: state.materializedInput
|
|
742
721
|
}
|
|
743
|
-
})), pagination && renderFooter())
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
className: "pvtUi"
|
|
752
|
-
}, /*#__PURE__*/_react["default"].createElement("tbody", {
|
|
753
|
-
onClick: function onClick() {
|
|
722
|
+
})), pagination && renderFooter()))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
|
|
723
|
+
className: "pvtRenderers"
|
|
724
|
+
}, /*#__PURE__*/_react["default"].createElement(Dropdown, {
|
|
725
|
+
current: actualRendererName,
|
|
726
|
+
values: Object.keys(renderers),
|
|
727
|
+
open: isOpen('renderer'),
|
|
728
|
+
zIndex: isOpen('renderer') ? state.maxZIndex + 1 : 1,
|
|
729
|
+
toggle: function toggle() {
|
|
754
730
|
return setState(function (s) {
|
|
755
731
|
return _objectSpread(_objectSpread({}, s), {}, {
|
|
756
|
-
openDropdown: false
|
|
732
|
+
openDropdown: isOpen('renderer') ? false : 'renderer'
|
|
757
733
|
});
|
|
758
734
|
});
|
|
735
|
+
},
|
|
736
|
+
setValue: propUpdater('rendererName')
|
|
737
|
+
})), /*#__PURE__*/_react["default"].createElement("td", {
|
|
738
|
+
className: "pvtVals"
|
|
739
|
+
}, /*#__PURE__*/_react["default"].createElement(Dropdown, {
|
|
740
|
+
current: aggregatorName,
|
|
741
|
+
values: Object.keys(aggregators),
|
|
742
|
+
open: isOpen('aggregators'),
|
|
743
|
+
zIndex: isOpen('aggregators') ? state.maxZIndex + 1 : 1,
|
|
744
|
+
toggle: function toggle() {
|
|
745
|
+
return setState(function (s) {
|
|
746
|
+
return _objectSpread(_objectSpread({}, s), {}, {
|
|
747
|
+
openDropdown: isOpen('aggregators') ? false : 'aggregators'
|
|
748
|
+
});
|
|
749
|
+
});
|
|
750
|
+
},
|
|
751
|
+
setValue: propUpdater('aggregatorName')
|
|
752
|
+
}), /*#__PURE__*/_react["default"].createElement("a", {
|
|
753
|
+
role: "button",
|
|
754
|
+
className: "pvtRowOrder",
|
|
755
|
+
onClick: function onClick() {
|
|
756
|
+
return propUpdater('rowOrder')(sortIcons[rowOrder].next);
|
|
757
|
+
}
|
|
758
|
+
}, sortIcons[rowOrder].rowSymbol), /*#__PURE__*/_react["default"].createElement("a", {
|
|
759
|
+
role: "button",
|
|
760
|
+
className: "pvtColOrder",
|
|
761
|
+
onClick: function onClick() {
|
|
762
|
+
return propUpdater('colOrder')(sortIcons[colOrder].next);
|
|
763
|
+
}
|
|
764
|
+
}, sortIcons[colOrder].colSymbol), numValsAllowed > 0 && /*#__PURE__*/_react["default"].createElement("br", null), new Array(numValsAllowed).fill(null).map(function (_, i) {
|
|
765
|
+
return [/*#__PURE__*/_react["default"].createElement(Dropdown, {
|
|
766
|
+
key: i,
|
|
767
|
+
current: vals[i],
|
|
768
|
+
values: Object.keys(state.attrValues).filter(function (e) {
|
|
769
|
+
return !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e);
|
|
770
|
+
}),
|
|
771
|
+
open: isOpen("val".concat(i)),
|
|
772
|
+
zIndex: isOpen("val".concat(i)) ? state.maxZIndex + 1 : 1,
|
|
773
|
+
toggle: function toggle() {
|
|
774
|
+
return setState(function (s) {
|
|
775
|
+
return _objectSpread(_objectSpread({}, s), {}, {
|
|
776
|
+
openDropdown: isOpen("val".concat(i)) ? false : "val".concat(i)
|
|
777
|
+
});
|
|
778
|
+
});
|
|
779
|
+
},
|
|
780
|
+
setValue: function setValue(value) {
|
|
781
|
+
return sendPropUpdate({
|
|
782
|
+
vals: {
|
|
783
|
+
$splice: [[i, 1, value]]
|
|
784
|
+
}
|
|
785
|
+
});
|
|
786
|
+
}
|
|
787
|
+
}), i + 1 !== numValsAllowed ? /*#__PURE__*/_react["default"].createElement("br", {
|
|
788
|
+
key: "br".concat(i)
|
|
789
|
+
}) : null];
|
|
790
|
+
})), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
791
|
+
id: "cols",
|
|
792
|
+
items: colAttrs,
|
|
793
|
+
classes: "pvtAxisContainer pvtHorizList pvtCols",
|
|
794
|
+
isHorizontal: true
|
|
795
|
+
}, sharedCellProps))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
796
|
+
id: "unused",
|
|
797
|
+
items: unusedAttrs,
|
|
798
|
+
classes: "pvtAxisContainer pvtUnused pvtVertList",
|
|
799
|
+
isHorizontal: false
|
|
800
|
+
}, sharedCellProps)), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
|
|
801
|
+
id: "rows",
|
|
802
|
+
items: rowAttrs,
|
|
803
|
+
classes: "pvtAxisContainer pvtVertList pvtRows",
|
|
804
|
+
isHorizontal: false
|
|
805
|
+
}, sharedCellProps)), /*#__PURE__*/_react["default"].createElement("td", {
|
|
806
|
+
className: "pvtOutput"
|
|
807
|
+
}, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], (0, _immutabilityHelper["default"])(props, {
|
|
808
|
+
data: {
|
|
809
|
+
$set: state.materializedInput
|
|
759
810
|
}
|
|
760
|
-
}
|
|
811
|
+
})), pagination && renderFooter()))))), /*#__PURE__*/_react["default"].createElement(_core.DragOverlay, null, activeId ? /*#__PURE__*/_react["default"].createElement("ul", {
|
|
761
812
|
style: {
|
|
762
813
|
listStyle: 'none',
|
|
763
814
|
padding: 0,
|
|
@@ -767,20 +818,25 @@ var PivotTableUI = function PivotTableUI(props) {
|
|
|
767
818
|
className: "pvtAttr"
|
|
768
819
|
}, activeId))) : null));
|
|
769
820
|
};
|
|
770
|
-
PivotTableUI.propTypes = {
|
|
821
|
+
PivotTableUI.propTypes = Object.assign({}, _Utilities.PivotData.propTypes, {
|
|
771
822
|
onChange: _propTypes["default"].func.isRequired,
|
|
772
823
|
hiddenAttributes: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
773
824
|
hiddenFromAggregators: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
774
825
|
hiddenFromDragDrop: _propTypes["default"].arrayOf(_propTypes["default"].string),
|
|
775
826
|
unusedOrientationCutoff: _propTypes["default"].number,
|
|
776
|
-
menuLimit: _propTypes["default"].number
|
|
777
|
-
|
|
778
|
-
|
|
827
|
+
menuLimit: _propTypes["default"].number,
|
|
828
|
+
rendererName: _propTypes["default"].string,
|
|
829
|
+
renderers: _propTypes["default"].objectOf(_propTypes["default"].func)
|
|
830
|
+
});
|
|
831
|
+
PivotTableUI.defaultProps = Object.assign({}, _Utilities.PivotData.defaultProps, {
|
|
832
|
+
onChange: function onChange() {},
|
|
779
833
|
hiddenAttributes: [],
|
|
780
834
|
hiddenFromAggregators: [],
|
|
781
835
|
hiddenFromDragDrop: [],
|
|
782
836
|
unusedOrientationCutoff: 85,
|
|
783
|
-
menuLimit: 500
|
|
784
|
-
|
|
837
|
+
menuLimit: 500,
|
|
838
|
+
rendererName: 'Table',
|
|
839
|
+
renderers: _TableRenderers["default"]
|
|
840
|
+
});
|
|
785
841
|
var _default = exports["default"] = PivotTableUI;
|
|
786
842
|
//# sourceMappingURL=PivotTableUI.js.map
|