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

Sign up to get free protection for your applications and to get access to all the features.
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
  }