primereact 10.6.5 → 10.6.6

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 (169) hide show
  1. package/README.md +1 -1
  2. package/api/api.d.ts +8 -0
  3. package/chart/chart.d.ts +1 -13
  4. package/column/column.d.ts +6 -0
  5. package/core/core.js +94 -30
  6. package/core/core.min.js +8 -8
  7. package/datatable/datatable.cjs.js +56 -46
  8. package/datatable/datatable.cjs.min.js +1 -1
  9. package/datatable/datatable.esm.js +56 -46
  10. package/datatable/datatable.esm.min.js +1 -1
  11. package/datatable/datatable.js +56 -46
  12. package/datatable/datatable.min.js +1 -1
  13. package/dialog/dialog.cjs.js +5 -3
  14. package/dialog/dialog.cjs.min.js +1 -1
  15. package/dialog/dialog.esm.js +5 -3
  16. package/dialog/dialog.esm.min.js +1 -1
  17. package/dialog/dialog.js +5 -3
  18. package/dialog/dialog.min.js +1 -1
  19. package/dropdown/dropdown.cjs.js +3 -3
  20. package/dropdown/dropdown.cjs.min.js +1 -1
  21. package/dropdown/dropdown.esm.js +3 -3
  22. package/dropdown/dropdown.esm.min.js +1 -1
  23. package/dropdown/dropdown.js +3 -3
  24. package/dropdown/dropdown.min.js +1 -1
  25. package/galleria/galleria.cjs.js +7 -0
  26. package/galleria/galleria.cjs.min.js +1 -1
  27. package/galleria/galleria.esm.js +8 -1
  28. package/galleria/galleria.esm.min.js +1 -1
  29. package/galleria/galleria.js +7 -0
  30. package/galleria/galleria.min.js +1 -1
  31. package/inputnumber/inputnumber.cjs.js +14 -11
  32. package/inputnumber/inputnumber.cjs.min.js +1 -1
  33. package/inputnumber/inputnumber.esm.js +14 -11
  34. package/inputnumber/inputnumber.esm.min.js +1 -1
  35. package/inputnumber/inputnumber.js +14 -11
  36. package/inputnumber/inputnumber.min.js +1 -1
  37. package/inputotp/inputotp.cjs.js +25 -1
  38. package/inputotp/inputotp.cjs.min.js +1 -1
  39. package/inputotp/inputotp.esm.js +26 -2
  40. package/inputotp/inputotp.esm.min.js +1 -1
  41. package/inputotp/inputotp.js +25 -1
  42. package/inputotp/inputotp.min.js +1 -1
  43. package/keyfilter/keyfilter.cjs.js +1 -1
  44. package/keyfilter/keyfilter.cjs.min.js +1 -1
  45. package/keyfilter/keyfilter.esm.js +1 -1
  46. package/keyfilter/keyfilter.esm.min.js +1 -1
  47. package/keyfilter/keyfilter.js +1 -1
  48. package/keyfilter/keyfilter.min.js +1 -1
  49. package/metergroup/metergroup.cjs.js +2 -1
  50. package/metergroup/metergroup.cjs.min.js +1 -1
  51. package/metergroup/metergroup.esm.js +2 -1
  52. package/metergroup/metergroup.esm.min.js +1 -1
  53. package/metergroup/metergroup.js +2 -1
  54. package/metergroup/metergroup.min.js +1 -1
  55. package/multiselect/multiselect.cjs.js +2 -2
  56. package/multiselect/multiselect.cjs.min.js +1 -1
  57. package/multiselect/multiselect.esm.js +2 -2
  58. package/multiselect/multiselect.esm.min.js +1 -1
  59. package/multiselect/multiselect.js +2 -2
  60. package/multiselect/multiselect.min.js +1 -1
  61. package/package.json +1 -1
  62. package/paginator/paginator.cjs.js +1 -1
  63. package/paginator/paginator.cjs.min.js +1 -1
  64. package/paginator/paginator.esm.js +1 -1
  65. package/paginator/paginator.esm.min.js +1 -1
  66. package/paginator/paginator.js +1 -1
  67. package/paginator/paginator.min.js +1 -1
  68. package/panelmenu/panelmenu.cjs.js +13 -12
  69. package/panelmenu/panelmenu.cjs.min.js +1 -1
  70. package/panelmenu/panelmenu.esm.js +13 -12
  71. package/panelmenu/panelmenu.esm.min.js +1 -1
  72. package/panelmenu/panelmenu.js +13 -12
  73. package/panelmenu/panelmenu.min.js +1 -1
  74. package/password/password.cjs.js +2 -2
  75. package/password/password.cjs.min.js +1 -1
  76. package/password/password.esm.js +2 -2
  77. package/password/password.esm.min.js +1 -1
  78. package/password/password.js +2 -2
  79. package/password/password.min.js +1 -1
  80. package/primereact.all.cjs.js +2859 -1916
  81. package/primereact.all.cjs.min.js +1 -1
  82. package/primereact.all.esm.js +2856 -1917
  83. package/primereact.all.esm.min.js +1 -1
  84. package/primereact.all.js +2859 -1916
  85. package/primereact.all.min.js +1 -1
  86. package/resources/themes/arya-blue/theme.css +62 -0
  87. package/resources/themes/arya-green/theme.css +62 -0
  88. package/resources/themes/arya-orange/theme.css +62 -0
  89. package/resources/themes/bootstrap4-dark-blue/theme.css +62 -0
  90. package/resources/themes/bootstrap4-dark-purple/theme.css +207 -43
  91. package/resources/themes/bootstrap4-light-blue/theme.css +62 -0
  92. package/resources/themes/bootstrap4-light-purple/theme.css +207 -43
  93. package/resources/themes/fluent-light/theme.css +62 -0
  94. package/resources/themes/lara-dark-amber/theme.css +62 -9
  95. package/resources/themes/lara-dark-blue/theme.css +62 -9
  96. package/resources/themes/lara-dark-cyan/theme.css +62 -9
  97. package/resources/themes/lara-dark-green/theme.css +62 -9
  98. package/resources/themes/lara-dark-indigo/theme.css +62 -9
  99. package/resources/themes/lara-dark-pink/theme.css +62 -9
  100. package/resources/themes/lara-dark-teal/theme.css +62 -9
  101. package/resources/themes/lara-light-amber/theme.css +62 -9
  102. package/resources/themes/lara-light-blue/theme.css +62 -9
  103. package/resources/themes/lara-light-cyan/theme.css +62 -9
  104. package/resources/themes/lara-light-green/theme.css +62 -9
  105. package/resources/themes/lara-light-indigo/theme.css +62 -9
  106. package/resources/themes/lara-light-pink/theme.css +62 -9
  107. package/resources/themes/lara-light-teal/theme.css +62 -9
  108. package/resources/themes/luna-amber/theme.css +62 -0
  109. package/resources/themes/luna-blue/theme.css +62 -0
  110. package/resources/themes/luna-green/theme.css +62 -0
  111. package/resources/themes/luna-pink/theme.css +62 -0
  112. package/resources/themes/md-dark-deeppurple/theme.css +225 -43
  113. package/resources/themes/md-dark-indigo/theme.css +213 -151
  114. package/resources/themes/md-light-deeppurple/theme.css +225 -43
  115. package/resources/themes/md-light-indigo/theme.css +62 -0
  116. package/resources/themes/mdc-dark-deeppurple/theme.css +225 -43
  117. package/resources/themes/mdc-dark-indigo/theme.css +213 -151
  118. package/resources/themes/mdc-light-deeppurple/theme.css +225 -43
  119. package/resources/themes/mdc-light-indigo/theme.css +62 -0
  120. package/resources/themes/mira/theme.css +62 -0
  121. package/resources/themes/nano/theme.css +62 -0
  122. package/resources/themes/nova/theme.css +62 -0
  123. package/resources/themes/nova-accent/theme.css +62 -0
  124. package/resources/themes/nova-alt/theme.css +62 -0
  125. package/resources/themes/rhea/theme.css +62 -0
  126. package/resources/themes/saga-blue/theme.css +62 -0
  127. package/resources/themes/saga-green/theme.css +62 -0
  128. package/resources/themes/saga-orange/theme.css +62 -0
  129. package/resources/themes/soho-dark/theme.css +87 -25
  130. package/resources/themes/soho-light/theme.css +62 -0
  131. package/resources/themes/tailwind-light/theme.css +62 -0
  132. package/resources/themes/vela-blue/theme.css +62 -0
  133. package/resources/themes/vela-green/theme.css +62 -0
  134. package/resources/themes/vela-orange/theme.css +62 -0
  135. package/resources/themes/viva-dark/theme.css +62 -0
  136. package/resources/themes/viva-light/theme.css +62 -0
  137. package/tabview/tabview.cjs.js +0 -2
  138. package/tabview/tabview.cjs.min.js +1 -1
  139. package/tabview/tabview.esm.js +0 -2
  140. package/tabview/tabview.esm.min.js +1 -1
  141. package/tabview/tabview.js +0 -2
  142. package/tabview/tabview.min.js +1 -1
  143. package/tooltip/tooltip.cjs.js +2 -2
  144. package/tooltip/tooltip.cjs.min.js +1 -1
  145. package/tooltip/tooltip.esm.js +2 -2
  146. package/tooltip/tooltip.esm.min.js +1 -1
  147. package/tooltip/tooltip.js +2 -2
  148. package/tooltip/tooltip.min.js +1 -1
  149. package/tree/tree.cjs.js +45 -8
  150. package/tree/tree.cjs.min.js +1 -1
  151. package/tree/tree.esm.js +45 -8
  152. package/tree/tree.esm.min.js +1 -1
  153. package/tree/tree.js +45 -8
  154. package/tree/tree.min.js +1 -1
  155. package/treetable/treetable.cjs.js +240 -7
  156. package/treetable/treetable.cjs.min.js +1 -1
  157. package/treetable/treetable.d.ts +29 -0
  158. package/treetable/treetable.esm.js +240 -7
  159. package/treetable/treetable.esm.min.js +1 -1
  160. package/treetable/treetable.js +240 -7
  161. package/treetable/treetable.min.js +1 -1
  162. package/utils/utils.d.ts +7 -4
  163. package/virtualscroller/virtualscroller.cjs.js +23 -1
  164. package/virtualscroller/virtualscroller.cjs.min.js +1 -1
  165. package/virtualscroller/virtualscroller.esm.js +23 -1
  166. package/virtualscroller/virtualscroller.esm.min.js +1 -1
  167. package/virtualscroller/virtualscroller.js +23 -1
  168. package/virtualscroller/virtualscroller.min.js +1 -1
  169. package/web-types.json +66 -28
@@ -156,6 +156,7 @@ var ColumnBase = ComponentBase.extend({
156
156
  body: null,
157
157
  bodyClassName: null,
158
158
  bodyStyle: null,
159
+ cellEditValidateOnClose: false,
159
160
  cellEditValidator: null,
160
161
  cellEditValidatorEvent: 'click',
161
162
  className: null,
@@ -349,6 +350,8 @@ var TreeTableBase = ComponentBase.extend({
349
350
  columnResizeMode: 'fit',
350
351
  contextMenuSelectionKey: null,
351
352
  currentPageReportTemplate: '({currentPage} of {totalPages})',
353
+ customRestoreState: null,
354
+ customSaveState: null,
352
355
  defaultSortOrder: 1,
353
356
  emptyMessage: null,
354
357
  expandedKeys: null,
@@ -386,6 +389,8 @@ var TreeTableBase = ComponentBase.extend({
386
389
  onSelect: null,
387
390
  onSelectionChange: null,
388
391
  onSort: null,
392
+ onStateRestore: null,
393
+ onStateSave: null,
389
394
  onToggle: null,
390
395
  onUnselect: null,
391
396
  onValueChange: null,
@@ -418,6 +423,8 @@ var TreeTableBase = ComponentBase.extend({
418
423
  sortIcon: null,
419
424
  sortMode: 'single',
420
425
  sortOrder: null,
426
+ stateKey: null,
427
+ stateStorage: null,
421
428
  stripedRows: false,
422
429
  style: null,
423
430
  tabIndex: 0,
@@ -2372,6 +2379,19 @@ var TreeTableScrollableView = /*#__PURE__*/React.memo(function (props) {
2372
2379
  });
2373
2380
  TreeTableScrollableView.displayName = 'TreeTableScrollableView';
2374
2381
 
2382
+ var getStorage = function getStorage(stateStorageProp) {
2383
+ switch (stateStorageProp) {
2384
+ case 'local':
2385
+ return window.localStorage;
2386
+ case 'session':
2387
+ return window.sessionStorage;
2388
+ case 'custom':
2389
+ return null;
2390
+ default:
2391
+ throw new Error(stateStorageProp + ' is not a valid value for the state storage, supported values are "local", "session" and "custom".');
2392
+ }
2393
+ };
2394
+
2375
2395
  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; }
2376
2396
  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; }
2377
2397
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
@@ -2474,6 +2494,152 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
2474
2494
  _useEventListener4 = _slicedToArray(_useEventListener3, 2),
2475
2495
  bindDocumentMouseUpListener = _useEventListener4[0],
2476
2496
  unbindDocumentMouseUpListener = _useEventListener4[1];
2497
+ var isCustomStateStorage = function isCustomStateStorage() {
2498
+ return props.stateStorage === 'custom';
2499
+ };
2500
+ var isStateful = function isStateful() {
2501
+ return props.stateKey != null || isCustomStateStorage();
2502
+ };
2503
+ var saveState = function saveState() {
2504
+ var state = {};
2505
+ if (props.paginator) {
2506
+ state.first = getFirst();
2507
+ state.rows = getRows();
2508
+ }
2509
+ var sortField = getSortField();
2510
+ if (sortField) {
2511
+ state.sortField = sortField;
2512
+ state.sortOrder = getSortOrder();
2513
+ }
2514
+ var multiSortMeta = getMultiSortMeta();
2515
+ if (multiSortMeta) {
2516
+ state.multiSortMeta = multiSortMeta;
2517
+ }
2518
+ if (hasFilter()) {
2519
+ state.filters = getFilters();
2520
+ }
2521
+ if (props.reorderableColumns) {
2522
+ state.columnOrder = columnOrderState;
2523
+ }
2524
+ state.expandedKeysState = expandedKeysState;
2525
+ if (props.selectionKeys && props.onSelectionChange) {
2526
+ state.selectionKeys = props.selectionKeys;
2527
+ }
2528
+ if (isCustomStateStorage()) {
2529
+ if (props.customSaveState) {
2530
+ props.customSaveState(state);
2531
+ }
2532
+ } else {
2533
+ var storage = getStorage(props.stateStorage);
2534
+ if (ObjectUtils.isNotEmpty(state)) {
2535
+ storage.setItem(props.stateKey, JSON.stringify(state));
2536
+ }
2537
+ }
2538
+ if (props.onStateSave) {
2539
+ props.onStateSave(state);
2540
+ }
2541
+ };
2542
+ var clearState = function clearState() {
2543
+ var storage = getStorage(props.stateStorage);
2544
+ if (storage && props.stateKey) {
2545
+ storage.removeItem(props.stateKey);
2546
+ }
2547
+ };
2548
+ var restoreState = function restoreState() {
2549
+ var restoredState = {};
2550
+ if (isCustomStateStorage()) {
2551
+ if (props.customRestoreState) {
2552
+ restoredState = props.customRestoreState();
2553
+ }
2554
+ } else {
2555
+ var storage = getStorage(props.stateStorage);
2556
+ var stateString = storage.getItem(props.stateKey);
2557
+ var dateFormat = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}.\d{3}Z/;
2558
+ var reviver = function reviver(key, value) {
2559
+ return typeof value === 'string' && dateFormat.test(value) ? new Date(value) : value;
2560
+ };
2561
+ if (stateString) {
2562
+ restoredState = JSON.parse(stateString, reviver);
2563
+ }
2564
+ }
2565
+ _restoreState(restoredState);
2566
+ };
2567
+ var restoreTableState = function restoreTableState(restoredState) {
2568
+ _restoreState(restoredState);
2569
+ };
2570
+ var _restoreState = function _restoreState() {
2571
+ var restoredState = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
2572
+ if (ObjectUtils.isNotEmpty(restoredState)) {
2573
+ if (props.paginator) {
2574
+ if (props.onPage) {
2575
+ var getOnPageParams = function getOnPageParams(first, rows) {
2576
+ var totalRecords = getTotalRecords(processedData());
2577
+ var pageCount = Math.ceil(totalRecords / rows) || 1;
2578
+ var page = Math.floor(first / rows);
2579
+ return {
2580
+ first: first,
2581
+ rows: rows,
2582
+ page: page,
2583
+ pageCount: pageCount
2584
+ };
2585
+ };
2586
+ props.onPage(createEvent(getOnPageParams(restoredState.first, restoredState.rows)));
2587
+ } else {
2588
+ setFirstState(restoredState.first);
2589
+ setRowsState(restoredState.rows);
2590
+ }
2591
+ }
2592
+ if (restoredState.sortField) {
2593
+ if (props.onSort) {
2594
+ props.onSort(createEvent({
2595
+ sortField: restoredState.sortField,
2596
+ sortOrder: restoredState.sortOrder
2597
+ }));
2598
+ } else {
2599
+ setSortFieldState(restoredState.sortField);
2600
+ setSortOrderState(restoredState.sortOrder);
2601
+ }
2602
+ }
2603
+ if (restoredState.multiSortMeta) {
2604
+ if (props.onSort) {
2605
+ props.onSort(createEvent({
2606
+ multiSortMeta: restoredState.multiSortMeta
2607
+ }));
2608
+ } else {
2609
+ setMultiSortMetaState(restoredState.multiSortMeta);
2610
+ }
2611
+ }
2612
+ if (restoredState.filters) {
2613
+ if (props.onFilter) {
2614
+ props.onFilter(createEvent({
2615
+ filters: restoredState.filters
2616
+ }));
2617
+ } else {
2618
+ setFiltersState(cloneFilters(restoredState.filters));
2619
+ }
2620
+ }
2621
+ if (props.reorderableColumns) {
2622
+ setColumnOrderState(restoredState.columnOrder);
2623
+ }
2624
+ if (restoredState.expandedKeysState) {
2625
+ if (props.onToggle) {
2626
+ props.onRowToggle({
2627
+ data: restoredState.expandedKeysState
2628
+ });
2629
+ } else {
2630
+ setExpandedKeysState(restoredState.expandedKeysState);
2631
+ }
2632
+ }
2633
+ if (restoredState.selectionKeys && props.onSelectionChange) {
2634
+ props.onSelectionChange({
2635
+ value: restoredState.selectionKeys
2636
+ });
2637
+ }
2638
+ if (props.onStateRestore) {
2639
+ props.onStateRestore(restoredState);
2640
+ }
2641
+ }
2642
+ };
2477
2643
  var onToggle = function onToggle(event) {
2478
2644
  var originalEvent = event.originalEvent,
2479
2645
  value = event.value,
@@ -2698,6 +2864,46 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
2698
2864
  }));
2699
2865
  }
2700
2866
  };
2867
+ var cloneFilters = function cloneFilters(filters) {
2868
+ filters = filters || props.filters;
2869
+ var cloned = {};
2870
+ if (filters) {
2871
+ Object.entries(filters).forEach(function (_ref) {
2872
+ var _ref2 = _slicedToArray(_ref, 2),
2873
+ prop = _ref2[0],
2874
+ value = _ref2[1];
2875
+ cloned[prop] = value;
2876
+ });
2877
+ } else {
2878
+ var columns = getColumns();
2879
+ cloned = columns.reduce(function (filters, col) {
2880
+ var field = getColumnProp(col, 'filterField') || getColumnProp(col, 'field');
2881
+ var filterFunction = getColumnProp(col, 'filterFunction');
2882
+ var dataType = getColumnProp(col, 'dataType');
2883
+ var matchMode = getColumnProp(col, 'filterMatchMode') || (context && context.filterMatchModeOptions[dataType] || PrimeReact.filterMatchModeOptions[dataType] ? context && context.filterMatchModeOptions[dataType][0] || PrimeReact.filterMatchModeOptions[dataType][0] : FilterMatchMode.STARTS_WITH);
2884
+ var constraint = {
2885
+ value: null,
2886
+ matchMode: matchMode
2887
+ };
2888
+ if (filterFunction) {
2889
+ FilterService.register("custom_".concat(field), function () {
2890
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
2891
+ args[_key] = arguments[_key];
2892
+ }
2893
+ return filterFunction.apply(void 0, args.concat([{
2894
+ column: col
2895
+ }]));
2896
+ });
2897
+ }
2898
+ filters[field] = constraint;
2899
+ return filters;
2900
+ }, {});
2901
+ }
2902
+ return cloned;
2903
+ };
2904
+ var hasFilter = function hasFilter() {
2905
+ return ObjectUtils.isNotEmpty(getFilters());
2906
+ };
2701
2907
  var isFilterBlank = function isFilterBlank(filter) {
2702
2908
  if (filter !== null && filter !== undefined) {
2703
2909
  if (typeof filter === 'string' && filter.trim().length === 0 || filter instanceof Array && filter.length === 0) {
@@ -2776,6 +2982,9 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
2776
2982
  delta: delta
2777
2983
  });
2778
2984
  }
2985
+ if (isStateful()) {
2986
+ saveState();
2987
+ }
2779
2988
  }
2780
2989
  resizerHelperRef.current.style.display = 'none';
2781
2990
  resizeColumn.current = null;
@@ -3162,12 +3371,12 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
3162
3371
  }
3163
3372
  }
3164
3373
  };
3165
- var isFilterMatched = function isFilterMatched(node, _ref) {
3166
- var filterField = _ref.filterField,
3167
- filterValue = _ref.filterValue,
3168
- filterConstraint = _ref.filterConstraint,
3169
- isStrictMode = _ref.isStrictMode,
3170
- options = _ref.options;
3374
+ var isFilterMatched = function isFilterMatched(node, _ref3) {
3375
+ var filterField = _ref3.filterField,
3376
+ filterValue = _ref3.filterValue,
3377
+ filterConstraint = _ref3.filterConstraint,
3378
+ isStrictMode = _ref3.isStrictMode,
3379
+ options = _ref3.options;
3171
3380
  var matched = false;
3172
3381
  var dataFieldValue = ObjectUtils.resolveFieldData(node.data, filterField);
3173
3382
  if (filterConstraint(dataFieldValue, filterValue, props.filterLocale, options)) {
@@ -3215,6 +3424,16 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
3215
3424
  }
3216
3425
  return data;
3217
3426
  };
3427
+ useMountEffect(function () {
3428
+ if (isStateful()) {
3429
+ restoreState();
3430
+ }
3431
+ });
3432
+ useUpdateEffect(function () {
3433
+ if (isStateful()) {
3434
+ saveState();
3435
+ }
3436
+ });
3218
3437
  useUpdateEffect(function () {
3219
3438
  if (childFocusEvent.current) {
3220
3439
  var nodeElement = childFocusEvent.current.target;
@@ -3229,12 +3448,26 @@ var TreeTable = /*#__PURE__*/React.forwardRef(function (inProps, ref) {
3229
3448
  React.useImperativeHandle(ref, function () {
3230
3449
  return {
3231
3450
  props: props,
3451
+ clearState: clearState,
3232
3452
  filter: filter,
3233
3453
  getElement: function getElement() {
3234
3454
  return elementRef.current;
3235
- }
3455
+ },
3456
+ restoreState: restoreState,
3457
+ restoreTableState: restoreTableState,
3458
+ saveState: saveState
3236
3459
  };
3237
3460
  });
3461
+ var createEvent = function createEvent(event) {
3462
+ return _objectSpread({
3463
+ first: getFirst(),
3464
+ rows: getRows(),
3465
+ sortField: getSortField(),
3466
+ sortOrder: getSortOrder(),
3467
+ multiSortMeta: getMultiSortMeta(),
3468
+ filters: getFilters()
3469
+ }, event);
3470
+ };
3238
3471
  var createTableHeader = function createTableHeader(columns, columnGroup) {
3239
3472
  var sortField = getSortField();
3240
3473
  var sortOrder = getSortOrder();