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
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ModuleRegistry = void 0;
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 _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
9
+ 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."); }
10
+ 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; } }
11
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
12
+ 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; } } }; }
13
+ 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; } }
14
+ 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; }
15
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
16
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
17
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
19
+ 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); }
20
+ /**
21
+ * ModuleRegistry — Registro y ciclo de vida de módulos.
22
+ * Cada módulo implementa: { id, init(engine), destroy(), getApi() }
23
+ */
24
+ var ModuleRegistry = exports.ModuleRegistry = /*#__PURE__*/function () {
25
+ function ModuleRegistry(engine) {
26
+ _classCallCheck(this, ModuleRegistry);
27
+ this.engine = engine;
28
+ this._modules = new Map();
29
+ }
30
+
31
+ /**
32
+ * Registrar un módulo (factory o instancia).
33
+ * @param {Function|Object} moduleOrFactory - Si es función, se llama para crear la instancia.
34
+ */
35
+ return _createClass(ModuleRegistry, [{
36
+ key: "register",
37
+ value: function register(moduleOrFactory) {
38
+ var mod = typeof moduleOrFactory === 'function' ? moduleOrFactory() : moduleOrFactory;
39
+ if (!mod.id) {
40
+ throw new Error('[ModuleRegistry] Module must have an "id" property.');
41
+ }
42
+ if (this._modules.has(mod.id)) {
43
+ var _this$_modules$get$de, _this$_modules$get;
44
+ console.warn("[ModuleRegistry] Module \"".concat(mod.id, "\" already registered. Replacing."));
45
+ (_this$_modules$get$de = (_this$_modules$get = this._modules.get(mod.id)).destroy) === null || _this$_modules$get$de === void 0 || _this$_modules$get$de.call(_this$_modules$get);
46
+ }
47
+ this._modules.set(mod.id, mod);
48
+ }
49
+
50
+ /**
51
+ * Inicializar todos los módulos registrados.
52
+ */
53
+ }, {
54
+ key: "initAll",
55
+ value: function initAll() {
56
+ var _iterator = _createForOfIteratorHelper(this._modules),
57
+ _step;
58
+ try {
59
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
60
+ var _mod$init;
61
+ var _step$value = _slicedToArray(_step.value, 2),
62
+ mod = _step$value[1];
63
+ (_mod$init = mod.init) === null || _mod$init === void 0 || _mod$init.call(mod, this.engine);
64
+ }
65
+ } catch (err) {
66
+ _iterator.e(err);
67
+ } finally {
68
+ _iterator.f();
69
+ }
70
+ }
71
+
72
+ /**
73
+ * Obtener un módulo por su ID.
74
+ */
75
+ }, {
76
+ key: "getModule",
77
+ value: function getModule(id) {
78
+ return this._modules.get(id) || null;
79
+ }
80
+
81
+ /**
82
+ * Recolectar todas las APIs de los módulos para inyectarlas en GridApi.
83
+ * @returns {Object} Objeto con todos los métodos combinados
84
+ */
85
+ }, {
86
+ key: "collectApis",
87
+ value: function collectApis() {
88
+ var apis = {};
89
+ var _iterator2 = _createForOfIteratorHelper(this._modules),
90
+ _step2;
91
+ try {
92
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
93
+ var _step2$value = _slicedToArray(_step2.value, 2),
94
+ mod = _step2$value[1];
95
+ if (mod.getApi) {
96
+ Object.assign(apis, mod.getApi());
97
+ }
98
+ }
99
+ } catch (err) {
100
+ _iterator2.e(err);
101
+ } finally {
102
+ _iterator2.f();
103
+ }
104
+ return apis;
105
+ }
106
+
107
+ /**
108
+ * Verificar si un módulo está registrado.
109
+ */
110
+ }, {
111
+ key: "has",
112
+ value: function has(id) {
113
+ return this._modules.has(id);
114
+ }
115
+
116
+ /**
117
+ * Destruir todos los módulos.
118
+ */
119
+ }, {
120
+ key: "destroyAll",
121
+ value: function destroyAll() {
122
+ var _iterator3 = _createForOfIteratorHelper(this._modules),
123
+ _step3;
124
+ try {
125
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
126
+ var _mod$destroy;
127
+ var _step3$value = _slicedToArray(_step3.value, 2),
128
+ mod = _step3$value[1];
129
+ (_mod$destroy = mod.destroy) === null || _mod$destroy === void 0 || _mod$destroy.call(mod);
130
+ }
131
+ } catch (err) {
132
+ _iterator3.e(err);
133
+ } finally {
134
+ _iterator3.f();
135
+ }
136
+ this._modules.clear();
137
+ }
138
+ }]);
139
+ }();
140
+ //# sourceMappingURL=ModuleRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleRegistry.js","names":["ModuleRegistry","exports","engine","_classCallCheck","_modules","Map","_createClass","key","value","register","moduleOrFactory","mod","id","Error","has","_this$_modules$get$de","_this$_modules$get","console","warn","concat","get","destroy","call","set","initAll","_iterator","_createForOfIteratorHelper","_step","s","n","done","_mod$init","_step$value","_slicedToArray","init","err","e","f","getModule","collectApis","apis","_iterator2","_step2","_step2$value","getApi","Object","assign","destroyAll","_iterator3","_step3","_mod$destroy","_step3$value","clear"],"sources":["../../src/core/ModuleRegistry.js"],"sourcesContent":["/**\n * ModuleRegistry — Registro y ciclo de vida de módulos.\n * Cada módulo implementa: { id, init(engine), destroy(), getApi() }\n */\nexport class ModuleRegistry {\n constructor(engine) {\n this.engine = engine;\n this._modules = new Map();\n }\n\n /**\n * Registrar un módulo (factory o instancia).\n * @param {Function|Object} moduleOrFactory - Si es función, se llama para crear la instancia.\n */\n register(moduleOrFactory) {\n const mod = typeof moduleOrFactory === 'function' ? moduleOrFactory() : moduleOrFactory;\n\n if (!mod.id) {\n throw new Error('[ModuleRegistry] Module must have an \"id\" property.');\n }\n\n if (this._modules.has(mod.id)) {\n console.warn(`[ModuleRegistry] Module \"${mod.id}\" already registered. Replacing.`);\n this._modules.get(mod.id).destroy?.();\n }\n\n this._modules.set(mod.id, mod);\n }\n\n /**\n * Inicializar todos los módulos registrados.\n */\n initAll() {\n for (const [, mod] of this._modules) {\n mod.init?.(this.engine);\n }\n }\n\n /**\n * Obtener un módulo por su ID.\n */\n getModule(id) {\n return this._modules.get(id) || null;\n }\n\n /**\n * Recolectar todas las APIs de los módulos para inyectarlas en GridApi.\n * @returns {Object} Objeto con todos los métodos combinados\n */\n collectApis() {\n const apis = {};\n for (const [, mod] of this._modules) {\n if (mod.getApi) {\n Object.assign(apis, mod.getApi());\n }\n }\n return apis;\n }\n\n /**\n * Verificar si un módulo está registrado.\n */\n has(id) {\n return this._modules.has(id);\n }\n\n /**\n * Destruir todos los módulos.\n */\n destroyAll() {\n for (const [, mod] of this._modules) {\n mod.destroy?.();\n }\n this._modules.clear();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PivotCore = 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 _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; } } }; }
10
+ 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; } }
11
+ 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; }
12
+ 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; }
13
+ 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; }
14
+ 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; }
15
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
16
+ function _defineProperties(e, r) { for (var t = 0; t < r.length; t++) { var o = r[t]; o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o); } }
17
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
19
+ 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); }
20
+ var PivotCore = exports.PivotCore = /*#__PURE__*/function () {
21
+ function PivotCore() {
22
+ var initialProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
23
+ _classCallCheck(this, PivotCore);
24
+ this.listeners = new Set();
25
+ var sanitizedInitialProps = Object.keys(initialProps).reduce(function (acc, key) {
26
+ if (initialProps[key] !== undefined) {
27
+ acc[key] = initialProps[key];
28
+ }
29
+ return acc;
30
+ }, {});
31
+ this.props = _objectSpread({
32
+ data: [],
33
+ rows: [],
34
+ cols: [],
35
+ vals: [],
36
+ rowOrder: 'key_a_to_z',
37
+ colOrder: 'key_a_to_z',
38
+ aggregatorName: 'Count',
39
+ rendererName: 'Table',
40
+ valueFilter: {},
41
+ sorters: {},
42
+ derivedAttributes: {},
43
+ hiddenAttributes: [],
44
+ hiddenFromAggregators: [],
45
+ hiddenFromDragDrop: [],
46
+ pagination: false,
47
+ pageSize: 20,
48
+ page: 1
49
+ }, sanitizedInitialProps);
50
+ this.state = {
51
+ attrValues: {},
52
+ materializedInput: [],
53
+ unusedOrder: []
54
+ };
55
+
56
+ // Calculate metadata on init
57
+ this.calculateData();
58
+
59
+ // Cache to keep React references stable
60
+ this._snapshot = this.generateSnapshot();
61
+ }
62
+ return _createClass(PivotCore, [{
63
+ key: "subscribe",
64
+ value: function subscribe(listener) {
65
+ var _this = this;
66
+ this.listeners.add(listener);
67
+ return function () {
68
+ _this.listeners["delete"](listener);
69
+ };
70
+ }
71
+ }, {
72
+ key: "notify",
73
+ value: function notify() {
74
+ this._snapshot = this.generateSnapshot();
75
+ var _iterator = _createForOfIteratorHelper(this.listeners),
76
+ _step;
77
+ try {
78
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
79
+ var listener = _step.value;
80
+ listener(this._snapshot);
81
+ }
82
+ } catch (err) {
83
+ _iterator.e(err);
84
+ } finally {
85
+ _iterator.f();
86
+ }
87
+ }
88
+ }, {
89
+ key: "generateSnapshot",
90
+ value: function generateSnapshot() {
91
+ return {
92
+ props: this.props,
93
+ state: this.state
94
+ };
95
+ }
96
+ }, {
97
+ key: "getSnapshot",
98
+ value: function getSnapshot() {
99
+ return this._snapshot;
100
+ }
101
+ }, {
102
+ key: "calculateData",
103
+ value: function calculateData() {
104
+ var materializedInput = [];
105
+ var attrValues = {};
106
+ var recordsProcessed = 0;
107
+ _Utilities.PivotData.forEachRecord(this.props.data, this.props.derivedAttributes, function (record) {
108
+ materializedInput.push(record);
109
+ for (var _i = 0, _Object$keys = Object.keys(record); _i < _Object$keys.length; _i++) {
110
+ var attr = _Object$keys[_i];
111
+ if (!(attr in attrValues)) {
112
+ attrValues[attr] = {};
113
+ if (recordsProcessed > 0) {
114
+ attrValues[attr]["null"] = recordsProcessed;
115
+ }
116
+ }
117
+ }
118
+ for (var _attr in attrValues) {
119
+ var value = _attr in record ? record[_attr] : 'null';
120
+ if (!(value in attrValues[_attr])) {
121
+ attrValues[_attr][value] = 0;
122
+ }
123
+ attrValues[_attr][value]++;
124
+ }
125
+ recordsProcessed++;
126
+ });
127
+ this.state = _objectSpread(_objectSpread({}, this.state), {}, {
128
+ attrValues: attrValues,
129
+ materializedInput: materializedInput
130
+ });
131
+ }
132
+ }, {
133
+ key: "updateProps",
134
+ value: function updateProps(newProps) {
135
+ var shouldRecalculateData = false;
136
+
137
+ // Check if data dependencies changed
138
+ if (newProps.data !== undefined && newProps.data !== this.props.data) {
139
+ shouldRecalculateData = true;
140
+ }
141
+ if (newProps.derivedAttributes !== undefined && newProps.derivedAttributes !== this.props.derivedAttributes) {
142
+ shouldRecalculateData = true;
143
+ }
144
+ this.props = _objectSpread(_objectSpread({}, this.props), newProps);
145
+ if (shouldRecalculateData) {
146
+ this.calculateData();
147
+ }
148
+
149
+ // Trigger onChange hook if provided in initial properties, keeping backward compatibility
150
+ if (this.props.onChange) {
151
+ this.props.onChange(this.props);
152
+ }
153
+ this.notify();
154
+ }
155
+ }, {
156
+ key: "updateProp",
157
+ value: function updateProp(key, value) {
158
+ var finalValue = value;
159
+ if (Array.isArray(value) && (key === 'rows' || key === 'cols' || key === 'vals')) {
160
+ finalValue = value.filter(function (v) {
161
+ return v && v.trim() !== '';
162
+ });
163
+ }
164
+ var newProps = _defineProperty({}, key, finalValue);
165
+ if (key === 'rows') {
166
+ newProps.cols = this.props.cols.filter(function (c) {
167
+ return !finalValue.includes(c);
168
+ });
169
+ } else if (key === 'cols') {
170
+ newProps.rows = this.props.rows.filter(function (r) {
171
+ return !finalValue.includes(r);
172
+ });
173
+ }
174
+ this.updateProps(newProps);
175
+ }
176
+ }, {
177
+ key: "toggleFilter",
178
+ value: function toggleFilter(attribute, value) {
179
+ var filter = _objectSpread({}, this.props.valueFilter[attribute] || {});
180
+ if (value in filter) {
181
+ delete filter[value];
182
+ } else {
183
+ filter[value] = true;
184
+ }
185
+ var newValueFilter = _objectSpread(_objectSpread({}, this.props.valueFilter), {}, _defineProperty({}, attribute, filter));
186
+ this.updateProps({
187
+ valueFilter: newValueFilter
188
+ });
189
+ }
190
+ }, {
191
+ key: "setValuesInFilter",
192
+ value: function setValuesInFilter(attribute, values) {
193
+ var newFilter = values.reduce(function (r, v) {
194
+ r[v] = true;
195
+ return r;
196
+ }, {});
197
+ var newValueFilter = _objectSpread(_objectSpread({}, this.props.valueFilter), {}, _defineProperty({}, attribute, newFilter));
198
+ this.updateProps({
199
+ valueFilter: newValueFilter
200
+ });
201
+ }
202
+ }, {
203
+ key: "addValuesToFilter",
204
+ value: function addValuesToFilter(attribute, values) {
205
+ var filter = _objectSpread({}, this.props.valueFilter[attribute] || {});
206
+ var _iterator2 = _createForOfIteratorHelper(values),
207
+ _step2;
208
+ try {
209
+ for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
210
+ var v = _step2.value;
211
+ filter[v] = true;
212
+ }
213
+ } catch (err) {
214
+ _iterator2.e(err);
215
+ } finally {
216
+ _iterator2.f();
217
+ }
218
+ var newValueFilter = _objectSpread(_objectSpread({}, this.props.valueFilter), {}, _defineProperty({}, attribute, filter));
219
+ this.updateProps({
220
+ valueFilter: newValueFilter
221
+ });
222
+ }
223
+ }, {
224
+ key: "removeValuesFromFilter",
225
+ value: function removeValuesFromFilter(attribute, values) {
226
+ var filter = _objectSpread({}, this.props.valueFilter[attribute] || {});
227
+ var _iterator3 = _createForOfIteratorHelper(values),
228
+ _step3;
229
+ try {
230
+ for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
231
+ var v = _step3.value;
232
+ delete filter[v];
233
+ }
234
+ } catch (err) {
235
+ _iterator3.e(err);
236
+ } finally {
237
+ _iterator3.f();
238
+ }
239
+ var newValueFilter = _objectSpread(_objectSpread({}, this.props.valueFilter), {}, _defineProperty({}, attribute, filter));
240
+ this.updateProps({
241
+ valueFilter: newValueFilter
242
+ });
243
+ }
244
+ }, {
245
+ key: "setUnusedOrder",
246
+ value: function setUnusedOrder(order) {
247
+ this.state = _objectSpread(_objectSpread({}, this.state), {}, {
248
+ unusedOrder: order
249
+ });
250
+ this.notify();
251
+ }
252
+ }]);
253
+ }();
254
+ //# sourceMappingURL=PivotCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotCore.js","names":["_Utilities","require","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","name","from","test","ownKeys","Object","keys","getOwnPropertySymbols","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","forEach","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","_toPropertyKey","configurable","writable","_classCallCheck","_defineProperties","key","_createClass","i","_toPrimitive","toPrimitive","String","Number","PivotCore","exports","initialProps","undefined","listeners","Set","sanitizedInitialProps","reduce","acc","props","data","rows","cols","vals","rowOrder","colOrder","aggregatorName","rendererName","valueFilter","sorters","derivedAttributes","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","pagination","pageSize","page","state","attrValues","materializedInput","unusedOrder","calculateData","_snapshot","generateSnapshot","subscribe","listener","_this","add","notify","_iterator","_step","err","getSnapshot","recordsProcessed","PivotData","forEachRecord","record","_i","_Object$keys","attr","updateProps","newProps","shouldRecalculateData","onChange","updateProp","finalValue","v","trim","c","includes","toggleFilter","attribute","newValueFilter","setValuesInFilter","values","newFilter","addValuesToFilter","_iterator2","_step2","removeValuesFromFilter","_iterator3","_step3","setUnusedOrder","order"],"sources":["../../src/core/PivotCore.js"],"sourcesContent":["import { PivotData } from '../Utilities';\n\nexport class PivotCore {\n constructor(initialProps = {}) {\n this.listeners = new Set();\n\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 this.props = {\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 this.state = {\n attrValues: {},\n materializedInput: [],\n unusedOrder: []\n };\n\n // Calculate metadata on init\n this.calculateData();\n\n // Cache to keep React references stable \n this._snapshot = this.generateSnapshot();\n }\n\n subscribe(listener) {\n this.listeners.add(listener);\n return () => {\n this.listeners.delete(listener);\n };\n }\n\n notify() {\n this._snapshot = this.generateSnapshot();\n for (const listener of this.listeners) {\n listener(this._snapshot);\n }\n }\n\n generateSnapshot() {\n return {\n props: this.props,\n state: this.state,\n };\n }\n\n getSnapshot() {\n return this._snapshot;\n }\n\n calculateData() {\n const materializedInput = [];\n const attrValues = {};\n let recordsProcessed = 0;\n\n PivotData.forEachRecord(\n this.props.data,\n this.props.derivedAttributes,\n (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 this.state = {\n ...this.state,\n attrValues,\n materializedInput,\n };\n }\n\n updateProps(newProps) {\n let shouldRecalculateData = false;\n\n // Check if data dependencies changed\n if (newProps.data !== undefined && newProps.data !== this.props.data) {\n shouldRecalculateData = true;\n }\n if (newProps.derivedAttributes !== undefined && newProps.derivedAttributes !== this.props.derivedAttributes) {\n shouldRecalculateData = true;\n }\n\n this.props = { ...this.props, ...newProps };\n\n if (shouldRecalculateData) {\n this.calculateData();\n }\n\n // Trigger onChange hook if provided in initial properties, keeping backward compatibility\n if (this.props.onChange) {\n this.props.onChange(this.props);\n }\n\n this.notify();\n }\n\n updateProp(key, value) {\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 = { [key]: finalValue };\n\n if (key === 'rows') {\n newProps.cols = this.props.cols.filter(c => !finalValue.includes(c));\n } else if (key === 'cols') {\n newProps.rows = this.props.rows.filter(r => !finalValue.includes(r));\n }\n\n this.updateProps(newProps);\n }\n\n toggleFilter(attribute, value) {\n const filter = { ...(this.props.valueFilter[attribute] || {}) };\n if (value in filter) {\n delete filter[value];\n } else {\n filter[value] = true;\n }\n const newValueFilter = { ...this.props.valueFilter, [attribute]: filter };\n this.updateProps({ valueFilter: newValueFilter });\n }\n\n setValuesInFilter(attribute, values) {\n const newFilter = values.reduce((r, v) => {\n r[v] = true;\n return r;\n }, {});\n const newValueFilter = { ...this.props.valueFilter, [attribute]: newFilter };\n this.updateProps({ valueFilter: newValueFilter });\n }\n\n addValuesToFilter(attribute, values) {\n const filter = { ...(this.props.valueFilter[attribute] || {}) };\n for (const v of values) {\n filter[v] = true;\n }\n const newValueFilter = { ...this.props.valueFilter, [attribute]: filter };\n this.updateProps({ valueFilter: newValueFilter });\n }\n\n removeValuesFromFilter(attribute, values) {\n const filter = { ...(this.props.valueFilter[attribute] || {}) };\n for (const v of values) {\n delete filter[v];\n }\n const newValueFilter = { ...this.props.valueFilter, [attribute]: filter };\n this.updateProps({ valueFilter: newValueFilter });\n }\n\n setUnusedOrder(order) {\n this.state = { ...this.state, unusedOrder: order };\n this.notify();\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PivotEngine = void 0;
7
+ var _EventBus = require("./EventBus");
8
+ var _StateManager = require("./StateManager");
9
+ var _ModuleRegistry = require("./ModuleRegistry");
10
+ var _ColumnEngine = require("./ColumnEngine");
11
+ var _ClientSideRowModel = require("./rowModels/ClientSideRowModel");
12
+ var _GridApi = require("./api/GridApi");
13
+ var _ColumnApi = require("./api/ColumnApi");
14
+ var _excluded = ["modules", "columnDefs"];
15
+ 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); }
16
+ 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; } } }; }
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 _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
20
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
21
+ function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
22
+ 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); } }
23
+ function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
24
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
25
+ 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); }
26
+ /**
27
+ * PivotEngine — Orquestador principal del Headless Core.
28
+ *
29
+ * Uso:
30
+ * const engine = new PivotEngine({
31
+ * data: [...],
32
+ * modules: [FilterModule, PaginationModule],
33
+ * columnDefs: [{ field: 'Country', sortable: true, width: 120 }],
34
+ * rows: ['Country'],
35
+ * cols: ['Year'],
36
+ * });
37
+ *
38
+ * const api = engine.gridApi;
39
+ * api.setRowData(newData);
40
+ * api.addEventListener('filterChanged', (e) => console.log(e));
41
+ */
42
+ var PivotEngine = exports.PivotEngine = /*#__PURE__*/function () {
43
+ function PivotEngine() {
44
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
45
+ _classCallCheck(this, PivotEngine);
46
+ // Extraer modules y columnDefs del config
47
+ var _config$modules = config.modules,
48
+ modules = _config$modules === void 0 ? [] : _config$modules,
49
+ _config$columnDefs = config.columnDefs,
50
+ columnDefs = _config$columnDefs === void 0 ? [] : _config$columnDefs,
51
+ stateConfig = _objectWithoutProperties(config, _excluded);
52
+ this.eventBus = new _EventBus.EventBus();
53
+ this.stateManager = new _StateManager.StateManager(stateConfig);
54
+ this.moduleRegistry = new _ModuleRegistry.ModuleRegistry(this);
55
+ this.columnEngine = new _ColumnEngine.ColumnEngine(columnDefs);
56
+ this.rowModel = new _ClientSideRowModel.ClientSideRowModel();
57
+
58
+ // Inicializar row model
59
+ this.rowModel.init(this);
60
+
61
+ // Registrar módulos
62
+ var _iterator = _createForOfIteratorHelper(modules),
63
+ _step;
64
+ try {
65
+ for (_iterator.s(); !(_step = _iterator.n()).done;) {
66
+ var mod = _step.value;
67
+ this.moduleRegistry.register(mod);
68
+ }
69
+
70
+ // Inicializar módulos
71
+ } catch (err) {
72
+ _iterator.e(err);
73
+ } finally {
74
+ _iterator.f();
75
+ }
76
+ this.moduleRegistry.initAll();
77
+
78
+ // Crear APIs (después de init para que los módulos ya estén listos)
79
+ this._gridApi = new _GridApi.GridApi(this);
80
+ this._columnApi = new _ColumnApi.ColumnApi(this);
81
+
82
+ // Snapshot cache para React
83
+ this._reactSnapshot = null;
84
+ }
85
+ return _createClass(PivotEngine, [{
86
+ key: "gridApi",
87
+ get: function get() {
88
+ return this._gridApi;
89
+ }
90
+ }, {
91
+ key: "columnApi",
92
+ get: function get() {
93
+ return this._columnApi;
94
+ }
95
+
96
+ /**
97
+ * Obtener snapshot para useSyncExternalStore de React.
98
+ */
99
+ }, {
100
+ key: "getSnapshot",
101
+ value: function getSnapshot() {
102
+ var stateSnapshot = this.stateManager.getSnapshot();
103
+ if (!this._reactSnapshot || this._reactSnapshot._version !== stateSnapshot.version) {
104
+ this._reactSnapshot = {
105
+ props: stateSnapshot.config,
106
+ state: stateSnapshot.computed,
107
+ _version: stateSnapshot.version
108
+ };
109
+ }
110
+ return this._reactSnapshot;
111
+ }
112
+
113
+ /**
114
+ * Suscribirse a cambios de estado (para React adapter).
115
+ */
116
+ }, {
117
+ key: "subscribe",
118
+ value: function subscribe(listener) {
119
+ return this.eventBus.on('stateChanged', listener);
120
+ }
121
+
122
+ /**
123
+ * Notificar cambio de estado (usado internamente por GridApi y módulos).
124
+ */
125
+ }, {
126
+ key: "_notifyStateChanged",
127
+ value: function _notifyStateChanged() {
128
+ this._reactSnapshot = null; // Invalidar cache
129
+ var snapshot = this.getSnapshot();
130
+ this.eventBus.emit('stateChanged', snapshot);
131
+
132
+ // Backward compatibility: llamar onChange si existe
133
+ var config = this.stateManager.getConfig();
134
+ if (config.onChange) {
135
+ config.onChange(config);
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Destruir el engine y todos sus módulos.
141
+ */
142
+ }, {
143
+ key: "destroy",
144
+ value: function destroy() {
145
+ this.moduleRegistry.destroyAll();
146
+ this.rowModel.destroy();
147
+ this.eventBus.destroy();
148
+ }
149
+ }]);
150
+ }();
151
+ //# sourceMappingURL=PivotEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PivotEngine.js","names":["_EventBus","require","_StateManager","_ModuleRegistry","_ColumnEngine","_ClientSideRowModel","_GridApi","_ColumnApi","_excluded","_typeof","o","Symbol","iterator","constructor","prototype","_createForOfIteratorHelper","r","e","t","Array","isArray","_unsupportedIterableToArray","length","_n","F","s","n","done","value","f","TypeError","a","u","call","next","_arrayLikeToArray","toString","slice","name","from","test","_objectWithoutProperties","i","_objectWithoutPropertiesLoose","Object","getOwnPropertySymbols","indexOf","propertyIsEnumerable","hasOwnProperty","_classCallCheck","_defineProperties","enumerable","configurable","writable","defineProperty","_toPropertyKey","key","_createClass","_toPrimitive","toPrimitive","String","Number","PivotEngine","exports","config","arguments","undefined","_config$modules","modules","_config$columnDefs","columnDefs","stateConfig","eventBus","EventBus","stateManager","StateManager","moduleRegistry","ModuleRegistry","columnEngine","ColumnEngine","rowModel","ClientSideRowModel","init","_iterator","_step","mod","register","err","initAll","_gridApi","GridApi","_columnApi","ColumnApi","_reactSnapshot","get","getSnapshot","stateSnapshot","_version","version","props","state","computed","subscribe","listener","on","_notifyStateChanged","snapshot","emit","getConfig","onChange","destroy","destroyAll"],"sources":["../../src/core/PivotEngine.js"],"sourcesContent":["import { EventBus } from './EventBus';\nimport { StateManager } from './StateManager';\nimport { ModuleRegistry } from './ModuleRegistry';\nimport { ColumnEngine } from './ColumnEngine';\nimport { ClientSideRowModel } from './rowModels/ClientSideRowModel';\nimport { GridApi } from './api/GridApi';\nimport { ColumnApi } from './api/ColumnApi';\n\n/**\n * PivotEngine — Orquestador principal del Headless Core.\n *\n * Uso:\n * const engine = new PivotEngine({\n * data: [...],\n * modules: [FilterModule, PaginationModule],\n * columnDefs: [{ field: 'Country', sortable: true, width: 120 }],\n * rows: ['Country'],\n * cols: ['Year'],\n * });\n *\n * const api = engine.gridApi;\n * api.setRowData(newData);\n * api.addEventListener('filterChanged', (e) => console.log(e));\n */\nexport class PivotEngine {\n constructor(config = {}) {\n // Extraer modules y columnDefs del config\n const { modules = [], columnDefs = [], ...stateConfig } = config;\n\n this.eventBus = new EventBus();\n this.stateManager = new StateManager(stateConfig);\n this.moduleRegistry = new ModuleRegistry(this);\n this.columnEngine = new ColumnEngine(columnDefs);\n this.rowModel = new ClientSideRowModel();\n\n // Inicializar row model\n this.rowModel.init(this);\n\n // Registrar módulos\n for (const mod of modules) {\n this.moduleRegistry.register(mod);\n }\n\n // Inicializar módulos\n this.moduleRegistry.initAll();\n\n // Crear APIs (después de init para que los módulos ya estén listos)\n this._gridApi = new GridApi(this);\n this._columnApi = new ColumnApi(this);\n\n // Snapshot cache para React\n this._reactSnapshot = null;\n }\n\n get gridApi() {\n return this._gridApi;\n }\n\n get columnApi() {\n return this._columnApi;\n }\n\n /**\n * Obtener snapshot para useSyncExternalStore de React.\n */\n getSnapshot() {\n const stateSnapshot = this.stateManager.getSnapshot();\n if (!this._reactSnapshot || this._reactSnapshot._version !== stateSnapshot.version) {\n this._reactSnapshot = {\n props: stateSnapshot.config,\n state: stateSnapshot.computed,\n _version: stateSnapshot.version,\n };\n }\n return this._reactSnapshot;\n }\n\n /**\n * Suscribirse a cambios de estado (para React adapter).\n */\n subscribe(listener) {\n return this.eventBus.on('stateChanged', listener);\n }\n\n /**\n * Notificar cambio de estado (usado internamente por GridApi y módulos).\n */\n _notifyStateChanged() {\n this._reactSnapshot = null; // Invalidar cache\n const snapshot = this.getSnapshot();\n this.eventBus.emit('stateChanged', snapshot);\n\n // Backward compatibility: llamar onChange si existe\n const config = this.stateManager.getConfig();\n if (config.onChange) {\n config.onChange(config);\n }\n }\n\n /**\n * Destruir el engine y todos sus módulos.\n */\n destroy() {\n this.moduleRegistry.destroyAll();\n this.rowModel.destroy();\n this.eventBus.destroy();\n }\n}\n"],"mappings":"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","ignoreList":[]}