react-pivottable-plus 1.0.20 → 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.
@@ -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
  });
@@ -10,34 +9,13 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
10
9
  var _Utilities = require("./Utilities");
11
10
  var _TableRenderers = _interopRequireDefault(require("./TableRenderers"));
12
11
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
13
- function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
14
- 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); } }
15
- function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
16
- function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
17
- 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); }
18
- function _callSuper(t, o, e) { return o = _getPrototypeOf(o), _possibleConstructorReturn(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], _getPrototypeOf(t).constructor) : o.apply(t, e)); }
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); }
20
- function _assertThisInitialized(e) { if (void 0 === e) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); return e; }
21
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
22
- function _getPrototypeOf(t) { return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) { return t.__proto__ || Object.getPrototypeOf(t); }, _getPrototypeOf(t); }
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); }
24
- function _setPrototypeOf(t, e) { return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) { return t.__proto__ = e, t; }, _setPrototypeOf(t, e); }
25
12
  /* eslint-disable react/prop-types */
26
- // eslint can't see inherited propTypes!
27
- var PivotTable = /*#__PURE__*/function (_React$PureComponent) {
28
- function PivotTable() {
29
- _classCallCheck(this, PivotTable);
30
- return _callSuper(this, PivotTable, arguments);
31
- }
32
- _inherits(PivotTable, _React$PureComponent);
33
- return _createClass(PivotTable, [{
34
- key: "render",
35
- value: function render() {
36
- var Renderer = this.props.renderers[this.props.rendererName in this.props.renderers ? this.props.rendererName : Object.keys(this.props.renderers)[0]];
37
- return /*#__PURE__*/_react["default"].createElement(Renderer, this.props);
38
- }
39
- }]);
40
- }(_react["default"].PureComponent);
13
+
14
+ var PivotTable = /*#__PURE__*/_react["default"].memo(function PivotTable(props) {
15
+ var Renderer = props.renderers[props.rendererName in props.renderers ? props.rendererName : Object.keys(props.renderers)[0]];
16
+ return /*#__PURE__*/_react["default"].createElement(Renderer, props);
17
+ });
18
+ PivotTable.displayName = 'PivotTable';
41
19
  PivotTable.propTypes = Object.assign({}, _Utilities.PivotData.propTypes, {
42
20
  rendererName: _propTypes["default"].string,
43
21
  renderers: _propTypes["default"].objectOf(_propTypes["default"].func)
@@ -1 +1 @@
1
- {"version":3,"file":"PivotTable.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_TableRenderers","e","__esModule","_classCallCheck","a","n","TypeError","_defineProperties","r","t","length","o","enumerable","configurable","writable","Object","defineProperty","_toPropertyKey","key","_createClass","prototype","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","String","Number","_callSuper","_getPrototypeOf","_possibleConstructorReturn","_isNativeReflectConstruct","Reflect","construct","constructor","apply","_assertThisInitialized","ReferenceError","Boolean","valueOf","setPrototypeOf","getPrototypeOf","bind","__proto__","_inherits","create","value","_setPrototypeOf","PivotTable","_React$PureComponent","arguments","render","Renderer","props","renderers","rendererName","keys","createElement","React","PureComponent","propTypes","assign","PivotData","PropTypes","string","objectOf","func","defaultProps","TableRenderers","_default","exports"],"sources":["../src/PivotTable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport {PivotData} from './Utilities';\nimport TableRenderers from './TableRenderers';\n\n/* eslint-disable react/prop-types */\n// eslint can't see inherited propTypes!\n\nclass PivotTable extends React.PureComponent {\n render() {\n const Renderer = this.props.renderers[\n this.props.rendererName in this.props.renderers\n ? this.props.rendererName\n : Object.keys(this.props.renderers)[0]\n ];\n return <Renderer {...this.props} />;\n }\n}\n\nPivotTable.propTypes = Object.assign({}, PivotData.propTypes, {\n rendererName: PropTypes.string,\n renderers: PropTypes.objectOf(PropTypes.func),\n});\n\nPivotTable.defaultProps = Object.assign({}, PivotData.defaultProps, {\n rendererName: 'Table',\n renderers: TableRenderers,\n});\n\nexport default PivotTable;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"PivotTable.js","names":["_react","_interopRequireDefault","require","_propTypes","_Utilities","_TableRenderers","e","__esModule","PivotTable","React","memo","props","Renderer","renderers","rendererName","Object","keys","createElement","displayName","propTypes","assign","PivotData","PropTypes","string","objectOf","func","defaultProps","TableRenderers","_default","exports"],"sources":["../src/PivotTable.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PivotData } from './Utilities';\nimport TableRenderers from './TableRenderers';\n\n/* eslint-disable react/prop-types */\n\nconst PivotTable = React.memo(function PivotTable(props) {\n const Renderer = props.renderers[\n props.rendererName in props.renderers\n ? props.rendererName\n : Object.keys(props.renderers)[0]\n ];\n return <Renderer {...props} />;\n});\n\nPivotTable.displayName = 'PivotTable';\n\nPivotTable.propTypes = Object.assign({}, PivotData.propTypes, {\n rendererName: PropTypes.string,\n renderers: PropTypes.objectOf(PropTypes.func),\n});\n\nPivotTable.defaultProps = Object.assign({}, PivotData.defaultProps, {\n rendererName: 'Table',\n renderers: TableRenderers,\n});\n\nexport default PivotTable;\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAA8C,SAAAD,uBAAAK,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,gBAAAA,CAAA;AAE9C;;AAEA,IAAME,UAAU,gBAAGC,iBAAK,CAACC,IAAI,CAAC,SAASF,UAAUA,CAACG,KAAK,EAAE;EACvD,IAAMC,QAAQ,GAAGD,KAAK,CAACE,SAAS,CAC9BF,KAAK,CAACG,YAAY,IAAIH,KAAK,CAACE,SAAS,GACjCF,KAAK,CAACG,YAAY,GAClBC,MAAM,CAACC,IAAI,CAACL,KAAK,CAACE,SAAS,CAAC,CAAC,CAAC,CAAC,CACpC;EACD,oBAAOb,MAAA,YAAAiB,aAAA,CAACL,QAAQ,EAAKD,KAAQ,CAAC;AAChC,CAAC,CAAC;AAEFH,UAAU,CAACU,WAAW,GAAG,YAAY;AAErCV,UAAU,CAACW,SAAS,GAAGJ,MAAM,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEC,oBAAS,CAACF,SAAS,EAAE;EAC5DL,YAAY,EAAEQ,qBAAS,CAACC,MAAM;EAC9BV,SAAS,EAAES,qBAAS,CAACE,QAAQ,CAACF,qBAAS,CAACG,IAAI;AAC9C,CAAC,CAAC;AAEFjB,UAAU,CAACkB,YAAY,GAAGX,MAAM,CAACK,MAAM,CAAC,CAAC,CAAC,EAAEC,oBAAS,CAACK,YAAY,EAAE;EAClEZ,YAAY,EAAE,OAAO;EACrBD,SAAS,EAAEc;AACb,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,cAEYrB,UAAU","ignoreList":[]}
@@ -273,15 +273,112 @@ var DnDCell = function DnDCell(_ref4) {
273
273
  });
274
274
  }))));
275
275
  };
276
+
277
+ // ─── Extracted Helper: Renderer Dropdown ────────────────────────────────────────
278
+ var RendererDropdown = function RendererDropdown(_ref5) {
279
+ var rendererName = _ref5.rendererName,
280
+ renderers = _ref5.renderers,
281
+ isOpen = _ref5.isOpen,
282
+ uiState = _ref5.uiState,
283
+ setUiState = _ref5.setUiState;
284
+ return /*#__PURE__*/_react["default"].createElement("td", {
285
+ className: "pvtRenderers"
286
+ }, /*#__PURE__*/_react["default"].createElement(Dropdown, {
287
+ current: rendererName,
288
+ values: Object.keys(renderers),
289
+ open: isOpen('renderer'),
290
+ zIndex: isOpen('renderer') ? uiState.maxZIndex + 1 : 1,
291
+ toggle: function toggle() {
292
+ return setUiState(function (s) {
293
+ return _objectSpread(_objectSpread({}, s), {}, {
294
+ openDropdown: isOpen('renderer') ? false : 'renderer'
295
+ });
296
+ });
297
+ },
298
+ setValue: function setValue(v) {
299
+ return rendererName._updateProp('rendererName', v);
300
+ }
301
+ }));
302
+ };
303
+
304
+ // ─── Extracted Helper: Aggregator + Sort + Vals Controls ────────────────────────
305
+ var AggregatorControls = function AggregatorControls(_ref6) {
306
+ var aggregatorName = _ref6.aggregatorName,
307
+ aggregators = _ref6.aggregators,
308
+ vals = _ref6.vals,
309
+ pivotState = _ref6.pivotState,
310
+ hiddenAttributes = _ref6.hiddenAttributes,
311
+ hiddenFromAggregators = _ref6.hiddenFromAggregators,
312
+ isOpen = _ref6.isOpen,
313
+ uiState = _ref6.uiState,
314
+ setUiState = _ref6.setUiState,
315
+ actions = _ref6.actions,
316
+ rowOrder = _ref6.rowOrder,
317
+ colOrder = _ref6.colOrder,
318
+ sortIcons = _ref6.sortIcons,
319
+ numValsAllowed = _ref6.numValsAllowed;
320
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement(Dropdown, {
321
+ current: aggregatorName,
322
+ values: Object.keys(aggregators),
323
+ open: isOpen('aggregators'),
324
+ zIndex: isOpen('aggregators') ? uiState.maxZIndex + 1 : 1,
325
+ toggle: function toggle() {
326
+ return setUiState(function (s) {
327
+ return _objectSpread(_objectSpread({}, s), {}, {
328
+ openDropdown: isOpen('aggregators') ? false : 'aggregators'
329
+ });
330
+ });
331
+ },
332
+ setValue: function setValue(v) {
333
+ return actions.updateProp('aggregatorName', v);
334
+ }
335
+ }), /*#__PURE__*/_react["default"].createElement("a", {
336
+ role: "button",
337
+ className: "pvtRowOrder",
338
+ onClick: function onClick() {
339
+ return actions.updateProp('rowOrder', sortIcons[rowOrder].next);
340
+ }
341
+ }, sortIcons[rowOrder].rowSymbol), /*#__PURE__*/_react["default"].createElement("a", {
342
+ role: "button",
343
+ className: "pvtColOrder",
344
+ onClick: function onClick() {
345
+ return actions.updateProp('colOrder', sortIcons[colOrder].next);
346
+ }
347
+ }, sortIcons[colOrder].colSymbol), numValsAllowed > 0 && /*#__PURE__*/_react["default"].createElement("br", null), new Array(numValsAllowed).fill(null).map(function (_, i) {
348
+ return [/*#__PURE__*/_react["default"].createElement(Dropdown, {
349
+ key: i,
350
+ current: vals[i],
351
+ values: Object.keys(pivotState.attrValues).filter(function (e) {
352
+ return !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e);
353
+ }),
354
+ open: isOpen("val".concat(i)),
355
+ zIndex: isOpen("val".concat(i)) ? uiState.maxZIndex + 1 : 1,
356
+ toggle: function toggle() {
357
+ return setUiState(function (s) {
358
+ return _objectSpread(_objectSpread({}, s), {}, {
359
+ openDropdown: isOpen("val".concat(i)) ? false : "val".concat(i)
360
+ });
361
+ });
362
+ },
363
+ setValue: function setValue(value) {
364
+ var newVals = _toConsumableArray(vals);
365
+ newVals[i] = value;
366
+ actions.updateProp('vals', newVals);
367
+ }
368
+ }), i + 1 !== numValsAllowed ? /*#__PURE__*/_react["default"].createElement("br", {
369
+ key: "br".concat(i)
370
+ }) : null];
371
+ }));
372
+ };
276
373
  var PivotTableUI = function PivotTableUI(props) {
277
374
  var _aggregators$aggregat, _aggregators$aggregat2;
278
- // ─── Headless Core: toda la lógica de datos y props fluye a través del Core ───
375
+ // ─── Headless Core ───
279
376
  var _usePivot = (0, _usePivot2.usePivot)(props),
280
377
  pivotProps = _usePivot.props,
281
378
  pivotState = _usePivot.state,
282
379
  actions = _usePivot.actions;
283
380
 
284
- // ─── Estado local solo para UI (no pertenece al Core) ─────────────────────────
381
+ // ─── UI State local ───
285
382
  var _useState5 = (0, _react.useState)({
286
383
  zIndices: {},
287
384
  maxZIndex: 1000,
@@ -294,8 +391,6 @@ var PivotTableUI = function PivotTableUI(props) {
294
391
  _useState8 = _slicedToArray(_useState7, 2),
295
392
  activeId = _useState8[0],
296
393
  setActiveId = _useState8[1];
297
-
298
- // ─── Helpers de UI local ──────────────────────────────────────────────────────
299
394
  var moveFilterBoxToTop = (0, _react.useCallback)(function (attribute) {
300
395
  setUiState(function (s) {
301
396
  return _objectSpread(_objectSpread({}, s), {}, {
@@ -305,7 +400,7 @@ var PivotTableUI = function PivotTableUI(props) {
305
400
  });
306
401
  }, []);
307
402
 
308
- // ─── Derivados desde el Core ──────────────────────────────────────────────────
403
+ // ─── Derivados ───
309
404
  var _pivotProps$rows = pivotProps.rows,
310
405
  rows = _pivotProps$rows === void 0 ? [] : _pivotProps$rows,
311
406
  _pivotProps$cols = pivotProps.cols,
@@ -365,7 +460,7 @@ var PivotTableUI = function PivotTableUI(props) {
365
460
  return e && e.trim() !== '' && !hiddenAttributes.includes(e) && !hiddenFromDragDrop.includes(e);
366
461
  });
367
462
 
368
- // ─── DnD Zones ────────────────────────────────────────────────────────────────
463
+ // ─── DnD ───
369
464
  var getZoneOfItem = function getZoneOfItem(id) {
370
465
  if (rowAttrs.includes(id)) return 'rows';
371
466
  if (colAttrs.includes(id)) return 'cols';
@@ -395,14 +490,14 @@ var PivotTableUI = function PivotTableUI(props) {
395
490
  distance: 5
396
491
  }
397
492
  }));
398
- var handleDragStart = function handleDragStart(_ref5) {
399
- var active = _ref5.active;
493
+ var handleDragStart = function handleDragStart(_ref7) {
494
+ var active = _ref7.active;
400
495
  return setActiveId(active.id);
401
496
  };
402
- var handleDragOver = function handleDragOver(_ref6) {
497
+ var handleDragOver = function handleDragOver(_ref8) {
403
498
  var _over$data$current$so, _over$data;
404
- var active = _ref6.active,
405
- over = _ref6.over;
499
+ var active = _ref8.active,
500
+ over = _ref8.over;
406
501
  if (!over) return;
407
502
  var activeZone = getZoneOfItem(active.id);
408
503
  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);
@@ -419,10 +514,10 @@ var PivotTableUI = function PivotTableUI(props) {
419
514
  getUpdaterByZone(activeZone)(activeList);
420
515
  getUpdaterByZone(overZone)(overList);
421
516
  };
422
- var handleDragEnd = function handleDragEnd(_ref7) {
517
+ var handleDragEnd = function handleDragEnd(_ref9) {
423
518
  var _over$data$current$so2, _over$data2;
424
- var active = _ref7.active,
425
- over = _ref7.over;
519
+ var active = _ref9.active,
520
+ over = _ref9.over;
426
521
  setActiveId(null);
427
522
  if (!over) return;
428
523
  var activeZone = getZoneOfItem(active.id);
@@ -436,7 +531,7 @@ var PivotTableUI = function PivotTableUI(props) {
436
531
  }
437
532
  };
438
533
 
439
- // ─── Dropdowns y controles ────────────────────────────────────────────────────
534
+ // ─── Controls ───
440
535
  var isOpen = function isOpen(dropdown) {
441
536
  return uiState.openDropdown === dropdown;
442
537
  };
@@ -459,8 +554,6 @@ var PivotTableUI = function PivotTableUI(props) {
459
554
  next: 'key_a_to_z'
460
555
  }
461
556
  };
462
-
463
- // Estado combinado para DnDCell (necesita zIndices del UI local + attrValues del Core)
464
557
  var combinedState = {
465
558
  attrValues: pivotState.attrValues,
466
559
  zIndices: uiState.zIndices,
@@ -563,6 +656,43 @@ var PivotTableUI = function PivotTableUI(props) {
563
656
  }, n, " / p\xE1g");
564
657
  }))));
565
658
  };
659
+
660
+ // ─── Shared renderer/aggregator controls ───
661
+ var rendererDropdown = /*#__PURE__*/_react["default"].createElement(Dropdown, {
662
+ current: actualRendererName,
663
+ values: Object.keys(renderers),
664
+ open: isOpen('renderer'),
665
+ zIndex: isOpen('renderer') ? uiState.maxZIndex + 1 : 1,
666
+ toggle: function toggle() {
667
+ return setUiState(function (s) {
668
+ return _objectSpread(_objectSpread({}, s), {}, {
669
+ openDropdown: isOpen('renderer') ? false : 'renderer'
670
+ });
671
+ });
672
+ },
673
+ setValue: function setValue(v) {
674
+ return actions.updateProp('rendererName', v);
675
+ }
676
+ });
677
+ var aggControls = /*#__PURE__*/_react["default"].createElement(AggregatorControls, {
678
+ aggregatorName: aggregatorName,
679
+ aggregators: aggregators,
680
+ vals: vals,
681
+ pivotState: pivotState,
682
+ hiddenAttributes: hiddenAttributes,
683
+ hiddenFromAggregators: hiddenFromAggregators,
684
+ isOpen: isOpen,
685
+ uiState: uiState,
686
+ setUiState: setUiState,
687
+ actions: actions,
688
+ rowOrder: rowOrder,
689
+ colOrder: colOrder,
690
+ sortIcons: sortIcons,
691
+ numValsAllowed: numValsAllowed
692
+ });
693
+ var outputCell = /*#__PURE__*/_react["default"].createElement("td", {
694
+ className: "pvtOutput"
695
+ }, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], componentProps), pagination && renderFooter());
566
696
  return /*#__PURE__*/_react["default"].createElement(_core.DndContext, {
567
697
  sensors: sensors,
568
698
  collisionDetection: _core.closestCorners,
@@ -581,80 +711,14 @@ var PivotTableUI = function PivotTableUI(props) {
581
711
  }
582
712
  }, horizUnused ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
583
713
  className: "pvtRenderers"
584
- }, /*#__PURE__*/_react["default"].createElement(Dropdown, {
585
- current: actualRendererName,
586
- values: Object.keys(renderers),
587
- open: isOpen('renderer'),
588
- zIndex: isOpen('renderer') ? uiState.maxZIndex + 1 : 1,
589
- toggle: function toggle() {
590
- return setUiState(function (s) {
591
- return _objectSpread(_objectSpread({}, s), {}, {
592
- openDropdown: isOpen('renderer') ? false : 'renderer'
593
- });
594
- });
595
- },
596
- setValue: function setValue(v) {
597
- return actions.updateProp('rendererName', v);
598
- }
599
- })), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
714
+ }, rendererDropdown), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
600
715
  id: "unused",
601
716
  items: unusedAttrs,
602
717
  classes: "pvtAxisContainer pvtUnused pvtHorizList",
603
718
  isHorizontal: true
604
719
  }, sharedCellProps))), /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
605
720
  className: "pvtVals"
606
- }, /*#__PURE__*/_react["default"].createElement(Dropdown, {
607
- current: aggregatorName,
608
- values: Object.keys(aggregators),
609
- open: isOpen('aggregators'),
610
- zIndex: isOpen('aggregators') ? uiState.maxZIndex + 1 : 1,
611
- toggle: function toggle() {
612
- return setUiState(function (s) {
613
- return _objectSpread(_objectSpread({}, s), {}, {
614
- openDropdown: isOpen('aggregators') ? false : 'aggregators'
615
- });
616
- });
617
- },
618
- setValue: function setValue(v) {
619
- return actions.updateProp('aggregatorName', v);
620
- }
621
- }), /*#__PURE__*/_react["default"].createElement("a", {
622
- role: "button",
623
- className: "pvtRowOrder",
624
- onClick: function onClick() {
625
- return actions.updateProp('rowOrder', sortIcons[rowOrder].next);
626
- }
627
- }, sortIcons[rowOrder].rowSymbol), /*#__PURE__*/_react["default"].createElement("a", {
628
- role: "button",
629
- className: "pvtColOrder",
630
- onClick: function onClick() {
631
- return actions.updateProp('colOrder', sortIcons[colOrder].next);
632
- }
633
- }, sortIcons[colOrder].colSymbol), numValsAllowed > 0 && /*#__PURE__*/_react["default"].createElement("br", null), new Array(numValsAllowed).fill(null).map(function (_, i) {
634
- return [/*#__PURE__*/_react["default"].createElement(Dropdown, {
635
- key: i,
636
- current: vals[i],
637
- values: Object.keys(pivotState.attrValues).filter(function (e) {
638
- return !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e);
639
- }),
640
- open: isOpen("val".concat(i)),
641
- zIndex: isOpen("val".concat(i)) ? uiState.maxZIndex + 1 : 1,
642
- toggle: function toggle() {
643
- return setUiState(function (s) {
644
- return _objectSpread(_objectSpread({}, s), {}, {
645
- openDropdown: isOpen("val".concat(i)) ? false : "val".concat(i)
646
- });
647
- });
648
- },
649
- setValue: function setValue(value) {
650
- var newVals = _toConsumableArray(vals);
651
- newVals[i] = value;
652
- actions.updateProp('vals', newVals);
653
- }
654
- }), i + 1 !== numValsAllowed ? /*#__PURE__*/_react["default"].createElement("br", {
655
- key: "br".concat(i)
656
- }) : null];
657
- })), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
721
+ }, aggControls), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
658
722
  id: "cols",
659
723
  items: colAttrs,
660
724
  classes: "pvtAxisContainer pvtHorizList pvtCols",
@@ -664,79 +728,11 @@ var PivotTableUI = function PivotTableUI(props) {
664
728
  items: rowAttrs,
665
729
  classes: "pvtAxisContainer pvtVertList pvtRows",
666
730
  isHorizontal: false
667
- }, sharedCellProps)), /*#__PURE__*/_react["default"].createElement("td", {
668
- className: "pvtOutput"
669
- }, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], componentProps), pagination && renderFooter()))) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
731
+ }, sharedCellProps)), outputCell)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("tr", null, /*#__PURE__*/_react["default"].createElement("td", {
670
732
  className: "pvtRenderers"
671
- }, /*#__PURE__*/_react["default"].createElement(Dropdown, {
672
- current: actualRendererName,
673
- values: Object.keys(renderers),
674
- open: isOpen('renderer'),
675
- zIndex: isOpen('renderer') ? uiState.maxZIndex + 1 : 1,
676
- toggle: function toggle() {
677
- return setUiState(function (s) {
678
- return _objectSpread(_objectSpread({}, s), {}, {
679
- openDropdown: isOpen('renderer') ? false : 'renderer'
680
- });
681
- });
682
- },
683
- setValue: function setValue(v) {
684
- return actions.updateProp('rendererName', v);
685
- }
686
- })), /*#__PURE__*/_react["default"].createElement("td", {
733
+ }, rendererDropdown), /*#__PURE__*/_react["default"].createElement("td", {
687
734
  className: "pvtVals"
688
- }, /*#__PURE__*/_react["default"].createElement(Dropdown, {
689
- current: aggregatorName,
690
- values: Object.keys(aggregators),
691
- open: isOpen('aggregators'),
692
- zIndex: isOpen('aggregators') ? uiState.maxZIndex + 1 : 1,
693
- toggle: function toggle() {
694
- return setUiState(function (s) {
695
- return _objectSpread(_objectSpread({}, s), {}, {
696
- openDropdown: isOpen('aggregators') ? false : 'aggregators'
697
- });
698
- });
699
- },
700
- setValue: function setValue(v) {
701
- return actions.updateProp('aggregatorName', v);
702
- }
703
- }), /*#__PURE__*/_react["default"].createElement("a", {
704
- role: "button",
705
- className: "pvtRowOrder",
706
- onClick: function onClick() {
707
- return actions.updateProp('rowOrder', sortIcons[rowOrder].next);
708
- }
709
- }, sortIcons[rowOrder].rowSymbol), /*#__PURE__*/_react["default"].createElement("a", {
710
- role: "button",
711
- className: "pvtColOrder",
712
- onClick: function onClick() {
713
- return actions.updateProp('colOrder', sortIcons[colOrder].next);
714
- }
715
- }, sortIcons[colOrder].colSymbol), numValsAllowed > 0 && /*#__PURE__*/_react["default"].createElement("br", null), new Array(numValsAllowed).fill(null).map(function (_, i) {
716
- return [/*#__PURE__*/_react["default"].createElement(Dropdown, {
717
- key: i,
718
- current: vals[i],
719
- values: Object.keys(pivotState.attrValues).filter(function (e) {
720
- return !hiddenAttributes.includes(e) && !hiddenFromAggregators.includes(e);
721
- }),
722
- open: isOpen("val".concat(i)),
723
- zIndex: isOpen("val".concat(i)) ? uiState.maxZIndex + 1 : 1,
724
- toggle: function toggle() {
725
- return setUiState(function (s) {
726
- return _objectSpread(_objectSpread({}, s), {}, {
727
- openDropdown: isOpen("val".concat(i)) ? false : "val".concat(i)
728
- });
729
- });
730
- },
731
- setValue: function setValue(value) {
732
- var newVals = _toConsumableArray(vals);
733
- newVals[i] = value;
734
- actions.updateProp('vals', newVals);
735
- }
736
- }), i + 1 !== numValsAllowed ? /*#__PURE__*/_react["default"].createElement("br", {
737
- key: "br".concat(i)
738
- }) : null];
739
- })), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
735
+ }, aggControls), /*#__PURE__*/_react["default"].createElement(DnDCell, _extends({
740
736
  id: "cols",
741
737
  items: colAttrs,
742
738
  classes: "pvtAxisContainer pvtHorizList pvtCols",
@@ -751,9 +747,7 @@ var PivotTableUI = function PivotTableUI(props) {
751
747
  items: rowAttrs,
752
748
  classes: "pvtAxisContainer pvtVertList pvtRows",
753
749
  isHorizontal: false
754
- }, sharedCellProps)), /*#__PURE__*/_react["default"].createElement("td", {
755
- className: "pvtOutput"
756
- }, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], componentProps), pagination && renderFooter()))))), /*#__PURE__*/_react["default"].createElement(_core.DragOverlay, null, activeId ? /*#__PURE__*/_react["default"].createElement("ul", {
750
+ }, sharedCellProps)), outputCell)))), /*#__PURE__*/_react["default"].createElement(_core.DragOverlay, null, activeId ? /*#__PURE__*/_react["default"].createElement("ul", {
757
751
  style: {
758
752
  listStyle: 'none',
759
753
  padding: 0,