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