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.
- package/README.md +2 -0
- package/dist/PivotTableUI.js +147 -213
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +273 -49
- package/dist/TableRenderers.js.map +1 -1
- package/dist/core/CellPipeline.js +167 -0
- package/dist/core/CellPipeline.js.map +1 -0
- package/dist/core/ColumnEngine.js +299 -0
- package/dist/core/ColumnEngine.js.map +1 -0
- package/dist/core/EventBus.js +109 -0
- package/dist/core/EventBus.js.map +1 -0
- package/dist/core/ModuleRegistry.js +140 -0
- package/dist/core/ModuleRegistry.js.map +1 -0
- package/dist/core/PivotCore.js +254 -0
- package/dist/core/PivotCore.js.map +1 -0
- package/dist/core/PivotEngine.js +151 -0
- package/dist/core/PivotEngine.js.map +1 -0
- package/dist/core/StateManager.js +142 -0
- package/dist/core/StateManager.js.map +1 -0
- package/dist/core/VirtualScroller.js +138 -0
- package/dist/core/VirtualScroller.js.map +1 -0
- package/dist/core/api/ColumnApi.js +162 -0
- package/dist/core/api/ColumnApi.js.map +1 -0
- package/dist/core/api/GridApi.js +208 -0
- package/dist/core/api/GridApi.js.map +1 -0
- package/dist/core/index.js +89 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/rowModels/ClientSideRowModel.js +177 -0
- package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
- package/dist/core/rowModels/index.js +13 -0
- package/dist/core/rowModels/index.js.map +1 -0
- package/dist/hooks/useColumnResize.js +112 -0
- package/dist/hooks/useColumnResize.js.map +1 -0
- package/dist/hooks/usePivot.js +68 -155
- package/dist/hooks/usePivot.js.map +1 -1
- package/dist/modules/FilterModule.js +156 -0
- package/dist/modules/FilterModule.js.map +1 -0
- package/dist/modules/PaginationModule.js +115 -0
- package/dist/modules/PaginationModule.js.map +1 -0
- package/dist/modules/SortModule.js +88 -0
- package/dist/modules/SortModule.js.map +1 -0
- package/dist/modules/ThemeModule.js +83 -0
- package/dist/modules/ThemeModule.js.map +1 -0
- package/dist/modules/VirtualizationModule.js +89 -0
- package/dist/modules/VirtualizationModule.js.map +1 -0
- package/dist/modules/index.js +41 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/react/index.js +13 -0
- package/dist/react/index.js.map +1 -0
- package/dist/react/usePivotGrid.js +116 -0
- package/dist/react/usePivotGrid.js.map +1 -0
- package/dist/renderers/RadixUI.js +1 -1
- package/dist/renderers/RadixUI.js.map +1 -1
- package/dist/renderers/ShadcnDashboardUI.js +1 -1
- package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
- package/dist/renderers/TailwindUI.js +1 -1
- package/dist/renderers/TailwindUI.js.map +1 -1
- package/package.json +8 -5
- package/pivottable.css +69 -12
|
@@ -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":[]}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.StateManager = 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
|
+
* StateManager — Gestor de estado estructurado.
|
|
19
|
+
* Separa config (props del usuario) de computed (datos derivados).
|
|
20
|
+
*/
|
|
21
|
+
var StateManager = exports.StateManager = /*#__PURE__*/function () {
|
|
22
|
+
function StateManager() {
|
|
23
|
+
var initialConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
24
|
+
_classCallCheck(this, StateManager);
|
|
25
|
+
var sanitized = Object.keys(initialConfig).reduce(function (acc, key) {
|
|
26
|
+
if (initialConfig[key] !== undefined) acc[key] = initialConfig[key];
|
|
27
|
+
return acc;
|
|
28
|
+
}, {});
|
|
29
|
+
this.config = _objectSpread({
|
|
30
|
+
data: [],
|
|
31
|
+
rows: [],
|
|
32
|
+
cols: [],
|
|
33
|
+
vals: [],
|
|
34
|
+
rowOrder: 'key_a_to_z',
|
|
35
|
+
colOrder: 'key_a_to_z',
|
|
36
|
+
aggregatorName: 'Count',
|
|
37
|
+
rendererName: 'Table',
|
|
38
|
+
valueFilter: {},
|
|
39
|
+
sorters: {},
|
|
40
|
+
derivedAttributes: {},
|
|
41
|
+
hiddenAttributes: [],
|
|
42
|
+
hiddenFromAggregators: [],
|
|
43
|
+
hiddenFromDragDrop: [],
|
|
44
|
+
pagination: false,
|
|
45
|
+
pageSize: 20,
|
|
46
|
+
page: 1,
|
|
47
|
+
size: 'lg'
|
|
48
|
+
}, sanitized);
|
|
49
|
+
this.computed = {
|
|
50
|
+
attrValues: {},
|
|
51
|
+
materializedInput: [],
|
|
52
|
+
unusedOrder: []
|
|
53
|
+
};
|
|
54
|
+
this._snapshotVersion = 0;
|
|
55
|
+
this._snapshot = null;
|
|
56
|
+
this.materializeData();
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Materializar datos: procesar los registros crudos y extraer attrValues.
|
|
61
|
+
*/
|
|
62
|
+
return _createClass(StateManager, [{
|
|
63
|
+
key: "materializeData",
|
|
64
|
+
value: function materializeData() {
|
|
65
|
+
var materializedInput = [];
|
|
66
|
+
var attrValues = {};
|
|
67
|
+
var recordsProcessed = 0;
|
|
68
|
+
_Utilities.PivotData.forEachRecord(this.config.data, this.config.derivedAttributes, function (record) {
|
|
69
|
+
materializedInput.push(record);
|
|
70
|
+
for (var _i = 0, _Object$keys = Object.keys(record); _i < _Object$keys.length; _i++) {
|
|
71
|
+
var attr = _Object$keys[_i];
|
|
72
|
+
if (!(attr in attrValues)) {
|
|
73
|
+
attrValues[attr] = {};
|
|
74
|
+
if (recordsProcessed > 0) {
|
|
75
|
+
attrValues[attr]["null"] = recordsProcessed;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
for (var _attr in attrValues) {
|
|
80
|
+
var value = _attr in record ? record[_attr] : 'null';
|
|
81
|
+
if (!(value in attrValues[_attr])) {
|
|
82
|
+
attrValues[_attr][value] = 0;
|
|
83
|
+
}
|
|
84
|
+
attrValues[_attr][value]++;
|
|
85
|
+
}
|
|
86
|
+
recordsProcessed++;
|
|
87
|
+
});
|
|
88
|
+
this.computed.attrValues = attrValues;
|
|
89
|
+
this.computed.materializedInput = materializedInput;
|
|
90
|
+
this._snapshotVersion++;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Actualizar config. Retorna true si los datos necesitaron rematerialización.
|
|
95
|
+
*/
|
|
96
|
+
}, {
|
|
97
|
+
key: "updateConfig",
|
|
98
|
+
value: function updateConfig(patch) {
|
|
99
|
+
var needsRematerialize = false;
|
|
100
|
+
if (patch.data !== undefined && patch.data !== this.config.data) {
|
|
101
|
+
needsRematerialize = true;
|
|
102
|
+
}
|
|
103
|
+
if (patch.derivedAttributes !== undefined && patch.derivedAttributes !== this.config.derivedAttributes) {
|
|
104
|
+
needsRematerialize = true;
|
|
105
|
+
}
|
|
106
|
+
this.config = _objectSpread(_objectSpread({}, this.config), patch);
|
|
107
|
+
if (needsRematerialize) {
|
|
108
|
+
this.materializeData();
|
|
109
|
+
}
|
|
110
|
+
this._snapshotVersion++;
|
|
111
|
+
this._snapshot = null; // Invalidar cache
|
|
112
|
+
return needsRematerialize;
|
|
113
|
+
}
|
|
114
|
+
}, {
|
|
115
|
+
key: "getConfig",
|
|
116
|
+
value: function getConfig() {
|
|
117
|
+
return this.config;
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "getComputed",
|
|
121
|
+
value: function getComputed() {
|
|
122
|
+
return this.computed;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Generar un snapshot inmutable para React (useSyncExternalStore).
|
|
127
|
+
*/
|
|
128
|
+
}, {
|
|
129
|
+
key: "getSnapshot",
|
|
130
|
+
value: function getSnapshot() {
|
|
131
|
+
if (!this._snapshot) {
|
|
132
|
+
this._snapshot = {
|
|
133
|
+
config: this.config,
|
|
134
|
+
computed: this.computed,
|
|
135
|
+
version: this._snapshotVersion
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return this._snapshot;
|
|
139
|
+
}
|
|
140
|
+
}]);
|
|
141
|
+
}();
|
|
142
|
+
//# sourceMappingURL=StateManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StateManager.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","StateManager","exports","initialConfig","undefined","sanitized","reduce","acc","config","data","rows","cols","vals","rowOrder","colOrder","aggregatorName","rendererName","valueFilter","sorters","derivedAttributes","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","pagination","pageSize","page","size","computed","attrValues","materializedInput","unusedOrder","_snapshotVersion","_snapshot","materializeData","recordsProcessed","PivotData","forEachRecord","record","_i","_Object$keys","attr","updateConfig","patch","needsRematerialize","getConfig","getComputed","getSnapshot","version"],"sources":["../../src/core/StateManager.js"],"sourcesContent":["import { PivotData } from '../Utilities';\n\n/**\n * StateManager — Gestor de estado estructurado.\n * Separa config (props del usuario) de computed (datos derivados).\n */\nexport class StateManager {\n constructor(initialConfig = {}) {\n const sanitized = Object.keys(initialConfig).reduce((acc, key) => {\n if (initialConfig[key] !== undefined) acc[key] = initialConfig[key];\n return acc;\n }, {});\n\n this.config = {\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 size: 'lg',\n ...sanitized,\n };\n\n this.computed = {\n attrValues: {},\n materializedInput: [],\n unusedOrder: [],\n };\n\n this._snapshotVersion = 0;\n this._snapshot = null;\n this.materializeData();\n }\n\n /**\n * Materializar datos: procesar los registros crudos y extraer attrValues.\n */\n materializeData() {\n const materializedInput = [];\n const attrValues = {};\n let recordsProcessed = 0;\n\n PivotData.forEachRecord(\n this.config.data,\n this.config.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.computed.attrValues = attrValues;\n this.computed.materializedInput = materializedInput;\n this._snapshotVersion++;\n }\n\n /**\n * Actualizar config. Retorna true si los datos necesitaron rematerialización.\n */\n updateConfig(patch) {\n let needsRematerialize = false;\n\n if (patch.data !== undefined && patch.data !== this.config.data) {\n needsRematerialize = true;\n }\n if (patch.derivedAttributes !== undefined && patch.derivedAttributes !== this.config.derivedAttributes) {\n needsRematerialize = true;\n }\n\n this.config = { ...this.config, ...patch };\n\n if (needsRematerialize) {\n this.materializeData();\n }\n\n this._snapshotVersion++;\n this._snapshot = null; // Invalidar cache\n return needsRematerialize;\n }\n\n getConfig() {\n return this.config;\n }\n\n getComputed() {\n return this.computed;\n }\n\n /**\n * Generar un snapshot inmutable para React (useSyncExternalStore).\n */\n getSnapshot() {\n if (!this._snapshot) {\n this._snapshot = {\n config: this.config,\n computed: this.computed,\n version: this._snapshotVersion,\n };\n }\n return this._snapshot;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|