react-pivottable-plus 1.0.14 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +2 -0
  2. package/dist/PivotTableUI.js +147 -213
  3. package/dist/PivotTableUI.js.map +1 -1
  4. package/dist/TableRenderers.js +273 -49
  5. package/dist/TableRenderers.js.map +1 -1
  6. package/dist/core/CellPipeline.js +167 -0
  7. package/dist/core/CellPipeline.js.map +1 -0
  8. package/dist/core/ColumnEngine.js +299 -0
  9. package/dist/core/ColumnEngine.js.map +1 -0
  10. package/dist/core/EventBus.js +109 -0
  11. package/dist/core/EventBus.js.map +1 -0
  12. package/dist/core/ModuleRegistry.js +140 -0
  13. package/dist/core/ModuleRegistry.js.map +1 -0
  14. package/dist/core/PivotCore.js +254 -0
  15. package/dist/core/PivotCore.js.map +1 -0
  16. package/dist/core/PivotEngine.js +151 -0
  17. package/dist/core/PivotEngine.js.map +1 -0
  18. package/dist/core/StateManager.js +142 -0
  19. package/dist/core/StateManager.js.map +1 -0
  20. package/dist/core/VirtualScroller.js +138 -0
  21. package/dist/core/VirtualScroller.js.map +1 -0
  22. package/dist/core/api/ColumnApi.js +162 -0
  23. package/dist/core/api/ColumnApi.js.map +1 -0
  24. package/dist/core/api/GridApi.js +208 -0
  25. package/dist/core/api/GridApi.js.map +1 -0
  26. package/dist/core/index.js +89 -0
  27. package/dist/core/index.js.map +1 -0
  28. package/dist/core/rowModels/ClientSideRowModel.js +177 -0
  29. package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
  30. package/dist/core/rowModels/index.js +13 -0
  31. package/dist/core/rowModels/index.js.map +1 -0
  32. package/dist/hooks/useColumnResize.js +112 -0
  33. package/dist/hooks/useColumnResize.js.map +1 -0
  34. package/dist/hooks/usePivot.js +68 -155
  35. package/dist/hooks/usePivot.js.map +1 -1
  36. package/dist/modules/FilterModule.js +156 -0
  37. package/dist/modules/FilterModule.js.map +1 -0
  38. package/dist/modules/PaginationModule.js +115 -0
  39. package/dist/modules/PaginationModule.js.map +1 -0
  40. package/dist/modules/SortModule.js +88 -0
  41. package/dist/modules/SortModule.js.map +1 -0
  42. package/dist/modules/ThemeModule.js +83 -0
  43. package/dist/modules/ThemeModule.js.map +1 -0
  44. package/dist/modules/VirtualizationModule.js +89 -0
  45. package/dist/modules/VirtualizationModule.js.map +1 -0
  46. package/dist/modules/index.js +41 -0
  47. package/dist/modules/index.js.map +1 -0
  48. package/dist/react/index.js +13 -0
  49. package/dist/react/index.js.map +1 -0
  50. package/dist/react/usePivotGrid.js +116 -0
  51. package/dist/react/usePivotGrid.js.map +1 -0
  52. package/dist/renderers/RadixUI.js +1 -1
  53. package/dist/renderers/RadixUI.js.map +1 -1
  54. package/dist/renderers/ShadcnDashboardUI.js +1 -1
  55. package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
  56. package/dist/renderers/TailwindUI.js +1 -1
  57. package/dist/renderers/TailwindUI.js.map +1 -1
  58. package/package.json +8 -5
  59. package/pivottable.css +69 -12
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_PivotEngine","require","_EventBus","_StateManager","_ModuleRegistry","_CellPipeline","_VirtualScroller","_ColumnEngine","_ClientSideRowModel","_GridApi","_ColumnApi","_PivotCore"],"sources":["../../src/core/index.js"],"sourcesContent":["// Core engine\nexport { PivotEngine } from './PivotEngine';\nexport { EventBus } from './EventBus';\nexport { StateManager } from './StateManager';\nexport { ModuleRegistry } from './ModuleRegistry';\nexport { CellPipeline } from './CellPipeline';\nexport { VirtualScroller } from './VirtualScroller';\nexport { ColumnEngine, COLUMN_DEF_DEFAULTS } from './ColumnEngine';\n\n// Row Models\nexport { ClientSideRowModel } from './rowModels/ClientSideRowModel';\n\n// APIs\nexport { GridApi } from './api/GridApi';\nexport { ColumnApi } from './api/ColumnApi';\n\n// Backward compatibility (Phase 1 class, still usable)\nexport { PivotCore } from './PivotCore';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,aAAA,GAAAJ,OAAA;AACA,IAAAK,gBAAA,GAAAL,OAAA;AACA,IAAAM,aAAA,GAAAN,OAAA;AAGA,IAAAO,mBAAA,GAAAP,OAAA;AAGA,IAAAQ,QAAA,GAAAR,OAAA;AACA,IAAAS,UAAA,GAAAT,OAAA;AAGA,IAAAU,UAAA,GAAAV,OAAA","ignoreList":[]}
@@ -0,0 +1,177 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ClientSideRowModel = void 0;
7
+ var _Utilities = require("../../Utilities");
8
+ 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); }
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
13
+ 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); } }
14
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
15
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
16
+ 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); }
17
+ /**
18
+ * ClientSideRowModel — Pipeline de datos client-side.
19
+ *
20
+ * Formaliza el flujo:
21
+ * Raw Data → Derive → Filter → Pivot (PivotData) → Sort → Paginate
22
+ *
23
+ * Todos los cálculos ocurren en memoria sobre el dataset completo.
24
+ * Los totales siempre se calculan sobre TODOS los datos.
25
+ */
26
+ var ClientSideRowModel = exports.ClientSideRowModel = /*#__PURE__*/function () {
27
+ function ClientSideRowModel() {
28
+ _classCallCheck(this, ClientSideRowModel);
29
+ this.type = 'clientSide';
30
+ this._engine = null;
31
+ this._pivotData = null;
32
+ this._allRowKeys = [];
33
+ this._allColKeys = [];
34
+ this._displayedRowKeys = [];
35
+ this._displayedColKeys = [];
36
+ }
37
+
38
+ /**
39
+ * Inicializar con referencia al engine.
40
+ */
41
+ return _createClass(ClientSideRowModel, [{
42
+ key: "init",
43
+ value: function init(engine) {
44
+ this._engine = engine;
45
+ }
46
+
47
+ /**
48
+ * Ejecutar el pipeline completo.
49
+ * Llamado automáticamente cuando cambia el estado.
50
+ * @returns {{ pivotData, allRowKeys, allColKeys, displayedRowKeys, totalRowCount }}
51
+ */
52
+ }, {
53
+ key: "process",
54
+ value: function process() {
55
+ var config = this._engine.stateManager.getConfig();
56
+ var computed = this._engine.stateManager.getComputed();
57
+
58
+ // 1. Crear PivotData con los datos materializados
59
+ // PivotData internamente hace: derive → filter → group → aggregate
60
+ this._pivotData = new _Utilities.PivotData(_objectSpread(_objectSpread({}, config), {}, {
61
+ data: computed.materializedInput
62
+ }));
63
+
64
+ // 2. Obtener todas las keys (antes de paginación)
65
+ this._allRowKeys = this._pivotData.getRowKeys();
66
+ this._allColKeys = this._pivotData.getColKeys();
67
+
68
+ // 3. Aplicar paginación a las filas (sin afectar cálculos de totales)
69
+ var displayedRowKeys = this._allRowKeys;
70
+ var startOffset = 0;
71
+ if (config.pagination && config.pageSize) {
72
+ var start = ((config.page || 1) - 1) * config.pageSize;
73
+ startOffset = start;
74
+ var end = start + config.pageSize;
75
+ displayedRowKeys = this._allRowKeys.slice(start, end);
76
+ }
77
+ this._displayedRowKeys = displayedRowKeys;
78
+ this._displayedColKeys = this._allColKeys;
79
+ return {
80
+ pivotData: this._pivotData,
81
+ allRowKeys: this._allRowKeys,
82
+ allColKeys: this._allColKeys,
83
+ displayedRowKeys: this._displayedRowKeys,
84
+ displayedColKeys: this._displayedColKeys,
85
+ totalRowCount: this._allRowKeys.length,
86
+ totalColCount: this._allColKeys.length,
87
+ startOffset: startOffset,
88
+ totalPages: config.pagination ? Math.ceil(this._allRowKeys.length / (config.pageSize || 20)) : 1
89
+ };
90
+ }
91
+
92
+ // ─── Accessors ────────────────────────────────────────────────────────────────
93
+ }, {
94
+ key: "getPivotData",
95
+ value: function getPivotData() {
96
+ return this._pivotData;
97
+ }
98
+ }, {
99
+ key: "getAllRowKeys",
100
+ value: function getAllRowKeys() {
101
+ return this._allRowKeys;
102
+ }
103
+ }, {
104
+ key: "getAllColKeys",
105
+ value: function getAllColKeys() {
106
+ return this._allColKeys;
107
+ }
108
+ }, {
109
+ key: "getDisplayedRowKeys",
110
+ value: function getDisplayedRowKeys() {
111
+ return this._displayedRowKeys;
112
+ }
113
+ }, {
114
+ key: "getRowCount",
115
+ value: function getRowCount() {
116
+ return this._allRowKeys.length;
117
+ }
118
+
119
+ /**
120
+ * Obtener un aggregator para una celda o total.
121
+ * Siempre calcula sobre TODOS los datos.
122
+ */
123
+ }, {
124
+ key: "getAggregator",
125
+ value: function getAggregator(rowKey, colKey) {
126
+ if (!this._pivotData) return {
127
+ value: function value() {
128
+ return null;
129
+ },
130
+ format: function format() {
131
+ return '';
132
+ }
133
+ };
134
+ return this._pivotData.getAggregator(rowKey, colKey);
135
+ }
136
+
137
+ /**
138
+ * Obtener totales (siempre sobre dataset completo).
139
+ */
140
+ }, {
141
+ key: "getGrandTotal",
142
+ value: function getGrandTotal() {
143
+ return this.getAggregator([], []);
144
+ }
145
+ }, {
146
+ key: "getRowTotal",
147
+ value: function getRowTotal(rowKey) {
148
+ return this.getAggregator(rowKey, []);
149
+ }
150
+ }, {
151
+ key: "getColTotal",
152
+ value: function getColTotal(colKey) {
153
+ return this.getAggregator([], colKey);
154
+ }
155
+
156
+ /**
157
+ * Iterar sobre cada registro que coincida con ciertos criterios.
158
+ */
159
+ }, {
160
+ key: "forEachMatchingRecord",
161
+ value: function forEachMatchingRecord(criteria, callback) {
162
+ if (this._pivotData) {
163
+ this._pivotData.forEachMatchingRecord(criteria, callback);
164
+ }
165
+ }
166
+ }, {
167
+ key: "destroy",
168
+ value: function destroy() {
169
+ this._engine = null;
170
+ this._pivotData = null;
171
+ this._allRowKeys = [];
172
+ this._allColKeys = [];
173
+ this._displayedRowKeys = [];
174
+ }
175
+ }]);
176
+ }();
177
+ //# sourceMappingURL=ClientSideRowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClientSideRowModel.js","names":["_Utilities","require","_typeof","o","Symbol","iterator","constructor","prototype","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","_classCallCheck","a","n","TypeError","_defineProperties","key","_createClass","i","_toPrimitive","toPrimitive","call","String","Number","ClientSideRowModel","exports","type","_engine","_pivotData","_allRowKeys","_allColKeys","_displayedRowKeys","_displayedColKeys","init","engine","process","config","stateManager","getConfig","computed","getComputed","PivotData","data","materializedInput","getRowKeys","getColKeys","displayedRowKeys","startOffset","pagination","pageSize","start","page","end","slice","pivotData","allRowKeys","allColKeys","displayedColKeys","totalRowCount","totalColCount","totalPages","Math","ceil","getPivotData","getAllRowKeys","getAllColKeys","getDisplayedRowKeys","getRowCount","getAggregator","rowKey","colKey","format","getGrandTotal","getRowTotal","getColTotal","forEachMatchingRecord","criteria","callback","destroy"],"sources":["../../../src/core/rowModels/ClientSideRowModel.js"],"sourcesContent":["import { PivotData } from '../../Utilities';\n\n/**\n * ClientSideRowModel — Pipeline de datos client-side.\n *\n * Formaliza el flujo:\n * Raw Data → Derive → Filter → Pivot (PivotData) → Sort → Paginate\n *\n * Todos los cálculos ocurren en memoria sobre el dataset completo.\n * Los totales siempre se calculan sobre TODOS los datos.\n */\nexport class ClientSideRowModel {\n constructor() {\n this.type = 'clientSide';\n this._engine = null;\n this._pivotData = null;\n this._allRowKeys = [];\n this._allColKeys = [];\n this._displayedRowKeys = [];\n this._displayedColKeys = [];\n }\n\n /**\n * Inicializar con referencia al engine.\n */\n init(engine) {\n this._engine = engine;\n }\n\n /**\n * Ejecutar el pipeline completo.\n * Llamado automáticamente cuando cambia el estado.\n * @returns {{ pivotData, allRowKeys, allColKeys, displayedRowKeys, totalRowCount }}\n */\n process() {\n const config = this._engine.stateManager.getConfig();\n const computed = this._engine.stateManager.getComputed();\n\n // 1. Crear PivotData con los datos materializados\n // PivotData internamente hace: derive → filter → group → aggregate\n this._pivotData = new PivotData({\n ...config,\n data: computed.materializedInput,\n });\n\n // 2. Obtener todas las keys (antes de paginación)\n this._allRowKeys = this._pivotData.getRowKeys();\n this._allColKeys = this._pivotData.getColKeys();\n\n // 3. Aplicar paginación a las filas (sin afectar cálculos de totales)\n let displayedRowKeys = this._allRowKeys;\n let startOffset = 0;\n\n if (config.pagination && config.pageSize) {\n const start = ((config.page || 1) - 1) * config.pageSize;\n startOffset = start;\n const end = start + config.pageSize;\n displayedRowKeys = this._allRowKeys.slice(start, end);\n }\n\n this._displayedRowKeys = displayedRowKeys;\n this._displayedColKeys = this._allColKeys;\n\n return {\n pivotData: this._pivotData,\n allRowKeys: this._allRowKeys,\n allColKeys: this._allColKeys,\n displayedRowKeys: this._displayedRowKeys,\n displayedColKeys: this._displayedColKeys,\n totalRowCount: this._allRowKeys.length,\n totalColCount: this._allColKeys.length,\n startOffset,\n totalPages: config.pagination\n ? Math.ceil(this._allRowKeys.length / (config.pageSize || 20))\n : 1,\n };\n }\n\n // ─── Accessors ────────────────────────────────────────────────────────────────\n\n getPivotData() {\n return this._pivotData;\n }\n\n getAllRowKeys() {\n return this._allRowKeys;\n }\n\n getAllColKeys() {\n return this._allColKeys;\n }\n\n getDisplayedRowKeys() {\n return this._displayedRowKeys;\n }\n\n getRowCount() {\n return this._allRowKeys.length;\n }\n\n /**\n * Obtener un aggregator para una celda o total.\n * Siempre calcula sobre TODOS los datos.\n */\n getAggregator(rowKey, colKey) {\n if (!this._pivotData) return { value: () => null, format: () => '' };\n return this._pivotData.getAggregator(rowKey, colKey);\n }\n\n /**\n * Obtener totales (siempre sobre dataset completo).\n */\n getGrandTotal() {\n return this.getAggregator([], []);\n }\n\n getRowTotal(rowKey) {\n return this.getAggregator(rowKey, []);\n }\n\n getColTotal(colKey) {\n return this.getAggregator([], colKey);\n }\n\n /**\n * Iterar sobre cada registro que coincida con ciertos criterios.\n */\n forEachMatchingRecord(criteria, callback) {\n if (this._pivotData) {\n this._pivotData.forEachMatchingRecord(criteria, callback);\n }\n }\n\n destroy() {\n this._engine = null;\n this._pivotData = null;\n this._allRowKeys = [];\n this._allColKeys = [];\n this._displayedRowKeys = [];\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "ClientSideRowModel", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _ClientSideRowModel.ClientSideRowModel;
10
+ }
11
+ });
12
+ var _ClientSideRowModel = require("./ClientSideRowModel");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_ClientSideRowModel","require"],"sources":["../../../src/core/rowModels/index.js"],"sourcesContent":["export { ClientSideRowModel } from './ClientSideRowModel';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,mBAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,112 @@
1
+ "use strict";
2
+
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.useColumnResize = useColumnResize;
8
+ var _react = require("react");
9
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
10
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
11
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
12
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
13
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
14
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
15
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
16
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
17
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
18
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
19
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
20
+ /**
21
+ * useColumnResize — Hook para gestionar el redimensionado de columnas.
22
+ *
23
+ * @param {Object} options
24
+ * @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }
25
+ * @param {number} options.minWidth - Ancho mínimo en px (default: 50)
26
+ * @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)
27
+ * @param {Function} options.onWidthChange - Callback cuando cambian los anchos
28
+ *
29
+ * @returns {{ widths: Object, startResize: Function, isResizing: boolean }}
30
+ */
31
+ function useColumnResize() {
32
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
33
+ _ref$initialWidths = _ref.initialWidths,
34
+ initialWidths = _ref$initialWidths === void 0 ? {} : _ref$initialWidths,
35
+ _ref$minWidth = _ref.minWidth,
36
+ minWidth = _ref$minWidth === void 0 ? 50 : _ref$minWidth,
37
+ _ref$maxWidth = _ref.maxWidth,
38
+ maxWidth = _ref$maxWidth === void 0 ? null : _ref$maxWidth,
39
+ _ref$onWidthChange = _ref.onWidthChange,
40
+ onWidthChange = _ref$onWidthChange === void 0 ? null : _ref$onWidthChange;
41
+ // widths: { [colKey]: number }
42
+ var _useState = (0, _react.useState)(initialWidths),
43
+ _useState2 = _slicedToArray(_useState, 2),
44
+ widths = _useState2[0],
45
+ setWidths = _useState2[1];
46
+
47
+ // Ref para el estado de drag activo (evita closures obsoletas)
48
+ var dragRef = (0, _react.useRef)(null);
49
+ var _useState3 = (0, _react.useState)(false),
50
+ _useState4 = _slicedToArray(_useState3, 2),
51
+ isResizing = _useState4[0],
52
+ setIsResizing = _useState4[1];
53
+
54
+ /**
55
+ * Iniciar resize para una columna específica.
56
+ * @param {string} colKey - Identificador único de la columna
57
+ * @param {PointerEvent} e
58
+ */
59
+ var startResize = (0, _react.useCallback)(function (colKey, e) {
60
+ e.preventDefault();
61
+ e.stopPropagation();
62
+ var th = e.currentTarget.closest('th');
63
+ var startWidth = th ? th.offsetWidth : widths[colKey] || 100;
64
+ dragRef.current = {
65
+ colKey: colKey,
66
+ startX: e.clientX,
67
+ startWidth: startWidth
68
+ };
69
+ setIsResizing(true);
70
+ document.body.classList.add('pvt-is-resizing');
71
+ var onPointerMove = function onPointerMove(moveEvent) {
72
+ if (!dragRef.current) return;
73
+ var _dragRef$current = dragRef.current,
74
+ key = _dragRef$current.colKey,
75
+ startX = _dragRef$current.startX,
76
+ sw = _dragRef$current.startWidth;
77
+ var delta = moveEvent.clientX - startX;
78
+ var newWidth = sw + delta;
79
+
80
+ // Aplicar restricciones
81
+ newWidth = Math.max(minWidth, newWidth);
82
+ if (maxWidth) newWidth = Math.min(maxWidth, newWidth);
83
+ setWidths(function (prev) {
84
+ return _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, key, newWidth));
85
+ });
86
+ };
87
+ var _onPointerUp = function onPointerUp() {
88
+ if (!dragRef.current) return;
89
+ var key = dragRef.current.colKey;
90
+ setWidths(function (prev) {
91
+ var next = _objectSpread({}, prev);
92
+ if (onWidthChange) {
93
+ onWidthChange(next);
94
+ }
95
+ return next;
96
+ });
97
+ dragRef.current = null;
98
+ setIsResizing(false);
99
+ document.body.classList.remove('pvt-is-resizing');
100
+ window.removeEventListener('pointermove', onPointerMove);
101
+ window.removeEventListener('pointerup', _onPointerUp);
102
+ };
103
+ window.addEventListener('pointermove', onPointerMove);
104
+ window.addEventListener('pointerup', _onPointerUp);
105
+ }, [minWidth, maxWidth, onWidthChange, widths]);
106
+ return {
107
+ widths: widths,
108
+ startResize: startResize,
109
+ isResizing: isResizing
110
+ };
111
+ }
112
+ //# sourceMappingURL=useColumnResize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useColumnResize.js","names":["_react","require","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","value","configurable","writable","i","_toPrimitive","_typeof","Symbol","toPrimitive","call","TypeError","String","Number","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","a","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","n","l","iterator","u","f","next","done","isArray","useColumnResize","_ref","undefined","_ref$initialWidths","initialWidths","_ref$minWidth","minWidth","_ref$maxWidth","maxWidth","_ref$onWidthChange","onWidthChange","_useState","useState","_useState2","widths","setWidths","dragRef","useRef","_useState3","_useState4","isResizing","setIsResizing","startResize","useCallback","colKey","preventDefault","stopPropagation","th","currentTarget","closest","startWidth","offsetWidth","current","startX","clientX","document","body","classList","add","onPointerMove","moveEvent","_dragRef$current","key","sw","delta","newWidth","Math","max","min","prev","onPointerUp","remove","window","removeEventListener","addEventListener"],"sources":["../../src/hooks/useColumnResize.js"],"sourcesContent":["import { useRef, useState, useCallback } from 'react';\n\n/**\n * useColumnResize — Hook para gestionar el redimensionado de columnas.\n *\n * @param {Object} options\n * @param {Object} options.initialWidths - Anchos iniciales { [colKey]: number }\n * @param {number} options.minWidth - Ancho mínimo en px (default: 50)\n * @param {number} options.maxWidth - Ancho máximo en px (default: sin límite)\n * @param {Function} options.onWidthChange - Callback cuando cambian los anchos\n *\n * @returns {{ widths: Object, startResize: Function, isResizing: boolean }}\n */\nexport function useColumnResize({\n initialWidths = {},\n minWidth = 50,\n maxWidth = null,\n onWidthChange = null,\n} = {}) {\n // widths: { [colKey]: number }\n const [widths, setWidths] = useState(initialWidths);\n\n // Ref para el estado de drag activo (evita closures obsoletas)\n const dragRef = useRef(null);\n const [isResizing, setIsResizing] = useState(false);\n\n /**\n * Iniciar resize para una columna específica.\n * @param {string} colKey - Identificador único de la columna\n * @param {PointerEvent} e\n */\n const startResize = useCallback((colKey, e) => {\n e.preventDefault();\n e.stopPropagation();\n\n const th = e.currentTarget.closest('th');\n const startWidth = th ? th.offsetWidth : (widths[colKey] || 100);\n\n dragRef.current = {\n colKey,\n startX: e.clientX,\n startWidth,\n };\n\n setIsResizing(true);\n document.body.classList.add('pvt-is-resizing');\n\n const onPointerMove = (moveEvent) => {\n if (!dragRef.current) return;\n const { colKey: key, startX, startWidth: sw } = dragRef.current;\n const delta = moveEvent.clientX - startX;\n let newWidth = sw + delta;\n\n // Aplicar restricciones\n newWidth = Math.max(minWidth, newWidth);\n if (maxWidth) newWidth = Math.min(maxWidth, newWidth);\n\n setWidths(prev => ({ ...prev, [key]: newWidth }));\n };\n\n const onPointerUp = () => {\n if (!dragRef.current) return;\n const { colKey: key } = dragRef.current;\n\n setWidths(prev => {\n const next = { ...prev };\n if (onWidthChange) {\n onWidthChange(next);\n }\n return next;\n });\n\n dragRef.current = null;\n setIsResizing(false);\n document.body.classList.remove('pvt-is-resizing');\n\n window.removeEventListener('pointermove', onPointerMove);\n window.removeEventListener('pointerup', onPointerUp);\n };\n\n window.addEventListener('pointermove', onPointerMove);\n window.addEventListener('pointerup', onPointerUp);\n }, [minWidth, maxWidth, onWidthChange, widths]);\n\n return { widths, startResize, isResizing };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,181 +1,94 @@
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
  });
7
6
  exports.usePivot = usePivot;
8
7
  var _react = require("react");
9
- var _Utilities = require("../Utilities");
8
+ var _PivotEngine = require("../core/PivotEngine");
9
+ var _FilterModule = require("../modules/FilterModule");
10
+ var _PaginationModule = require("../modules/PaginationModule");
11
+ var _SortModule = require("../modules/SortModule");
12
+ 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); }
10
13
  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; }
11
14
  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; }
12
15
  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; }
13
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
14
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); }
15
- function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
16
- 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."); }
17
- 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; } }
18
- 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; }
19
- 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; } }
20
- function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
18
+ /**
19
+ * usePivot Hook de backward compatibility.
20
+ * Internamente delega al nuevo PivotEngine con módulos por defecto.
21
+ * Mantiene la API original: { props, state, actions }
22
+ */
21
23
  function usePivot(initialProps) {
22
- var sanitizedInitialProps = Object.keys(initialProps).reduce(function (acc, key) {
23
- if (initialProps[key] !== undefined) {
24
- acc[key] = initialProps[key];
25
- }
26
- return acc;
27
- }, {});
28
-
29
- // Mantener una referencia a las props iniciales para evitar cierres de ámbito (closures) obsoletos
30
- var initialPropsRef = (0, _react.useRef)(initialProps);
31
- (0, _react.useEffect)(function () {
32
- initialPropsRef.current = initialProps;
33
- }, [initialProps]);
34
- var _useState = (0, _react.useState)(_objectSpread({
35
- data: [],
36
- rows: [],
37
- cols: [],
38
- vals: [],
39
- rowOrder: 'key_a_to_z',
40
- colOrder: 'key_a_to_z',
41
- aggregatorName: 'Count',
42
- rendererName: 'Table',
43
- valueFilter: {},
44
- sorters: {},
45
- derivedAttributes: {},
46
- hiddenAttributes: [],
47
- hiddenFromAggregators: [],
48
- hiddenFromDragDrop: [],
49
- pagination: false,
50
- pageSize: 20,
51
- page: 1
52
- }, sanitizedInitialProps)),
53
- _useState2 = _slicedToArray(_useState, 2),
54
- props = _useState2[0],
55
- setProps = _useState2[1];
56
- var _useState3 = (0, _react.useState)({
57
- attrValues: {},
58
- materializedInput: [],
59
- unusedOrder: []
60
- }),
61
- _useState4 = _slicedToArray(_useState3, 2),
62
- state = _useState4[0],
63
- setState = _useState4[1];
24
+ var engineRef = (0, _react.useRef)(null);
25
+ if (!engineRef.current) {
26
+ engineRef.current = new _PivotEngine.PivotEngine(_objectSpread(_objectSpread({}, initialProps), {}, {
27
+ modules: [_FilterModule.FilterModule, _PaginationModule.PaginationModule, _SortModule.SortModule]
28
+ }));
29
+ }
64
30
 
65
- // Sincronizar props internas cuando cambian las externas, pero sin disparar onChange de vuelta
31
+ // Sincronizar props externas clave
66
32
  (0, _react.useEffect)(function () {
67
- var sanitizedSync = Object.keys(initialProps).reduce(function (acc, key) {
33
+ var sanitized = {};
34
+ var allKeys = Object.keys(initialProps);
35
+ for (var _i = 0, _allKeys = allKeys; _i < _allKeys.length; _i++) {
36
+ var key = _allKeys[_i];
68
37
  if (initialProps[key] !== undefined) {
69
- acc[key] = initialProps[key];
38
+ sanitized[key] = initialProps[key];
70
39
  }
71
- return acc;
72
- }, {});
73
- setProps(function (prev) {
74
- return _objectSpread(_objectSpread({}, prev), sanitizedSync);
75
- });
40
+ }
41
+ engineRef.current.stateManager.updateConfig(sanitized);
42
+ engineRef.current._notifyStateChanged();
76
43
  }, [initialProps.data, initialProps.rows, initialProps.cols, initialProps.rendererName, initialProps.aggregatorName, initialProps.page, initialProps.pageSize]);
77
44
 
78
- // Materializar la entrada
79
- (0, _react.useEffect)(function () {
80
- var materializedInput = [];
81
- var attrValues = {};
82
- var recordsProcessed = 0;
83
- _Utilities.PivotData.forEachRecord(props.data, props.derivedAttributes, function (record) {
84
- materializedInput.push(record);
85
- for (var _i = 0, _Object$keys = Object.keys(record); _i < _Object$keys.length; _i++) {
86
- var attr = _Object$keys[_i];
87
- if (!(attr in attrValues)) {
88
- attrValues[attr] = {};
89
- if (recordsProcessed > 0) {
90
- attrValues[attr]["null"] = recordsProcessed;
91
- }
92
- }
93
- }
94
- for (var _attr in attrValues) {
95
- var value = _attr in record ? record[_attr] : 'null';
96
- if (!(value in attrValues[_attr])) {
97
- attrValues[_attr][value] = 0;
98
- }
99
- attrValues[_attr][value]++;
100
- }
101
- recordsProcessed++;
102
- });
103
- setState(function (s) {
104
- return _objectSpread(_objectSpread({}, s), {}, {
105
- attrValues: attrValues,
106
- materializedInput: materializedInput
107
- });
108
- });
109
- }, [props.data, props.derivedAttributes]);
110
- var updateProp = (0, _react.useCallback)(function (key, value) {
111
- setProps(function (prev) {
112
- var finalValue = value;
113
- if (Array.isArray(value) && (key === 'rows' || key === 'cols' || key === 'vals')) {
114
- finalValue = value.filter(function (v) {
115
- return v && v.trim() !== '';
116
- });
117
- }
118
- var newProps = _objectSpread(_objectSpread({}, prev), {}, _defineProperty({}, key, finalValue));
119
- if (key === 'rows') {
120
- newProps.cols = prev.cols.filter(function (c) {
121
- return !finalValue.includes(c);
122
- });
123
- } else if (key === 'cols') {
124
- newProps.rows = prev.rows.filter(function (r) {
125
- return !finalValue.includes(r);
126
- });
127
- }
128
- if (initialPropsRef.current.onChange) {
129
- initialPropsRef.current.onChange(newProps);
130
- }
131
- return newProps;
132
- });
133
- }, []);
134
- var toggleFilter = (0, _react.useCallback)(function (attribute, value) {
135
- setProps(function (prev) {
136
- var filter = _objectSpread({}, prev.valueFilter[attribute]);
137
- if (value in filter) {
138
- delete filter[value];
139
- } else {
140
- filter[value] = true;
141
- }
142
- var newValueFilter = _objectSpread(_objectSpread({}, prev.valueFilter), {}, _defineProperty({}, attribute, filter));
143
- var newProps = _objectSpread(_objectSpread({}, prev), {}, {
144
- valueFilter: newValueFilter
145
- });
146
- if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
147
- return newProps;
148
- });
149
- }, []);
150
- var setValuesInFilter = (0, _react.useCallback)(function (attribute, values) {
151
- setProps(function (prev) {
152
- var newFilter = values.reduce(function (r, v) {
153
- r[v] = true;
154
- return r;
155
- }, {});
156
- var newProps = _objectSpread(_objectSpread({}, prev), {}, {
157
- valueFilter: _objectSpread(_objectSpread({}, prev.valueFilter), {}, _defineProperty({}, attribute, newFilter))
158
- });
159
- if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);
160
- return newProps;
161
- });
162
- }, []);
45
+ // Suscribirse a cambios del engine
46
+ var snapshot = (0, _react.useSyncExternalStore)((0, _react.useCallback)(function (onStoreChange) {
47
+ return engineRef.current.subscribe(onStoreChange);
48
+ }, []), (0, _react.useCallback)(function () {
49
+ return engineRef.current.getSnapshot();
50
+ }, []),
51
+ // getSnapshot
52
+ (0, _react.useCallback)(function () {
53
+ return engineRef.current.getSnapshot();
54
+ }, []) // getServerSnapshot
55
+ );
163
56
  return {
164
- props: props,
165
- state: state,
57
+ props: snapshot.props,
58
+ state: snapshot.state,
166
59
  actions: {
167
- setProps: setProps,
168
- updateProp: updateProp,
169
- toggleFilter: toggleFilter,
170
- setValuesInFilter: setValuesInFilter,
60
+ setProps: function setProps(newProps) {
61
+ return engineRef.current.gridApi.updateConfig(newProps);
62
+ },
63
+ updateProp: function updateProp(key, value) {
64
+ if (key === 'rows') {
65
+ engineRef.current.gridApi.setRows(value);
66
+ } else if (key === 'cols') {
67
+ engineRef.current.gridApi.setCols(value);
68
+ } else {
69
+ engineRef.current.gridApi.updateConfig(_defineProperty({}, key, value));
70
+ }
71
+ },
72
+ toggleFilter: function toggleFilter(attr, value) {
73
+ return engineRef.current.gridApi.toggleFilter(attr, value);
74
+ },
75
+ setValuesInFilter: function setValuesInFilter(attr, values) {
76
+ return engineRef.current.gridApi.setFilter(attr, values);
77
+ },
78
+ addValuesToFilter: function addValuesToFilter(attr, values) {
79
+ return engineRef.current.gridApi.addValuesToFilter(attr, values);
80
+ },
81
+ removeValuesFromFilter: function removeValuesFromFilter(attr, values) {
82
+ return engineRef.current.gridApi.removeValuesFromFilter(attr, values);
83
+ },
171
84
  setUnusedOrder: function setUnusedOrder(order) {
172
- return setState(function (s) {
173
- return _objectSpread(_objectSpread({}, s), {}, {
174
- unusedOrder: order
175
- });
176
- });
85
+ return engineRef.current.gridApi.setUnusedOrder(order);
177
86
  }
178
- }
87
+ },
88
+ // Nuevo: exponer gridApi y columnApi
89
+ gridApi: engineRef.current.gridApi,
90
+ columnApi: engineRef.current.columnApi,
91
+ core: engineRef.current // Backward compat
179
92
  };
180
93
  }
181
94
  //# sourceMappingURL=usePivot.js.map