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.
Files changed (56) hide show
  1. package/dist/PivotTableUI.js +131 -211
  2. package/dist/PivotTableUI.js.map +1 -1
  3. package/dist/TableRenderers.js +160 -29
  4. package/dist/TableRenderers.js.map +1 -1
  5. package/dist/core/CellPipeline.js +167 -0
  6. package/dist/core/CellPipeline.js.map +1 -0
  7. package/dist/core/ColumnEngine.js +299 -0
  8. package/dist/core/ColumnEngine.js.map +1 -0
  9. package/dist/core/EventBus.js +109 -0
  10. package/dist/core/EventBus.js.map +1 -0
  11. package/dist/core/ModuleRegistry.js +140 -0
  12. package/dist/core/ModuleRegistry.js.map +1 -0
  13. package/dist/core/PivotCore.js +254 -0
  14. package/dist/core/PivotCore.js.map +1 -0
  15. package/dist/core/PivotEngine.js +151 -0
  16. package/dist/core/PivotEngine.js.map +1 -0
  17. package/dist/core/StateManager.js +142 -0
  18. package/dist/core/StateManager.js.map +1 -0
  19. package/dist/core/VirtualScroller.js +138 -0
  20. package/dist/core/VirtualScroller.js.map +1 -0
  21. package/dist/core/api/ColumnApi.js +162 -0
  22. package/dist/core/api/ColumnApi.js.map +1 -0
  23. package/dist/core/api/GridApi.js +208 -0
  24. package/dist/core/api/GridApi.js.map +1 -0
  25. package/dist/core/index.js +89 -0
  26. package/dist/core/index.js.map +1 -0
  27. package/dist/core/rowModels/ClientSideRowModel.js +177 -0
  28. package/dist/core/rowModels/ClientSideRowModel.js.map +1 -0
  29. package/dist/core/rowModels/index.js +13 -0
  30. package/dist/core/rowModels/index.js.map +1 -0
  31. package/dist/hooks/usePivot.js +63 -155
  32. package/dist/hooks/usePivot.js.map +1 -1
  33. package/dist/modules/FilterModule.js +156 -0
  34. package/dist/modules/FilterModule.js.map +1 -0
  35. package/dist/modules/PaginationModule.js +115 -0
  36. package/dist/modules/PaginationModule.js.map +1 -0
  37. package/dist/modules/SortModule.js +88 -0
  38. package/dist/modules/SortModule.js.map +1 -0
  39. package/dist/modules/ThemeModule.js +83 -0
  40. package/dist/modules/ThemeModule.js.map +1 -0
  41. package/dist/modules/VirtualizationModule.js +89 -0
  42. package/dist/modules/VirtualizationModule.js.map +1 -0
  43. package/dist/modules/index.js +41 -0
  44. package/dist/modules/index.js.map +1 -0
  45. package/dist/react/index.js +13 -0
  46. package/dist/react/index.js.map +1 -0
  47. package/dist/react/usePivotGrid.js +116 -0
  48. package/dist/react/usePivotGrid.js.map +1 -0
  49. package/dist/renderers/RadixUI.js +1 -1
  50. package/dist/renderers/RadixUI.js.map +1 -1
  51. package/dist/renderers/ShadcnDashboardUI.js +1 -1
  52. package/dist/renderers/ShadcnDashboardUI.js.map +1 -1
  53. package/dist/renderers/TailwindUI.js +1 -1
  54. package/dist/renderers/TailwindUI.js.map +1 -1
  55. package/package.json +4 -2
  56. package/pivottable.css +13 -12
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.SortModule = SortModule;
7
+ /**
8
+ * SortModule — Módulo de ordenamiento inyectable.
9
+ *
10
+ * Expone en GridApi:
11
+ * - setRowOrder(order)
12
+ * - setColOrder(order)
13
+ * - toggleRowOrder()
14
+ * - toggleColOrder()
15
+ * - getSortState()
16
+ */
17
+ function SortModule() {
18
+ var SORT_CYCLE = ['key_a_to_z', 'value_a_to_z', 'value_z_to_a'];
19
+ return {
20
+ id: 'sort',
21
+ _engine: null,
22
+ init: function init(engine) {
23
+ this._engine = engine;
24
+ },
25
+ getApi: function getApi() {
26
+ var self = this;
27
+ return {
28
+ setRowOrder: function setRowOrder(order) {
29
+ self._engine.stateManager.updateConfig({
30
+ rowOrder: order
31
+ });
32
+ self._engine.eventBus.emit('sortChanged', {
33
+ rowOrder: order,
34
+ colOrder: self._engine.stateManager.getConfig().colOrder
35
+ });
36
+ self._engine._notifyStateChanged();
37
+ },
38
+ setColOrder: function setColOrder(order) {
39
+ self._engine.stateManager.updateConfig({
40
+ colOrder: order
41
+ });
42
+ self._engine.eventBus.emit('sortChanged', {
43
+ rowOrder: self._engine.stateManager.getConfig().rowOrder,
44
+ colOrder: order
45
+ });
46
+ self._engine._notifyStateChanged();
47
+ },
48
+ toggleRowOrder: function toggleRowOrder() {
49
+ var config = self._engine.stateManager.getConfig();
50
+ var currentIdx = SORT_CYCLE.indexOf(config.rowOrder);
51
+ var nextOrder = SORT_CYCLE[(currentIdx + 1) % SORT_CYCLE.length];
52
+ self._engine.stateManager.updateConfig({
53
+ rowOrder: nextOrder
54
+ });
55
+ self._engine.eventBus.emit('sortChanged', {
56
+ rowOrder: nextOrder,
57
+ colOrder: config.colOrder
58
+ });
59
+ self._engine._notifyStateChanged();
60
+ },
61
+ toggleColOrder: function toggleColOrder() {
62
+ var config = self._engine.stateManager.getConfig();
63
+ var currentIdx = SORT_CYCLE.indexOf(config.colOrder);
64
+ var nextOrder = SORT_CYCLE[(currentIdx + 1) % SORT_CYCLE.length];
65
+ self._engine.stateManager.updateConfig({
66
+ colOrder: nextOrder
67
+ });
68
+ self._engine.eventBus.emit('sortChanged', {
69
+ rowOrder: config.rowOrder,
70
+ colOrder: nextOrder
71
+ });
72
+ self._engine._notifyStateChanged();
73
+ },
74
+ getSortState: function getSortState() {
75
+ var config = self._engine.stateManager.getConfig();
76
+ return {
77
+ rowOrder: config.rowOrder,
78
+ colOrder: config.colOrder
79
+ };
80
+ }
81
+ };
82
+ },
83
+ destroy: function destroy() {
84
+ this._engine = null;
85
+ }
86
+ };
87
+ }
88
+ //# sourceMappingURL=SortModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortModule.js","names":["SortModule","SORT_CYCLE","id","_engine","init","engine","getApi","self","setRowOrder","order","stateManager","updateConfig","rowOrder","eventBus","emit","colOrder","getConfig","_notifyStateChanged","setColOrder","toggleRowOrder","config","currentIdx","indexOf","nextOrder","length","toggleColOrder","getSortState","destroy"],"sources":["../../src/modules/SortModule.js"],"sourcesContent":["/**\n * SortModule — Módulo de ordenamiento inyectable.\n *\n * Expone en GridApi:\n * - setRowOrder(order)\n * - setColOrder(order)\n * - toggleRowOrder()\n * - toggleColOrder()\n * - getSortState()\n */\nexport function SortModule() {\n const SORT_CYCLE = ['key_a_to_z', 'value_a_to_z', 'value_z_to_a'];\n\n return {\n id: 'sort',\n _engine: null,\n\n init(engine) {\n this._engine = engine;\n },\n\n getApi() {\n const self = this;\n return {\n setRowOrder(order) {\n self._engine.stateManager.updateConfig({ rowOrder: order });\n self._engine.eventBus.emit('sortChanged', { rowOrder: order, colOrder: self._engine.stateManager.getConfig().colOrder });\n self._engine._notifyStateChanged();\n },\n\n setColOrder(order) {\n self._engine.stateManager.updateConfig({ colOrder: order });\n self._engine.eventBus.emit('sortChanged', { rowOrder: self._engine.stateManager.getConfig().rowOrder, colOrder: order });\n self._engine._notifyStateChanged();\n },\n\n toggleRowOrder() {\n const config = self._engine.stateManager.getConfig();\n const currentIdx = SORT_CYCLE.indexOf(config.rowOrder);\n const nextOrder = SORT_CYCLE[(currentIdx + 1) % SORT_CYCLE.length];\n self._engine.stateManager.updateConfig({ rowOrder: nextOrder });\n self._engine.eventBus.emit('sortChanged', { rowOrder: nextOrder, colOrder: config.colOrder });\n self._engine._notifyStateChanged();\n },\n\n toggleColOrder() {\n const config = self._engine.stateManager.getConfig();\n const currentIdx = SORT_CYCLE.indexOf(config.colOrder);\n const nextOrder = SORT_CYCLE[(currentIdx + 1) % SORT_CYCLE.length];\n self._engine.stateManager.updateConfig({ colOrder: nextOrder });\n self._engine.eventBus.emit('sortChanged', { rowOrder: config.rowOrder, colOrder: nextOrder });\n self._engine._notifyStateChanged();\n },\n\n getSortState() {\n const config = self._engine.stateManager.getConfig();\n return { rowOrder: config.rowOrder, colOrder: config.colOrder };\n },\n };\n },\n\n destroy() {\n this._engine = null;\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ThemeModule = 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
+ * ThemeModule — Maneja el sistema de temas y tamaños para la tabla
15
+ *
16
+ * Expone métodos en el GridApi para cambiar programáticamente el tema visual
17
+ * (ej. pvt-theme-default, pvt-theme-dark) y el tamaño (sm, md, lg).
18
+ */
19
+ var ThemeModule = exports.ThemeModule = /*#__PURE__*/function () {
20
+ function ThemeModule() {
21
+ _classCallCheck(this, ThemeModule);
22
+ this.id = 'theme';
23
+ this.engine = null;
24
+ }
25
+ return _createClass(ThemeModule, [{
26
+ key: "init",
27
+ value: function init(engine) {
28
+ this.engine = engine;
29
+
30
+ // Configurar valores por defecto si no existen
31
+ var config = this.engine.stateManager.getConfig();
32
+ if (!config.theme) {
33
+ this.engine.stateManager.updateConfig({
34
+ theme: 'default'
35
+ });
36
+ }
37
+ if (!config.size) {
38
+ this.engine.stateManager.updateConfig({
39
+ size: 'lg'
40
+ });
41
+ }
42
+ }
43
+
44
+ // Se inyecta al GridApi
45
+ }, {
46
+ key: "getApi",
47
+ value: function getApi() {
48
+ var _this = this;
49
+ return {
50
+ setTheme: function setTheme(theme) {
51
+ _this.engine.stateManager.updateConfig({
52
+ theme: theme
53
+ });
54
+ _this.engine.eventBus.emit('themeChanged', {
55
+ theme: theme
56
+ });
57
+ _this.engine._notifyStateChanged();
58
+ },
59
+ setSize: function setSize(size) {
60
+ _this.engine.stateManager.updateConfig({
61
+ size: size
62
+ });
63
+ _this.engine.eventBus.emit('sizeChanged', {
64
+ size: size
65
+ });
66
+ _this.engine._notifyStateChanged();
67
+ },
68
+ getTheme: function getTheme() {
69
+ return _this.engine.stateManager.getConfig().theme || 'default';
70
+ },
71
+ getSize: function getSize() {
72
+ return _this.engine.stateManager.getConfig().size || 'lg';
73
+ }
74
+ };
75
+ }
76
+ }, {
77
+ key: "destroy",
78
+ value: function destroy() {
79
+ this.engine = null;
80
+ }
81
+ }]);
82
+ }();
83
+ //# sourceMappingURL=ThemeModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeModule.js","names":["ThemeModule","exports","_classCallCheck","id","engine","_createClass","key","value","init","config","stateManager","getConfig","theme","updateConfig","size","getApi","_this","setTheme","eventBus","emit","_notifyStateChanged","setSize","getTheme","getSize","destroy"],"sources":["../../src/modules/ThemeModule.js"],"sourcesContent":["/**\n * ThemeModule — Maneja el sistema de temas y tamaños para la tabla\n * \n * Expone métodos en el GridApi para cambiar programáticamente el tema visual\n * (ej. pvt-theme-default, pvt-theme-dark) y el tamaño (sm, md, lg).\n */\nexport class ThemeModule {\n constructor() {\n this.id = 'theme';\n this.engine = null;\n }\n\n init(engine) {\n this.engine = engine;\n\n // Configurar valores por defecto si no existen\n const config = this.engine.stateManager.getConfig();\n if (!config.theme) {\n this.engine.stateManager.updateConfig({ theme: 'default' });\n }\n if (!config.size) {\n this.engine.stateManager.updateConfig({ size: 'lg' });\n }\n }\n\n // Se inyecta al GridApi\n getApi() {\n return {\n setTheme: (theme) => {\n this.engine.stateManager.updateConfig({ theme });\n this.engine.eventBus.emit('themeChanged', { theme });\n this.engine._notifyStateChanged();\n },\n setSize: (size) => {\n this.engine.stateManager.updateConfig({ size });\n this.engine.eventBus.emit('sizeChanged', { size });\n this.engine._notifyStateChanged();\n },\n getTheme: () => {\n return this.engine.stateManager.getConfig().theme || 'default';\n },\n getSize: () => {\n return this.engine.stateManager.getConfig().size || 'lg';\n }\n };\n }\n\n destroy() {\n this.engine = null;\n }\n}\n"],"mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AALA,IAMaA,WAAW,GAAAC,OAAA,CAAAD,WAAA;EACpB,SAAAA,YAAA,EAAc;IAAAE,eAAA,OAAAF,WAAA;IACV,IAAI,CAACG,EAAE,GAAG,OAAO;IACjB,IAAI,CAACC,MAAM,GAAG,IAAI;EACtB;EAAC,OAAAC,YAAA,CAAAL,WAAA;IAAAM,GAAA;IAAAC,KAAA,EAED,SAAAC,IAAIA,CAACJ,MAAM,EAAE;MACT,IAAI,CAACA,MAAM,GAAGA,MAAM;;MAEpB;MACA,IAAMK,MAAM,GAAG,IAAI,CAACL,MAAM,CAACM,YAAY,CAACC,SAAS,CAAC,CAAC;MACnD,IAAI,CAACF,MAAM,CAACG,KAAK,EAAE;QACf,IAAI,CAACR,MAAM,CAACM,YAAY,CAACG,YAAY,CAAC;UAAED,KAAK,EAAE;QAAU,CAAC,CAAC;MAC/D;MACA,IAAI,CAACH,MAAM,CAACK,IAAI,EAAE;QACd,IAAI,CAACV,MAAM,CAACM,YAAY,CAACG,YAAY,CAAC;UAAEC,IAAI,EAAE;QAAK,CAAC,CAAC;MACzD;IACJ;;IAEA;EAAA;IAAAR,GAAA;IAAAC,KAAA,EACA,SAAAQ,MAAMA,CAAA,EAAG;MAAA,IAAAC,KAAA;MACL,OAAO;QACHC,QAAQ,EAAE,SAAVA,QAAQA,CAAGL,KAAK,EAAK;UACjBI,KAAI,CAACZ,MAAM,CAACM,YAAY,CAACG,YAAY,CAAC;YAAED,KAAK,EAALA;UAAM,CAAC,CAAC;UAChDI,KAAI,CAACZ,MAAM,CAACc,QAAQ,CAACC,IAAI,CAAC,cAAc,EAAE;YAAEP,KAAK,EAALA;UAAM,CAAC,CAAC;UACpDI,KAAI,CAACZ,MAAM,CAACgB,mBAAmB,CAAC,CAAC;QACrC,CAAC;QACDC,OAAO,EAAE,SAATA,OAAOA,CAAGP,IAAI,EAAK;UACfE,KAAI,CAACZ,MAAM,CAACM,YAAY,CAACG,YAAY,CAAC;YAAEC,IAAI,EAAJA;UAAK,CAAC,CAAC;UAC/CE,KAAI,CAACZ,MAAM,CAACc,QAAQ,CAACC,IAAI,CAAC,aAAa,EAAE;YAAEL,IAAI,EAAJA;UAAK,CAAC,CAAC;UAClDE,KAAI,CAACZ,MAAM,CAACgB,mBAAmB,CAAC,CAAC;QACrC,CAAC;QACDE,QAAQ,EAAE,SAAVA,QAAQA,CAAA,EAAQ;UACZ,OAAON,KAAI,CAACZ,MAAM,CAACM,YAAY,CAACC,SAAS,CAAC,CAAC,CAACC,KAAK,IAAI,SAAS;QAClE,CAAC;QACDW,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAQ;UACX,OAAOP,KAAI,CAACZ,MAAM,CAACM,YAAY,CAACC,SAAS,CAAC,CAAC,CAACG,IAAI,IAAI,IAAI;QAC5D;MACJ,CAAC;IACL;EAAC;IAAAR,GAAA;IAAAC,KAAA,EAED,SAAAiB,OAAOA,CAAA,EAAG;MACN,IAAI,CAACpB,MAAM,GAAG,IAAI;IACtB;EAAC;AAAA","ignoreList":[]}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.VirtualizationModule = VirtualizationModule;
7
+ var _VirtualScroller = require("../core/VirtualScroller");
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 _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
+ /**
15
+ * VirtualizationModule — Módulo de virtualización registrable.
16
+ *
17
+ * Expone en GridApi:
18
+ * - setRowHeight(height)
19
+ * - setColWidth(width)
20
+ * - setOverscan(rows, cols)
21
+ * - setContainerSize(height, width)
22
+ * - setVirtualizationEnabled(enabled)
23
+ * - getVirtualScroller()
24
+ */
25
+ function VirtualizationModule() {
26
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
27
+ return {
28
+ id: 'virtualization',
29
+ _engine: null,
30
+ _scroller: null,
31
+ init: function init(engine) {
32
+ this._engine = engine;
33
+ this._scroller = new _VirtualScroller.VirtualScroller(config);
34
+ },
35
+ getApi: function getApi() {
36
+ var self = this;
37
+ return {
38
+ setRowHeight: function setRowHeight(height) {
39
+ self._scroller.updateConfig({
40
+ rowHeight: height
41
+ });
42
+ self._engine._notifyStateChanged();
43
+ },
44
+ setColWidth: function setColWidth(width) {
45
+ self._scroller.updateConfig({
46
+ colWidth: width
47
+ });
48
+ self._engine._notifyStateChanged();
49
+ },
50
+ setOverscan: function setOverscan(rows, cols) {
51
+ self._scroller.updateConfig(_objectSpread({
52
+ overscanRows: rows
53
+ }, cols !== undefined ? {
54
+ overscanCols: cols
55
+ } : {}));
56
+ self._engine._notifyStateChanged();
57
+ },
58
+ setContainerSize: function setContainerSize(height, width) {
59
+ self._scroller.updateConfig(_objectSpread({
60
+ containerHeight: height
61
+ }, width !== undefined ? {
62
+ containerWidth: width
63
+ } : {}));
64
+ self._engine._notifyStateChanged();
65
+ },
66
+ setVirtualizationEnabled: function setVirtualizationEnabled(enabled) {
67
+ self._scroller.updateConfig({
68
+ enabled: enabled
69
+ });
70
+ self._engine._notifyStateChanged();
71
+ },
72
+ setVirtualizationThreshold: function setVirtualizationThreshold(threshold) {
73
+ self._scroller.updateConfig({
74
+ threshold: threshold
75
+ });
76
+ self._engine._notifyStateChanged();
77
+ },
78
+ getVirtualScroller: function getVirtualScroller() {
79
+ return self._scroller;
80
+ }
81
+ };
82
+ },
83
+ destroy: function destroy() {
84
+ this._engine = null;
85
+ this._scroller = null;
86
+ }
87
+ };
88
+ }
89
+ //# sourceMappingURL=VirtualizationModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualizationModule.js","names":["_VirtualScroller","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","i","_toPrimitive","toPrimitive","call","TypeError","String","Number","VirtualizationModule","config","undefined","id","_engine","_scroller","init","engine","VirtualScroller","getApi","self","setRowHeight","height","updateConfig","rowHeight","_notifyStateChanged","setColWidth","width","colWidth","setOverscan","rows","cols","overscanRows","overscanCols","setContainerSize","containerHeight","containerWidth","setVirtualizationEnabled","enabled","setVirtualizationThreshold","threshold","getVirtualScroller","destroy"],"sources":["../../src/modules/VirtualizationModule.js"],"sourcesContent":["import { VirtualScroller } from '../core/VirtualScroller';\n\n/**\n * VirtualizationModule — Módulo de virtualización registrable.\n *\n * Expone en GridApi:\n * - setRowHeight(height)\n * - setColWidth(width)\n * - setOverscan(rows, cols)\n * - setContainerSize(height, width)\n * - setVirtualizationEnabled(enabled)\n * - getVirtualScroller()\n */\nexport function VirtualizationModule(config = {}) {\n return {\n id: 'virtualization',\n _engine: null,\n _scroller: null,\n\n init(engine) {\n this._engine = engine;\n this._scroller = new VirtualScroller(config);\n },\n\n getApi() {\n const self = this;\n return {\n setRowHeight(height) {\n self._scroller.updateConfig({ rowHeight: height });\n self._engine._notifyStateChanged();\n },\n\n setColWidth(width) {\n self._scroller.updateConfig({ colWidth: width });\n self._engine._notifyStateChanged();\n },\n\n setOverscan(rows, cols) {\n self._scroller.updateConfig({\n overscanRows: rows,\n ...(cols !== undefined ? { overscanCols: cols } : {}),\n });\n self._engine._notifyStateChanged();\n },\n\n setContainerSize(height, width) {\n self._scroller.updateConfig({\n containerHeight: height,\n ...(width !== undefined ? { containerWidth: width } : {}),\n });\n self._engine._notifyStateChanged();\n },\n\n setVirtualizationEnabled(enabled) {\n self._scroller.updateConfig({ enabled });\n self._engine._notifyStateChanged();\n },\n\n setVirtualizationThreshold(threshold) {\n self._scroller.updateConfig({ threshold });\n self._engine._notifyStateChanged();\n },\n\n getVirtualScroller() {\n return self._scroller;\n },\n };\n },\n\n destroy() {\n this._engine = null;\n this._scroller = null;\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FilterModule", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _FilterModule.FilterModule;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "PaginationModule", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _PaginationModule.PaginationModule;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "SortModule", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _SortModule.SortModule;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "ThemeModule", {
25
+ enumerable: true,
26
+ get: function get() {
27
+ return _ThemeModule.ThemeModule;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "VirtualizationModule", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _VirtualizationModule.VirtualizationModule;
34
+ }
35
+ });
36
+ var _FilterModule = require("./FilterModule");
37
+ var _PaginationModule = require("./PaginationModule");
38
+ var _SortModule = require("./SortModule");
39
+ var _VirtualizationModule = require("./VirtualizationModule");
40
+ var _ThemeModule = require("./ThemeModule");
41
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_FilterModule","require","_PaginationModule","_SortModule","_VirtualizationModule","_ThemeModule"],"sources":["../../src/modules/index.js"],"sourcesContent":["export { FilterModule } from './FilterModule';\nexport { PaginationModule } from './PaginationModule';\nexport { SortModule } from './SortModule';\nexport { VirtualizationModule } from './VirtualizationModule';\nexport { ThemeModule } from './ThemeModule';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,qBAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "usePivotGrid", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _usePivotGrid.usePivotGrid;
10
+ }
11
+ });
12
+ var _usePivotGrid = require("./usePivotGrid");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_usePivotGrid","require"],"sources":["../../src/react/index.js"],"sourcesContent":["export { usePivotGrid } from './usePivotGrid';\n"],"mappings":";;;;;;;;;;;AAAA,IAAAA,aAAA,GAAAC,OAAA","ignoreList":[]}
@@ -0,0 +1,116 @@
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.usePivotGrid = usePivotGrid;
8
+ var _react = require("react");
9
+ var _PivotEngine = require("../core/PivotEngine");
10
+ var _FilterModule = require("../modules/FilterModule");
11
+ var _PaginationModule = require("../modules/PaginationModule");
12
+ var _SortModule = require("../modules/SortModule");
13
+ var _excluded = ["modules"];
14
+ 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; }
15
+ 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; }
16
+ 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; }
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
+ 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
+ /**
22
+ * usePivotGrid — Hook principal para conectar PivotEngine con React.
23
+ *
24
+ * Uso:
25
+ * const { gridApi, columnApi, props, state } = usePivotGrid({
26
+ * data: [...],
27
+ * rows: ['Country'],
28
+ * cols: ['Year'],
29
+ * modules: [FilterModule, SortModule],
30
+ * });
31
+ *
32
+ * Si no se pasan modules, se incluyen FilterModule, PaginationModule, SortModule por defecto.
33
+ */
34
+ function usePivotGrid(config) {
35
+ var engineRef = (0, _react.useRef)(null);
36
+ if (!engineRef.current) {
37
+ var _config$modules = config.modules,
38
+ modules = _config$modules === void 0 ? [_FilterModule.FilterModule, _PaginationModule.PaginationModule, _SortModule.SortModule] : _config$modules,
39
+ restConfig = _objectWithoutProperties(config, _excluded);
40
+ engineRef.current = new _PivotEngine.PivotEngine(_objectSpread(_objectSpread({}, restConfig), {}, {
41
+ modules: modules
42
+ }));
43
+ }
44
+
45
+ // Sincronizar props externas cuando cambian
46
+ (0, _react.useEffect)(function () {
47
+ var sanitized = {};
48
+ var keysToSync = ['data', 'rows', 'cols', 'rendererName', 'aggregatorName', 'page', 'pageSize', 'vals'];
49
+ for (var _i = 0, _keysToSync = keysToSync; _i < _keysToSync.length; _i++) {
50
+ var key = _keysToSync[_i];
51
+ if (config[key] !== undefined) {
52
+ sanitized[key] = config[key];
53
+ }
54
+ }
55
+
56
+ // Pasar también renderers, aggregators, sorters si vienen
57
+ if (config.renderers) sanitized.renderers = config.renderers;
58
+ if (config.aggregators) sanitized.aggregators = config.aggregators;
59
+ if (config.sorters) sanitized.sorters = config.sorters;
60
+ if (config.onChange) sanitized.onChange = config.onChange;
61
+ if (config.pagination !== undefined) sanitized.pagination = config.pagination;
62
+ if (config.size) sanitized.size = config.size;
63
+ if (config.derivedAttributes) sanitized.derivedAttributes = config.derivedAttributes;
64
+ if (config.hiddenAttributes) sanitized.hiddenAttributes = config.hiddenAttributes;
65
+ if (config.hiddenFromAggregators) sanitized.hiddenFromAggregators = config.hiddenFromAggregators;
66
+ if (config.hiddenFromDragDrop) sanitized.hiddenFromDragDrop = config.hiddenFromDragDrop;
67
+ engineRef.current.stateManager.updateConfig(sanitized);
68
+ engineRef.current._notifyStateChanged();
69
+ }, [config.data, config.rows, config.cols, config.rendererName, config.aggregatorName, config.page, config.pageSize]);
70
+
71
+ // Suscribirse a cambios del engine via useSyncExternalStore
72
+ var snapshot = (0, _react.useSyncExternalStore)((0, _react.useCallback)(function (onStoreChange) {
73
+ return engineRef.current.subscribe(onStoreChange);
74
+ }, []), (0, _react.useCallback)(function () {
75
+ return engineRef.current.getSnapshot();
76
+ }, []));
77
+ return {
78
+ gridApi: engineRef.current.gridApi,
79
+ columnApi: engineRef.current.columnApi,
80
+ engine: engineRef.current,
81
+ // Backward-compatible shape:
82
+ props: snapshot.props,
83
+ state: snapshot.state,
84
+ // Convenience actions (delegates to gridApi, mantiene compatibilidad con usePivot)
85
+ actions: {
86
+ setProps: function setProps(newProps) {
87
+ return engineRef.current.gridApi.updateConfig(newProps);
88
+ },
89
+ updateProp: function updateProp(key, value) {
90
+ if (key === 'rows') {
91
+ engineRef.current.gridApi.setRows(value);
92
+ } else if (key === 'cols') {
93
+ engineRef.current.gridApi.setCols(value);
94
+ } else {
95
+ engineRef.current.gridApi.updateConfig(_defineProperty({}, key, value));
96
+ }
97
+ },
98
+ toggleFilter: function toggleFilter(attr, value) {
99
+ return engineRef.current.gridApi.toggleFilter(attr, value);
100
+ },
101
+ setValuesInFilter: function setValuesInFilter(attr, values) {
102
+ return engineRef.current.gridApi.setFilter(attr, values);
103
+ },
104
+ addValuesToFilter: function addValuesToFilter(attr, values) {
105
+ return engineRef.current.gridApi.addValuesToFilter(attr, values);
106
+ },
107
+ removeValuesFromFilter: function removeValuesFromFilter(attr, values) {
108
+ return engineRef.current.gridApi.removeValuesFromFilter(attr, values);
109
+ },
110
+ setUnusedOrder: function setUnusedOrder(order) {
111
+ return engineRef.current.gridApi.setUnusedOrder(order);
112
+ }
113
+ }
114
+ };
115
+ }
116
+ //# sourceMappingURL=usePivotGrid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePivotGrid.js","names":["_react","require","_PivotEngine","_FilterModule","_PaginationModule","_SortModule","_excluded","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","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","indexOf","propertyIsEnumerable","hasOwnProperty","usePivotGrid","config","engineRef","useRef","current","_config$modules","modules","FilterModule","PaginationModule","SortModule","restConfig","PivotEngine","useEffect","sanitized","keysToSync","_i","_keysToSync","key","undefined","renderers","aggregators","sorters","onChange","pagination","size","derivedAttributes","hiddenAttributes","hiddenFromAggregators","hiddenFromDragDrop","stateManager","updateConfig","_notifyStateChanged","data","rows","cols","rendererName","aggregatorName","page","pageSize","snapshot","useSyncExternalStore","useCallback","onStoreChange","subscribe","getSnapshot","gridApi","columnApi","engine","props","state","actions","setProps","newProps","updateProp","setRows","setCols","toggleFilter","attr","setValuesInFilter","values","setFilter","addValuesToFilter","removeValuesFromFilter","setUnusedOrder","order"],"sources":["../../src/react/usePivotGrid.js"],"sourcesContent":["import { useRef, useSyncExternalStore, useCallback, useEffect } from 'react';\nimport { PivotEngine } from '../core/PivotEngine';\nimport { FilterModule } from '../modules/FilterModule';\nimport { PaginationModule } from '../modules/PaginationModule';\nimport { SortModule } from '../modules/SortModule';\n\n/**\n * usePivotGrid — Hook principal para conectar PivotEngine con React.\n *\n * Uso:\n * const { gridApi, columnApi, props, state } = usePivotGrid({\n * data: [...],\n * rows: ['Country'],\n * cols: ['Year'],\n * modules: [FilterModule, SortModule],\n * });\n *\n * Si no se pasan modules, se incluyen FilterModule, PaginationModule, SortModule por defecto.\n */\nexport function usePivotGrid(config) {\n const engineRef = useRef(null);\n\n if (!engineRef.current) {\n const {\n modules = [FilterModule, PaginationModule, SortModule],\n ...restConfig\n } = config;\n\n engineRef.current = new PivotEngine({\n ...restConfig,\n modules,\n });\n }\n\n // Sincronizar props externas cuando cambian\n useEffect(() => {\n const sanitized = {};\n const keysToSync = ['data', 'rows', 'cols', 'rendererName', 'aggregatorName', 'page', 'pageSize', 'vals'];\n for (const key of keysToSync) {\n if (config[key] !== undefined) {\n sanitized[key] = config[key];\n }\n }\n\n // Pasar también renderers, aggregators, sorters si vienen\n if (config.renderers) sanitized.renderers = config.renderers;\n if (config.aggregators) sanitized.aggregators = config.aggregators;\n if (config.sorters) sanitized.sorters = config.sorters;\n if (config.onChange) sanitized.onChange = config.onChange;\n if (config.pagination !== undefined) sanitized.pagination = config.pagination;\n if (config.size) sanitized.size = config.size;\n if (config.derivedAttributes) sanitized.derivedAttributes = config.derivedAttributes;\n if (config.hiddenAttributes) sanitized.hiddenAttributes = config.hiddenAttributes;\n if (config.hiddenFromAggregators) sanitized.hiddenFromAggregators = config.hiddenFromAggregators;\n if (config.hiddenFromDragDrop) sanitized.hiddenFromDragDrop = config.hiddenFromDragDrop;\n\n engineRef.current.stateManager.updateConfig(sanitized);\n engineRef.current._notifyStateChanged();\n }, [\n config.data,\n config.rows,\n config.cols,\n config.rendererName,\n config.aggregatorName,\n config.page,\n config.pageSize,\n ]);\n\n // Suscribirse a cambios del engine via useSyncExternalStore\n const snapshot = useSyncExternalStore(\n useCallback((onStoreChange) => engineRef.current.subscribe(onStoreChange), []),\n useCallback(() => engineRef.current.getSnapshot(), [])\n );\n\n return {\n gridApi: engineRef.current.gridApi,\n columnApi: engineRef.current.columnApi,\n engine: engineRef.current,\n // Backward-compatible shape:\n props: snapshot.props,\n state: snapshot.state,\n // Convenience actions (delegates to gridApi, mantiene compatibilidad con usePivot)\n actions: {\n setProps: (newProps) => engineRef.current.gridApi.updateConfig(newProps),\n updateProp: (key, value) => {\n if (key === 'rows') {\n engineRef.current.gridApi.setRows(value);\n } else if (key === 'cols') {\n engineRef.current.gridApi.setCols(value);\n } else {\n engineRef.current.gridApi.updateConfig({ [key]: value });\n }\n },\n toggleFilter: (attr, value) => engineRef.current.gridApi.toggleFilter(attr, value),\n setValuesInFilter: (attr, values) => engineRef.current.gridApi.setFilter(attr, values),\n addValuesToFilter: (attr, values) => engineRef.current.gridApi.addValuesToFilter(attr, values),\n removeValuesFromFilter: (attr, values) => engineRef.current.gridApi.removeValuesFromFilter(attr, values),\n setUnusedOrder: (order) => engineRef.current.gridApi.setUnusedOrder(order),\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
@@ -295,7 +295,7 @@ function RadixUI(props) {
295
295
  },
296
296
  className: "flex flex-col gap-2 w-full min-h-[1.5rem]"
297
297
  }, rowList.map(renderAttribute))), /*#__PURE__*/_react["default"].createElement("div", {
298
- className: "pvtUi pvtSize-".concat(pivotProps.size || 'lg', " flex-1 w-full p-4 bg-slate-50/30 overflow-auto")
298
+ className: "pvtUi pvt-theme-".concat(pivotProps.theme || 'default', " pvt-size-").concat(pivotProps.size || 'lg', " flex-1 w-full p-4 bg-slate-50/30 overflow-auto")
299
299
  }, /*#__PURE__*/_react["default"].createElement(_PivotTable["default"], _extends({}, pivotProps, {
300
300
  data: pivotState.materializedInput
301
301
  })))), pivotProps.pagination && /*#__PURE__*/_react["default"].createElement("div", {