react-pivottable-plus 1.0.13 → 1.0.16

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 (56) hide show
  1. package/dist/PivotTableUI.js +133 -210
  2. package/dist/PivotTableUI.js.map +1 -1
  3. package/dist/TableRenderers.js +193 -28
  4. package/dist/TableRenderers.js.map +1 -1
  5. package/dist/core/CellPipeline.js +167 -0
  6. package/dist/core/CellPipeline.js.map +1 -0
  7. package/dist/core/ColumnEngine.js +299 -0
  8. package/dist/core/ColumnEngine.js.map +1 -0
  9. package/dist/core/EventBus.js +109 -0
  10. package/dist/core/EventBus.js.map +1 -0
  11. package/dist/core/ModuleRegistry.js +140 -0
  12. package/dist/core/ModuleRegistry.js.map +1 -0
  13. package/dist/core/PivotCore.js +254 -0
  14. package/dist/core/PivotCore.js.map +1 -0
  15. package/dist/core/PivotEngine.js +151 -0
  16. package/dist/core/PivotEngine.js.map +1 -0
  17. package/dist/core/StateManager.js +142 -0
  18. package/dist/core/StateManager.js.map +1 -0
  19. package/dist/core/VirtualScroller.js +138 -0
  20. package/dist/core/VirtualScroller.js.map +1 -0
  21. package/dist/core/api/ColumnApi.js +162 -0
  22. package/dist/core/api/ColumnApi.js.map +1 -0
  23. package/dist/core/api/GridApi.js +208 -0
  24. package/dist/core/api/GridApi.js.map +1 -0
  25. package/dist/core/index.js +89 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/core/rowModels/ClientSideRowModel.js +177 -0
  28. package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
  29. package/dist/core/rowModels/index.js +13 -0
  30. package/dist/core/rowModels/index.js.map +1 -0
  31. package/dist/hooks/usePivot.js +63 -155
  32. package/dist/hooks/usePivot.js.map +1 -1
  33. package/dist/modules/FilterModule.js +156 -0
  34. package/dist/modules/FilterModule.js.map +1 -0
  35. package/dist/modules/PaginationModule.js +115 -0
  36. package/dist/modules/PaginationModule.js.map +1 -0
  37. package/dist/modules/SortModule.js +88 -0
  38. package/dist/modules/SortModule.js.map +1 -0
  39. package/dist/modules/ThemeModule.js +83 -0
  40. package/dist/modules/ThemeModule.js.map +1 -0
  41. package/dist/modules/VirtualizationModule.js +89 -0
  42. package/dist/modules/VirtualizationModule.js.map +1 -0
  43. package/dist/modules/index.js +41 -0
  44. package/dist/modules/index.js.map +1 -0
  45. package/dist/react/index.js +13 -0
  46. package/dist/react/index.js.map +1 -0
  47. package/dist/react/usePivotGrid.js +116 -0
  48. package/dist/react/usePivotGrid.js.map +1 -0
  49. package/dist/renderers/RadixUI.js +1 -1
  50. package/dist/renderers/RadixUI.js.map +1 -1
  51. package/dist/renderers/ShadcnDashboardUI.js +1 -1
  52. package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
  53. package/dist/renderers/TailwindUI.js +1 -1
  54. package/dist/renderers/TailwindUI.js.map +1 -1
  55. package/package.json +4 -2
  56. package/pivottable.css +56 -0
@@ -1,181 +1,89 @@
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
+ }, []));
163
51
  return {
164
- props: props,
165
- state: state,
52
+ props: snapshot.props,
53
+ state: snapshot.state,
166
54
  actions: {
167
- setProps: setProps,
168
- updateProp: updateProp,
169
- toggleFilter: toggleFilter,
170
- setValuesInFilter: setValuesInFilter,
55
+ setProps: function setProps(newProps) {
56
+ return engineRef.current.gridApi.updateConfig(newProps);
57
+ },
58
+ updateProp: function updateProp(key, value) {
59
+ if (key === 'rows') {
60
+ engineRef.current.gridApi.setRows(value);
61
+ } else if (key === 'cols') {
62
+ engineRef.current.gridApi.setCols(value);
63
+ } else {
64
+ engineRef.current.gridApi.updateConfig(_defineProperty({}, key, value));
65
+ }
66
+ },
67
+ toggleFilter: function toggleFilter(attr, value) {
68
+ return engineRef.current.gridApi.toggleFilter(attr, value);
69
+ },
70
+ setValuesInFilter: function setValuesInFilter(attr, values) {
71
+ return engineRef.current.gridApi.setFilter(attr, values);
72
+ },
73
+ addValuesToFilter: function addValuesToFilter(attr, values) {
74
+ return engineRef.current.gridApi.addValuesToFilter(attr, values);
75
+ },
76
+ removeValuesFromFilter: function removeValuesFromFilter(attr, values) {
77
+ return engineRef.current.gridApi.removeValuesFromFilter(attr, values);
78
+ },
171
79
  setUnusedOrder: function setUnusedOrder(order) {
172
- return setState(function (s) {
173
- return _objectSpread(_objectSpread({}, s), {}, {
174
- unusedOrder: order
175
- });
176
- });
80
+ return engineRef.current.gridApi.setUnusedOrder(order);
177
81
  }
178
- }
82
+ },
83
+ // Nuevo: exponer gridApi y columnApi
84
+ gridApi: engineRef.current.gridApi,
85
+ columnApi: engineRef.current.columnApi,
86
+ core: engineRef.current // Backward compat
179
87
  };
180
88
  }
181
89
  //# sourceMappingURL=usePivot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usePivot.js","names":["_react","require","_Utilities","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","usePivot","initialProps","sanitizedInitialProps","reduce","acc","key","undefined","initialPropsRef","useRef","useEffect","current","_useState","useState","data","rows","cols","vals","rowOrder","colOrder","aggregatorName","rendererName","valueFilter","sorters","derivedAttributes","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","pagination","pageSize","page","_useState2","props","setProps","_useState3","attrValues","materializedInput","unusedOrder","_useState4","state","setState","sanitizedSync","prev","recordsProcessed","PivotData","forEachRecord","record","_i","_Object$keys","attr","s","updateProp","useCallback","finalValue","v","trim","newProps","c","includes","onChange","toggleFilter","attribute","newValueFilter","setValuesInFilter","values","newFilter","actions","setUnusedOrder","order"],"sources":["../../src/hooks/usePivot.js"],"sourcesContent":["import { useState, useMemo, useCallback, useEffect, useRef } from 'react';\nimport { PivotData } from '../Utilities';\n\nexport function usePivot(initialProps) {\n const sanitizedInitialProps = Object.keys(initialProps).reduce((acc, key) => {\n if (initialProps[key] !== undefined) {\n acc[key] = initialProps[key];\n }\n return acc;\n }, {});\n\n // Mantener una referencia a las props iniciales para evitar cierres de ámbito (closures) obsoletos\n const initialPropsRef = useRef(initialProps);\n useEffect(() => {\n initialPropsRef.current = initialProps;\n }, [initialProps]);\n\n const [props, setProps] = useState({\n data: [],\n rows: [],\n cols: [],\n vals: [],\n rowOrder: 'key_a_to_z',\n colOrder: 'key_a_to_z',\n aggregatorName: 'Count',\n rendererName: 'Table',\n valueFilter: {},\n sorters: {},\n derivedAttributes: {},\n hiddenAttributes: [],\n hiddenFromAggregators: [],\n hiddenFromDragDrop: [],\n pagination: false,\n pageSize: 20,\n page: 1,\n ...sanitizedInitialProps\n });\n\n const [state, setState] = useState({\n attrValues: {},\n materializedInput: [],\n unusedOrder: []\n });\n\n // Sincronizar props internas cuando cambian las externas, pero sin disparar onChange de vuelta\n useEffect(() => {\n const sanitizedSync = Object.keys(initialProps).reduce((acc, key) => {\n if (initialProps[key] !== undefined) {\n acc[key] = initialProps[key];\n }\n return acc;\n }, {});\n setProps(prev => ({ ...prev, ...sanitizedSync }));\n }, [initialProps.data, initialProps.rows, initialProps.cols, initialProps.rendererName, initialProps.aggregatorName, initialProps.page, initialProps.pageSize]);\n\n // Materializar la entrada\n useEffect(() => {\n const materializedInput = [];\n const attrValues = {};\n let recordsProcessed = 0;\n\n PivotData.forEachRecord(\n props.data,\n props.derivedAttributes,\n function(record) {\n materializedInput.push(record);\n for (const attr of Object.keys(record)) {\n if (!(attr in attrValues)) {\n attrValues[attr] = {};\n if (recordsProcessed > 0) {\n attrValues[attr].null = recordsProcessed;\n }\n }\n }\n for (const attr in attrValues) {\n const value = attr in record ? record[attr] : 'null';\n if (!(value in attrValues[attr])) {\n attrValues[attr][value] = 0;\n }\n attrValues[attr][value]++;\n }\n recordsProcessed++;\n }\n );\n\n setState(s => ({ ...s, attrValues, materializedInput }));\n }, [props.data, props.derivedAttributes]);\n\n const updateProp = useCallback((key, value) => {\n setProps(prev => {\n let finalValue = value;\n if (Array.isArray(value) && (key === 'rows' || key === 'cols' || key === 'vals')) {\n finalValue = value.filter(v => v && v.trim() !== '');\n }\n\n const newProps = { ...prev, [key]: finalValue };\n \n if (key === 'rows') {\n newProps.cols = prev.cols.filter(c => !finalValue.includes(c));\n } else if (key === 'cols') {\n newProps.rows = prev.rows.filter(r => !finalValue.includes(r));\n }\n\n if (initialPropsRef.current.onChange) {\n initialPropsRef.current.onChange(newProps);\n }\n\n return newProps;\n });\n }, []);\n\n const toggleFilter = useCallback((attribute, value) => {\n setProps(prev => {\n const filter = { ...prev.valueFilter[attribute] };\n if (value in filter) {\n delete filter[value];\n } else {\n filter[value] = true;\n }\n const newValueFilter = { ...prev.valueFilter, [attribute]: filter };\n const newProps = { ...prev, valueFilter: newValueFilter };\n \n if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);\n\n return newProps;\n });\n }, []);\n\n const setValuesInFilter = useCallback((attribute, values) => {\n setProps(prev => {\n const newFilter = values.reduce((r, v) => {\n r[v] = true;\n return r;\n }, {});\n const newProps = { ...prev, valueFilter: { ...prev.valueFilter, [attribute]: newFilter } };\n \n if (initialPropsRef.current.onChange) initialPropsRef.current.onChange(newProps);\n\n return newProps;\n });\n }, []);\n\n return {\n props,\n state,\n actions: {\n setProps,\n updateProp,\n toggleFilter,\n setValuesInFilter,\n setUnusedOrder: (order) => setState(s => ({ ...s, unusedOrder: order }))\n }\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"usePivot.js","names":["_react","require","_PivotEngine","_FilterModule","_PaginationModule","_SortModule","_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","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","usePivot","initialProps","engineRef","useRef","current","PivotEngine","modules","FilterModule","PaginationModule","SortModule","useEffect","sanitized","allKeys","_i","_allKeys","key","undefined","stateManager","updateConfig","_notifyStateChanged","data","rows","cols","rendererName","aggregatorName","page","pageSize","snapshot","useSyncExternalStore","useCallback","onStoreChange","subscribe","getSnapshot","props","state","actions","setProps","newProps","gridApi","updateProp","setRows","setCols","toggleFilter","attr","setValuesInFilter","values","setFilter","addValuesToFilter","removeValuesFromFilter","setUnusedOrder","order","columnApi","core"],"sources":["../../src/hooks/usePivot.js"],"sourcesContent":["import { useRef, useSyncExternalStore, useCallback, useEffect } from 'react';\nimport { PivotEngine } from '../core/PivotEngine';\nimport { FilterModule } from '../modules/FilterModule';\nimport { PaginationModule } from '../modules/PaginationModule';\nimport { SortModule } from '../modules/SortModule';\n\n/**\n * usePivot — Hook de backward compatibility.\n * Internamente delega al nuevo PivotEngine con módulos por defecto.\n * Mantiene la API original: { props, state, actions }\n */\nexport function usePivot(initialProps) {\n const engineRef = useRef(null);\n\n if (!engineRef.current) {\n engineRef.current = new PivotEngine({\n ...initialProps,\n modules: [FilterModule, PaginationModule, SortModule],\n });\n }\n\n // Sincronizar props externas clave\n useEffect(() => {\n const sanitized = {};\n const allKeys = Object.keys(initialProps);\n for (const key of allKeys) {\n if (initialProps[key] !== undefined) {\n sanitized[key] = initialProps[key];\n }\n }\n engineRef.current.stateManager.updateConfig(sanitized);\n engineRef.current._notifyStateChanged();\n }, [\n initialProps.data,\n initialProps.rows,\n initialProps.cols,\n initialProps.rendererName,\n initialProps.aggregatorName,\n initialProps.page,\n initialProps.pageSize,\n ]);\n\n // Suscribirse a cambios del engine\n const snapshot = useSyncExternalStore(\n useCallback((onStoreChange) => engineRef.current.subscribe(onStoreChange), []),\n useCallback(() => engineRef.current.getSnapshot(), [])\n );\n\n return {\n props: snapshot.props,\n state: snapshot.state,\n actions: {\n setProps: (newProps) => engineRef.current.gridApi.updateConfig(newProps),\n updateProp: (key, value) => {\n if (key === 'rows') {\n engineRef.current.gridApi.setRows(value);\n } else if (key === 'cols') {\n engineRef.current.gridApi.setCols(value);\n } else {\n engineRef.current.gridApi.updateConfig({ [key]: value });\n }\n },\n toggleFilter: (attr, value) => engineRef.current.gridApi.toggleFilter(attr, value),\n setValuesInFilter: (attr, values) => engineRef.current.gridApi.setFilter(attr, values),\n addValuesToFilter: (attr, values) => engineRef.current.gridApi.addValuesToFilter(attr, values),\n removeValuesFromFilter: (attr, values) => engineRef.current.gridApi.removeValuesFromFilter(attr, values),\n setUnusedOrder: (order) => engineRef.current.gridApi.setUnusedOrder(order),\n },\n // Nuevo: exponer gridApi y columnApi\n gridApi: engineRef.current.gridApi,\n columnApi: engineRef.current.columnApi,\n core: engineRef.current, // Backward compat\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,156 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FilterModule = FilterModule;
7
+ 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); }
8
+ function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
9
+ 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; } }
10
+ 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; }
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
15
+ 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); }
16
+ /**
17
+ * FilterModule — Módulo de filtros inyectable.
18
+ *
19
+ * Expone en GridApi:
20
+ * - setFilter(attr, values)
21
+ * - toggleFilter(attr, value)
22
+ * - clearFilter(attr)
23
+ * - clearAllFilters()
24
+ * - getFilter(attr)
25
+ */
26
+ function FilterModule() {
27
+ return {
28
+ id: 'filter',
29
+ _engine: null,
30
+ init: function init(engine) {
31
+ this._engine = engine;
32
+ },
33
+ getApi: function getApi() {
34
+ var self = this;
35
+ return {
36
+ setFilter: function setFilter(attribute, values) {
37
+ var config = self._engine.stateManager.getConfig();
38
+ var newFilter = Array.isArray(values) ? values.reduce(function (r, v) {
39
+ r[v] = true;
40
+ return r;
41
+ }, {}) : values;
42
+ var newValueFilter = _objectSpread(_objectSpread({}, config.valueFilter), {}, _defineProperty({}, attribute, newFilter));
43
+ self._engine.stateManager.updateConfig({
44
+ valueFilter: newValueFilter
45
+ });
46
+ self._engine.eventBus.emit('filterChanged', {
47
+ attribute: attribute,
48
+ filter: newFilter
49
+ });
50
+ self._engine._notifyStateChanged();
51
+ },
52
+ toggleFilter: function toggleFilter(attribute, value) {
53
+ var config = self._engine.stateManager.getConfig();
54
+ var filter = _objectSpread({}, config.valueFilter[attribute] || {});
55
+ if (value in filter) {
56
+ delete filter[value];
57
+ } else {
58
+ filter[value] = true;
59
+ }
60
+ var newValueFilter = _objectSpread(_objectSpread({}, config.valueFilter), {}, _defineProperty({}, attribute, filter));
61
+ self._engine.stateManager.updateConfig({
62
+ valueFilter: newValueFilter
63
+ });
64
+ self._engine.eventBus.emit('filterChanged', {
65
+ attribute: attribute,
66
+ filter: filter
67
+ });
68
+ self._engine._notifyStateChanged();
69
+ },
70
+ addValuesToFilter: function addValuesToFilter(attribute, values) {
71
+ var config = self._engine.stateManager.getConfig();
72
+ var filter = _objectSpread({}, config.valueFilter[attribute] || {});
73
+ var _iterator = _createForOfIteratorHelper(values),
74
+ _step;
75
+ try {
76
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
77
+ var v = _step.value;
78
+ filter[v] = true;
79
+ }
80
+ } catch (err) {
81
+ _iterator.e(err);
82
+ } finally {
83
+ _iterator.f();
84
+ }
85
+ var newValueFilter = _objectSpread(_objectSpread({}, config.valueFilter), {}, _defineProperty({}, attribute, filter));
86
+ self._engine.stateManager.updateConfig({
87
+ valueFilter: newValueFilter
88
+ });
89
+ self._engine.eventBus.emit('filterChanged', {
90
+ attribute: attribute,
91
+ filter: filter
92
+ });
93
+ self._engine._notifyStateChanged();
94
+ },
95
+ removeValuesFromFilter: function removeValuesFromFilter(attribute, values) {
96
+ var config = self._engine.stateManager.getConfig();
97
+ var filter = _objectSpread({}, config.valueFilter[attribute] || {});
98
+ var _iterator2 = _createForOfIteratorHelper(values),
99
+ _step2;
100
+ try {
101
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
102
+ var v = _step2.value;
103
+ delete filter[v];
104
+ }
105
+ } catch (err) {
106
+ _iterator2.e(err);
107
+ } finally {
108
+ _iterator2.f();
109
+ }
110
+ var newValueFilter = _objectSpread(_objectSpread({}, config.valueFilter), {}, _defineProperty({}, attribute, filter));
111
+ self._engine.stateManager.updateConfig({
112
+ valueFilter: newValueFilter
113
+ });
114
+ self._engine.eventBus.emit('filterChanged', {
115
+ attribute: attribute,
116
+ filter: filter
117
+ });
118
+ self._engine._notifyStateChanged();
119
+ },
120
+ clearFilter: function clearFilter(attribute) {
121
+ var config = self._engine.stateManager.getConfig();
122
+ var newValueFilter = _objectSpread({}, config.valueFilter);
123
+ delete newValueFilter[attribute];
124
+ self._engine.stateManager.updateConfig({
125
+ valueFilter: newValueFilter
126
+ });
127
+ self._engine.eventBus.emit('filterChanged', {
128
+ attribute: attribute,
129
+ filter: {}
130
+ });
131
+ self._engine._notifyStateChanged();
132
+ },
133
+ clearAllFilters: function clearAllFilters() {
134
+ self._engine.stateManager.updateConfig({
135
+ valueFilter: {}
136
+ });
137
+ self._engine.eventBus.emit('filterChanged', {
138
+ attribute: null,
139
+ filter: {}
140
+ });
141
+ self._engine._notifyStateChanged();
142
+ },
143
+ getFilter: function getFilter(attribute) {
144
+ return self._engine.stateManager.getConfig().valueFilter[attribute] || {};
145
+ },
146
+ getAllFilters: function getAllFilters() {
147
+ return self._engine.stateManager.getConfig().valueFilter;
148
+ }
149
+ };
150
+ },
151
+ destroy: function destroy() {
152
+ this._engine = null;
153
+ }
154
+ };
155
+ }
156
+ //# sourceMappingURL=FilterModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilterModule.js","names":["FilterModule","id","_engine","init","engine","getApi","self","setFilter","attribute","values","config","stateManager","getConfig","newFilter","Array","isArray","reduce","r","v","newValueFilter","_objectSpread","valueFilter","_defineProperty","updateConfig","eventBus","emit","filter","_notifyStateChanged","toggleFilter","value","addValuesToFilter","_iterator","_createForOfIteratorHelper","_step","s","n","done","err","e","f","removeValuesFromFilter","_iterator2","_step2","clearFilter","clearAllFilters","getFilter","getAllFilters","destroy"],"sources":["../../src/modules/FilterModule.js"],"sourcesContent":["/**\n * FilterModule — Módulo de filtros inyectable.\n *\n * Expone en GridApi:\n * - setFilter(attr, values)\n * - toggleFilter(attr, value)\n * - clearFilter(attr)\n * - clearAllFilters()\n * - getFilter(attr)\n */\nexport function FilterModule() {\n return {\n id: 'filter',\n _engine: null,\n\n init(engine) {\n this._engine = engine;\n },\n\n getApi() {\n const self = this;\n return {\n setFilter(attribute, values) {\n const config = self._engine.stateManager.getConfig();\n const newFilter = Array.isArray(values)\n ? values.reduce((r, v) => { r[v] = true; return r; }, {})\n : values;\n const newValueFilter = { ...config.valueFilter, [attribute]: newFilter };\n self._engine.stateManager.updateConfig({ valueFilter: newValueFilter });\n self._engine.eventBus.emit('filterChanged', { attribute, filter: newFilter });\n self._engine._notifyStateChanged();\n },\n\n toggleFilter(attribute, value) {\n const config = self._engine.stateManager.getConfig();\n const filter = { ...(config.valueFilter[attribute] || {}) };\n if (value in filter) {\n delete filter[value];\n } else {\n filter[value] = true;\n }\n const newValueFilter = { ...config.valueFilter, [attribute]: filter };\n self._engine.stateManager.updateConfig({ valueFilter: newValueFilter });\n self._engine.eventBus.emit('filterChanged', { attribute, filter });\n self._engine._notifyStateChanged();\n },\n\n addValuesToFilter(attribute, values) {\n const config = self._engine.stateManager.getConfig();\n const filter = { ...(config.valueFilter[attribute] || {}) };\n for (const v of values) {\n filter[v] = true;\n }\n const newValueFilter = { ...config.valueFilter, [attribute]: filter };\n self._engine.stateManager.updateConfig({ valueFilter: newValueFilter });\n self._engine.eventBus.emit('filterChanged', { attribute, filter });\n self._engine._notifyStateChanged();\n },\n\n removeValuesFromFilter(attribute, values) {\n const config = self._engine.stateManager.getConfig();\n const filter = { ...(config.valueFilter[attribute] || {}) };\n for (const v of values) {\n delete filter[v];\n }\n const newValueFilter = { ...config.valueFilter, [attribute]: filter };\n self._engine.stateManager.updateConfig({ valueFilter: newValueFilter });\n self._engine.eventBus.emit('filterChanged', { attribute, filter });\n self._engine._notifyStateChanged();\n },\n\n clearFilter(attribute) {\n const config = self._engine.stateManager.getConfig();\n const newValueFilter = { ...config.valueFilter };\n delete newValueFilter[attribute];\n self._engine.stateManager.updateConfig({ valueFilter: newValueFilter });\n self._engine.eventBus.emit('filterChanged', { attribute, filter: {} });\n self._engine._notifyStateChanged();\n },\n\n clearAllFilters() {\n self._engine.stateManager.updateConfig({ valueFilter: {} });\n self._engine.eventBus.emit('filterChanged', { attribute: null, filter: {} });\n self._engine._notifyStateChanged();\n },\n\n getFilter(attribute) {\n return self._engine.stateManager.getConfig().valueFilter[attribute] || {};\n },\n\n getAllFilters() {\n return self._engine.stateManager.getConfig().valueFilter;\n },\n };\n },\n\n destroy() {\n this._engine = null;\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,115 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PaginationModule = PaginationModule;
7
+ /**
8
+ * PaginationModule — Módulo de paginación inyectable.
9
+ *
10
+ * Expone en GridApi:
11
+ * - setPage(page)
12
+ * - setPageSize(size)
13
+ * - nextPage()
14
+ * - prevPage()
15
+ * - firstPage()
16
+ * - lastPage()
17
+ * - getPaginationInfo()
18
+ */
19
+ function PaginationModule() {
20
+ return {
21
+ id: 'pagination',
22
+ _engine: null,
23
+ init: function init(engine) {
24
+ this._engine = engine;
25
+ },
26
+ getApi: function getApi() {
27
+ var self = this;
28
+ return {
29
+ setPage: function setPage(page) {
30
+ self._engine.stateManager.updateConfig({
31
+ page: page
32
+ });
33
+ self._engine.eventBus.emit('pageChanged', {
34
+ page: page,
35
+ pageSize: self._engine.stateManager.getConfig().pageSize
36
+ });
37
+ self._engine._notifyStateChanged();
38
+ },
39
+ setPageSize: function setPageSize(pageSize) {
40
+ self._engine.stateManager.updateConfig({
41
+ pageSize: pageSize,
42
+ page: 1
43
+ });
44
+ self._engine.eventBus.emit('pageChanged', {
45
+ page: 1,
46
+ pageSize: pageSize
47
+ });
48
+ self._engine._notifyStateChanged();
49
+ },
50
+ nextPage: function nextPage() {
51
+ var config = self._engine.stateManager.getConfig();
52
+ var newPage = config.page + 1;
53
+ self._engine.stateManager.updateConfig({
54
+ page: newPage
55
+ });
56
+ self._engine.eventBus.emit('pageChanged', {
57
+ page: newPage,
58
+ pageSize: config.pageSize
59
+ });
60
+ self._engine._notifyStateChanged();
61
+ },
62
+ prevPage: function prevPage() {
63
+ var config = self._engine.stateManager.getConfig();
64
+ var newPage = Math.max(1, config.page - 1);
65
+ self._engine.stateManager.updateConfig({
66
+ page: newPage
67
+ });
68
+ self._engine.eventBus.emit('pageChanged', {
69
+ page: newPage,
70
+ pageSize: config.pageSize
71
+ });
72
+ self._engine._notifyStateChanged();
73
+ },
74
+ firstPage: function firstPage() {
75
+ self._engine.stateManager.updateConfig({
76
+ page: 1
77
+ });
78
+ self._engine.eventBus.emit('pageChanged', {
79
+ page: 1,
80
+ pageSize: self._engine.stateManager.getConfig().pageSize
81
+ });
82
+ self._engine._notifyStateChanged();
83
+ },
84
+ lastPage: function lastPage(totalPages) {
85
+ self._engine.stateManager.updateConfig({
86
+ page: totalPages
87
+ });
88
+ self._engine.eventBus.emit('pageChanged', {
89
+ page: totalPages,
90
+ pageSize: self._engine.stateManager.getConfig().pageSize
91
+ });
92
+ self._engine._notifyStateChanged();
93
+ },
94
+ setPagination: function setPagination(enabled) {
95
+ self._engine.stateManager.updateConfig({
96
+ pagination: enabled
97
+ });
98
+ self._engine._notifyStateChanged();
99
+ },
100
+ getPaginationInfo: function getPaginationInfo() {
101
+ var config = self._engine.stateManager.getConfig();
102
+ return {
103
+ page: config.page,
104
+ pageSize: config.pageSize,
105
+ pagination: config.pagination
106
+ };
107
+ }
108
+ };
109
+ },
110
+ destroy: function destroy() {
111
+ this._engine = null;
112
+ }
113
+ };
114
+ }
115
+ //# sourceMappingURL=PaginationModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PaginationModule.js","names":["PaginationModule","id","_engine","init","engine","getApi","self","setPage","page","stateManager","updateConfig","eventBus","emit","pageSize","getConfig","_notifyStateChanged","setPageSize","nextPage","config","newPage","prevPage","Math","max","firstPage","lastPage","totalPages","setPagination","enabled","pagination","getPaginationInfo","destroy"],"sources":["../../src/modules/PaginationModule.js"],"sourcesContent":["/**\n * PaginationModule — Módulo de paginación inyectable.\n *\n * Expone en GridApi:\n * - setPage(page)\n * - setPageSize(size)\n * - nextPage()\n * - prevPage()\n * - firstPage()\n * - lastPage()\n * - getPaginationInfo()\n */\nexport function PaginationModule() {\n return {\n id: 'pagination',\n _engine: null,\n\n init(engine) {\n this._engine = engine;\n },\n\n getApi() {\n const self = this;\n return {\n setPage(page) {\n self._engine.stateManager.updateConfig({ page });\n self._engine.eventBus.emit('pageChanged', { page, pageSize: self._engine.stateManager.getConfig().pageSize });\n self._engine._notifyStateChanged();\n },\n\n setPageSize(pageSize) {\n self._engine.stateManager.updateConfig({ pageSize, page: 1 });\n self._engine.eventBus.emit('pageChanged', { page: 1, pageSize });\n self._engine._notifyStateChanged();\n },\n\n nextPage() {\n const config = self._engine.stateManager.getConfig();\n const newPage = config.page + 1;\n self._engine.stateManager.updateConfig({ page: newPage });\n self._engine.eventBus.emit('pageChanged', { page: newPage, pageSize: config.pageSize });\n self._engine._notifyStateChanged();\n },\n\n prevPage() {\n const config = self._engine.stateManager.getConfig();\n const newPage = Math.max(1, config.page - 1);\n self._engine.stateManager.updateConfig({ page: newPage });\n self._engine.eventBus.emit('pageChanged', { page: newPage, pageSize: config.pageSize });\n self._engine._notifyStateChanged();\n },\n\n firstPage() {\n self._engine.stateManager.updateConfig({ page: 1 });\n self._engine.eventBus.emit('pageChanged', { page: 1, pageSize: self._engine.stateManager.getConfig().pageSize });\n self._engine._notifyStateChanged();\n },\n\n lastPage(totalPages) {\n self._engine.stateManager.updateConfig({ page: totalPages });\n self._engine.eventBus.emit('pageChanged', { page: totalPages, pageSize: self._engine.stateManager.getConfig().pageSize });\n self._engine._notifyStateChanged();\n },\n\n setPagination(enabled) {\n self._engine.stateManager.updateConfig({ pagination: enabled });\n self._engine._notifyStateChanged();\n },\n\n getPaginationInfo() {\n const config = self._engine.stateManager.getConfig();\n return {\n page: config.page,\n pageSize: config.pageSize,\n pagination: config.pagination,\n };\n },\n };\n },\n\n destroy() {\n this._engine = null;\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}