@economic/taco 2.49.0-server.1 → 2.49.0-server.3

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 (63) hide show
  1. package/dist/components/Table3/features/useEditingState.d.ts +3 -3
  2. package/dist/components/Table3/features/useTableEditing.d.ts +3 -3
  3. package/dist/components/Table3/types.d.ts +2 -0
  4. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +6 -1
  5. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  6. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +6 -6
  7. package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  8. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +1 -0
  9. package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
  10. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +29 -18
  11. package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
  12. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +2 -2
  13. package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
  14. package/dist/esm/packages/taco/src/components/Table3/useTable3.js +1 -1
  15. package/dist/esm/packages/taco/src/components/Table3/useTable3.js.map +1 -1
  16. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js +2 -2
  17. package/dist/esm/packages/taco/src/hooks/useGlobalKeyDown.js.map +1 -1
  18. package/dist/esm/packages/taco/src/index.js +1 -1
  19. package/dist/esm/packages/taco/src/primitives/Button.js +6 -1
  20. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  21. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +3 -4
  22. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
  23. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +1 -2
  24. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  25. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +1 -1
  26. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
  27. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +1 -1
  28. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
  29. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +3 -4
  30. package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
  31. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +1 -1
  32. package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
  33. package/dist/esm/packages/taco/src/primitives/Table/types.js +1 -7
  34. package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
  35. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +13 -10
  36. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
  37. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +8 -8
  38. package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js.map +1 -1
  39. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +17 -10
  40. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  41. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +1 -1
  42. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
  43. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +1 -1
  44. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
  45. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +2 -2
  46. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
  47. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +1 -1
  48. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  49. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +2 -1
  50. package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
  51. package/dist/esm/packages/taco/src/utils/keyboard.js +2 -5
  52. package/dist/esm/packages/taco/src/utils/keyboard.js.map +1 -1
  53. package/dist/hooks/useGlobalKeyDown.d.ts +1 -1
  54. package/dist/primitives/Table/types.d.ts +2 -7
  55. package/dist/primitives/Table/useTableDataLoader.d.ts +2 -2
  56. package/dist/primitives/Table/useTableDataLoader2.d.ts +2 -2
  57. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -3
  58. package/dist/taco.cjs.development.js +110 -85
  59. package/dist/taco.cjs.development.js.map +1 -1
  60. package/dist/taco.cjs.production.min.js +1 -1
  61. package/dist/taco.cjs.production.min.js.map +1 -1
  62. package/dist/utils/keyboard.d.ts +1 -1
  63. package/package.json +1 -1
@@ -4453,15 +4453,12 @@ function shouldTriggerShortcut(event, key) {
4453
4453
  }
4454
4454
  return event.key.toLowerCase() === keyOptions.key.toLowerCase();
4455
4455
  }
4456
- function createShortcutKeyDownHandler(key, handler, stopPropagation, element) {
4456
+ function createShortcutKeyDownHandler(key, handler, stopPropagation) {
4457
4457
  if (stopPropagation === void 0) {
4458
4458
  stopPropagation = true;
4459
4459
  }
4460
4460
  return function (event) {
4461
- var dialog = document.querySelector('[role="dialog"]');
4462
- var isOutsideDialog = element && dialog && !dialog.contains(element);
4463
- if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event) || isOutsideDialog // Avoid triggering shortcut if dialog is open and element is outside the dialog
4464
- ) {
4461
+ if (event.target !== event.currentTarget && isElementInteractive(event.target) && !isPressingMetaKey(event)) {
4465
4462
  return;
4466
4463
  }
4467
4464
  var condition = shouldTriggerShortcut(event, key);
@@ -4482,11 +4479,11 @@ var isMacOs = function isMacOs() {
4482
4479
  return (_window = window) === null || _window === void 0 ? void 0 : _window.navigator.userAgent.includes('Mac');
4483
4480
  };
4484
4481
 
4485
- var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler, element) {
4482
+ var useGlobalKeyDown = function useGlobalKeyDown(shortcut, handler) {
4486
4483
  React__default.useEffect(function () {
4487
4484
  var handleKeyDown;
4488
4485
  if (shortcut) {
4489
- handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false, element);
4486
+ handleKeyDown = createShortcutKeyDownHandler(shortcut, handler, false);
4490
4487
  document.addEventListener('keydown', handleKeyDown);
4491
4488
  }
4492
4489
  return function () {
@@ -4509,8 +4506,13 @@ var Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {
4509
4506
  useGlobalKeyDown(shortcut, function (event) {
4510
4507
  var _internalRef$current;
4511
4508
  event === null || event === void 0 ? void 0 : event.preventDefault();
4509
+ var dialog = document.querySelector('[role="dialog"]');
4510
+ // Don't trigger the click on the button if it is outside of the dialog
4511
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
4512
+ return;
4513
+ }
4512
4514
  (_internalRef$current = internalRef.current) === null || _internalRef$current === void 0 ? void 0 : _internalRef$current.click();
4513
- }, internalRef.current);
4515
+ });
4514
4516
  var Tag = props.href ? 'a' : 'button';
4515
4517
  return /*#__PURE__*/React.createElement(Tag, Object.assign({}, otherProps, {
4516
4518
  href: disabled ? undefined : props.href,
@@ -8537,12 +8539,17 @@ var Content$8 = /*#__PURE__*/React.forwardRef(function MenuContent(props, ref) {
8537
8539
  if (child.props.shortcut) {
8538
8540
  shortcuts.push(createShortcutKeyDownHandler(child.props.shortcut, function (event) {
8539
8541
  event.preventDefault();
8542
+ var dialog = document.querySelector('[role="dialog"]');
8543
+ // Don't trigger the shortcut if it is outside of the dialog
8544
+ if (dialog && !(dialog !== null && dialog !== void 0 && dialog.contains(internalRef.current))) {
8545
+ return;
8546
+ }
8540
8547
  menu === null || menu === void 0 ? void 0 : menu.open();
8541
8548
  setTimeout(function () {
8542
8549
  var _childrenRefs$current, _childrenRefs$current2;
8543
8550
  return (_childrenRefs$current = childrenRefs.current[index]) === null || _childrenRefs$current === void 0 ? void 0 : (_childrenRefs$current2 = _childrenRefs$current.current) === null || _childrenRefs$current2 === void 0 ? void 0 : _childrenRefs$current2.click();
8544
8551
  }, 1);
8545
- }, true, childrenRefs.current[index].current));
8552
+ }));
8546
8553
  }
8547
8554
  });
8548
8555
  shortcuts.forEach(function (handler) {
@@ -10235,11 +10242,6 @@ var fixedForwardRef = React__default.forwardRef;
10235
10242
  TableFilterComparator[TableFilterComparator["HasAllOf"] = 12] = "HasAllOf";
10236
10243
  TableFilterComparator[TableFilterComparator["HasNoneOf"] = 13] = "HasNoneOf";
10237
10244
  })(exports.TableFilterComparator || (exports.TableFilterComparator = {}));
10238
- (function (TableServerLoadAllState) {
10239
- TableServerLoadAllState[TableServerLoadAllState["Incomplete"] = 0] = "Incomplete";
10240
- TableServerLoadAllState[TableServerLoadAllState["Loading"] = 1] = "Loading";
10241
- TableServerLoadAllState[TableServerLoadAllState["Completed"] = 2] = "Completed";
10242
- })(exports.TableServerLoadAllState || (exports.TableServerLoadAllState = {}));
10243
10245
 
10244
10246
  var dataTypes = {
10245
10247
  auto: {
@@ -10946,7 +10948,8 @@ function configureReactTableOptions(options, props, localization) {
10946
10948
  getExpandedRowModel: reactTable.getExpandedRowModel(),
10947
10949
  getGroupedRowModel: reactTable.getGroupedRowModel(),
10948
10950
  getRowId: getRowId,
10949
- groupedColumnMode: false
10951
+ groupedColumnMode: false,
10952
+ keepPinnedRows: false
10950
10953
  };
10951
10954
  if (tableOptions.enableColumnResizing) {
10952
10955
  tableOptions.columnResizeMode = 'onChange';
@@ -11821,9 +11824,10 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11821
11824
  var _lastUsedSorting = React__default.useRef([]);
11822
11825
  var _lastUsedFilters = React__default.useRef([]);
11823
11826
  var _lastUsedSearch = React__default.useRef();
11827
+ var _lastUsedHiddenColumns = React__default.useRef([]);
11824
11828
  var _lastUsedPageIndex = React__default.useRef();
11825
11829
  var _forceReset = React__default.useRef(false);
11826
- var loadPage = function loadPage(pageIndex, sorting, filters) {
11830
+ var loadPage = function loadPage(pageIndex, sorting, filters, hiddenColumns) {
11827
11831
  try {
11828
11832
  var reset = false;
11829
11833
  // sorting or filters changed, reset everything
@@ -11845,9 +11849,10 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11845
11849
  _lastUsedSorting.current = sorting;
11846
11850
  // set the filters so we can track if it changed between loads
11847
11851
  _lastUsedFilters.current = filters;
11852
+ _lastUsedHiddenColumns.current = hiddenColumns;
11848
11853
  var _temp = _finallyRethrows(function () {
11849
11854
  return _catch(function () {
11850
- return Promise.resolve(fetchPage(pageIndex, pageSize, sorting, filters)).then(function (response) {
11855
+ return Promise.resolve(fetchPage(pageIndex, pageSize, sorting, filters, hiddenColumns)).then(function (response) {
11851
11856
  // update state, here we do some "magic" to support "load in place"
11852
11857
  setData(function (currentData) {
11853
11858
  var _nextData;
@@ -11877,14 +11882,15 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11877
11882
  return Promise.reject(e);
11878
11883
  }
11879
11884
  };
11880
- var loadAll = function loadAll(sorting, filters) {
11885
+ var loadAll = function loadAll(sorting, filters, hiddenColumns) {
11881
11886
  try {
11882
11887
  // set the sorting so we can track if it changed between loads
11883
11888
  _lastUsedSorting.current = sorting;
11884
11889
  // set the filters so we can track if it changed between loads
11885
11890
  _lastUsedFilters.current = filters;
11891
+ _lastUsedHiddenColumns.current = hiddenColumns;
11886
11892
  var _temp2 = _catch(function () {
11887
- return Promise.resolve(fetchAll(sorting, filters)).then(function (response) {
11893
+ return Promise.resolve(fetchAll(sorting, filters, hiddenColumns)).then(function (response) {
11888
11894
  length.current = response.length;
11889
11895
  setData(function () {
11890
11896
  var nextData;
@@ -11910,11 +11916,11 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11910
11916
  _forceReset.current = true;
11911
11917
  if (_lastUsedSearch.current) {
11912
11918
  // we're searching, which means we need to refetch all with the correct sorting applied
11913
- return loadAll(_lastUsedSorting.current, _lastUsedFilters.current);
11919
+ return loadAll(_lastUsedSorting.current, _lastUsedFilters.current, _lastUsedHiddenColumns.current);
11914
11920
  } else {
11915
11921
  var _lastUsedPageIndex$cu;
11916
11922
  // load the last page that we scrolled to
11917
- return loadPage((_lastUsedPageIndex$cu = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu !== void 0 ? _lastUsedPageIndex$cu : 0, _lastUsedSorting.current, _lastUsedFilters.current);
11923
+ return loadPage((_lastUsedPageIndex$cu = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu !== void 0 ? _lastUsedPageIndex$cu : 0, _lastUsedSorting.current, _lastUsedFilters.current, _lastUsedHiddenColumns.current);
11918
11924
  }
11919
11925
  } catch (e) {
11920
11926
  return Promise.reject(e);
@@ -11926,11 +11932,11 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11926
11932
  try {
11927
11933
  if (_lastUsedSearch.current) {
11928
11934
  // we're searching, which means we need to refetch all with the correct sorting applied
11929
- return loadAll(sorting, _lastUsedFilters.current);
11935
+ return loadAll(sorting, _lastUsedFilters.current, _lastUsedHiddenColumns.current);
11930
11936
  } else {
11931
11937
  var _lastUsedPageIndex$cu2;
11932
11938
  // load the last page that we scrolled to
11933
- return loadPage((_lastUsedPageIndex$cu2 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu2 !== void 0 ? _lastUsedPageIndex$cu2 : 0, sorting, _lastUsedFilters.current);
11939
+ return loadPage((_lastUsedPageIndex$cu2 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu2 !== void 0 ? _lastUsedPageIndex$cu2 : 0, sorting, _lastUsedFilters.current, _lastUsedHiddenColumns.current);
11934
11940
  }
11935
11941
  } catch (e) {
11936
11942
  return Promise.reject(e);
@@ -11940,11 +11946,11 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11940
11946
  try {
11941
11947
  if (_lastUsedSearch.current) {
11942
11948
  // we're searching, which means we need to refetch all with the correct sorting applied
11943
- return loadAll(_lastUsedSorting.current, filters);
11949
+ return loadAll(_lastUsedSorting.current, filters, _lastUsedHiddenColumns.current);
11944
11950
  } else {
11945
11951
  var _lastUsedPageIndex$cu3;
11946
11952
  // load the last page that we scrolled to
11947
- return loadPage((_lastUsedPageIndex$cu3 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu3 !== void 0 ? _lastUsedPageIndex$cu3 : 0, _lastUsedSorting.current, filters);
11953
+ return loadPage((_lastUsedPageIndex$cu3 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu3 !== void 0 ? _lastUsedPageIndex$cu3 : 0, _lastUsedSorting.current, filters, _lastUsedHiddenColumns.current);
11948
11954
  }
11949
11955
  } catch (e) {
11950
11956
  return Promise.reject(e);
@@ -11973,7 +11979,7 @@ function useTableDataLoader(fetchPage, fetchAll, options) {
11973
11979
  }, invalidate];
11974
11980
  }
11975
11981
 
11976
- function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
11982
+ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize, _experimentalDataLoader2) {
11977
11983
  if (pageSize === void 0) {
11978
11984
  pageSize = DEFAULT_PAGE_SIZE;
11979
11985
  }
@@ -11984,9 +11990,18 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
11984
11990
  var _React$useState = React__default.useState(false),
11985
11991
  isReady = _React$useState[0],
11986
11992
  setReady = _React$useState[1];
11987
- var _React$useState2 = React__default.useState(exports.TableServerLoadAllState.Incomplete),
11988
- loadAllStatus = _React$useState2[0],
11989
- setLoadedStatus = _React$useState2[1];
11993
+ var _React$useState2 = React__default.useState(false),
11994
+ loading = _React$useState2[0],
11995
+ setLoading = _React$useState2[1];
11996
+ var hasLoadedAll = React__default.useMemo(function () {
11997
+ var _data$some;
11998
+ if (data.length !== length || !!((_data$some = data.some) !== null && _data$some !== void 0 && _data$some.call(data, function (x) {
11999
+ return x === undefined;
12000
+ }))) {
12001
+ return false;
12002
+ }
12003
+ return true;
12004
+ }, [data, length]);
11990
12005
  var _loadPage;
11991
12006
  var _loadAll;
11992
12007
  var _loadAllIfNeeded;
@@ -11999,7 +12014,6 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
11999
12014
  var _temp = function () {
12000
12015
  if (typeof loadPage === 'function') {
12001
12016
  return Promise.resolve(loadPage.apply(void 0, args)).then(function () {
12002
- setLoadedStatus(exports.TableServerLoadAllState.Incomplete);
12003
12017
  setReady(true);
12004
12018
  });
12005
12019
  }
@@ -12018,9 +12032,9 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12018
12032
  try {
12019
12033
  var _temp2 = function () {
12020
12034
  if (typeof loadAll === 'function') {
12021
- setLoadedStatus(exports.TableServerLoadAllState.Loading);
12035
+ setLoading(true);
12022
12036
  return Promise.resolve(loadAll.apply(void 0, args)).then(function () {
12023
- setLoadedStatus(exports.TableServerLoadAllState.Completed);
12037
+ setLoading(false);
12024
12038
  setReady(true);
12025
12039
  });
12026
12040
  }
@@ -12036,7 +12050,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12036
12050
  }
12037
12051
  try {
12038
12052
  var _temp3 = function () {
12039
- if (loadAllStatus === exports.TableServerLoadAllState.Incomplete) {
12053
+ if (!hasLoadedAll) {
12040
12054
  var _loadAll2;
12041
12055
  return Promise.resolve((_loadAll2 = _loadAll) === null || _loadAll2 === void 0 ? void 0 : _loadAll2.apply(void 0, args)).then(function () {});
12042
12056
  }
@@ -12055,7 +12069,7 @@ function useTableServerLoading(length, loadPage, loadAll, pages, pageSize, _expe
12055
12069
  loadPage: _loadPage,
12056
12070
  loadAll: _loadAll,
12057
12071
  loadAllIfNeeded: _loadAllIfNeeded,
12058
- loadAllStatus: loadAllStatus,
12072
+ loading: loading,
12059
12073
  pageSize: pageSize,
12060
12074
  pageCount: pageCount,
12061
12075
  _experimentalDataLoader2: _experimentalDataLoader2
@@ -12243,7 +12257,7 @@ function useTableRowSelectionListener(table, onRowSelect) {
12243
12257
  * we only need to know if selection was enabled or disabled, because enableRowSelection function
12244
12258
  * will be applied directly to particular rows.
12245
12259
  */
12246
- }, [!!table.options.enableRowSelection, state]);
12260
+ }, [!!table.options.enableRowSelection, JSON.stringify(state)]);
12247
12261
  }
12248
12262
 
12249
12263
  function useTableSearchListener(table) {
@@ -12269,7 +12283,7 @@ function useTableSearchListener(table) {
12269
12283
  if (meta.search.isEnabled) {
12270
12284
  resetHighlightedColumnIndexes(query, table, localization);
12271
12285
  }
12272
- }, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
12286
+ }, [meta.server.loading, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
12273
12287
  }
12274
12288
 
12275
12289
  function useTableSettingsListener(table, onChangeSettings) {
@@ -12361,9 +12375,9 @@ function useTableServerLoadingListener(table, loadPage) {
12361
12375
  if (loadPage) {
12362
12376
  var sorting = table.getState().sorting;
12363
12377
  var columnFilters = table.getState().columnFilters;
12364
- var search = meta.search.enableGlobalFilter ? table.getState().globalFilter : undefined;
12365
12378
  var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
12366
- loadPage(0, sorting, columnFilters, search, hiddenColumns);
12379
+ var search = meta.search.enableGlobalFilter ? table.getState().globalFilter : undefined;
12380
+ loadPage(0, sorting, columnFilters, hiddenColumns, search);
12367
12381
  }
12368
12382
  }, []);
12369
12383
  }
@@ -12427,7 +12441,7 @@ function useTableManager(props, meta, internalColumns) {
12427
12441
  var rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
12428
12442
  var rowSelection = useTableRowSelection(!!options.enableRowSelection);
12429
12443
  var search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
12430
- var server = useTableServerLoading(length, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
12444
+ var server = useTableServerLoading(length, data, props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
12431
12445
  // TODO: memoise
12432
12446
  // convert jsx column components into valid table columns
12433
12447
  var _mapTableChildrenToCo = mapTableChildrenToColumns(props, settings, options, internalColumns, localization),
@@ -12703,7 +12717,7 @@ function useTableGlobalShortcuts(table, tableRef, scrollToIndex) {
12703
12717
  };
12704
12718
  },
12705
12719
  // scrollToIndex function changes when row count changes, so it is important to update handlers
12706
- [tableRef.current, tableMeta.rowActive.rowActiveIndex, scrollToIndex]);
12720
+ [tableRef.current, tableMeta.length, tableMeta.rowActive.rowActiveIndex, scrollToIndex]);
12707
12721
  }
12708
12722
 
12709
12723
  function useTableRef(table, ref) {
@@ -12838,7 +12852,7 @@ function RowWithServerLoading(props) {
12838
12852
  var hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);
12839
12853
  timeout = setTimeout(function () {
12840
12854
  var _tableMeta$server$loa, _tableMeta$server;
12841
- (_tableMeta$server$loa = (_tableMeta$server = tableMeta.server).loadPage) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, pageIndex, sorting, filters, tableMeta.search.enableGlobalFilter ? search : undefined, hiddenColumns);
12855
+ (_tableMeta$server$loa = (_tableMeta$server = tableMeta.server).loadPage) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, pageIndex, sorting, filters, hiddenColumns, tableMeta.search.enableGlobalFilter ? search : undefined);
12842
12856
  }, DELAY_BEFORE_LOAD_MS$1);
12843
12857
  }
12844
12858
  return function () {
@@ -13316,7 +13330,7 @@ function Header$4(context) {
13316
13330
  if (tableMeta.server.loadAllIfNeeded) {
13317
13331
  var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
13318
13332
  // don't pass the search query because we need all data - not filtered data
13319
- return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
13333
+ return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
13320
13334
  }
13321
13335
  }();
13322
13336
  // load all data if that is possible
@@ -13332,7 +13346,7 @@ function Header$4(context) {
13332
13346
  className: "hover:border-blue !-mt-px",
13333
13347
  checked: isAllRowsSelected,
13334
13348
  indeterminate: isSomeRowsSelected && !isAllRowsSelected,
13335
- loading: tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
13349
+ loading: tableMeta.server.loading,
13336
13350
  onChange: handleChange
13337
13351
  }));
13338
13352
  }
@@ -13390,7 +13404,7 @@ function Cell$3(context) {
13390
13404
  if (tableMeta.server.loadAllIfNeeded) {
13391
13405
  var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
13392
13406
  // don't pass the search query because we need all data - not filtered data
13393
- return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
13407
+ return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
13394
13408
  }
13395
13409
  }();
13396
13410
  return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
@@ -14575,8 +14589,7 @@ function Summary(props) {
14575
14589
  count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\xA0", texts.table.footer.summary.count, "\xA0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
14576
14590
  } else if (!tableMeta.server.isEnabled && ((_table$getState$colum = table.getState().columnFilters) !== null && _table$getState$colum !== void 0 && _table$getState$colum.length ||
14577
14591
  // filtered data
14578
- !!table.getState().globalFilter && table.options.enableGlobalFilter) // search with hide enabled
14579
- ) {
14592
+ !!table.getState().globalFilter && table.options.enableGlobalFilter)) {
14580
14593
  label = texts.table.footer.summary.records;
14581
14594
  count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(currentLength)), "\xA0", texts.table.footer.summary.count, "\xA0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
14582
14595
  } else {
@@ -14889,9 +14902,9 @@ function Search$1(props) {
14889
14902
  var _temp = function () {
14890
14903
  if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {
14891
14904
  // don't pass the search query because we need all data - not filtered data
14892
- return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters,
14905
+ return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns,
14893
14906
  // the old data loader doesn't have server side search
14894
- undefined, hiddenColumns)).then(function () {});
14907
+ undefined)).then(function () {});
14895
14908
  }
14896
14909
  }();
14897
14910
  // load all data if that is possible
@@ -14974,7 +14987,7 @@ function Search$1(props) {
14974
14987
  return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
14975
14988
  findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
14976
14989
  findTotal: (_tableMeta$search$hig2 = (_tableMeta$search$hig3 = tableMeta.search.highlightedColumnIndexes) === null || _tableMeta$search$hig3 === void 0 ? void 0 : _tableMeta$search$hig3.length) !== null && _tableMeta$search$hig2 !== void 0 ? _tableMeta$search$hig2 : null,
14977
- loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
14990
+ loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loading,
14978
14991
  name: "table-search",
14979
14992
  onClickFindPrevious: handlePreviousResult,
14980
14993
  onClickFindNext: handleNextResult,
@@ -17188,7 +17201,7 @@ function Print$1(props) {
17188
17201
  if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {
17189
17202
  var hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
17190
17203
  var _temp = _catch(function () {
17191
- return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
17204
+ return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, hiddenColumns, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined)).then(function () {});
17192
17205
  }, function (error) {
17193
17206
  var errorMessage = texts.table.print.error + ": " + error;
17194
17207
  console.error(errorMessage);
@@ -19823,7 +19836,28 @@ function reducer$2(state, action) {
19823
19836
  return state;
19824
19837
  }
19825
19838
  }
19826
- function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator) {
19839
+ function usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator) {
19840
+ var discardChanges = function discardChanges(rowId, table) {
19841
+ try {
19842
+ // remove any new rows from pinned state before discarding them
19843
+ table.resetRowPinning(true);
19844
+ dispatch({
19845
+ type: 'removeRow',
19846
+ rowId: rowId,
19847
+ payload: {
19848
+ rowIdentityAccessor: rowIdentityAccessor
19849
+ }
19850
+ });
19851
+ var _temp8 = function () {
19852
+ if (typeof handleDiscard === 'function') {
19853
+ return Promise.resolve(handleDiscard()).then(function () {});
19854
+ }
19855
+ }();
19856
+ return Promise.resolve(_temp8 && _temp8.then ? _temp8.then(function () {}) : void 0);
19857
+ } catch (e) {
19858
+ return Promise.reject(e);
19859
+ }
19860
+ };
19827
19861
  var saveChanges = function saveChanges(table, rowId) {
19828
19862
  if (rowId === void 0) {
19829
19863
  rowId = undefined;
@@ -19845,12 +19879,13 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
19845
19879
  function _temp6(_result) {
19846
19880
  return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
19847
19881
  // cleanup changes, we don't need them after saving
19848
- discardChanges(rowId, table);
19849
- // show the saved status, then remove it after a delay
19850
- setRowStatus(rowId, 'saved');
19851
- setTimeout(function () {
19852
- setRowStatus(rowId, undefined);
19853
- }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
19882
+ return Promise.resolve(discardChanges(rowId, table)).then(function () {
19883
+ // show the saved status, then remove it after a delay
19884
+ setRowStatus(rowId, 'saved');
19885
+ setTimeout(function () {
19886
+ setRowStatus(rowId, undefined);
19887
+ }, DELAY_BEFORE_REMOVING_SAVE_STATUS);
19888
+ });
19854
19889
  });
19855
19890
  }
19856
19891
  var rowChanges = (_changes$rowId = changes[rowId]) !== null && _changes$rowId !== void 0 ? _changes$rowId : {};
@@ -20128,17 +20163,6 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
20128
20163
  function hasChanges(rowId) {
20129
20164
  return rowId ? !!state.changes.rows[rowId] : !!Object.keys(state.changes.rows).length;
20130
20165
  }
20131
- function discardChanges(rowId, table) {
20132
- // remove any new rows from pinned state before discarding them
20133
- table.resetRowPinning(true);
20134
- dispatch({
20135
- type: 'removeRow',
20136
- rowId: rowId,
20137
- payload: {
20138
- rowIdentityAccessor: rowIdentityAccessor
20139
- }
20140
- });
20141
- }
20142
20166
  return {
20143
20167
  // row
20144
20168
  getRowValue: getRowValue,
@@ -20165,7 +20189,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
20165
20189
  };
20166
20190
  }
20167
20191
 
20168
- function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowIdentityAccessor, validator) {
20192
+ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, handleDiscard, rowIdentityAccessor, validator) {
20169
20193
  var createRow = function createRow(table, scrollToIndex, row) {
20170
20194
  try {
20171
20195
  var _temp2 = function _temp2(_result) {
@@ -20233,7 +20257,7 @@ function useTableEditing(isEnabled, handleSave, handleChange, handleCreate, rowI
20233
20257
  var _React$useState3 = React__default.useState(undefined),
20234
20258
  lastFocusedCellIndex = _React$useState3[0],
20235
20259
  setLastFocusedCellIndex = _React$useState3[1];
20236
- var pendingChangesFns = usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, validator);
20260
+ var pendingChangesFns = usePendingChangesState(handleSave, handleChange, handleDiscard, rowIdentityAccessor, validator);
20237
20261
  function toggleEditing(enabled, table, scrollToIndex, doSave) {
20238
20262
  if (doSave === void 0) {
20239
20263
  doSave = true;
@@ -20518,7 +20542,7 @@ function EditingControlCell(props) {
20518
20542
  var _cellRef$current;
20519
20543
  return typeof type === 'function' && !!((_cellRef$current = cellRef.current) !== null && _cellRef$current !== void 0 && _cellRef$current.querySelector('[data-taco="Select2"],[data-taco="switch"],[data-taco="checkbox"]'));
20520
20544
  }, [cellRef.current]);
20521
- var handleChange = function handleChange(nextValue) {
20545
+ var handleChange = React__default.useCallback(function (nextValue) {
20522
20546
  if (nextValue !== value) {
20523
20547
  tableMeta.editing.setCellValue(cell, rowIndex, nextValue);
20524
20548
  if (hasNonTextControl) {
@@ -20527,17 +20551,17 @@ function EditingControlCell(props) {
20527
20551
  });
20528
20552
  }
20529
20553
  }
20530
- };
20531
- function blur() {
20554
+ }, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex, value]);
20555
+ var blur = React__default.useCallback(function blur() {
20532
20556
  tableMeta.editing.toggleDetailedMode(false);
20533
20557
  tableMeta.editing.onCellChanged(cell, rowIndex, undefined, !hasNonTextControl);
20534
- }
20535
- var handleBlur = function handleBlur(event) {
20558
+ }, [hasNonTextControl, cell.row.id, cell.column.id, cell.row.original, rowIndex]);
20559
+ var handleBlur = React__default.useCallback(function (event) {
20536
20560
  if (isElementInsideOrTriggeredFromContainer(event.relatedTarget, event.currentTarget)) {
20537
20561
  return;
20538
20562
  }
20539
20563
  blur();
20540
- };
20564
+ }, [blur]);
20541
20565
  // ensure that blur runs when the cell gets unmounted (when vertically arrow key navigating)
20542
20566
  React__default.useEffect(function () {
20543
20567
  var ref = cellRef.current;
@@ -20935,7 +20959,7 @@ var RENDERERS$1 = {
20935
20959
  cell: Cell$5
20936
20960
  };
20937
20961
  function useTable3(props, ref) {
20938
- var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.rowIdentityAccessor, props.validator);
20962
+ var editing = useTableEditing(props.enableEditing, props.onEditingSave, props.onEditingChange, props.onEditingCreate, props.onEditingDiscard, props.rowIdentityAccessor, props.validator);
20939
20963
  var creationEnabled = editing.isEnabled && !!props.onEditingCreate;
20940
20964
  // this gives me the performance heeby jeebies, but can't think of a better way to internalise the state
20941
20965
  var data = React__default.useMemo(function () {
@@ -21048,6 +21072,7 @@ function Alert$1(props) {
21048
21072
  // Add space before and after `messageAnd` text
21049
21073
  links.push(" " + validationTexts.alert.messageAnd + " ");
21050
21074
  }
21075
+ // note: if this row click functionality is removed, indexes can be removed from useEditingState
21051
21076
  var handleClick = function handleClick() {
21052
21077
  // if row is visible
21053
21078
  if (pendingChangeWithError.index > -1) {
@@ -23254,7 +23279,7 @@ Navigation2.Content = Content$a;
23254
23279
 
23255
23280
  var DATASET_SIZE_MULTIPLIER = 15;
23256
23281
  function useTableDataLoader2(fetchPage, fetchAll, options) {
23257
- var loadPage = function loadPage(pageIndex, sorting, filters, search, hiddenColumns, reset) {
23282
+ var loadPage = function loadPage(pageIndex, sorting, filters, hiddenColumns, search, reset) {
23258
23283
  if (reset === void 0) {
23259
23284
  reset = false;
23260
23285
  }
@@ -23274,7 +23299,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23274
23299
  _pendingPageRequests.current[pageIndex] = true;
23275
23300
  var _temp2 = _catch(function () {
23276
23301
  _lastRequestId.current = requestId;
23277
- return Promise.resolve(fetchPage(pageIndex, pageSize, sorting, filters, search, hiddenColumns)).then(function (response) {
23302
+ return Promise.resolve(fetchPage(pageIndex, pageSize, sorting, filters, hiddenColumns, search)).then(function (response) {
23278
23303
  length.current = response.length;
23279
23304
  // update state, here we do some "magic" to support "load in place"
23280
23305
  setData(function (currentData) {
@@ -23354,7 +23379,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23354
23379
  var _lastUsedFilters = React__default.useRef([]);
23355
23380
  var _lastUsedSearch = React__default.useRef();
23356
23381
  var _lastUsedHiddenColumns = React__default.useRef([]);
23357
- var loadAll = function loadAll(sorting, filters, search, hiddenColumns) {
23382
+ var loadAll = function loadAll(sorting, filters, hiddenColumns, search) {
23358
23383
  try {
23359
23384
  // set values so we can track if they changed between loads
23360
23385
  _lastUsedSorting.current = sorting;
@@ -23363,7 +23388,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23363
23388
  _lastUsedHiddenColumns.current = hiddenColumns;
23364
23389
  var _temp = _finallyRethrows(function () {
23365
23390
  return _catch(function () {
23366
- return Promise.resolve(fetchAll(sorting, filters, search, hiddenColumns)).then(function (response) {
23391
+ return Promise.resolve(fetchAll(sorting, filters, hiddenColumns, search)).then(function (response) {
23367
23392
  length.current = response.length;
23368
23393
  var pages = [];
23369
23394
  var cache = {};
@@ -23396,7 +23421,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23396
23421
  // reset stuff
23397
23422
  _pendingPageRequests.current = {};
23398
23423
  // load the current page again
23399
- return loadPage(getCurrentPage(data.pages), _lastUsedSorting.current, _lastUsedFilters.current, _lastUsedSearch.current, _lastUsedHiddenColumns.current, true);
23424
+ return loadPage(getCurrentPage(data.pages), _lastUsedSorting.current, _lastUsedFilters.current, _lastUsedHiddenColumns.current, _lastUsedSearch.current, true);
23400
23425
  } catch (e) {
23401
23426
  return Promise.reject(e);
23402
23427
  }
@@ -23405,7 +23430,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23405
23430
  try {
23406
23431
  // reset before loading the current page
23407
23432
  _pendingPageRequests.current = {};
23408
- return loadPage(getCurrentPage(data.pages), sorting, _lastUsedFilters.current, _lastUsedSearch.current, _lastUsedHiddenColumns.current, true);
23433
+ return loadPage(getCurrentPage(data.pages), sorting, _lastUsedFilters.current, _lastUsedHiddenColumns.current, _lastUsedSearch.current, true);
23409
23434
  } catch (e) {
23410
23435
  return Promise.reject(e);
23411
23436
  }
@@ -23414,7 +23439,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23414
23439
  try {
23415
23440
  // reset before loading the current page
23416
23441
  _pendingPageRequests.current = {};
23417
- return loadPage(0, _lastUsedSorting.current, filters, _lastUsedSearch.current, hiddenColumns, true);
23442
+ return loadPage(0, _lastUsedSorting.current, filters, hiddenColumns, _lastUsedSearch.current, true);
23418
23443
  } catch (e) {
23419
23444
  return Promise.reject(e);
23420
23445
  }
@@ -23423,7 +23448,7 @@ function useTableDataLoader2(fetchPage, fetchAll, options) {
23423
23448
  try {
23424
23449
  // reset before loading the current page
23425
23450
  _pendingPageRequests.current = {};
23426
- return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current, search, hiddenColumns, true);
23451
+ return loadPage(0, _lastUsedSorting.current, _lastUsedFilters.current, hiddenColumns, search, true);
23427
23452
  } catch (e) {
23428
23453
  return Promise.reject(e);
23429
23454
  }