react-pivottable-plus 1.0.14 → 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.
- package/dist/PivotTableUI.js +131 -211
- package/dist/PivotTableUI.js.map +1 -1
- package/dist/TableRenderers.js +160 -29
- 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/usePivot.js +63 -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 +4 -2
- package/pivottable.css +13 -12
|
@@ -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":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.VirtualScroller = 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 _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
9
|
+
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); } }
|
|
10
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
12
|
+
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); }
|
|
13
|
+
/**
|
|
14
|
+
* VirtualScroller — Motor de virtualización bidireccional (filas + columnas).
|
|
15
|
+
*
|
|
16
|
+
* Calcula qué filas y columnas deben renderizarse basado en la posición del scroll.
|
|
17
|
+
* Los totales (fila de totales, columna de totales) siempre se calculan sobre TODOS los datos.
|
|
18
|
+
* La virtualización solo afecta al DOM.
|
|
19
|
+
*/
|
|
20
|
+
var VirtualScroller = exports.VirtualScroller = /*#__PURE__*/function () {
|
|
21
|
+
function VirtualScroller() {
|
|
22
|
+
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
23
|
+
_classCallCheck(this, VirtualScroller);
|
|
24
|
+
this.rowHeight = config.rowHeight || 32;
|
|
25
|
+
this.colWidth = config.colWidth || 100;
|
|
26
|
+
this.overscanRows = config.overscanRows || 5;
|
|
27
|
+
this.overscanCols = config.overscanCols || 3;
|
|
28
|
+
this.containerHeight = config.containerHeight || 400;
|
|
29
|
+
this.containerWidth = config.containerWidth || 800;
|
|
30
|
+
this.threshold = config.threshold || 100; // Activar auto si total > threshold
|
|
31
|
+
this.enabled = config.enabled !== undefined ? config.enabled : true;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Determinar si virtualización debe activarse automáticamente.
|
|
36
|
+
*/
|
|
37
|
+
return _createClass(VirtualScroller, [{
|
|
38
|
+
key: "shouldVirtualize",
|
|
39
|
+
value: function shouldVirtualize(totalRows, totalCols) {
|
|
40
|
+
if (!this.enabled) return {
|
|
41
|
+
rows: false,
|
|
42
|
+
cols: false
|
|
43
|
+
};
|
|
44
|
+
return {
|
|
45
|
+
rows: totalRows > this.threshold,
|
|
46
|
+
cols: totalCols > this.threshold
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Calcular rango visible de filas.
|
|
52
|
+
* @param {number} scrollTop - Posición vertical del scroll
|
|
53
|
+
* @param {number} totalRows - Total de filas en el dataset
|
|
54
|
+
* @returns {{ startIndex, endIndex, topPadding, bottomPadding, visibleCount }}
|
|
55
|
+
*/
|
|
56
|
+
}, {
|
|
57
|
+
key: "getVisibleRowRange",
|
|
58
|
+
value: function getVisibleRowRange(scrollTop, totalRows) {
|
|
59
|
+
if (!this.enabled || totalRows <= this.threshold) {
|
|
60
|
+
return {
|
|
61
|
+
startIndex: 0,
|
|
62
|
+
endIndex: totalRows - 1,
|
|
63
|
+
topPadding: 0,
|
|
64
|
+
bottomPadding: 0,
|
|
65
|
+
visibleCount: totalRows
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
var visibleCount = Math.ceil(this.containerHeight / this.rowHeight);
|
|
69
|
+
var startIndex = Math.max(0, Math.floor(scrollTop / this.rowHeight) - this.overscanRows);
|
|
70
|
+
var endIndex = Math.min(totalRows - 1, startIndex + visibleCount + 2 * this.overscanRows);
|
|
71
|
+
return {
|
|
72
|
+
startIndex: startIndex,
|
|
73
|
+
endIndex: endIndex,
|
|
74
|
+
topPadding: startIndex * this.rowHeight,
|
|
75
|
+
bottomPadding: Math.max(0, (totalRows - endIndex - 1) * this.rowHeight),
|
|
76
|
+
visibleCount: endIndex - startIndex + 1
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
/**
|
|
81
|
+
* Calcular rango visible de columnas.
|
|
82
|
+
* @param {number} scrollLeft - Posición horizontal del scroll
|
|
83
|
+
* @param {number} totalCols - Total de columnas
|
|
84
|
+
* @returns {{ startIndex, endIndex, leftPadding, rightPadding, visibleCount }}
|
|
85
|
+
*/
|
|
86
|
+
}, {
|
|
87
|
+
key: "getVisibleColRange",
|
|
88
|
+
value: function getVisibleColRange(scrollLeft, totalCols) {
|
|
89
|
+
if (!this.enabled || totalCols <= this.threshold) {
|
|
90
|
+
return {
|
|
91
|
+
startIndex: 0,
|
|
92
|
+
endIndex: totalCols - 1,
|
|
93
|
+
leftPadding: 0,
|
|
94
|
+
rightPadding: 0,
|
|
95
|
+
visibleCount: totalCols
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
var visibleCount = Math.ceil(this.containerWidth / this.colWidth);
|
|
99
|
+
var startIndex = Math.max(0, Math.floor(scrollLeft / this.colWidth) - this.overscanCols);
|
|
100
|
+
var endIndex = Math.min(totalCols - 1, startIndex + visibleCount + 2 * this.overscanCols);
|
|
101
|
+
return {
|
|
102
|
+
startIndex: startIndex,
|
|
103
|
+
endIndex: endIndex,
|
|
104
|
+
leftPadding: startIndex * this.colWidth,
|
|
105
|
+
rightPadding: Math.max(0, (totalCols - endIndex - 1) * this.colWidth),
|
|
106
|
+
visibleCount: endIndex - startIndex + 1
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Altura total de todas las filas (para el scroll container).
|
|
112
|
+
*/
|
|
113
|
+
}, {
|
|
114
|
+
key: "getTotalHeight",
|
|
115
|
+
value: function getTotalHeight(totalRows) {
|
|
116
|
+
return totalRows * this.rowHeight;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Ancho total de todas las columnas (para el scroll container).
|
|
121
|
+
*/
|
|
122
|
+
}, {
|
|
123
|
+
key: "getTotalWidth",
|
|
124
|
+
value: function getTotalWidth(totalCols) {
|
|
125
|
+
return totalCols * this.colWidth;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Actualizar configuración.
|
|
130
|
+
*/
|
|
131
|
+
}, {
|
|
132
|
+
key: "updateConfig",
|
|
133
|
+
value: function updateConfig(patch) {
|
|
134
|
+
Object.assign(this, patch);
|
|
135
|
+
}
|
|
136
|
+
}]);
|
|
137
|
+
}();
|
|
138
|
+
//# sourceMappingURL=VirtualScroller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VirtualScroller.js","names":["VirtualScroller","exports","config","arguments","length","undefined","_classCallCheck","rowHeight","colWidth","overscanRows","overscanCols","containerHeight","containerWidth","threshold","enabled","_createClass","key","value","shouldVirtualize","totalRows","totalCols","rows","cols","getVisibleRowRange","scrollTop","startIndex","endIndex","topPadding","bottomPadding","visibleCount","Math","ceil","max","floor","min","getVisibleColRange","scrollLeft","leftPadding","rightPadding","getTotalHeight","getTotalWidth","updateConfig","patch","Object","assign"],"sources":["../../src/core/VirtualScroller.js"],"sourcesContent":["/**\n * VirtualScroller — Motor de virtualización bidireccional (filas + columnas).\n *\n * Calcula qué filas y columnas deben renderizarse basado en la posición del scroll.\n * Los totales (fila de totales, columna de totales) siempre se calculan sobre TODOS los datos.\n * La virtualización solo afecta al DOM.\n */\nexport class VirtualScroller {\n constructor(config = {}) {\n this.rowHeight = config.rowHeight || 32;\n this.colWidth = config.colWidth || 100;\n this.overscanRows = config.overscanRows || 5;\n this.overscanCols = config.overscanCols || 3;\n this.containerHeight = config.containerHeight || 400;\n this.containerWidth = config.containerWidth || 800;\n this.threshold = config.threshold || 100; // Activar auto si total > threshold\n this.enabled = config.enabled !== undefined ? config.enabled : true;\n }\n\n /**\n * Determinar si virtualización debe activarse automáticamente.\n */\n shouldVirtualize(totalRows, totalCols) {\n if (!this.enabled) return { rows: false, cols: false };\n return {\n rows: totalRows > this.threshold,\n cols: totalCols > this.threshold,\n };\n }\n\n /**\n * Calcular rango visible de filas.\n * @param {number} scrollTop - Posición vertical del scroll\n * @param {number} totalRows - Total de filas en el dataset\n * @returns {{ startIndex, endIndex, topPadding, bottomPadding, visibleCount }}\n */\n getVisibleRowRange(scrollTop, totalRows) {\n if (!this.enabled || totalRows <= this.threshold) {\n return {\n startIndex: 0,\n endIndex: totalRows - 1,\n topPadding: 0,\n bottomPadding: 0,\n visibleCount: totalRows,\n };\n }\n\n const visibleCount = Math.ceil(this.containerHeight / this.rowHeight);\n const startIndex = Math.max(0, Math.floor(scrollTop / this.rowHeight) - this.overscanRows);\n const endIndex = Math.min(totalRows - 1, startIndex + visibleCount + 2 * this.overscanRows);\n\n return {\n startIndex,\n endIndex,\n topPadding: startIndex * this.rowHeight,\n bottomPadding: Math.max(0, (totalRows - endIndex - 1) * this.rowHeight),\n visibleCount: endIndex - startIndex + 1,\n };\n }\n\n /**\n * Calcular rango visible de columnas.\n * @param {number} scrollLeft - Posición horizontal del scroll\n * @param {number} totalCols - Total de columnas\n * @returns {{ startIndex, endIndex, leftPadding, rightPadding, visibleCount }}\n */\n getVisibleColRange(scrollLeft, totalCols) {\n if (!this.enabled || totalCols <= this.threshold) {\n return {\n startIndex: 0,\n endIndex: totalCols - 1,\n leftPadding: 0,\n rightPadding: 0,\n visibleCount: totalCols,\n };\n }\n\n const visibleCount = Math.ceil(this.containerWidth / this.colWidth);\n const startIndex = Math.max(0, Math.floor(scrollLeft / this.colWidth) - this.overscanCols);\n const endIndex = Math.min(totalCols - 1, startIndex + visibleCount + 2 * this.overscanCols);\n\n return {\n startIndex,\n endIndex,\n leftPadding: startIndex * this.colWidth,\n rightPadding: Math.max(0, (totalCols - endIndex - 1) * this.colWidth),\n visibleCount: endIndex - startIndex + 1,\n };\n }\n\n /**\n * Altura total de todas las filas (para el scroll container).\n */\n getTotalHeight(totalRows) {\n return totalRows * this.rowHeight;\n }\n\n /**\n * Ancho total de todas las columnas (para el scroll container).\n */\n getTotalWidth(totalCols) {\n return totalCols * this.colWidth;\n }\n\n /**\n * Actualizar configuración.\n */\n updateConfig(patch) {\n Object.assign(this, patch);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.ColumnApi = 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 _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
9
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
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 _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
12
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
13
|
+
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; }
|
|
14
|
+
function _classCallCheck(a, n) { if (!(a instanceof n)) throw new TypeError("Cannot call a class as a function"); }
|
|
15
|
+
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); } }
|
|
16
|
+
function _createClass(e, r, t) { return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", { writable: !1 }), e; }
|
|
17
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
18
|
+
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); }
|
|
19
|
+
/**
|
|
20
|
+
* ColumnApi — API pública para controlar columnas.
|
|
21
|
+
* Delega al ColumnEngine del PivotEngine.
|
|
22
|
+
*/
|
|
23
|
+
var ColumnApi = exports.ColumnApi = /*#__PURE__*/function () {
|
|
24
|
+
function ColumnApi(engine) {
|
|
25
|
+
_classCallCheck(this, ColumnApi);
|
|
26
|
+
this._engine = engine;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// ─── Column Definitions ───────────────────────────────────────────────────────
|
|
30
|
+
return _createClass(ColumnApi, [{
|
|
31
|
+
key: "setColumnDefs",
|
|
32
|
+
value: function setColumnDefs(defs) {
|
|
33
|
+
this._engine.columnEngine.setColumnDefs(defs);
|
|
34
|
+
this._engine.eventBus.emit('columnDefsChanged', {
|
|
35
|
+
columnDefs: defs
|
|
36
|
+
});
|
|
37
|
+
this._engine._notifyStateChanged();
|
|
38
|
+
}
|
|
39
|
+
}, {
|
|
40
|
+
key: "getColumnDefs",
|
|
41
|
+
value: function getColumnDefs() {
|
|
42
|
+
return this._engine.columnEngine.getColumnDefs();
|
|
43
|
+
}
|
|
44
|
+
}, {
|
|
45
|
+
key: "getColumn",
|
|
46
|
+
value: function getColumn(field) {
|
|
47
|
+
return this._engine.columnEngine.getColumn(field);
|
|
48
|
+
}
|
|
49
|
+
}, {
|
|
50
|
+
key: "getColumnOrDefault",
|
|
51
|
+
value: function getColumnOrDefault(field) {
|
|
52
|
+
return this._engine.columnEngine.getColumnOrDefault(field);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// ─── Visibility ───────────────────────────────────────────────────────────────
|
|
56
|
+
}, {
|
|
57
|
+
key: "setColumnVisible",
|
|
58
|
+
value: function setColumnVisible(field, visible) {
|
|
59
|
+
this._engine.columnEngine.setColumnVisible(field, visible);
|
|
60
|
+
|
|
61
|
+
// Sincronizar con hiddenAttributes del StateManager
|
|
62
|
+
var config = this._engine.stateManager.getConfig();
|
|
63
|
+
var hiddenAttributes = _toConsumableArray(config.hiddenAttributes || []);
|
|
64
|
+
if (!visible && !hiddenAttributes.includes(field)) {
|
|
65
|
+
hiddenAttributes.push(field);
|
|
66
|
+
} else if (visible) {
|
|
67
|
+
var idx = hiddenAttributes.indexOf(field);
|
|
68
|
+
if (idx > -1) hiddenAttributes.splice(idx, 1);
|
|
69
|
+
}
|
|
70
|
+
this._engine.stateManager.updateConfig({
|
|
71
|
+
hiddenAttributes: hiddenAttributes
|
|
72
|
+
});
|
|
73
|
+
this._engine.eventBus.emit('columnVisibleChanged', {
|
|
74
|
+
field: field,
|
|
75
|
+
visible: visible
|
|
76
|
+
});
|
|
77
|
+
this._engine._notifyStateChanged();
|
|
78
|
+
}
|
|
79
|
+
}, {
|
|
80
|
+
key: "getVisibleColumns",
|
|
81
|
+
value: function getVisibleColumns() {
|
|
82
|
+
return this._engine.columnEngine.getVisibleColumns();
|
|
83
|
+
}
|
|
84
|
+
}, {
|
|
85
|
+
key: "getHiddenAttributes",
|
|
86
|
+
value: function getHiddenAttributes() {
|
|
87
|
+
return this._engine.stateManager.getConfig().hiddenAttributes;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// ─── Sizing ───────────────────────────────────────────────────────────────────
|
|
91
|
+
}, {
|
|
92
|
+
key: "setColumnWidth",
|
|
93
|
+
value: function setColumnWidth(field, width) {
|
|
94
|
+
this._engine.columnEngine.setColumnWidth(field, width);
|
|
95
|
+
this._engine.eventBus.emit('columnResized', {
|
|
96
|
+
field: field,
|
|
97
|
+
width: width
|
|
98
|
+
});
|
|
99
|
+
this._engine._notifyStateChanged();
|
|
100
|
+
}
|
|
101
|
+
}, {
|
|
102
|
+
key: "autoSizeColumns",
|
|
103
|
+
value: function autoSizeColumns(fields) {
|
|
104
|
+
this._engine.columnEngine.autoSizeColumns(fields);
|
|
105
|
+
this._engine._notifyStateChanged();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
// ─── Position ─────────────────────────────────────────────────────────────────
|
|
109
|
+
}, {
|
|
110
|
+
key: "moveColumn",
|
|
111
|
+
value: function moveColumn(field, toIndex) {
|
|
112
|
+
this._engine.columnEngine.moveColumn(field, toIndex);
|
|
113
|
+
this._engine.eventBus.emit('columnMoved', {
|
|
114
|
+
field: field,
|
|
115
|
+
toIndex: toIndex
|
|
116
|
+
});
|
|
117
|
+
this._engine._notifyStateChanged();
|
|
118
|
+
}
|
|
119
|
+
}, {
|
|
120
|
+
key: "setColumnPinned",
|
|
121
|
+
value: function setColumnPinned(field, pinned) {
|
|
122
|
+
this._engine.columnEngine.setColumnPinned(field, pinned);
|
|
123
|
+
this._engine.eventBus.emit('columnPinned', {
|
|
124
|
+
field: field,
|
|
125
|
+
pinned: pinned
|
|
126
|
+
});
|
|
127
|
+
this._engine._notifyStateChanged();
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
// ─── Pivot-Specific ───────────────────────────────────────────────────────────
|
|
131
|
+
}, {
|
|
132
|
+
key: "getColumns",
|
|
133
|
+
value: function getColumns() {
|
|
134
|
+
var config = this._engine.stateManager.getConfig();
|
|
135
|
+
return {
|
|
136
|
+
rows: config.rows,
|
|
137
|
+
cols: config.cols,
|
|
138
|
+
vals: config.vals
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}, {
|
|
142
|
+
key: "getDimensionColumns",
|
|
143
|
+
value: function getDimensionColumns() {
|
|
144
|
+
return this._engine.columnEngine.getDimensionColumns();
|
|
145
|
+
}
|
|
146
|
+
}, {
|
|
147
|
+
key: "getValueColumns",
|
|
148
|
+
value: function getValueColumns() {
|
|
149
|
+
return this._engine.columnEngine.getValueColumns();
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* Obtener el cell pipeline específico para un campo.
|
|
154
|
+
*/
|
|
155
|
+
}, {
|
|
156
|
+
key: "getCellPipelineFor",
|
|
157
|
+
value: function getCellPipelineFor(field) {
|
|
158
|
+
return this._engine.columnEngine.getCellPipelineFor(field);
|
|
159
|
+
}
|
|
160
|
+
}]);
|
|
161
|
+
}();
|
|
162
|
+
//# sourceMappingURL=ColumnApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnApi.js","names":["ColumnApi","exports","engine","_classCallCheck","_engine","_createClass","key","value","setColumnDefs","defs","columnEngine","eventBus","emit","columnDefs","_notifyStateChanged","getColumnDefs","getColumn","field","getColumnOrDefault","setColumnVisible","visible","config","stateManager","getConfig","hiddenAttributes","_toConsumableArray","includes","push","idx","indexOf","splice","updateConfig","getVisibleColumns","getHiddenAttributes","setColumnWidth","width","autoSizeColumns","fields","moveColumn","toIndex","setColumnPinned","pinned","getColumns","rows","cols","vals","getDimensionColumns","getValueColumns","getCellPipelineFor"],"sources":["../../../src/core/api/ColumnApi.js"],"sourcesContent":["/**\n * ColumnApi — API pública para controlar columnas.\n * Delega al ColumnEngine del PivotEngine.\n */\nexport class ColumnApi {\n constructor(engine) {\n this._engine = engine;\n }\n\n // ─── Column Definitions ───────────────────────────────────────────────────────\n\n setColumnDefs(defs) {\n this._engine.columnEngine.setColumnDefs(defs);\n this._engine.eventBus.emit('columnDefsChanged', { columnDefs: defs });\n this._engine._notifyStateChanged();\n }\n\n getColumnDefs() {\n return this._engine.columnEngine.getColumnDefs();\n }\n\n getColumn(field) {\n return this._engine.columnEngine.getColumn(field);\n }\n\n getColumnOrDefault(field) {\n return this._engine.columnEngine.getColumnOrDefault(field);\n }\n\n // ─── Visibility ───────────────────────────────────────────────────────────────\n\n setColumnVisible(field, visible) {\n this._engine.columnEngine.setColumnVisible(field, visible);\n\n // Sincronizar con hiddenAttributes del StateManager\n const config = this._engine.stateManager.getConfig();\n const hiddenAttributes = [...(config.hiddenAttributes || [])];\n if (!visible && !hiddenAttributes.includes(field)) {\n hiddenAttributes.push(field);\n } else if (visible) {\n const idx = hiddenAttributes.indexOf(field);\n if (idx > -1) hiddenAttributes.splice(idx, 1);\n }\n this._engine.stateManager.updateConfig({ hiddenAttributes });\n this._engine.eventBus.emit('columnVisibleChanged', { field, visible });\n this._engine._notifyStateChanged();\n }\n\n getVisibleColumns() {\n return this._engine.columnEngine.getVisibleColumns();\n }\n\n getHiddenAttributes() {\n return this._engine.stateManager.getConfig().hiddenAttributes;\n }\n\n // ─── Sizing ───────────────────────────────────────────────────────────────────\n\n setColumnWidth(field, width) {\n this._engine.columnEngine.setColumnWidth(field, width);\n this._engine.eventBus.emit('columnResized', { field, width });\n this._engine._notifyStateChanged();\n }\n\n autoSizeColumns(fields) {\n this._engine.columnEngine.autoSizeColumns(fields);\n this._engine._notifyStateChanged();\n }\n\n // ─── Position ─────────────────────────────────────────────────────────────────\n\n moveColumn(field, toIndex) {\n this._engine.columnEngine.moveColumn(field, toIndex);\n this._engine.eventBus.emit('columnMoved', { field, toIndex });\n this._engine._notifyStateChanged();\n }\n\n setColumnPinned(field, pinned) {\n this._engine.columnEngine.setColumnPinned(field, pinned);\n this._engine.eventBus.emit('columnPinned', { field, pinned });\n this._engine._notifyStateChanged();\n }\n\n // ─── Pivot-Specific ───────────────────────────────────────────────────────────\n\n getColumns() {\n const config = this._engine.stateManager.getConfig();\n return {\n rows: config.rows,\n cols: config.cols,\n vals: config.vals,\n };\n }\n\n getDimensionColumns() {\n return this._engine.columnEngine.getDimensionColumns();\n }\n\n getValueColumns() {\n return this._engine.columnEngine.getValueColumns();\n }\n\n /**\n * Obtener el cell pipeline específico para un campo.\n */\n getCellPipelineFor(field) {\n return this._engine.columnEngine.getCellPipelineFor(field);\n }\n}\n"],"mappings":"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","ignoreList":[]}
|