@economic/taco 2.46.9 → 2.47.0-server-2
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/components/Report/Report.d.ts +1 -1
- package/dist/components/SearchInput2/SearchInput2.d.ts +2 -0
- package/dist/components/Table3/components/Row/Editing/CreateNewRow.d.ts +1 -2
- package/dist/components/Table3/components/Row/Editing/TemporaryRow.d.ts +1 -0
- package/dist/components/Table3/features/useEditingState.d.ts +11 -11
- package/dist/components/Table3/features/useTableEditing.d.ts +13 -13
- package/dist/components/Table3/util/editing.d.ts +3 -0
- package/dist/esm/index.css +2 -2
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js +17 -17
- package/dist/esm/node_modules/babel-plugin-transform-async-to-promises/helpers.mjs.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js +1 -0
- package/dist/esm/packages/taco/src/charts/components/Donut/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/charts/components/Legend.js +1 -0
- package/dist/esm/packages/taco/src/charts/components/Legend.js.map +1 -1
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js +6 -3
- package/dist/esm/packages/taco/src/components/SearchInput2/SearchInput2.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/Table3.js +14 -4
- package/dist/esm/packages/taco/src/components/Table3/Table3.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js +14 -9
- package/dist/esm/packages/taco/src/components/Table3/components/Editing/Alert.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js +2 -4
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/CreateNewRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js +5 -4
- package/dist/esm/packages/taco/src/components/Table3/components/Row/Editing/TemporaryRow.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js +32 -51
- package/dist/esm/packages/taco/src/components/Table3/features/useEditingState.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js +5 -3
- package/dist/esm/packages/taco/src/components/Table3/features/useTableEditing.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js +15 -12
- package/dist/esm/packages/taco/src/components/Table3/listeners/useTableEditingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js +9 -1
- package/dist/esm/packages/taco/src/components/Table3/util/editing.js.map +1 -1
- package/dist/esm/packages/taco/src/index.js +1 -0
- package/dist/esm/packages/taco/src/index.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/Table.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js +4 -0
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Expansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js +7 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Columns/Internal/Selection.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js +7 -2
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Footer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js +7 -5
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js +24 -22
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js +41 -4
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Row/Row.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js +26 -3
- package/dist/esm/packages/taco/src/primitives/Table/Core/components/Toolbar/components/Search/Search.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableGlobalShortcuts.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js +36 -9
- package/dist/esm/packages/taco/src/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/Core/useTable.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/types.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js +5 -7
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js +249 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableDataLoader2.js.map +1 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js +2 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableRowExpansion.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js +3 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableSearch.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js +4 -2
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js +3 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableFilterListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js +4 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableRowSelectionListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js +14 -13
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableSearchListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js +7 -3
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/listeners/useTableServerLoadingListener.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js +4 -4
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/useTableManager.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js +4 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/columns.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js +7 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/presets.js.map +1 -1
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js +6 -0
- package/dist/esm/packages/taco/src/primitives/Table/useTableManager/util/setup.js.map +1 -1
- package/dist/hooks/useLazyDebouncedEffect.d.ts +2 -0
- package/dist/index.css +2 -2
- package/dist/index.d.ts +1 -0
- package/dist/primitives/Table/Core/Table.d.ts +1 -0
- package/dist/primitives/Table/Core/components/Row/BuiltIns/SkeletonRow.d.ts +2 -2
- package/dist/primitives/Table/Core/components/Row/Row.d.ts +2 -0
- package/dist/primitives/Table/Core/features/useTableRenderer.d.ts +1 -1
- package/dist/primitives/Table/types.d.ts +11 -6
- package/dist/primitives/Table/useTableDataLoader2.d.ts +23 -0
- package/dist/primitives/Table/useTableManager/features/useTableRowExpansion.d.ts +2 -1
- package/dist/primitives/Table/useTableManager/features/useTableSearch.d.ts +4 -2
- package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -1
- package/dist/primitives/Table/useTableManager/listeners/useTableSearchListener.d.ts +1 -2
- package/dist/primitives/Table/useTableManager/util/columns.d.ts +2 -1
- package/dist/taco.cjs.development.js +607 -229
- package/dist/taco.cjs.development.js.map +1 -1
- package/dist/taco.cjs.production.min.js +1 -1
- package/dist/taco.cjs.production.min.js.map +1 -1
- package/package.json +2 -3
@@ -31,12 +31,12 @@ var reactPortal = require('@radix-ui/react-portal');
|
|
31
31
|
var reactTable = require('@tanstack/react-table');
|
32
32
|
var get = _interopDefault(require('lodash/get'));
|
33
33
|
var reactVirtual = require('@tanstack/react-virtual');
|
34
|
-
var reactIntersectionObserver = require('react-intersection-observer');
|
35
34
|
var core = require('@dnd-kit/core');
|
36
35
|
var modifiers = require('@dnd-kit/modifiers');
|
37
36
|
var SortablePrimitive = require('@dnd-kit/sortable');
|
38
37
|
var utilities = require('@dnd-kit/utilities');
|
39
38
|
var reactTable$1 = require('react-table');
|
39
|
+
var reactIntersectionObserver = require('react-intersection-observer');
|
40
40
|
var reactWindow = require('react-window');
|
41
41
|
var InfiniteLoader = _interopDefault(require('react-window-infinite-loader'));
|
42
42
|
var set = _interopDefault(require('lodash/set'));
|
@@ -10187,6 +10187,9 @@ function unfreezeAllExternalColumns(leftPinnedState) {
|
|
10187
10187
|
function freezeUptoExternalColumn(index, columns) {
|
10188
10188
|
return columns.slice(0, index + 1);
|
10189
10189
|
}
|
10190
|
+
function getHiddenColumns(columnVisibility = {}) {
|
10191
|
+
return Object.keys(columnVisibility).filter(c => columnVisibility[c] === false);
|
10192
|
+
}
|
10190
10193
|
|
10191
10194
|
function getSettings(table) {
|
10192
10195
|
const meta = table.options.meta;
|
@@ -10468,6 +10471,12 @@ function configureReactTableOptions(options, props, localization) {
|
|
10468
10471
|
var _column$columnDef$met;
|
10469
10472
|
return ((_column$columnDef$met = column.columnDef.meta) === null || _column$columnDef$met === void 0 ? void 0 : _column$columnDef$met.enableSearch) !== false && column.getIsVisible();
|
10470
10473
|
};
|
10474
|
+
// enter controlled search mode (controlled could be local state, but usually the server)
|
10475
|
+
if (props.onChangeSearch) {
|
10476
|
+
if (props._experimentalDataLoader2) {
|
10477
|
+
tableOptions.manualFiltering = true;
|
10478
|
+
}
|
10479
|
+
}
|
10471
10480
|
}
|
10472
10481
|
if (tableOptions.enableSorting) {
|
10473
10482
|
// enter controlled sort mode (controlled could be local state, but usually the server)
|
@@ -10525,6 +10534,7 @@ const DEFAULT_PRESET = {
|
|
10525
10534
|
enableColumnHiding: false,
|
10526
10535
|
enableColumnResizing: false,
|
10527
10536
|
enableRowExpansion: false,
|
10537
|
+
enableRowExpansionAll: true,
|
10528
10538
|
enableRowSelection: false,
|
10529
10539
|
// custom -- common between all table types
|
10530
10540
|
enableColumnOrdering: false,
|
@@ -10551,6 +10561,7 @@ const presets = {
|
|
10551
10561
|
enableColumnHiding: true,
|
10552
10562
|
enableColumnResizing: true,
|
10553
10563
|
enableRowExpansion: true,
|
10564
|
+
enableRowExpansionAll: true,
|
10554
10565
|
enableRowSelection: true,
|
10555
10566
|
// custom -- common between all table types
|
10556
10567
|
enableColumnOrdering: true,
|
@@ -10576,6 +10587,7 @@ const presets = {
|
|
10576
10587
|
enableColumnHiding: false,
|
10577
10588
|
enableColumnResizing: false,
|
10578
10589
|
enableRowExpansion: true,
|
10590
|
+
enableRowExpansionAll: true,
|
10579
10591
|
enableRowSelection: true,
|
10580
10592
|
// custom -- common between all table types
|
10581
10593
|
enableColumnOrdering: false,
|
@@ -10601,6 +10613,7 @@ const presets = {
|
|
10601
10613
|
enableColumnHiding: false,
|
10602
10614
|
enableColumnResizing: false,
|
10603
10615
|
enableRowExpansion: true,
|
10616
|
+
enableRowExpansionAll: true,
|
10604
10617
|
enableRowSelection: false,
|
10605
10618
|
// custom -- common between all table types
|
10606
10619
|
enableColumnOrdering: false,
|
@@ -10618,7 +10631,7 @@ const presets = {
|
|
10618
10631
|
}
|
10619
10632
|
};
|
10620
10633
|
function getTableFeaturePreset(props) {
|
10621
|
-
var _props$enableRowActio, _props$enableRowClick, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowSelec, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions, _props$enableRowHeigh, _props$enableSaveSett;
|
10634
|
+
var _props$enableRowActio, _props$enableRowClick, _props$enableRowDrag, _props$enableRowDrop, _props$enableRowGoto, _props$enableRowExpan, _props$enableRowExpan2, _props$enableRowSelec, _props$enableFilterin, _props$enableSearch, _props$enableSorting, _props$enableColumnFr, _props$enableColumnHi, _props$enableColumnRe, _props$enableColumnOr, _props$enableFontSize, _props$enableFooter, _props$enablePrinting, _props$enableRowActiv, _props$rowActions, _props$enableRowHeigh, _props$enableSaveSett;
|
10622
10635
|
const presetOptions = props.preset ? presets[props.preset] : DEFAULT_PRESET;
|
10623
10636
|
const enableRowActions = (_props$enableRowActio = props.enableRowActions) !== null && _props$enableRowActio !== void 0 ? _props$enableRowActio : presetOptions.enableRowActions;
|
10624
10637
|
const enableRowClick = (_props$enableRowClick = props.enableRowClick) !== null && _props$enableRowClick !== void 0 ? _props$enableRowClick : presetOptions.enableRowClick;
|
@@ -10626,6 +10639,7 @@ function getTableFeaturePreset(props) {
|
|
10626
10639
|
const enableRowDrop = (_props$enableRowDrop = props.enableRowDrop) !== null && _props$enableRowDrop !== void 0 ? _props$enableRowDrop : presetOptions.enableRowDrop;
|
10627
10640
|
const enableRowGoto = (_props$enableRowGoto = props.enableRowGoto) !== null && _props$enableRowGoto !== void 0 ? _props$enableRowGoto : presetOptions.enableRowGoto;
|
10628
10641
|
const enableRowExpansion = (_props$enableRowExpan = props.enableRowExpansion) !== null && _props$enableRowExpan !== void 0 ? _props$enableRowExpan : presetOptions.enableRowExpansion;
|
10642
|
+
const enableRowExpansionAll = (_props$enableRowExpan2 = props.enableRowExpansionAll) !== null && _props$enableRowExpan2 !== void 0 ? _props$enableRowExpan2 : presetOptions.enableRowExpansionAll;
|
10629
10643
|
const enableRowSelection = (_props$enableRowSelec = props.enableRowSelection) !== null && _props$enableRowSelec !== void 0 ? _props$enableRowSelec : presetOptions.enableRowSelection;
|
10630
10644
|
return {
|
10631
10645
|
// react-table built-in
|
@@ -10650,6 +10664,7 @@ function getTableFeaturePreset(props) {
|
|
10650
10664
|
enableRowDrag: enableRowDrag && !!props.onRowDrag,
|
10651
10665
|
enableRowDrop: enableRowDrop && !!props.onRowDrop,
|
10652
10666
|
enableRowGoto: enableRowGoto && !!props.onRowGoto,
|
10667
|
+
enableRowExpansionAll: enableRowExpansion && enableRowExpansionAll && !!props.rowExpansionRenderer,
|
10653
10668
|
enableRowHeight: (_props$enableRowHeigh = props.enableRowHeight) !== null && _props$enableRowHeigh !== void 0 ? _props$enableRowHeigh : presetOptions.enableRowHeight,
|
10654
10669
|
enableSaveSettings: (_props$enableSaveSett = props.enableSaveSettings) !== null && _props$enableSaveSett !== void 0 ? _props$enableSaveSett : presetOptions.enableSaveSettings
|
10655
10670
|
};
|
@@ -10845,7 +10860,7 @@ function useTableRowActive(isEnabled = false, initialRowActiveIndex) {
|
|
10845
10860
|
return index;
|
10846
10861
|
});
|
10847
10862
|
}
|
10848
|
-
}, [rowActiveIndex,
|
10863
|
+
}, [rowActiveIndex, isEnabled]);
|
10849
10864
|
return {
|
10850
10865
|
isEnabled,
|
10851
10866
|
rowActiveIndex,
|
@@ -10894,9 +10909,10 @@ function useTableRowClick(isEnabled = false, onRowClick) {
|
|
10894
10909
|
};
|
10895
10910
|
}
|
10896
10911
|
|
10897
|
-
function useTableRowExpansion(isEnabled = false, rowExpansionRenderer) {
|
10912
|
+
function useTableRowExpansion(isEnabled = false, canExpandAll = true, rowExpansionRenderer) {
|
10898
10913
|
return {
|
10899
10914
|
isEnabled,
|
10915
|
+
canExpandAll,
|
10900
10916
|
rowExpansionRenderer: isEnabled ? rowExpansionRenderer : undefined
|
10901
10917
|
};
|
10902
10918
|
}
|
@@ -10960,7 +10976,7 @@ function useTableRowSelection(isEnabled = false) {
|
|
10960
10976
|
- Highlighting search results, this is custom and only uses the state part of globalFilter (to store the search query)
|
10961
10977
|
- Filtering of results, this is essentially the built in filtering, and relies on enableGlobalFilter being on or off
|
10962
10978
|
*/
|
10963
|
-
function useTableSearch(isEnabled = false, defaultEnableGlobalFilter = false) {
|
10979
|
+
function useTableSearch(isEnabled = false, onChangeSearch, defaultEnableGlobalFilter = false) {
|
10964
10980
|
const [enableGlobalFilter, _setEnableGlobalFilter] = React__default.useState(defaultEnableGlobalFilter);
|
10965
10981
|
function setEnableGlobalFilter(enabled, instance) {
|
10966
10982
|
_setEnableGlobalFilter(enabled);
|
@@ -10985,18 +11001,19 @@ function useTableSearch(isEnabled = false, defaultEnableGlobalFilter = false) {
|
|
10985
11001
|
highlightedColumnIndexes,
|
10986
11002
|
setHighlightedColumnIndexes,
|
10987
11003
|
currentHighlightColumnIndex,
|
10988
|
-
setCurrentHighlightColumnIndex
|
11004
|
+
setCurrentHighlightColumnIndex,
|
11005
|
+
handleSearch: isEnabled && typeof onChangeSearch === 'function' ? onChangeSearch : undefined
|
10989
11006
|
};
|
10990
11007
|
}
|
10991
11008
|
|
10992
11009
|
// A type of promise-like that resolves synchronously and supports only one observer
|
10993
|
-
|
11010
|
+
var _Pact = /*#__PURE__*/function () {
|
10994
11011
|
function _Pact() {}
|
10995
11012
|
_Pact.prototype.then = function (onFulfilled, onRejected) {
|
10996
|
-
|
10997
|
-
|
11013
|
+
var result = new _Pact();
|
11014
|
+
var state = this.s;
|
10998
11015
|
if (state) {
|
10999
|
-
|
11016
|
+
var callback = state & 1 ? onFulfilled : onRejected;
|
11000
11017
|
if (callback) {
|
11001
11018
|
try {
|
11002
11019
|
_settle(result, 1, callback(this.v));
|
@@ -11010,7 +11027,7 @@ const _Pact = /*#__PURE__*/function () {
|
|
11010
11027
|
}
|
11011
11028
|
this.o = function (_this) {
|
11012
11029
|
try {
|
11013
|
-
|
11030
|
+
var value = _this.v;
|
11014
11031
|
if (_this.s & 1) {
|
11015
11032
|
_settle(result, 1, onFulfilled ? onFulfilled(value) : value);
|
11016
11033
|
} else if (onRejected) {
|
@@ -11047,7 +11064,7 @@ function _settle(pact, state, value) {
|
|
11047
11064
|
}
|
11048
11065
|
pact.s = state;
|
11049
11066
|
pact.v = value;
|
11050
|
-
|
11067
|
+
var observer = pact.o;
|
11051
11068
|
if (observer) {
|
11052
11069
|
observer(pact);
|
11053
11070
|
}
|
@@ -11087,17 +11104,13 @@ function _forTo(array, body, check) {
|
|
11087
11104
|
_cycle();
|
11088
11105
|
return pact;
|
11089
11106
|
}
|
11090
|
-
|
11107
|
+
var _iteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.iterator || (Symbol.iterator = /*#__PURE__*/Symbol("Symbol.iterator")) : "@@iterator";
|
11091
11108
|
|
11092
11109
|
// Asynchronously iterate through an object's values
|
11093
11110
|
// Uses for...of if the runtime supports it, otherwise iterates until length on a copy
|
11094
11111
|
function _forOf(target, body, check) {
|
11095
11112
|
if (typeof target[_iteratorSymbol] === "function") {
|
11096
|
-
var
|
11097
|
-
step,
|
11098
|
-
pact,
|
11099
|
-
reject;
|
11100
|
-
function _cycle(result) {
|
11113
|
+
var _cycle = function _cycle(result) {
|
11101
11114
|
try {
|
11102
11115
|
while (!(step = iterator.next()).done && (!check || !check())) {
|
11103
11116
|
result = body(step.value);
|
@@ -11118,13 +11131,17 @@ function _forOf(target, body, check) {
|
|
11118
11131
|
} catch (e) {
|
11119
11132
|
_settle(pact || (pact = new _Pact()), 2, e);
|
11120
11133
|
}
|
11121
|
-
}
|
11134
|
+
};
|
11135
|
+
var iterator = target[_iteratorSymbol](),
|
11136
|
+
step,
|
11137
|
+
pact,
|
11138
|
+
reject;
|
11122
11139
|
_cycle();
|
11123
|
-
if (iterator
|
11124
|
-
var _fixup = function (value) {
|
11140
|
+
if (iterator["return"]) {
|
11141
|
+
var _fixup = function _fixup(value) {
|
11125
11142
|
try {
|
11126
11143
|
if (!step.done) {
|
11127
|
-
iterator
|
11144
|
+
iterator["return"]();
|
11128
11145
|
}
|
11129
11146
|
} catch (e) {}
|
11130
11147
|
return value;
|
@@ -11151,7 +11168,7 @@ function _forOf(target, body, check) {
|
|
11151
11168
|
return body(values[i]);
|
11152
11169
|
}, check);
|
11153
11170
|
}
|
11154
|
-
|
11171
|
+
var _asyncIteratorSymbol = /*#__PURE__*/typeof Symbol !== "undefined" ? Symbol.asyncIterator || (Symbol.asyncIterator = /*#__PURE__*/Symbol("Symbol.asyncIterator")) : "@@asyncIterator";
|
11155
11172
|
|
11156
11173
|
// Asynchronously call a function and send errors to recovery continuation
|
11157
11174
|
function _catch(body, recover) {
|
@@ -11232,7 +11249,7 @@ function useTableDataLoader(fetchPage, fetchAll, options = {
|
|
11232
11249
|
length.current = response.length;
|
11233
11250
|
nextData = Array(length.current).fill(undefined);
|
11234
11251
|
} else {
|
11235
|
-
nextData = [
|
11252
|
+
nextData = [].concat(currentData);
|
11236
11253
|
}
|
11237
11254
|
const startIndex = pageIndex * pageSize;
|
11238
11255
|
nextData.splice(startIndex, pageSize, ...response.data);
|
@@ -11298,13 +11315,12 @@ function useTableDataLoader(fetchPage, fetchAll, options = {
|
|
11298
11315
|
try {
|
11299
11316
|
if (_lastUsedSearch.current) {
|
11300
11317
|
// we're searching, which means we need to refetch all with the correct sorting applied
|
11301
|
-
loadAll(sorting, _lastUsedFilters.current);
|
11318
|
+
return loadAll(sorting, _lastUsedFilters.current);
|
11302
11319
|
} else {
|
11303
11320
|
var _lastUsedPageIndex$cu2;
|
11304
11321
|
// load the last page that we scrolled to
|
11305
|
-
loadPage((_lastUsedPageIndex$cu2 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu2 !== void 0 ? _lastUsedPageIndex$cu2 : 0, sorting, _lastUsedFilters.current);
|
11322
|
+
return loadPage((_lastUsedPageIndex$cu2 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu2 !== void 0 ? _lastUsedPageIndex$cu2 : 0, sorting, _lastUsedFilters.current);
|
11306
11323
|
}
|
11307
|
-
return Promise.resolve();
|
11308
11324
|
} catch (e) {
|
11309
11325
|
return Promise.reject(e);
|
11310
11326
|
}
|
@@ -11313,13 +11329,12 @@ function useTableDataLoader(fetchPage, fetchAll, options = {
|
|
11313
11329
|
try {
|
11314
11330
|
if (_lastUsedSearch.current) {
|
11315
11331
|
// we're searching, which means we need to refetch all with the correct sorting applied
|
11316
|
-
loadAll(_lastUsedSorting.current, filters);
|
11332
|
+
return loadAll(_lastUsedSorting.current, filters);
|
11317
11333
|
} else {
|
11318
11334
|
var _lastUsedPageIndex$cu3;
|
11319
11335
|
// load the last page that we scrolled to
|
11320
|
-
loadPage((_lastUsedPageIndex$cu3 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu3 !== void 0 ? _lastUsedPageIndex$cu3 : 0, _lastUsedSorting.current, filters);
|
11336
|
+
return loadPage((_lastUsedPageIndex$cu3 = _lastUsedPageIndex.current) !== null && _lastUsedPageIndex$cu3 !== void 0 ? _lastUsedPageIndex$cu3 : 0, _lastUsedSorting.current, filters);
|
11321
11337
|
}
|
11322
|
-
return Promise.resolve();
|
11323
11338
|
} catch (e) {
|
11324
11339
|
return Promise.reject(e);
|
11325
11340
|
}
|
@@ -11347,7 +11362,7 @@ function useTableDataLoader(fetchPage, fetchAll, options = {
|
|
11347
11362
|
}, invalidate];
|
11348
11363
|
}
|
11349
11364
|
|
11350
|
-
function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE) {
|
11365
|
+
function useTableServerLoading(loadPage, loadAll, pages, pageSize = DEFAULT_PAGE_SIZE, _experimentalDataLoader2 = false) {
|
11351
11366
|
const isEnabled = !!loadPage && !!loadAll;
|
11352
11367
|
const [isReady, setReady] = React__default.useState(false);
|
11353
11368
|
const [loadAllStatus, setLoadedStatus] = React__default.useState(exports.TableServerLoadAllState.Incomplete);
|
@@ -11402,13 +11417,15 @@ function useTableServerLoading(loadPage, loadAll, pageSize = DEFAULT_PAGE_SIZE)
|
|
11402
11417
|
};
|
11403
11418
|
}
|
11404
11419
|
return {
|
11420
|
+
pages,
|
11405
11421
|
isEnabled,
|
11406
11422
|
isReady,
|
11407
11423
|
loadPage: _loadPage,
|
11408
11424
|
loadAll: _loadAll,
|
11409
11425
|
loadAllIfNeeded: _loadAllIfNeeded,
|
11410
11426
|
loadAllStatus,
|
11411
|
-
pageSize
|
11427
|
+
pageSize,
|
11428
|
+
_experimentalDataLoader2
|
11412
11429
|
};
|
11413
11430
|
}
|
11414
11431
|
|
@@ -11505,7 +11522,8 @@ function useTableFilterListener(table, onFilter) {
|
|
11505
11522
|
const columnFilters = table.getState().columnFilters;
|
11506
11523
|
useLazyEffect(() => {
|
11507
11524
|
if (table.options.enableColumnFilters && typeof onFilter === 'function') {
|
11508
|
-
|
11525
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
11526
|
+
onFilter(columnFilters, hiddenColumns);
|
11509
11527
|
if (table.options.enableRowSelection) {
|
11510
11528
|
table.resetRowSelection();
|
11511
11529
|
}
|
@@ -11563,11 +11581,12 @@ function useTableRowHeightListener(table) {
|
|
11563
11581
|
}
|
11564
11582
|
|
11565
11583
|
function useTableRowSelectionListener(table, onRowSelect) {
|
11584
|
+
// note that the selected row model may not contain all rows in state when using server loading
|
11566
11585
|
const rows = table.getSelectedRowModel().flatRows;
|
11567
|
-
const
|
11586
|
+
const state = table.getState().rowSelection;
|
11568
11587
|
useLazyEffect(() => {
|
11569
11588
|
if (table.options.enableRowSelection && typeof onRowSelect === 'function') {
|
11570
|
-
onRowSelect(
|
11589
|
+
onRowSelect(rows.map(row => row.original), Object.keys(state));
|
11571
11590
|
}
|
11572
11591
|
/**
|
11573
11592
|
* Casting to a boolean, since enableRowSelection can be a function,
|
@@ -11575,33 +11594,33 @@ function useTableRowSelectionListener(table, onRowSelect) {
|
|
11575
11594
|
* we only need to know if selection was enabled or disabled, because enableRowSelection function
|
11576
11595
|
* will be applied directly to particular rows.
|
11577
11596
|
*/
|
11578
|
-
}, [!!table.options.enableRowSelection,
|
11597
|
+
}, [!!table.options.enableRowSelection, state]);
|
11579
11598
|
}
|
11580
11599
|
|
11581
|
-
function useTableSearchListener(table
|
11600
|
+
function useTableSearchListener(table) {
|
11582
11601
|
const meta = table.options.meta;
|
11583
11602
|
const localization = useLocalization();
|
11584
|
-
const
|
11603
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
11604
|
+
const query = table.getState().globalFilter;
|
11585
11605
|
// Need to re-run search when columns are getting shown/hidden.
|
11586
|
-
|
11587
|
-
if (meta.search.isEnabled
|
11588
|
-
const currentFilter =
|
11606
|
+
useLazyEffect(() => {
|
11607
|
+
if (meta.search.isEnabled) {
|
11608
|
+
const currentFilter = query;
|
11589
11609
|
requestAnimationFrame(() => {
|
11590
11610
|
table.resetGlobalFilter();
|
11591
11611
|
table.setGlobalFilter(currentFilter);
|
11592
11612
|
});
|
11613
|
+
if (meta.search.handleSearch && meta.search.enableGlobalFilter && query) {
|
11614
|
+
meta.search.handleSearch(query, hiddenColumns);
|
11615
|
+
}
|
11593
11616
|
}
|
11594
|
-
}, [
|
11617
|
+
}, [hiddenColumns.length]);
|
11595
11618
|
// recalculates highlighted indexes whenever something important changes
|
11596
|
-
|
11619
|
+
useLazyEffect(() => {
|
11597
11620
|
if (meta.search.isEnabled) {
|
11598
|
-
const query = table.getState().globalFilter;
|
11599
11621
|
resetHighlightedColumnIndexes(query, table, localization);
|
11600
|
-
if (typeof onChangeSearch === 'function') {
|
11601
|
-
onChangeSearch(query);
|
11602
|
-
}
|
11603
11622
|
}
|
11604
|
-
}, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length,
|
11623
|
+
}, [meta.server.loadAllStatus, meta.search.isEnabled, meta.search.enableGlobalFilter, table.getRowModel().rows.length, query, JSON.stringify(table.getState().sorting)]);
|
11605
11624
|
}
|
11606
11625
|
|
11607
11626
|
function useTableSettingsListener(table, onChangeSettings) {
|
@@ -11685,12 +11704,15 @@ function useTableSortingListener(table, onSort) {
|
|
11685
11704
|
}
|
11686
11705
|
|
11687
11706
|
function useTableServerLoadingListener(table, loadPage) {
|
11688
|
-
const
|
11689
|
-
const columnFilters = table.getState().columnFilters;
|
11707
|
+
const meta = table.options.meta;
|
11690
11708
|
// trigger load of the first page on mount
|
11691
11709
|
React__default.useEffect(() => {
|
11692
11710
|
if (loadPage) {
|
11693
|
-
|
11711
|
+
const sorting = table.getState().sorting;
|
11712
|
+
const columnFilters = table.getState().columnFilters;
|
11713
|
+
const search = meta.search.enableGlobalFilter ? table.getState().globalFilter : undefined;
|
11714
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
11715
|
+
loadPage(0, sorting, columnFilters, search, hiddenColumns);
|
11694
11716
|
}
|
11695
11717
|
}, []);
|
11696
11718
|
}
|
@@ -11737,13 +11759,13 @@ function useTableManager(props, meta, internalColumns) {
|
|
11737
11759
|
const rowClick = useTableRowClick(options.enableRowClick, props.onRowClick);
|
11738
11760
|
const rowDrag = useTableRowDrag(options.enableRowDrag && !(meta !== null && meta !== void 0 && (_meta$editing = meta.editing) !== null && _meta$editing !== void 0 && _meta$editing.isEditing), props.onRowDrag);
|
11739
11761
|
const rowDrop = useTableRowDrop(options.enableRowDrop, props.onRowDrop);
|
11740
|
-
const rowExpansion = useTableRowExpansion(options.enableRowExpansion, props.rowExpansionRenderer);
|
11762
|
+
const rowExpansion = useTableRowExpansion(options.enableRowExpansion, options.enableRowExpansionAll, props.rowExpansionRenderer);
|
11741
11763
|
const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);
|
11742
11764
|
const rowGroups = useTableRowGroups(props.rowActionsForGroup);
|
11743
11765
|
const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);
|
11744
11766
|
const rowSelection = useTableRowSelection(!!options.enableRowSelection);
|
11745
|
-
const search = useTableSearch(options.enableSearch, settings.excludeUnmatchedRecordsInSearch);
|
11746
|
-
const server = useTableServerLoading(props.loadPage, props.loadAll, props.pageSize);
|
11767
|
+
const search = useTableSearch(options.enableSearch, props.onChangeSearch, settings.excludeUnmatchedRecordsInSearch);
|
11768
|
+
const server = useTableServerLoading(props.loadPage, props.loadAll, props.pages, props.pageSize, props._experimentalDataLoader2);
|
11747
11769
|
// TODO: memoise
|
11748
11770
|
// convert jsx column components into valid table columns
|
11749
11771
|
const {
|
@@ -11794,7 +11816,7 @@ function useTableManager(props, meta, internalColumns) {
|
|
11794
11816
|
useTableFontSizeListener(instance);
|
11795
11817
|
useTableRowHeightListener(instance);
|
11796
11818
|
useTableRowSelectionListener(instance, props.onRowSelect);
|
11797
|
-
useTableSearchListener(instance
|
11819
|
+
useTableSearchListener(instance);
|
11798
11820
|
useTableServerLoadingListener(instance, server.loadPage);
|
11799
11821
|
useTableSettingsListener(instance, setSettings);
|
11800
11822
|
useTableShortcutsListener(instance, props.shortcuts);
|
@@ -12020,7 +12042,7 @@ function useTableGlobalShortcuts(table, tableRef, scrollToIndex) {
|
|
12020
12042
|
if (isElementInsideOverlay(trigger) && !isSiblingElementInsideSameParentOverlay(trigger, tableRef.current) || isElementInteractive(trigger) && !isElementInsideOrTriggeredFromContainer(trigger, tableRef.current)) {
|
12021
12043
|
return;
|
12022
12044
|
}
|
12023
|
-
tableMeta.rowActive.handleKeyDown(event,
|
12045
|
+
tableMeta.rowActive.handleKeyDown(event, tableMeta.length, scrollToIndex);
|
12024
12046
|
tableMeta.rowSelection.handleKeyDown(event, table);
|
12025
12047
|
if (tableMeta.rowActive.rowActiveIndex !== undefined) {
|
12026
12048
|
var _rows$tableMeta$rowAc;
|
@@ -12056,57 +12078,131 @@ const ROW_HEIGHT_ESTIMATES = {
|
|
12056
12078
|
'extra-tall': 57
|
12057
12079
|
};
|
12058
12080
|
|
12081
|
+
const RowContext = /*#__PURE__*/React__default.createContext({
|
12082
|
+
hideInternalColumns: false,
|
12083
|
+
hideRowActions: false,
|
12084
|
+
isHovered: false,
|
12085
|
+
rowIndex: -1
|
12086
|
+
});
|
12087
|
+
|
12088
|
+
const DELAY_BEFORE_LOAD_MS = 250;
|
12089
|
+
/* anonymous functions will break the memoisation on each render, wrap handlers in callbacks */
|
12090
|
+
function Row(props) {
|
12091
|
+
const {
|
12092
|
+
renderer: RowRenderer,
|
12093
|
+
cellRenderer: CellRenderer,
|
12094
|
+
hideInternalColumns = false,
|
12095
|
+
hideRowActions = false,
|
12096
|
+
scrollDirection,
|
12097
|
+
skipPageLoading = false,
|
12098
|
+
...displayRowProps
|
12099
|
+
} = props;
|
12100
|
+
const tableMeta = props.table.options.meta;
|
12101
|
+
const isHovered = tableMeta.rowActive.rowHoverIndex === props.index;
|
12102
|
+
// context - it must be here for cells to read it, since they render alongside the row inside DisplayRow
|
12103
|
+
const contextValue = React__default.useMemo(() => ({
|
12104
|
+
isHovered,
|
12105
|
+
rowIndex: props.index,
|
12106
|
+
hideInternalColumns,
|
12107
|
+
hideRowActions
|
12108
|
+
}), [isHovered, props.index, hideInternalColumns, hideRowActions]);
|
12109
|
+
React__default.useEffect(() => {
|
12110
|
+
let timeout;
|
12111
|
+
if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 && !skipPageLoading) {
|
12112
|
+
const pageIndex = Math.floor(props.index / tableMeta.server.pageSize) * tableMeta.server.pageSize / tableMeta.server.pageSize;
|
12113
|
+
const sorting = props.table.getState().sorting;
|
12114
|
+
const filters = props.table.getState().columnFilters;
|
12115
|
+
const search = props.table.getState().globalFilter;
|
12116
|
+
const hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);
|
12117
|
+
const pageIndexesToFetch = [];
|
12118
|
+
/*
|
12119
|
+
// if there's no direction, it means the scroll bar got dropped un unloaded pages,
|
12120
|
+
// in that case, load forward and backward pages to prevent skeletons
|
12121
|
+
if (scrollDirection === 'backward' || !scrollDirection) {
|
12122
|
+
const backIndex = pageIndex - 1;
|
12123
|
+
if (backIndex > -1) {
|
12124
|
+
pageIndexesToFetch.push(backIndex);
|
12125
|
+
}
|
12126
|
+
}
|
12127
|
+
*/
|
12128
|
+
// always load the next page
|
12129
|
+
if (scrollDirection === 'forward' || !scrollDirection) {
|
12130
|
+
pageIndexesToFetch.push(pageIndex + 1);
|
12131
|
+
}
|
12132
|
+
// the virtualiser fetches a page ahead, so this won't get called in most cases
|
12133
|
+
// but it provides a fallback for some edge cases
|
12134
|
+
timeout = setTimeout(() => {
|
12135
|
+
pageIndexesToFetch.forEach(index => {
|
12136
|
+
var _tableMeta$server$loa, _tableMeta$server;
|
12137
|
+
// this can be called by every row within the current page, but loadPage returns early if a pending request exists
|
12138
|
+
(_tableMeta$server$loa = (_tableMeta$server = tableMeta.server).loadPage) === null || _tableMeta$server$loa === void 0 ? void 0 : _tableMeta$server$loa.call(_tableMeta$server, index, sorting, filters, tableMeta.search.enableGlobalFilter ? search : undefined, hiddenColumns);
|
12139
|
+
});
|
12140
|
+
}, DELAY_BEFORE_LOAD_MS);
|
12141
|
+
}
|
12142
|
+
return () => {
|
12143
|
+
clearTimeout(timeout);
|
12144
|
+
};
|
12145
|
+
}, [tableMeta.server.pages]);
|
12146
|
+
return /*#__PURE__*/React__default.createElement(RowContext.Provider, {
|
12147
|
+
value: contextValue
|
12148
|
+
}, /*#__PURE__*/React__default.createElement(RowRenderer, Object.assign({}, displayRowProps, {
|
12149
|
+
cellRenderer: CellRenderer
|
12150
|
+
})));
|
12151
|
+
}
|
12152
|
+
|
12153
|
+
const DELAY_BEFORE_LOAD_MS$1 = 150;
|
12059
12154
|
function SkeletonRow(props) {
|
12060
12155
|
const {
|
12061
12156
|
index,
|
12062
|
-
row,
|
12063
12157
|
table
|
12064
12158
|
} = props;
|
12065
12159
|
const tableMeta = table.options.meta;
|
12066
12160
|
if (tableMeta.server.isEnabled) {
|
12067
|
-
return /*#__PURE__*/React__default.createElement(RowWithServerLoading, Object.assign({}, props
|
12068
|
-
index: index
|
12069
|
-
}));
|
12161
|
+
return /*#__PURE__*/React__default.createElement(RowWithServerLoading, Object.assign({}, props));
|
12070
12162
|
}
|
12071
12163
|
return /*#__PURE__*/React__default.createElement(Skeleton, {
|
12072
|
-
cellsCount:
|
12164
|
+
cellsCount: table.getVisibleFlatColumns().length,
|
12165
|
+
index: index
|
12073
12166
|
});
|
12074
12167
|
}
|
12075
12168
|
function RowWithServerLoading(props) {
|
12076
12169
|
var _table$getState$group, _table$getState;
|
12077
12170
|
const {
|
12078
12171
|
index,
|
12079
|
-
row,
|
12080
12172
|
table
|
12081
12173
|
} = props;
|
12082
12174
|
const tableMeta = table.options.meta;
|
12083
12175
|
const pageIndex = Math.floor(index / tableMeta.server.pageSize) * tableMeta.server.pageSize / tableMeta.server.pageSize;
|
12084
|
-
const {
|
12085
|
-
ref,
|
12086
|
-
inView
|
12087
|
-
} = reactIntersectionObserver.useInView({
|
12088
|
-
threshold: 0,
|
12089
|
-
triggerOnce: true,
|
12090
|
-
initialInView: pageIndex === 0
|
12091
|
-
});
|
12092
12176
|
React__default.useEffect(() => {
|
12093
|
-
|
12094
|
-
|
12095
|
-
|
12177
|
+
let timeout;
|
12178
|
+
if (tableMeta.server.isEnabled) {
|
12179
|
+
const sorting = props.table.getState().sorting;
|
12180
|
+
const filters = props.table.getState().columnFilters;
|
12181
|
+
const search = props.table.getState().globalFilter;
|
12182
|
+
const hiddenColumns = getHiddenColumns(props.table.getState().columnVisibility);
|
12183
|
+
timeout = setTimeout(() => {
|
12184
|
+
var _tableMeta$server$loa, _tableMeta$server;
|
12185
|
+
(_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);
|
12186
|
+
}, DELAY_BEFORE_LOAD_MS$1);
|
12096
12187
|
}
|
12097
|
-
|
12188
|
+
return () => {
|
12189
|
+
clearTimeout(timeout);
|
12190
|
+
};
|
12191
|
+
}, []);
|
12098
12192
|
const groupedCellCount = (_table$getState$group = (_table$getState = table.getState()) === null || _table$getState === void 0 ? void 0 : _table$getState.grouping.length) !== null && _table$getState$group !== void 0 ? _table$getState$group : 0;
|
12099
|
-
const ungroupedCellCount =
|
12193
|
+
const ungroupedCellCount = table.getVisibleFlatColumns().length - groupedCellCount;
|
12100
12194
|
return /*#__PURE__*/React__default.createElement(Skeleton, {
|
12101
12195
|
cellsCount: ungroupedCellCount,
|
12102
|
-
|
12196
|
+
index: index
|
12103
12197
|
});
|
12104
12198
|
}
|
12105
12199
|
const Skeleton = /*#__PURE__*/React__default.forwardRef(function Skeleton(props, ref) {
|
12106
12200
|
const {
|
12107
|
-
cellsCount
|
12201
|
+
cellsCount,
|
12202
|
+
index
|
12108
12203
|
} = props;
|
12109
12204
|
return /*#__PURE__*/React__default.createElement("tr", {
|
12205
|
+
"data-row-index": index,
|
12110
12206
|
ref: ref
|
12111
12207
|
}, Array(cellsCount).fill(null).map((_, index) => (/*#__PURE__*/React__default.createElement("td", {
|
12112
12208
|
key: index
|
@@ -12115,41 +12211,6 @@ const Skeleton = /*#__PURE__*/React__default.forwardRef(function Skeleton(props,
|
|
12115
12211
|
})))));
|
12116
12212
|
});
|
12117
12213
|
|
12118
|
-
const RowContext = /*#__PURE__*/React__default.createContext({
|
12119
|
-
hideInternalColumns: false,
|
12120
|
-
hideRowActions: false,
|
12121
|
-
isHovered: false,
|
12122
|
-
rowIndex: -1
|
12123
|
-
});
|
12124
|
-
|
12125
|
-
/* anonymous functions will break the memoisation on each render, wrap handlers in callbacks */
|
12126
|
-
function Row(props) {
|
12127
|
-
const {
|
12128
|
-
renderer: RowRenderer,
|
12129
|
-
cellRenderer: CellRenderer,
|
12130
|
-
hideInternalColumns = false,
|
12131
|
-
hideRowActions = false,
|
12132
|
-
...displayRowProps
|
12133
|
-
} = props;
|
12134
|
-
const tableMeta = props.table.options.meta;
|
12135
|
-
const isHovered = tableMeta.rowActive.rowHoverIndex === props.index;
|
12136
|
-
// context - it must be here for cells to read it, since they render alongside the row inside DisplayRow
|
12137
|
-
const contextValue = React__default.useMemo(() => ({
|
12138
|
-
isHovered,
|
12139
|
-
rowIndex: props.index,
|
12140
|
-
hideInternalColumns,
|
12141
|
-
hideRowActions
|
12142
|
-
}), [isHovered, props.index, hideInternalColumns, hideRowActions]);
|
12143
|
-
if (props.row.original === undefined) {
|
12144
|
-
return /*#__PURE__*/React__default.createElement(SkeletonRow, Object.assign({}, props));
|
12145
|
-
}
|
12146
|
-
return /*#__PURE__*/React__default.createElement(RowContext.Provider, {
|
12147
|
-
value: contextValue
|
12148
|
-
}, /*#__PURE__*/React__default.createElement(RowRenderer, Object.assign({}, displayRowProps, {
|
12149
|
-
cellRenderer: CellRenderer
|
12150
|
-
})));
|
12151
|
-
}
|
12152
|
-
|
12153
12214
|
// scroll padding end is designed to always show half of the next row
|
12154
12215
|
function getScrollPaddingEndOffset(table) {
|
12155
12216
|
const tableMeta = table.options.meta;
|
@@ -12174,7 +12235,7 @@ function getPaddingEndOffset(table, options) {
|
|
12174
12235
|
const bottomRows = (_table$getBottomRows = table.getBottomRows()) !== null && _table$getBottomRows !== void 0 ? _table$getBottomRows : [];
|
12175
12236
|
return ROW_HEIGHT_ESTIMATES.medium * ((_options$virtualiserP = options === null || options === void 0 ? void 0 : options.virtualiserPaddingEndOffset) !== null && _options$virtualiserP !== void 0 ? _options$virtualiserP : 1) * bottomRows.length;
|
12176
12237
|
}
|
12177
|
-
function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex, options) {
|
12238
|
+
function useTableRenderer(renderers, table, tableRef, length, defaultRowActiveIndex, options) {
|
12178
12239
|
var _table$getState$group, _table$getCenterRows, _virtualItems$padding, _virtualItems$padding2, _virtualItems$padding3, _ref, _virtualItems;
|
12179
12240
|
const tableMeta = table.options.meta;
|
12180
12241
|
const isTableRowGrouped = !!((_table$getState$group = table.getState().grouping) !== null && _table$getState$group !== void 0 && _table$getState$group.length);
|
@@ -12188,11 +12249,12 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex, opt
|
|
12188
12249
|
const rangeExtractor = useRowGroupVirtualisation(table);
|
12189
12250
|
// account for thead and tfoot in the scroll area - both are always medium row height
|
12190
12251
|
const scrollPaddingStart = ROW_HEIGHT_ESTIMATES.medium;
|
12252
|
+
const count = tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2 ? length : rows.length;
|
12191
12253
|
const virtualiser = reactVirtual.useVirtualizer({
|
12192
|
-
count
|
12254
|
+
count,
|
12193
12255
|
estimateSize,
|
12194
12256
|
getScrollElement: () => tableRef.current,
|
12195
|
-
overscan: tableMeta.printing.isPrinting ?
|
12257
|
+
overscan: tableMeta.printing.isPrinting ? count : undefined,
|
12196
12258
|
rangeExtractor,
|
12197
12259
|
// correctly sets the scroll padding offset, e.g. when keyboard navigating rows in the list
|
12198
12260
|
scrollPaddingStart,
|
@@ -12212,16 +12274,16 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex, opt
|
|
12212
12274
|
if (tableRef.current) {
|
12213
12275
|
if (index === 0) {
|
12214
12276
|
virtualiser.scrollToOffset(0, notSmooth);
|
12215
|
-
} else if (index ===
|
12277
|
+
} else if (index === count - 1) {
|
12216
12278
|
// sometimes the last row doesn't fully show, so we just force scroll to the bottom
|
12217
12279
|
tableRef.current.scrollTop = tableRef.current.scrollHeight;
|
12218
12280
|
} else {
|
12219
12281
|
virtualiser.scrollToIndex(index, options);
|
12220
12282
|
}
|
12221
12283
|
}
|
12222
|
-
}, [virtualItems.length, tableRef.current, totalSize,
|
12284
|
+
}, [virtualItems.length, tableRef.current, totalSize, count]);
|
12223
12285
|
// use row 1 not 0, because 0 might be sticky in grouped tables and it's start value will always be 0
|
12224
|
-
const paddingStartIndex = isTableRowGrouped &&
|
12286
|
+
const paddingStartIndex = isTableRowGrouped && count > 1 ? 1 : 0;
|
12225
12287
|
const startValue = isTableRowGrouped ? ((_virtualItems$padding = virtualItems[paddingStartIndex]) === null || _virtualItems$padding === void 0 ? void 0 : _virtualItems$padding.start) - ((_virtualItems$padding2 = virtualItems[paddingStartIndex]) === null || _virtualItems$padding2 === void 0 ? void 0 : _virtualItems$padding2.size) : (_virtualItems$padding3 = virtualItems[paddingStartIndex]) === null || _virtualItems$padding3 === void 0 ? void 0 : _virtualItems$padding3.start;
|
12226
12288
|
// styling for offsetting rows - this "is" the virtualisation
|
12227
12289
|
const [paddingTop, paddingBottom] = virtualItems.length > 0 ? [Math.max(0, startValue !== null && startValue !== void 0 ? startValue : 0), Math.max(0, (_ref = totalSize - ((_virtualItems = virtualItems[virtualItems.length - 1]) === null || _virtualItems === void 0 ? void 0 : _virtualItems.end)) !== null && _ref !== void 0 ? _ref : 0)] : [0, 0];
|
@@ -12238,7 +12300,7 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex, opt
|
|
12238
12300
|
let style = {};
|
12239
12301
|
let content = null;
|
12240
12302
|
// bottom rows aren't virtualised (they're sticky) but we need to set the height
|
12241
|
-
if (
|
12303
|
+
if (count || table.getBottomRows().length) {
|
12242
12304
|
style = {
|
12243
12305
|
height: totalSize,
|
12244
12306
|
paddingBottom,
|
@@ -12246,18 +12308,43 @@ function useTableRenderer(renderers, table, tableRef, defaultRowActiveIndex, opt
|
|
12246
12308
|
};
|
12247
12309
|
}
|
12248
12310
|
// only render non sticky rows
|
12249
|
-
if (
|
12311
|
+
if (count) {
|
12250
12312
|
content = virtualItems.map(virtualRow => {
|
12313
|
+
var _row, _virtualiser$scrollDi2;
|
12251
12314
|
// there appears to be a react-virtual bug where it inserts a single `undefined` item at the end of the row, which crashes here
|
12252
12315
|
if (!virtualRow) {
|
12253
12316
|
return null;
|
12254
12317
|
}
|
12255
|
-
|
12318
|
+
let row;
|
12319
|
+
if (tableMeta.server.isEnabled && tableMeta.server._experimentalDataLoader2) {
|
12320
|
+
var _tableMeta$server$pag, _tableMeta$server$pag2;
|
12321
|
+
const currentPageIndex = Math.floor(virtualRow.index / tableMeta.server.pageSize) * tableMeta.server.pageSize / tableMeta.server.pageSize;
|
12322
|
+
const pagePosition = (_tableMeta$server$pag = (_tableMeta$server$pag2 = tableMeta.server.pages) === null || _tableMeta$server$pag2 === void 0 ? void 0 : _tableMeta$server$pag2.indexOf(currentPageIndex)) !== null && _tableMeta$server$pag !== void 0 ? _tableMeta$server$pag : -1;
|
12323
|
+
if (pagePosition > -1) {
|
12324
|
+
// "flatten" row indexes down into the dataloader2 dataset size
|
12325
|
+
// for example, with a page size of 100...
|
12326
|
+
// row index 14267 is actually one of index 67, 167, 267 etc within the dataset (depending on number of pages stored)
|
12327
|
+
const fakeIndex = pagePosition * tableMeta.server.pageSize + virtualRow.index % tableMeta.server.pageSize;
|
12328
|
+
row = rows[fakeIndex];
|
12329
|
+
}
|
12330
|
+
} else {
|
12331
|
+
row = rows[virtualRow.index];
|
12332
|
+
}
|
12333
|
+
if (!((_row = row) !== null && _row !== void 0 && _row.original)) {
|
12334
|
+
var _virtualiser$scrollDi;
|
12335
|
+
return /*#__PURE__*/React__default.createElement(SkeletonRow, {
|
12336
|
+
key: virtualRow.index,
|
12337
|
+
index: virtualRow.index,
|
12338
|
+
scrollDirection: (_virtualiser$scrollDi = virtualiser.scrollDirection) !== null && _virtualiser$scrollDi !== void 0 ? _virtualiser$scrollDi : undefined,
|
12339
|
+
table: table
|
12340
|
+
});
|
12341
|
+
}
|
12256
12342
|
const measureRow = createRowMeasurer(virtualiser.resizeItem, virtualRow);
|
12257
12343
|
return /*#__PURE__*/React__default.createElement(Row, {
|
12258
12344
|
key: row.id,
|
12259
12345
|
row: row,
|
12260
12346
|
index: virtualRow.index,
|
12347
|
+
scrollDirection: (_virtualiser$scrollDi2 = virtualiser.scrollDirection) !== null && _virtualiser$scrollDi2 !== void 0 ? _virtualiser$scrollDi2 : undefined,
|
12261
12348
|
table: table,
|
12262
12349
|
measureRow: measureRow,
|
12263
12350
|
renderer: renderers.row,
|
@@ -12479,6 +12566,10 @@ function Header$3(context) {
|
|
12479
12566
|
const {
|
12480
12567
|
table
|
12481
12568
|
} = context;
|
12569
|
+
const tableMeta = table.options.meta;
|
12570
|
+
if (!tableMeta.rowExpansion.canExpandAll) {
|
12571
|
+
return null;
|
12572
|
+
}
|
12482
12573
|
const isSomeRowsExpanded = table.getIsSomeRowsExpanded();
|
12483
12574
|
const handleClick = event => {
|
12484
12575
|
event.stopPropagation();
|
@@ -12560,8 +12651,9 @@ function Header$4(context) {
|
|
12560
12651
|
}
|
12561
12652
|
const _temp = function () {
|
12562
12653
|
if (tableMeta.server.loadAllIfNeeded) {
|
12654
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
12563
12655
|
// don't pass the search query because we need all data - not filtered data
|
12564
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters)).then(function () {});
|
12656
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
|
12565
12657
|
}
|
12566
12658
|
}();
|
12567
12659
|
// load all data if that is possible
|
@@ -12620,6 +12712,7 @@ function Cell$3(context) {
|
|
12620
12712
|
if (event.shiftKey) {
|
12621
12713
|
var _tableMeta$rowSelecti;
|
12622
12714
|
function _temp4() {
|
12715
|
+
const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);
|
12623
12716
|
table.setRowSelection(currentRowSelection => ({
|
12624
12717
|
...currentRowSelection,
|
12625
12718
|
...selectedRows.filter(row => row.getCanSelect()).reduce((state, row) => ({
|
@@ -12629,11 +12722,11 @@ function Cell$3(context) {
|
|
12629
12722
|
}));
|
12630
12723
|
}
|
12631
12724
|
const [fromIndex, toIndex] = toggleBetween((_tableMeta$rowSelecti = tableMeta.rowSelection.lastSelectedRowIndex.current) !== null && _tableMeta$rowSelecti !== void 0 ? _tableMeta$rowSelecti : 0, rowIndex);
|
12632
|
-
const selectedRows = table.getRowModel().rows.slice(fromIndex, toIndex + 1);
|
12633
12725
|
const _temp3 = function () {
|
12634
|
-
if (tableMeta.server.loadAllIfNeeded
|
12726
|
+
if (tableMeta.server.loadAllIfNeeded) {
|
12727
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
12635
12728
|
// don't pass the search query because we need all data - not filtered data
|
12636
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters)).then(function () {});
|
12729
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
|
12637
12730
|
}
|
12638
12731
|
}();
|
12639
12732
|
return _temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3);
|
@@ -12691,7 +12784,7 @@ function useTable(props, externalRef, renderers, meta, options) {
|
|
12691
12784
|
// configure the table
|
12692
12785
|
const manager = useTableManager(props, meta, INTERNAL_RENDERERS);
|
12693
12786
|
// configure the virtualised renderer
|
12694
|
-
const renderer = useTableRenderer(renderers, manager.instance, ref, props.defaultRowActiveIndex, options);
|
12787
|
+
const renderer = useTableRenderer(renderers, manager.instance, ref, manager.meta.length, props.defaultRowActiveIndex, options);
|
12695
12788
|
// configure dynamic styling
|
12696
12789
|
const {
|
12697
12790
|
style,
|
@@ -13759,21 +13852,23 @@ function Summary(props) {
|
|
13759
13852
|
locale,
|
13760
13853
|
texts
|
13761
13854
|
} = useLocalization();
|
13762
|
-
const
|
13855
|
+
const tableMeta = table.options.meta;
|
13856
|
+
const length = tableMeta.length;
|
13763
13857
|
const currentLength = table.getRowModel().rows.length;
|
13764
13858
|
let label;
|
13765
13859
|
let count;
|
13766
13860
|
// row selection
|
13767
|
-
|
13861
|
+
// use table state and not the selected row model because of the way server loading works
|
13862
|
+
const rowsSelectedLength = Object.keys(table.getState().rowSelection).length;
|
13768
13863
|
if (rowsSelectedLength > 0) {
|
13769
13864
|
label = texts.table.footer.summary.selected;
|
13770
13865
|
count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(rowsSelectedLength)), "\u00A0", texts.table.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
|
13771
|
-
} else if ((_table$getState$colum = table.getState().columnFilters) !== null && _table$getState$colum !== void 0 && _table$getState$colum.length ||
|
13866
|
+
} else if (!tableMeta.server.isEnabled && ((_table$getState$colum = table.getState().columnFilters) !== null && _table$getState$colum !== void 0 && _table$getState$colum.length ||
|
13772
13867
|
// filtered data
|
13773
|
-
!!table.getState().globalFilter && table.options.enableGlobalFilter // search with hide enabled
|
13868
|
+
!!table.getState().globalFilter && table.options.enableGlobalFilter) // search with hide enabled
|
13774
13869
|
) {
|
13775
13870
|
label = texts.table.footer.summary.records;
|
13776
|
-
count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, currentLength), "\u00A0", texts.table.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
|
13871
|
+
count = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(currentLength)), "\u00A0", texts.table.footer.summary.count, "\u00A0", /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length)));
|
13777
13872
|
} else {
|
13778
13873
|
label = texts.table.footer.summary.records;
|
13779
13874
|
count = /*#__PURE__*/React__default.createElement("strong", null, new Intl.NumberFormat(locale).format(length));
|
@@ -13785,8 +13880,13 @@ function Summary(props) {
|
|
13785
13880
|
}
|
13786
13881
|
|
13787
13882
|
function Foot(props) {
|
13788
|
-
const
|
13789
|
-
|
13883
|
+
const {
|
13884
|
+
children,
|
13885
|
+
table,
|
13886
|
+
...attributes
|
13887
|
+
} = props;
|
13888
|
+
const nonGroupedHeaders = table.getFooterGroups()[0].headers.filter(header => !header.column.getIsGrouped());
|
13889
|
+
return /*#__PURE__*/React__default.createElement("tfoot", Object.assign({}, attributes), children, /*#__PURE__*/React__default.createElement("tr", null, nonGroupedHeaders.map((header, index) => (/*#__PURE__*/React__default.createElement(Footer$3, {
|
13790
13890
|
key: header.id,
|
13791
13891
|
header: header,
|
13792
13892
|
index: index
|
@@ -13868,6 +13968,7 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
13868
13968
|
onClickFindPrevious: handleClickFindPrevious,
|
13869
13969
|
settingsContent,
|
13870
13970
|
shortcut,
|
13971
|
+
showTotal = true,
|
13871
13972
|
value,
|
13872
13973
|
...attributes
|
13873
13974
|
} = props;
|
@@ -13946,10 +14047,12 @@ const SearchInput2 = /*#__PURE__*/React__default.forwardRef(function SearchInput
|
|
13946
14047
|
}
|
13947
14048
|
if (hasFind && isActive) {
|
13948
14049
|
postfix = /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("span", {
|
13949
|
-
className: "text-grey-700 flex h-4 items-center
|
13950
|
-
}, loading ? /*#__PURE__*/React__default.createElement(Spinner, {
|
14050
|
+
className: "text-grey-700 flex h-4 items-center"
|
14051
|
+
}, loading ? (/*#__PURE__*/React__default.createElement(Spinner, {
|
13951
14052
|
className: "h-4 w-4"
|
13952
|
-
}) :
|
14053
|
+
})) : showTotal ? (/*#__PURE__*/React__default.createElement("span", {
|
14054
|
+
className: "border-r border-black/[0.25] pr-2"
|
14055
|
+
}, `${findCurrent !== null && findCurrent !== void 0 ? findCurrent : 0}/${findTotal !== null && findTotal !== void 0 ? findTotal : 0}`)) : null), findCurrent ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(IconButton, {
|
13953
14056
|
"aria-label": texts.searchInput.findPrevious,
|
13954
14057
|
className: "scale-75 !bg-transparent hover:!bg-black/[0.08] [&>svg]:scale-125",
|
13955
14058
|
icon: "chevron-up",
|
@@ -14053,6 +14156,7 @@ function Search$1(props) {
|
|
14053
14156
|
const scrollTo = rowIndex => scrollToIndex(rowIndex, {
|
14054
14157
|
align: 'center'
|
14055
14158
|
});
|
14159
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
14056
14160
|
React__default.useEffect(() => {
|
14057
14161
|
if (tableMeta.search.highlightedColumnIndexes.length) {
|
14058
14162
|
scrollTo(tableMeta.search.highlightedColumnIndexes[0][0]);
|
@@ -14061,9 +14165,11 @@ function Search$1(props) {
|
|
14061
14165
|
const handleFocus = function () {
|
14062
14166
|
try {
|
14063
14167
|
const _temp = function () {
|
14064
|
-
if (tableMeta.server.loadAllIfNeeded) {
|
14168
|
+
if (tableMeta.server.loadAllIfNeeded && !tableMeta.server._experimentalDataLoader2) {
|
14065
14169
|
// don't pass the search query because we need all data - not filtered data
|
14066
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters
|
14170
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters,
|
14171
|
+
// the old data loader doesn't have server side search
|
14172
|
+
undefined, hiddenColumns)).then(function () {});
|
14067
14173
|
}
|
14068
14174
|
}();
|
14069
14175
|
// load all data if that is possible
|
@@ -14072,8 +14178,20 @@ function Search$1(props) {
|
|
14072
14178
|
return Promise.reject(e);
|
14073
14179
|
}
|
14074
14180
|
};
|
14181
|
+
const [loading, setLoading] = React__default.useState(false);
|
14182
|
+
const searchTimeoutRef = React__default.useRef();
|
14075
14183
|
const handleChange = query => {
|
14076
14184
|
table.setGlobalFilter(String(query !== null && query !== void 0 ? query : ''));
|
14185
|
+
if (tableMeta.search.enableGlobalFilter && tableMeta.search.handleSearch) {
|
14186
|
+
clearTimeout(searchTimeoutRef.current);
|
14187
|
+
searchTimeoutRef.current = setTimeout(() => {
|
14188
|
+
var _tableMeta$search$han, _tableMeta$search;
|
14189
|
+
setLoading(true);
|
14190
|
+
(_tableMeta$search$han = (_tableMeta$search = tableMeta.search).handleSearch) === null || _tableMeta$search$han === void 0 ? void 0 : _tableMeta$search$han.call(_tableMeta$search, query, hiddenColumns).then(() => {
|
14191
|
+
setLoading(false);
|
14192
|
+
});
|
14193
|
+
}, 150);
|
14194
|
+
}
|
14077
14195
|
};
|
14078
14196
|
const handleToggleExcludeUnmatchedResults = enabled => {
|
14079
14197
|
tableMeta.search.setEnableGlobalFilter(enabled, table);
|
@@ -14081,6 +14199,12 @@ function Search$1(props) {
|
|
14081
14199
|
var _ref$current;
|
14082
14200
|
return (_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : _ref$current.focus();
|
14083
14201
|
});
|
14202
|
+
if (tableMeta.search.handleSearch) {
|
14203
|
+
setLoading(true);
|
14204
|
+
tableMeta.search.handleSearch(enabled ? query : undefined, hiddenColumns).then(() => {
|
14205
|
+
setLoading(false);
|
14206
|
+
});
|
14207
|
+
}
|
14084
14208
|
};
|
14085
14209
|
const handleNextResult = () => {
|
14086
14210
|
if (!tableMeta.search.highlightedColumnIndexes.length) {
|
@@ -14124,7 +14248,7 @@ function Search$1(props) {
|
|
14124
14248
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(SearchInput2, {
|
14125
14249
|
findCurrent: tableMeta.search.currentHighlightColumnIndex !== undefined ? tableMeta.search.currentHighlightColumnIndex + 1 : null,
|
14126
14250
|
findTotal: (_tableMeta$search$hig = (_tableMeta$search$hig2 = tableMeta.search.highlightedColumnIndexes) === null || _tableMeta$search$hig2 === void 0 ? void 0 : _tableMeta$search$hig2.length) !== null && _tableMeta$search$hig !== void 0 ? _tableMeta$search$hig : null,
|
14127
|
-
loading: tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
|
14251
|
+
loading: tableMeta.server._experimentalDataLoader2 ? loading : tableMeta.server.loadAllStatus === exports.TableServerLoadAllState.Loading,
|
14128
14252
|
name: "table-search",
|
14129
14253
|
onClickFindPrevious: handlePreviousResult,
|
14130
14254
|
onClickFindNext: handleNextResult,
|
@@ -14139,6 +14263,7 @@ function Search$1(props) {
|
|
14139
14263
|
meta: true,
|
14140
14264
|
shift: false
|
14141
14265
|
},
|
14266
|
+
showTotal: !tableMeta.server._experimentalDataLoader2,
|
14142
14267
|
value: query
|
14143
14268
|
}));
|
14144
14269
|
}
|
@@ -16184,8 +16309,9 @@ function Print$1(props) {
|
|
16184
16309
|
const toastRef = toast.loading(texts.table.print.loading);
|
16185
16310
|
const _temp2 = function () {
|
16186
16311
|
if (tableMeta.server.isEnabled && tableMeta.server.loadAllIfNeeded) {
|
16312
|
+
const hiddenColumns = getHiddenColumns(table.getState().columnVisibility);
|
16187
16313
|
const _temp = _catch(function () {
|
16188
|
-
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters)).then(function () {});
|
16314
|
+
return Promise.resolve(tableMeta.server.loadAllIfNeeded(table.getState().sorting, table.getState().columnFilters, tableMeta.search.enableGlobalFilter ? table.getState().globalFilter : undefined, hiddenColumns)).then(function () {});
|
16189
16315
|
}, function (error) {
|
16190
16316
|
const errorMessage = `${texts.table.print.error}: ${error}`;
|
16191
16317
|
console.error(errorMessage);
|
@@ -16859,6 +16985,7 @@ function TableGrid(props) {
|
|
16859
16985
|
var _table$state$grouping;
|
16860
16986
|
const {
|
16861
16987
|
enableHorizontalArrowKeyNavigation,
|
16988
|
+
footerRows,
|
16862
16989
|
table,
|
16863
16990
|
...attributes
|
16864
16991
|
} = props;
|
@@ -16901,7 +17028,7 @@ function TableGrid(props) {
|
|
16901
17028
|
} : table.renderer.style
|
16902
17029
|
}, table.renderer.rows, props.children), table.meta.footer.isEnabled ? /*#__PURE__*/React__default.createElement(Foot, {
|
16903
17030
|
table: table.instance
|
16904
|
-
}) : null)))));
|
17031
|
+
}, footerRows) : null)))));
|
16905
17032
|
}
|
16906
17033
|
|
16907
17034
|
function Column$1(_) {
|
@@ -18493,6 +18620,14 @@ const shortcut = {
|
|
18493
18620
|
meta: true,
|
18494
18621
|
shift: false
|
18495
18622
|
};
|
18623
|
+
function isTableScrolled(ref) {
|
18624
|
+
if (ref.current) {
|
18625
|
+
var _ref$current, _ref$current$querySel, _ref$current2, _ref$current2$querySe;
|
18626
|
+
const height = parseFloat(((_ref$current = ref.current) === null || _ref$current === void 0 ? void 0 : (_ref$current$querySel = _ref$current.querySelector('tbody')) === null || _ref$current$querySel === void 0 ? void 0 : _ref$current$querySel.style.height) || '0') + parseFloat(((_ref$current2 = ref.current) === null || _ref$current2 === void 0 ? void 0 : (_ref$current2$querySe = _ref$current2.querySelector('tbody')) === null || _ref$current2$querySe === void 0 ? void 0 : _ref$current2$querySe.style.paddingBottom) || '0');
|
18627
|
+
return height > ref.current.scrollHeight;
|
18628
|
+
}
|
18629
|
+
return false;
|
18630
|
+
}
|
18496
18631
|
|
18497
18632
|
function useTableEditingListener(table, tableRef, scrollToIndex) {
|
18498
18633
|
const tableMeta = table.options.meta;
|
@@ -18543,18 +18678,21 @@ function useTableEditingListener(table, tableRef, scrollToIndex) {
|
|
18543
18678
|
document.addEventListener('click', onClickOutside);
|
18544
18679
|
return () => document.removeEventListener('click', onClickOutside);
|
18545
18680
|
}, [tableMeta.editing.isEditing, tableMeta.editing.saveChanges]);
|
18546
|
-
|
18547
|
-
|
18548
|
-
|
18549
|
-
|
18550
|
-
|
18551
|
-
|
18552
|
-
|
18553
|
-
|
18554
|
-
|
18555
|
-
|
18556
|
-
|
18557
|
-
|
18681
|
+
/*
|
18682
|
+
const rows = table.getRowModel().rows;
|
18683
|
+
// make sure pending changes are removed for rows that no longer exist
|
18684
|
+
useLazyEffect(() => {
|
18685
|
+
const pendingChanges = tableMeta.editing.getErrorsShownInAlert();
|
18686
|
+
pendingChanges.forEach(pendingChange => {
|
18687
|
+
try {
|
18688
|
+
table.getRow(pendingChange.rowId);
|
18689
|
+
} catch {
|
18690
|
+
// TODO: this has the potential to remove changes for "unloaded" rows in server loading
|
18691
|
+
//tableMeta.editing.discardChanges(pendingChange.rowId, table);
|
18692
|
+
}
|
18693
|
+
});
|
18694
|
+
}, [rows.length]);
|
18695
|
+
*/
|
18558
18696
|
// shortcuts
|
18559
18697
|
useGlobalKeyDown(tableMeta.editing.isEnabled ? shortcut : undefined, event => {
|
18560
18698
|
event.preventDefault();
|
@@ -18582,6 +18720,7 @@ function reducer$2(state, action) {
|
|
18582
18720
|
{
|
18583
18721
|
const {
|
18584
18722
|
columnId,
|
18723
|
+
index,
|
18585
18724
|
row,
|
18586
18725
|
value
|
18587
18726
|
} = payload;
|
@@ -18591,7 +18730,8 @@ function reducer$2(state, action) {
|
|
18591
18730
|
...state.changes,
|
18592
18731
|
rows: setWith(state.changes.rows, `${rowId}.${columnId}`, value, Object),
|
18593
18732
|
originals: setWith(state.changes.originals, rowId, row, Object)
|
18594
|
-
}
|
18733
|
+
},
|
18734
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
18595
18735
|
};
|
18596
18736
|
}
|
18597
18737
|
case 'removeCellValue':
|
@@ -18625,6 +18765,7 @@ function reducer$2(state, action) {
|
|
18625
18765
|
{
|
18626
18766
|
const {
|
18627
18767
|
cellErrors,
|
18768
|
+
index,
|
18628
18769
|
moveReasons,
|
18629
18770
|
original,
|
18630
18771
|
value
|
@@ -18639,7 +18780,8 @@ function reducer$2(state, action) {
|
|
18639
18780
|
moveReasons: setWith(state.changes.moveReasons, rowId, moveReasons !== null && moveReasons !== void 0 ? moveReasons : state.changes.moveReasons[rowId], Object),
|
18640
18781
|
// status can be undefined, so don't use ??
|
18641
18782
|
status: setWith(state.changes.status, rowId, undefined, Object)
|
18642
|
-
}
|
18783
|
+
},
|
18784
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
18643
18785
|
};
|
18644
18786
|
}
|
18645
18787
|
case 'removeRow':
|
@@ -18657,6 +18799,7 @@ function reducer$2(state, action) {
|
|
18657
18799
|
originals: omit(state.changes.originals, rowId),
|
18658
18800
|
status: omit(state.changes.status, rowId)
|
18659
18801
|
},
|
18802
|
+
indexes: omit(state.indexes, rowId),
|
18660
18803
|
temporaryRows: state.temporaryRows.filter(row => row[rowIdentityAccessor] !== rowId)
|
18661
18804
|
};
|
18662
18805
|
}
|
@@ -18689,6 +18832,7 @@ function reducer$2(state, action) {
|
|
18689
18832
|
case 'insertTemporaryRow':
|
18690
18833
|
{
|
18691
18834
|
const {
|
18835
|
+
index,
|
18692
18836
|
value
|
18693
18837
|
} = payload;
|
18694
18838
|
return {
|
@@ -18698,7 +18842,8 @@ function reducer$2(state, action) {
|
|
18698
18842
|
...state.changes,
|
18699
18843
|
rows: setWith(state.changes.rows, rowId, value, Object),
|
18700
18844
|
originals: setWith(state.changes.originals, rowId, value, Object)
|
18701
|
-
}
|
18845
|
+
},
|
18846
|
+
indexes: setWith(state.indexes, rowId, index, Object)
|
18702
18847
|
};
|
18703
18848
|
}
|
18704
18849
|
default:
|
@@ -18718,10 +18863,10 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18718
18863
|
[rowId]: state.changes.rows[rowId]
|
18719
18864
|
} : state.changes.rows;
|
18720
18865
|
let completed = true;
|
18721
|
-
const
|
18866
|
+
const _temp7 = _forOf(Object.keys(changes), function (rowId) {
|
18722
18867
|
const status = getRowStatus(rowId);
|
18723
18868
|
return _catch(function () {
|
18724
|
-
function
|
18869
|
+
function _temp6(_result) {
|
18725
18870
|
return _exit ? _result : Promise.resolve(handleSave(changeSet)).then(function () {
|
18726
18871
|
// cleanup changes, we don't need them after saving
|
18727
18872
|
discardChanges(rowId, table);
|
@@ -18746,7 +18891,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18746
18891
|
delete changeSet[rowIdentityAccessor];
|
18747
18892
|
}
|
18748
18893
|
// re-run validation, maybe a cell is already invalid but has never been blurred
|
18749
|
-
const
|
18894
|
+
const _temp5 = function () {
|
18750
18895
|
if (validator) {
|
18751
18896
|
return Promise.resolve(validator(changeSet)).then(function (errors) {
|
18752
18897
|
if (errors && Object.keys(errors).length) {
|
@@ -18755,7 +18900,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18755
18900
|
});
|
18756
18901
|
}
|
18757
18902
|
}();
|
18758
|
-
return
|
18903
|
+
return _temp5 && _temp5.then ? _temp5.then(_temp6) : _temp6(_temp5); // send new data to the server
|
18759
18904
|
}, function (error) {
|
18760
18905
|
var _error$response;
|
18761
18906
|
if (error instanceof ReferenceError || error instanceof TypeError || (error === null || error === void 0 ? void 0 : (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) >= 500) {
|
@@ -18795,18 +18940,18 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18795
18940
|
}, function () {
|
18796
18941
|
return _exit;
|
18797
18942
|
});
|
18798
|
-
return Promise.resolve(
|
18943
|
+
return Promise.resolve(_temp7 && _temp7.then ? _temp7.then(function (_result3) {
|
18799
18944
|
return _exit ? _result3 : completed;
|
18800
|
-
}) : _exit ?
|
18945
|
+
}) : _exit ? _temp7 : completed);
|
18801
18946
|
} catch (e) {
|
18802
18947
|
return Promise.reject(e);
|
18803
18948
|
}
|
18804
18949
|
};
|
18805
18950
|
const onCellChanged = function (cell, rowIndex, shouldRunUpdaters = true) {
|
18806
18951
|
try {
|
18807
|
-
function
|
18952
|
+
function _temp4() {
|
18808
18953
|
var _state$changes$errors11;
|
18809
|
-
function
|
18954
|
+
function _temp2() {
|
18810
18955
|
// only set errors and move reasons for the cells we're currently acting on
|
18811
18956
|
// why? because the UX is not good if we set them for cells the user hasn't touched yet
|
18812
18957
|
const cellsToActOn = [cell.column.id, ...Object.keys(updatesForOtherCells)];
|
@@ -18837,6 +18982,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18837
18982
|
rowId: cell.row.id,
|
18838
18983
|
payload: {
|
18839
18984
|
cellErrors: nextCellErrors,
|
18985
|
+
index: rowIndex,
|
18840
18986
|
moveReasons: nextMoveReasons,
|
18841
18987
|
value: nextChanges
|
18842
18988
|
}
|
@@ -18855,19 +19001,19 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18855
19001
|
};
|
18856
19002
|
// run validation
|
18857
19003
|
let validationErrors = {};
|
18858
|
-
const
|
19004
|
+
const _temp = function () {
|
18859
19005
|
if (validator) {
|
18860
19006
|
const nextRowValue = {
|
18861
19007
|
...state.changes.originals[cell.row.id],
|
18862
19008
|
...changes,
|
18863
19009
|
...updatesForOtherCells
|
18864
19010
|
};
|
18865
|
-
return Promise.resolve(validator(nextRowValue)).then(function (
|
18866
|
-
validationErrors =
|
19011
|
+
return Promise.resolve(validator(nextRowValue)).then(function (_validator) {
|
19012
|
+
validationErrors = _validator !== null && _validator !== void 0 ? _validator : {};
|
18867
19013
|
});
|
18868
19014
|
}
|
18869
19015
|
}();
|
18870
|
-
return
|
19016
|
+
return _temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp);
|
18871
19017
|
}
|
18872
19018
|
const changes = state.changes.rows[cell.row.id];
|
18873
19019
|
if (!changes) {
|
@@ -18875,7 +19021,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18875
19021
|
}
|
18876
19022
|
let updatesForOtherCells = {};
|
18877
19023
|
// run the updater handler if there is one, to see if there are any other cells to update
|
18878
|
-
const
|
19024
|
+
const _temp3 = function () {
|
18879
19025
|
if (typeof handleChange === 'function' && shouldRunUpdaters) {
|
18880
19026
|
const previousRowValue = {
|
18881
19027
|
...state.changes.originals[cell.row.id]
|
@@ -18889,42 +19035,11 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18889
19035
|
});
|
18890
19036
|
}
|
18891
19037
|
}();
|
18892
|
-
return Promise.resolve(
|
19038
|
+
return Promise.resolve(_temp3 && _temp3.then ? _temp3.then(_temp4) : _temp4(_temp3));
|
18893
19039
|
} catch (e) {
|
18894
19040
|
return Promise.reject(e);
|
18895
19041
|
}
|
18896
19042
|
}; // general
|
18897
|
-
// rows
|
18898
|
-
const setRowValue = function (rowId, original, value) {
|
18899
|
-
try {
|
18900
|
-
function _temp2() {
|
18901
|
-
dispatch({
|
18902
|
-
type: 'updateRow',
|
18903
|
-
rowId,
|
18904
|
-
payload: {
|
18905
|
-
cellErrors,
|
18906
|
-
original,
|
18907
|
-
value
|
18908
|
-
}
|
18909
|
-
});
|
18910
|
-
}
|
18911
|
-
let cellErrors;
|
18912
|
-
const _temp = function () {
|
18913
|
-
if (validator) {
|
18914
|
-
const row = {
|
18915
|
-
...original,
|
18916
|
-
...value
|
18917
|
-
};
|
18918
|
-
return Promise.resolve(validator(row)).then(function (_validator) {
|
18919
|
-
cellErrors = _validator !== null && _validator !== void 0 ? _validator : {};
|
18920
|
-
});
|
18921
|
-
}
|
18922
|
-
}();
|
18923
|
-
return Promise.resolve(_temp && _temp.then ? _temp.then(_temp2) : _temp2(_temp));
|
18924
|
-
} catch (e) {
|
18925
|
-
return Promise.reject(e);
|
18926
|
-
}
|
18927
|
-
};
|
18928
19043
|
const localization = useLocalization();
|
18929
19044
|
const [state, dispatch] = React__default.useReducer(reducer$2, {
|
18930
19045
|
changes: {
|
@@ -18934,8 +19049,10 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18934
19049
|
originals: {},
|
18935
19050
|
status: {}
|
18936
19051
|
},
|
19052
|
+
indexes: {},
|
18937
19053
|
temporaryRows: []
|
18938
19054
|
});
|
19055
|
+
// rows
|
18939
19056
|
function getRowValue(rowId) {
|
18940
19057
|
var _state$changes$rows$r, _state$changes$rows;
|
18941
19058
|
return (_state$changes$rows$r = (_state$changes$rows = state.changes.rows) === null || _state$changes$rows === void 0 ? void 0 : _state$changes$rows[rowId]) !== null && _state$changes$rows$r !== void 0 ? _state$changes$rows$r : undefined;
|
@@ -18973,7 +19090,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18973
19090
|
}
|
18974
19091
|
});
|
18975
19092
|
}
|
18976
|
-
function insertTemporaryRow(data) {
|
19093
|
+
function insertTemporaryRow(data, rowIndex) {
|
18977
19094
|
const newRowId = `${TEMPORARY_ROW_ID_PREFIX}${uuid.v4()}`;
|
18978
19095
|
const value = {
|
18979
19096
|
...data,
|
@@ -18983,13 +19100,14 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18983
19100
|
type: 'insertTemporaryRow',
|
18984
19101
|
rowId: newRowId,
|
18985
19102
|
payload: {
|
19103
|
+
index: rowIndex,
|
18986
19104
|
value
|
18987
19105
|
}
|
18988
19106
|
});
|
18989
19107
|
return newRowId;
|
18990
19108
|
}
|
18991
19109
|
// cells
|
18992
|
-
function setCellValue(cell, value) {
|
19110
|
+
function setCellValue(cell, rowIndex, value) {
|
18993
19111
|
const rowId = cell.row.id;
|
18994
19112
|
const columnId = cell.column.id;
|
18995
19113
|
// update if the change is different to the original value
|
@@ -18999,6 +19117,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
18999
19117
|
rowId,
|
19000
19118
|
payload: {
|
19001
19119
|
columnId,
|
19120
|
+
index: rowIndex,
|
19002
19121
|
row: cell.row.original,
|
19003
19122
|
value
|
19004
19123
|
}
|
@@ -19031,6 +19150,7 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19031
19150
|
}
|
19032
19151
|
return rowsWithErrors.filter(hasRowErrorsShownInAlert).map(rowId => ({
|
19033
19152
|
rowId,
|
19153
|
+
index: state.indexes[rowId],
|
19034
19154
|
changes: state.changes.rows[rowId],
|
19035
19155
|
errors: state.changes.errors[rowId]
|
19036
19156
|
}));
|
@@ -19054,7 +19174,6 @@ function usePendingChangesState(handleSave, handleChange, rowIdentityAccessor, v
|
|
19054
19174
|
}
|
19055
19175
|
return {
|
19056
19176
|
// row
|
19057
|
-
setRowValue,
|
19058
19177
|
getRowValue,
|
19059
19178
|
getRowMoveReason,
|
19060
19179
|
hasRowErrors,
|
@@ -19093,11 +19212,11 @@ function useTableEditing(isEnabled = false, handleSave, handleChange, handleCrea
|
|
19093
19212
|
const changeset = row !== null && row !== void 0 ? row : handleCreate();
|
19094
19213
|
try {
|
19095
19214
|
if (changeset) {
|
19096
|
-
const rowId = pendingChangesFns.insertTemporaryRow(changeset);
|
19097
|
-
table.getRow(rowId).pin('bottom');
|
19098
19215
|
// set the active row to the new row before toggling editing on
|
19099
19216
|
const temporaryRows = tableMeta.editing.temporaryRows;
|
19100
19217
|
const nextRowIndex = temporaryRows.length ? tableMeta.length + 1 : tableMeta.length;
|
19218
|
+
const rowId = pendingChangesFns.insertTemporaryRow(changeset, nextRowIndex);
|
19219
|
+
table.getRow(rowId).pin('bottom');
|
19101
19220
|
tableMeta.rowActive.setRowActiveIndex(nextRowIndex);
|
19102
19221
|
toggleEditing(true, table, scrollToIndex);
|
19103
19222
|
setLastFocusedCellIndex(undefined);
|
@@ -19135,7 +19254,9 @@ function useTableEditing(isEnabled = false, handleSave, handleChange, handleCrea
|
|
19135
19254
|
tableMeta.rowActive.setRowActiveIndex(index);
|
19136
19255
|
}
|
19137
19256
|
setEditing(enabled);
|
19138
|
-
|
19257
|
+
const row = (_table$getRowModel$ro = table.getRowModel().rows[index]) === null || _table$getRowModel$ro === void 0 ? void 0 : _table$getRowModel$ro.id;
|
19258
|
+
if (row && !isTemporaryRow(row)) {
|
19259
|
+
console.log('hmm');
|
19139
19260
|
scrollToIndex(index);
|
19140
19261
|
}
|
19141
19262
|
}
|
@@ -19406,7 +19527,7 @@ function EditingControlCell(props) {
|
|
19406
19527
|
}, [cellRef.current]);
|
19407
19528
|
const handleChange = nextValue => {
|
19408
19529
|
if (nextValue !== value) {
|
19409
|
-
tableMeta.editing.setCellValue(cell, nextValue);
|
19530
|
+
tableMeta.editing.setCellValue(cell, rowIndex, nextValue);
|
19410
19531
|
if (hasNonTextControl) {
|
19411
19532
|
tableMeta.editing.onCellChanged(cell, rowIndex);
|
19412
19533
|
}
|
@@ -19917,20 +20038,21 @@ function Alert$1(props) {
|
|
19917
20038
|
const visibleColumns = table.getVisibleFlatColumns().map(c => c.id);
|
19918
20039
|
const rowIdentityColumn = tableMeta.rowIdentityAccessor && visibleColumns.includes(String(tableMeta.rowIdentityAccessor)) ? table.getColumn(String(tableMeta.rowIdentityAccessor)) : undefined;
|
19919
20040
|
pendingChangesWithErrors.forEach((pendingChangeWithError, index) => {
|
20041
|
+
var _row;
|
19920
20042
|
// if appropriate, concatenate the item with the text "and"
|
19921
20043
|
if (pendingChangesWithErrors.length > 1 && index === pendingChangesWithErrors.length - 1) {
|
19922
20044
|
// Add space before and after `messageAnd` text
|
19923
20045
|
links.push(` ${validationTexts.alert.messageAnd} `);
|
19924
20046
|
}
|
19925
|
-
const rowIndex = table.getRowModel().rows.findIndex(row => row.id === pendingChangeWithError.rowId);
|
19926
20047
|
const handleClick = () => {
|
19927
20048
|
// if row is visible
|
19928
|
-
if (
|
19929
|
-
scrollToRow(
|
20049
|
+
if (pendingChangeWithError.index > -1) {
|
20050
|
+
scrollToRow(pendingChangeWithError.index);
|
20051
|
+
tableMeta.rowActive.setRowActiveIndex(pendingChangeWithError.index);
|
19930
20052
|
}
|
19931
20053
|
// if row is filtered out
|
19932
20054
|
else {
|
19933
|
-
setShowFilterResetDialog(pendingChangeWithError.
|
20055
|
+
setShowFilterResetDialog(pendingChangeWithError.index);
|
19934
20056
|
}
|
19935
20057
|
};
|
19936
20058
|
let tooltip;
|
@@ -19942,7 +20064,12 @@ function Alert$1(props) {
|
|
19942
20064
|
const columnName = (_table$getAllColumns$ = table.getAllColumns().find(column => column.id === firstCellErrorColumnId)) === null || _table$getAllColumns$ === void 0 ? void 0 : (_table$getAllColumns$2 = _table$getAllColumns$.columnDef.meta) === null || _table$getAllColumns$2 === void 0 ? void 0 : _table$getAllColumns$2.header;
|
19943
20065
|
tooltip = `${columnName}: ${pendingChangeWithError.errors.cells[firstCellErrorColumnId]}`;
|
19944
20066
|
}
|
19945
|
-
|
20067
|
+
let row;
|
20068
|
+
try {
|
20069
|
+
row = table.getRow(pendingChangeWithError.rowId).original;
|
20070
|
+
} catch {
|
20071
|
+
// because of server loading, some rows may not be accessible
|
20072
|
+
}
|
19946
20073
|
links.push(/*#__PURE__*/React__default.createElement(Tooltip, {
|
19947
20074
|
key: pendingChangeWithError.rowId,
|
19948
20075
|
title: tooltip
|
@@ -19950,7 +20077,7 @@ function Alert$1(props) {
|
|
19950
20077
|
className: "text-blue",
|
19951
20078
|
onClick: handleClick,
|
19952
20079
|
role: "button"
|
19953
|
-
}, rowIdentityColumn ? row[rowIdentityColumn.id] :
|
20080
|
+
}, rowIdentityColumn ? (_row = row) === null || _row === void 0 ? void 0 : _row[rowIdentityColumn.id] : pendingChangeWithError.index + 1)));
|
19954
20081
|
// if appropriate, concatenate the item with the text ","
|
19955
20082
|
if (pendingChangesWithErrors.length > 2 && index < pendingChangesWithErrors.length - 2) {
|
19956
20083
|
links.push(', ');
|
@@ -19971,9 +20098,8 @@ function Alert$1(props) {
|
|
19971
20098
|
table.resetGlobalFilter();
|
19972
20099
|
table.resetColumnFilters();
|
19973
20100
|
requestAnimationFrame(() => {
|
19974
|
-
|
19975
|
-
|
19976
|
-
scrollToRow(rowIndex);
|
20101
|
+
if (showFilterResetDialog && showFilterResetDialog > -1) {
|
20102
|
+
scrollToRow(showFilterResetDialog);
|
19977
20103
|
}
|
19978
20104
|
setShowFilterResetDialog(false);
|
19979
20105
|
});
|
@@ -20037,10 +20163,10 @@ function CreateNewRow(props) {
|
|
20037
20163
|
var _temporaryRows$0$tabl, _temporaryRows$, _table$getState$colum;
|
20038
20164
|
const {
|
20039
20165
|
buttonRef,
|
20166
|
+
isScrolled,
|
20040
20167
|
scrollToIndex,
|
20041
20168
|
table,
|
20042
|
-
tableMeta
|
20043
|
-
tableRef
|
20169
|
+
tableMeta
|
20044
20170
|
} = props;
|
20045
20171
|
const {
|
20046
20172
|
texts
|
@@ -20073,11 +20199,9 @@ function CreateNewRow(props) {
|
|
20073
20199
|
keys: shortcut
|
20074
20200
|
});
|
20075
20201
|
}
|
20076
|
-
const isScrolled = tableRef.current ? tableRef.current.scrollHeight > tableRef.current.clientHeight : false;
|
20077
20202
|
const className = cn('group/row border-grey-300 !sticky z-[21]', {
|
20078
20203
|
'bottom-10': tableMeta.footer.isEnabled,
|
20079
20204
|
'bottom-0': !tableMeta.footer.isEnabled,
|
20080
|
-
'border-t-2': isScrolled,
|
20081
20205
|
'border-b': !isScrolled
|
20082
20206
|
});
|
20083
20207
|
return /*#__PURE__*/React__default.createElement("tr", {
|
@@ -20102,6 +20226,7 @@ function CreateNewRow(props) {
|
|
20102
20226
|
function TemporaryRow(props) {
|
20103
20227
|
const {
|
20104
20228
|
createRowButtonRef,
|
20229
|
+
isScrolled,
|
20105
20230
|
table,
|
20106
20231
|
tableMeta,
|
20107
20232
|
tableRef
|
@@ -20164,10 +20289,9 @@ function TemporaryRow(props) {
|
|
20164
20289
|
}
|
20165
20290
|
}
|
20166
20291
|
};
|
20167
|
-
const isScrolled = tableRef.current ? tableRef.current.scrollHeight > tableRef.current.clientHeight : false;
|
20168
20292
|
const className = cn('group/row border-grey-300 !sticky z-[22]', {
|
20169
|
-
'bottom-[calc(5rem_+
|
20170
|
-
'bottom-[calc(2.5rem_+
|
20293
|
+
'bottom-[calc(5rem_+_2px)] data-[row-editing-move]:bottom-[calc(5rem_+_2px)]': tableMeta.footer.isEnabled,
|
20294
|
+
'bottom-[calc(2.5rem_+_2px)] data-[row-editing-move]:bottom-[calc(2.5rem_+_2px)]': !tableMeta.footer.isEnabled,
|
20171
20295
|
'border-t-2 shadow-[0px_-5px_20px_0px_rgba(0,0,0,0.1)] [&>td]:!border-b-0': isScrolled
|
20172
20296
|
});
|
20173
20297
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, table.getBottomRows().map(row => (/*#__PURE__*/React__default.createElement(Row, {
|
@@ -20182,7 +20306,8 @@ function TemporaryRow(props) {
|
|
20182
20306
|
onKeyDown: handleKeyDown,
|
20183
20307
|
onKeyDownCapture: handleKeyDownCapture,
|
20184
20308
|
hideInternalColumns: true,
|
20185
|
-
hideRowActions: !tableMeta.editing.isEditing
|
20309
|
+
hideRowActions: !tableMeta.editing.isEditing,
|
20310
|
+
skipPageLoading: true
|
20186
20311
|
}))));
|
20187
20312
|
}
|
20188
20313
|
|
@@ -20203,6 +20328,7 @@ const BaseTable3 = /*#__PURE__*/fixedForwardRef(function BaseTable3(props, ref)
|
|
20203
20328
|
};
|
20204
20329
|
const hasAlertErrors = table3.meta.editing.getErrorsShownInAlert().length;
|
20205
20330
|
const hasCreateWorkflow = table3.meta.editing.isEnabled && props.onEditingCreate;
|
20331
|
+
const isScrolled = isTableScrolled(table3.ref);
|
20206
20332
|
return /*#__PURE__*/React__default.createElement(Table, null, /*#__PURE__*/React__default.createElement(Table.Toolbar, {
|
20207
20333
|
table: table3
|
20208
20334
|
}, table3.meta.editing.isEnabled ? (/*#__PURE__*/React__default.createElement(Editing, {
|
@@ -20215,19 +20341,27 @@ const BaseTable3 = /*#__PURE__*/fixedForwardRef(function BaseTable3(props, ref)
|
|
20215
20341
|
tableRef: table3.ref
|
20216
20342
|
})) : null, /*#__PURE__*/React__default.createElement(Table.Grid, Object.assign({}, gridAttributes, {
|
20217
20343
|
"data-taco": "table3",
|
20344
|
+
footerRows: hasCreateWorkflow && isScrolled ? (/*#__PURE__*/React__default.createElement(CreateNewRow, {
|
20345
|
+
buttonRef: table3.meta.editing.createRowButtonRef,
|
20346
|
+
isScrolled: isScrolled,
|
20347
|
+
scrollToIndex: table3.renderer.scrollToIndex,
|
20348
|
+
table: table3.instance,
|
20349
|
+
tableMeta: table3.meta
|
20350
|
+
})) : undefined,
|
20218
20351
|
table: table3
|
20219
20352
|
}), hasCreateWorkflow ? (/*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(TemporaryRow, {
|
20220
20353
|
createRowButtonRef: table3.meta.editing.createRowButtonRef,
|
20354
|
+
isScrolled: isScrolled,
|
20221
20355
|
table: table3.instance,
|
20222
20356
|
tableMeta: table3.meta,
|
20223
20357
|
tableRef: table3.ref
|
20224
|
-
}), /*#__PURE__*/React__default.createElement(CreateNewRow, {
|
20358
|
+
}), !isScrolled ? (/*#__PURE__*/React__default.createElement(CreateNewRow, {
|
20225
20359
|
buttonRef: table3.meta.editing.createRowButtonRef,
|
20360
|
+
isScrolled: isScrolled,
|
20226
20361
|
scrollToIndex: table3.renderer.scrollToIndex,
|
20227
20362
|
table: table3.instance,
|
20228
|
-
tableMeta: table3.meta
|
20229
|
-
|
20230
|
-
}))) : null));
|
20363
|
+
tableMeta: table3.meta
|
20364
|
+
})) : null)) : null));
|
20231
20365
|
});
|
20232
20366
|
const Table3 = /*#__PURE__*/fixedForwardRef(function Table3(props, ref) {
|
20233
20367
|
const stringifiedChildren = String(props.children);
|
@@ -21964,6 +22098,249 @@ Navigation2.Link = Link$3;
|
|
21964
22098
|
Navigation2.Section = Section;
|
21965
22099
|
Navigation2.Content = Content$a;
|
21966
22100
|
|
22101
|
+
const DATASET_SIZE_MULTIPLIER = 15;
|
22102
|
+
function useTableDataLoader2(fetchPage, fetchAll, options = {
|
22103
|
+
pageSize: DEFAULT_PAGE_SIZE
|
22104
|
+
}) {
|
22105
|
+
const loadPage = function (pageIndex, sorting, filters, search, hiddenColumns, reset = false) {
|
22106
|
+
try {
|
22107
|
+
if (_hasFetchedAll.current) {
|
22108
|
+
return Promise.resolve();
|
22109
|
+
}
|
22110
|
+
// if page is already loading, abort, otherwise mark it as loading
|
22111
|
+
if (_pendingPageRequests.current[pageIndex]) {
|
22112
|
+
return Promise.resolve();
|
22113
|
+
} else {
|
22114
|
+
_pendingPageRequests.current[pageIndex] = true;
|
22115
|
+
}
|
22116
|
+
// if the page is already loaded and has actual rows, abort
|
22117
|
+
if (data.pages.includes(pageIndex)) {
|
22118
|
+
const position = data.pages.indexOf(pageIndex);
|
22119
|
+
if (data.rows[position * pageSize] !== undefined) {
|
22120
|
+
return Promise.resolve();
|
22121
|
+
}
|
22122
|
+
}
|
22123
|
+
// set the sorting so we can track if it changed between loads
|
22124
|
+
_lastUsedSorting.current = sorting;
|
22125
|
+
// set the filters so we can track if it changed between loads
|
22126
|
+
_lastUsedFilters.current = filters;
|
22127
|
+
const direction = getDirection2(pageIndex, _lastFetchedPage.current);
|
22128
|
+
const _temp2 = _finallyRethrows(function () {
|
22129
|
+
return _catch(function () {
|
22130
|
+
return Promise.resolve(fetchPage(pageIndex, pageSize, sorting, filters, search, hiddenColumns)).then(function (response) {
|
22131
|
+
length.current = response.length;
|
22132
|
+
// update state, here we do some "magic" to support "load in place"
|
22133
|
+
setData(currentData => {
|
22134
|
+
const nextPages = getPages(pageIndex, _lastFetchedPage.current, reset ? [] : currentData.pages, direction);
|
22135
|
+
let nextRows = currentData.rows;
|
22136
|
+
if (reset || !direction) {
|
22137
|
+
const index = nextPages.indexOf(pageIndex);
|
22138
|
+
const startIndex = (index > -1 ? index : 0) * pageSize;
|
22139
|
+
if (reset) {
|
22140
|
+
nextRows = [].concat(response.data);
|
22141
|
+
} else if (startIndex > 0 || pageIndex === 0) {
|
22142
|
+
nextRows = Array(startIndex).fill(undefined).concat(response.data);
|
22143
|
+
} else if (startIndex === 0) {
|
22144
|
+
nextRows = response.data.concat(currentData.rows.slice(pageSize));
|
22145
|
+
}
|
22146
|
+
} else if (direction === 'forward') {
|
22147
|
+
// if the new data will exceed the dataset size, then chop off the start or end
|
22148
|
+
// this keeps the stored dataset to our preferred size
|
22149
|
+
if (currentData.rows.length >= DATASET_SIZE) {
|
22150
|
+
nextRows = currentData.rows.slice(DEFAULT_PAGE_SIZE).concat(response.data);
|
22151
|
+
} else {
|
22152
|
+
nextRows = currentData.rows.concat(response.data);
|
22153
|
+
}
|
22154
|
+
} else if (direction === 'backward') {
|
22155
|
+
if (currentData.rows.length >= DATASET_SIZE) {
|
22156
|
+
nextRows = response.data.concat(currentData.rows.slice(0, -1 * pageSize));
|
22157
|
+
} else {
|
22158
|
+
nextRows = currentData.rows.concat(response.data);
|
22159
|
+
}
|
22160
|
+
}
|
22161
|
+
return {
|
22162
|
+
rows: nextRows,
|
22163
|
+
pages: nextPages
|
22164
|
+
};
|
22165
|
+
});
|
22166
|
+
});
|
22167
|
+
}, function () {});
|
22168
|
+
}, function (_wasThrown2, _result2) {
|
22169
|
+
_hasFetchedAll.current = false;
|
22170
|
+
// reset pending requests
|
22171
|
+
delete _pendingPageRequests.current[pageIndex];
|
22172
|
+
// update the last loaded page
|
22173
|
+
_lastFetchedPage.current = {
|
22174
|
+
index: pageIndex,
|
22175
|
+
direction
|
22176
|
+
};
|
22177
|
+
if (_wasThrown2) throw _result2;
|
22178
|
+
return _result2;
|
22179
|
+
});
|
22180
|
+
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
22181
|
+
} catch (e) {
|
22182
|
+
return Promise.reject(e);
|
22183
|
+
}
|
22184
|
+
};
|
22185
|
+
const {
|
22186
|
+
pageSize
|
22187
|
+
} = options;
|
22188
|
+
const DATASET_SIZE = DATASET_SIZE_MULTIPLIER * pageSize;
|
22189
|
+
// track the data length, we don't know it until the first request
|
22190
|
+
const length = React__default.useRef(0);
|
22191
|
+
// data will be filled after the first request
|
22192
|
+
const [data, setData] = React__default.useState({
|
22193
|
+
rows: [],
|
22194
|
+
pages: []
|
22195
|
+
});
|
22196
|
+
// track which pages have been loaded to dedupe requests
|
22197
|
+
const _pendingPageRequests = React__default.useRef({});
|
22198
|
+
const _lastUsedSorting = React__default.useRef([]);
|
22199
|
+
const _lastUsedFilters = React__default.useRef([]);
|
22200
|
+
const _lastUsedSearch = React__default.useRef();
|
22201
|
+
const _lastUsedHiddenColumns = React__default.useRef([]);
|
22202
|
+
const _lastFetchedPage = React__default.useRef({
|
22203
|
+
index: undefined,
|
22204
|
+
direction: undefined
|
22205
|
+
});
|
22206
|
+
const _hasFetchedAll = React__default.useRef(false);
|
22207
|
+
const loadAll = function (sorting, filters, search, hiddenColumns) {
|
22208
|
+
try {
|
22209
|
+
_hasFetchedAll.current = true;
|
22210
|
+
// set the sorting so we can track if it changed between loads
|
22211
|
+
_lastUsedSorting.current = sorting;
|
22212
|
+
// set the filters so we can track if it changed between loads
|
22213
|
+
_lastUsedFilters.current = filters;
|
22214
|
+
const _temp = _finallyRethrows(function () {
|
22215
|
+
return _catch(function () {
|
22216
|
+
return Promise.resolve(fetchAll(sorting, filters, search, hiddenColumns)).then(function (response) {
|
22217
|
+
length.current = response.length;
|
22218
|
+
setData({
|
22219
|
+
rows: response.data,
|
22220
|
+
pages: Array.from(Array(response.length / pageSize).keys())
|
22221
|
+
});
|
22222
|
+
});
|
22223
|
+
}, function () {});
|
22224
|
+
}, function (_wasThrown, _result) {
|
22225
|
+
// reset pending requests
|
22226
|
+
_pendingPageRequests.current = {};
|
22227
|
+
if (_wasThrown) throw _result;
|
22228
|
+
return _result;
|
22229
|
+
});
|
22230
|
+
return Promise.resolve(_temp && _temp.then ? _temp.then(function () {}) : void 0);
|
22231
|
+
} catch (e) {
|
22232
|
+
return Promise.reject(e);
|
22233
|
+
}
|
22234
|
+
};
|
22235
|
+
const invalidate = function () {
|
22236
|
+
try {
|
22237
|
+
// reset stuff
|
22238
|
+
_pendingPageRequests.current = {};
|
22239
|
+
_hasFetchedAll.current = false;
|
22240
|
+
// load the last page that we scrolled to
|
22241
|
+
return loadPage(getCurrentPage(data.pages, _lastFetchedPage.current), _lastUsedSorting.current, _lastUsedFilters.current, _lastUsedSearch.current, _lastUsedHiddenColumns.current, true);
|
22242
|
+
} catch (e) {
|
22243
|
+
return Promise.reject(e);
|
22244
|
+
}
|
22245
|
+
};
|
22246
|
+
// search works client side - it fetches all then works client side - so these handlers are a little "weird"
|
22247
|
+
// if a search is currently "active", we need to re load all because
|
22248
|
+
const handleSort = function (sorting) {
|
22249
|
+
try {
|
22250
|
+
_lastUsedSorting.current = sorting;
|
22251
|
+
// reset stuff
|
22252
|
+
_pendingPageRequests.current = {};
|
22253
|
+
_hasFetchedAll.current = false;
|
22254
|
+
return loadPage(getCurrentPage(data.pages, _lastFetchedPage.current), sorting, _lastUsedFilters.current, _lastUsedSearch.current, _lastUsedHiddenColumns.current, true);
|
22255
|
+
} catch (e) {
|
22256
|
+
return Promise.reject(e);
|
22257
|
+
}
|
22258
|
+
};
|
22259
|
+
const handleFilter = function (filters, hiddenColumns) {
|
22260
|
+
try {
|
22261
|
+
_lastUsedFilters.current = filters;
|
22262
|
+
_lastUsedHiddenColumns.current = hiddenColumns;
|
22263
|
+
// reset stuff
|
22264
|
+
_pendingPageRequests.current = {};
|
22265
|
+
_hasFetchedAll.current = false;
|
22266
|
+
return loadPage(getCurrentPage(data.pages, _lastFetchedPage.current), _lastUsedSorting.current, filters, _lastUsedSearch.current, hiddenColumns, true);
|
22267
|
+
} catch (e) {
|
22268
|
+
return Promise.reject(e);
|
22269
|
+
}
|
22270
|
+
};
|
22271
|
+
const handleSearch = function (search, hiddenColumns) {
|
22272
|
+
try {
|
22273
|
+
_lastUsedSearch.current = search;
|
22274
|
+
_lastUsedHiddenColumns.current = hiddenColumns;
|
22275
|
+
// reset stuff
|
22276
|
+
_pendingPageRequests.current = {};
|
22277
|
+
_hasFetchedAll.current = false;
|
22278
|
+
return loadPage(getCurrentPage(data.pages, _lastFetchedPage.current), _lastUsedSorting.current, _lastUsedFilters.current, search, hiddenColumns, true);
|
22279
|
+
} catch (e) {
|
22280
|
+
return Promise.reject(e);
|
22281
|
+
}
|
22282
|
+
};
|
22283
|
+
return [{
|
22284
|
+
data: data.rows,
|
22285
|
+
pages: data.pages,
|
22286
|
+
length: length.current,
|
22287
|
+
loadAll,
|
22288
|
+
loadPage,
|
22289
|
+
onChangeFilter: handleFilter,
|
22290
|
+
onChangeSearch: handleSearch,
|
22291
|
+
onChangeSort: handleSort,
|
22292
|
+
pageSize,
|
22293
|
+
_experimentalDataLoader2: true
|
22294
|
+
}, invalidate];
|
22295
|
+
}
|
22296
|
+
function getCurrentPage(currentPages, lastFetchedPage) {
|
22297
|
+
if (currentPages.length <= 2) {
|
22298
|
+
var _currentPages$;
|
22299
|
+
return (_currentPages$ = currentPages[0]) !== null && _currentPages$ !== void 0 ? _currentPages$ : 0;
|
22300
|
+
}
|
22301
|
+
const middle = Math.floor(DATASET_SIZE_MULTIPLIER / 2);
|
22302
|
+
if (lastFetchedPage.index) {
|
22303
|
+
if (!lastFetchedPage.direction) {
|
22304
|
+
return lastFetchedPage.index;
|
22305
|
+
}
|
22306
|
+
return lastFetchedPage.direction === 'forward' ? lastFetchedPage.index + middle : lastFetchedPage.index - middle;
|
22307
|
+
}
|
22308
|
+
return 0;
|
22309
|
+
}
|
22310
|
+
function getDirection2(pageIndex, lastUsedPage) {
|
22311
|
+
if (lastUsedPage.index === undefined) {
|
22312
|
+
return undefined;
|
22313
|
+
}
|
22314
|
+
if (pageIndex > lastUsedPage.index) {
|
22315
|
+
if (lastUsedPage.index + 1 === pageIndex || lastUsedPage.index + DATASET_SIZE_MULTIPLIER === pageIndex) {
|
22316
|
+
return 'forward';
|
22317
|
+
}
|
22318
|
+
} else if (pageIndex < lastUsedPage.index) {
|
22319
|
+
if (lastUsedPage.index - 1 === pageIndex || lastUsedPage.index - DATASET_SIZE_MULTIPLIER === pageIndex) {
|
22320
|
+
return 'backward';
|
22321
|
+
}
|
22322
|
+
}
|
22323
|
+
return undefined;
|
22324
|
+
}
|
22325
|
+
function getPages(pageIndex, lastUsedPage, currentPages, direction) {
|
22326
|
+
if (currentPages.length && (pageIndex === lastUsedPage.index || currentPages.includes(pageIndex))) {
|
22327
|
+
return currentPages;
|
22328
|
+
}
|
22329
|
+
if (direction === 'forward') {
|
22330
|
+
const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(1) : currentPages;
|
22331
|
+
return nextPages.concat(pageIndex);
|
22332
|
+
}
|
22333
|
+
if (direction === 'backward') {
|
22334
|
+
const nextPages = currentPages.length === DATASET_SIZE_MULTIPLIER ? currentPages.slice(0, -1) : currentPages;
|
22335
|
+
return [pageIndex].concat(nextPages);
|
22336
|
+
}
|
22337
|
+
if (pageIndex === 0) {
|
22338
|
+
return [0];
|
22339
|
+
}
|
22340
|
+
// don't go forward, the current page will trigger load of the next page
|
22341
|
+
return [pageIndex - 1, pageIndex];
|
22342
|
+
}
|
22343
|
+
|
21967
22344
|
const useBoundaryOverflowDetection = (ref, dependencies = []) => {
|
21968
22345
|
const [boundaryIndex, setBoundaryIndex] = React__default.useState();
|
21969
22346
|
const dimensions = useBoundingClientRectListener(ref, dependencies);
|
@@ -22103,6 +22480,7 @@ exports.useOnClickOutside = useOnClickOutside;
|
|
22103
22480
|
exports.usePagination = usePagination;
|
22104
22481
|
exports.useRadioGroup = useRadioGroup;
|
22105
22482
|
exports.useTableDataLoader = useTableDataLoader;
|
22483
|
+
exports.useTableDataLoader2 = useTableDataLoader2;
|
22106
22484
|
exports.useTableRowCreation = useTableRowCreation;
|
22107
22485
|
exports.useToast = useToast;
|
22108
22486
|
//# sourceMappingURL=taco.cjs.development.js.map
|