@infinite-table/infinite-react 7.3.6 → 7.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/index.dev.mjs CHANGED
@@ -5635,61 +5635,64 @@ var useColumnPointerEvents = ({
5635
5635
  reorderDragResult = dragger.onMove(e2);
5636
5636
  };
5637
5637
  const onPointerUp = (e2) => {
5638
- const { multiSortBehavior } = getState();
5639
- const target2 = domRef.current;
5640
- rootRef.current?.classList.remove(InfiniteClsShiftingColumns);
5641
- dragger.stop();
5642
- brain.update({
5643
- ...initialAvailableSize
5644
- });
5645
- discardAlwaysRenderedColumn?.();
5646
- restoreRenderRange?.();
5647
- computedVisibleColumns.forEach((col) => {
5648
- clearInfiniteColumnReorderDuration(
5649
- col.computedVisibleIndex,
5650
- rootRef.current
5651
- );
5652
- setInfiniteColumnVisibility(
5653
- col.computedVisibleIndex,
5654
- "",
5655
- rootRef.current
5656
- );
5657
- setInfiniteColumnOffsetWhileReordering(
5658
- col.computedVisibleIndex,
5659
- "",
5638
+ const pointerId = e2.pointerId;
5639
+ requestAnimationFrame(() => {
5640
+ const { multiSortBehavior } = getState();
5641
+ const target2 = domRef.current;
5642
+ rootRef.current?.classList.remove(InfiniteClsShiftingColumns);
5643
+ dragger.stop();
5644
+ brain.update({
5645
+ ...initialAvailableSize
5646
+ });
5647
+ discardAlwaysRenderedColumn?.();
5648
+ restoreRenderRange?.();
5649
+ computedVisibleColumns.forEach((col) => {
5650
+ clearInfiniteColumnReorderDuration(
5651
+ col.computedVisibleIndex,
5652
+ rootRef.current
5653
+ );
5654
+ setInfiniteColumnVisibility(
5655
+ col.computedVisibleIndex,
5656
+ "",
5657
+ rootRef.current
5658
+ );
5659
+ setInfiniteColumnOffsetWhileReordering(
5660
+ col.computedVisibleIndex,
5661
+ "",
5662
+ rootRef.current
5663
+ );
5664
+ });
5665
+ setInfiniteColumnZIndex(
5666
+ dragColumnIndex,
5667
+ getColumnZIndex(dragColumn, {
5668
+ pinnedStartColsCount: computedPinnedStartColumns.length,
5669
+ visibleColsCount: computedVisibleColumns.length
5670
+ }),
5660
5671
  rootRef.current
5661
5672
  );
5662
- });
5663
- setInfiniteColumnZIndex(
5664
- dragColumnIndex,
5665
- getColumnZIndex(dragColumn, {
5666
- pinnedStartColsCount: computedPinnedStartColumns.length,
5667
- visibleColsCount: computedVisibleColumns.length
5668
- }),
5669
- rootRef.current
5670
- );
5671
- target2.style.cursor = initialCursor;
5672
- target2.releasePointerCapture(e2.pointerId);
5673
- target2.removeEventListener("pointermove", onPointerMove);
5674
- target2.removeEventListener("pointerup", onPointerUp);
5675
- setProxyPosition(null);
5676
- const dragColumnSortable = api.getColumnApi(dragColumn.id)?.isSortable() ?? false;
5677
- if (!didDragAtLeastOnce && dragColumnSortable) {
5678
- api.toggleSortingForColumn(dragColumn.id, {
5679
- multiSortBehavior: multiSortBehavior === "replace" && (e2.ctrlKey || e2.metaKey) ? "append" : multiSortBehavior
5680
- });
5681
- }
5682
- if (reorderDragResult) {
5683
- persistColumnOrder(reorderDragResult);
5684
- } else if (didDragAtLeastOnce) {
5685
- if (allowColumnHideOnDrag) {
5686
- api.setVisibilityForColumn(dragColumn.id, false);
5673
+ target2.style.cursor = initialCursor;
5674
+ target2.releasePointerCapture(pointerId);
5675
+ target2.removeEventListener("pointermove", onPointerMove);
5676
+ target2.removeEventListener("pointerup", onPointerUp);
5677
+ setProxyPosition(null);
5678
+ const dragColumnSortable = api.getColumnApi(dragColumn.id)?.isSortable() ?? false;
5679
+ if (!didDragAtLeastOnce && dragColumnSortable) {
5680
+ api.toggleSortingForColumn(dragColumn.id, {
5681
+ multiSortBehavior: multiSortBehavior === "replace" && (e2.ctrlKey || e2.metaKey) ? "append" : multiSortBehavior
5682
+ });
5687
5683
  }
5688
- }
5689
- actions.columnReorderDragColumnId = false;
5690
- if (horizontalLayoutPageIndex != null) {
5691
- actions.columnReorderInPageIndex = null;
5692
- }
5684
+ if (reorderDragResult) {
5685
+ persistColumnOrder(reorderDragResult);
5686
+ } else if (didDragAtLeastOnce) {
5687
+ if (allowColumnHideOnDrag) {
5688
+ api.setVisibilityForColumn(dragColumn.id, false);
5689
+ }
5690
+ }
5691
+ actions.columnReorderDragColumnId = false;
5692
+ if (horizontalLayoutPageIndex != null) {
5693
+ actions.columnReorderInPageIndex = null;
5694
+ }
5695
+ });
5693
5696
  };
5694
5697
  target.addEventListener("pointermove", onPointerMove);
5695
5698
  target.addEventListener("pointerup", onPointerUp);
@@ -13646,6 +13649,7 @@ function computeReducersFor(data, index, reducers, reducerResults, groupKeys) {
13646
13649
  }
13647
13650
  function lazyGroup(groupParams, rootData) {
13648
13651
  const {
13652
+ marker,
13649
13653
  reducers = {},
13650
13654
  pivot,
13651
13655
  groupBy,
@@ -13654,6 +13658,9 @@ function lazyGroup(groupParams, rootData) {
13654
13658
  cache,
13655
13659
  mappings
13656
13660
  } = groupParams;
13661
+ if (marker) {
13662
+ marker.start();
13663
+ }
13657
13664
  const deepMap = new DeepMap();
13658
13665
  function traverseValues(pivotDeepMap, container, pivot2, pivotIndex = 0, currentPivotKeys2 = []) {
13659
13666
  const last = !pivot2.length || pivotIndex === pivot2.length - 1;
@@ -13785,6 +13792,16 @@ function lazyGroup(groupParams, rootData) {
13785
13792
  result.topLevelPivotColumns = topLevelPivotColumns;
13786
13793
  result.pivot = pivot;
13787
13794
  }
13795
+ if (marker) {
13796
+ marker.end({
13797
+ details: [
13798
+ {
13799
+ name: "Group by fields",
13800
+ value: groupBy.map((group2) => group2.field).join(", ")
13801
+ }
13802
+ ]
13803
+ });
13804
+ }
13788
13805
  return result;
13789
13806
  }
13790
13807
  function processGroup(deepMap, currentGroupKeys, currentPivotKeys, item, itemIndex, pivot, reducers, topLevelPivotColumns, initialReducerValue, defaultToKey = DEFAULT_TO_KEY) {
@@ -13906,7 +13923,18 @@ function processTreeNode(treeParams, deepMap, treePaths, parentPath, item, itemI
13906
13923
  }
13907
13924
  }
13908
13925
  function tree(treeParams, data) {
13909
- const { reducers } = treeParams;
13926
+ const { reducers, marker } = treeParams;
13927
+ if (marker) {
13928
+ const reducerKeys = Object.keys(reducers ?? {});
13929
+ marker.start({
13930
+ details: reducerKeys.length > 0 ? [
13931
+ {
13932
+ name: "Reducers",
13933
+ value: reducerKeys.join(", ")
13934
+ }
13935
+ ] : void 0
13936
+ });
13937
+ }
13910
13938
  const initialReducerValue = initReducers(reducers);
13911
13939
  const globalReducerResults = deepClone(initialReducerValue);
13912
13940
  const deepMap = new DeepMap();
@@ -13946,15 +13974,22 @@ function tree(treeParams, data) {
13946
13974
  initialData: data,
13947
13975
  reducerResults: globalReducerResults
13948
13976
  };
13977
+ if (marker) {
13978
+ marker.end();
13979
+ }
13949
13980
  return result;
13950
13981
  }
13951
13982
  function group(groupParams, data) {
13952
13983
  const {
13984
+ marker,
13953
13985
  groupBy,
13954
13986
  defaultToKey = DEFAULT_TO_KEY,
13955
13987
  pivot,
13956
13988
  reducers
13957
13989
  } = groupParams;
13990
+ if (marker) {
13991
+ marker.start();
13992
+ }
13958
13993
  const groupByLength = groupBy.length;
13959
13994
  const topLevelPivotColumns = pivot ? new DeepMap() : void 0;
13960
13995
  const deepMap = new DeepMap();
@@ -14084,6 +14119,16 @@ function group(groupParams, data) {
14084
14119
  result.topLevelPivotColumns = topLevelPivotColumns;
14085
14120
  result.pivot = pivot;
14086
14121
  }
14122
+ if (marker) {
14123
+ marker.end({
14124
+ details: [
14125
+ {
14126
+ name: "Group by fields",
14127
+ value: groupBy.map((group2) => group2.field).join(", ")
14128
+ }
14129
+ ]
14130
+ });
14131
+ }
14087
14132
  return result;
14088
14133
  }
14089
14134
  function flatten(groupResult) {
@@ -14378,13 +14423,20 @@ function flattenTreeNodes(dataArray, parentPath, parents, indexInParentNodes, pa
14378
14423
  return result;
14379
14424
  }
14380
14425
  function enhancedTreeFlatten(param) {
14381
- const { dataArray } = param;
14426
+ const { dataArray, marker } = param;
14427
+ if (marker) {
14428
+ marker.start();
14429
+ }
14382
14430
  const result = [];
14383
14431
  flattenTreeNodes(dataArray, [], [], [], param, result);
14432
+ if (marker) {
14433
+ marker.end();
14434
+ }
14384
14435
  return { data: result };
14385
14436
  }
14386
14437
  function enhancedFlatten(param) {
14387
14438
  const {
14439
+ marker,
14388
14440
  lazyLoad,
14389
14441
  groupResult,
14390
14442
  rowsPerPage,
@@ -14400,6 +14452,16 @@ function enhancedFlatten(param) {
14400
14452
  } = param;
14401
14453
  const { groupParams, deepMap, pivot } = groupResult;
14402
14454
  const { groupBy } = groupParams;
14455
+ if (marker) {
14456
+ marker.start({
14457
+ details: [
14458
+ {
14459
+ name: "Group by fields",
14460
+ value: groupBy.map((g) => g.field).join(", ")
14461
+ }
14462
+ ]
14463
+ });
14464
+ }
14403
14465
  const result = [];
14404
14466
  const groupRowsIndexes = [];
14405
14467
  const parents = [];
@@ -14569,6 +14631,9 @@ function enhancedFlatten(param) {
14569
14631
  indexInParentGroups.pop();
14570
14632
  }
14571
14633
  );
14634
+ if (marker) {
14635
+ marker.end();
14636
+ }
14572
14637
  return {
14573
14638
  data: result,
14574
14639
  groupRowsIndexes
@@ -14692,10 +14757,21 @@ function toPlainSortInfo(sortInfo) {
14692
14757
  }
14693
14758
  var multisort = (sortInfo, array, options) => {
14694
14759
  const get = typeof options === "function" ? options : options?.get;
14760
+ const marker = options && typeof options === "object" ? options.marker : void 0;
14761
+ if (marker) {
14762
+ marker.start();
14763
+ }
14695
14764
  array.sort(getMultisortFunction(toPlainSortInfo(sortInfo), get));
14765
+ if (marker) {
14766
+ marker.end();
14767
+ }
14696
14768
  return array;
14697
14769
  };
14698
14770
  var multisortNested = (sortInfo, array, options) => {
14771
+ const { marker } = options;
14772
+ if (marker) {
14773
+ marker.start();
14774
+ }
14699
14775
  const sortFn = getMultisortFunction(
14700
14776
  toPlainSortInfo(sortInfo),
14701
14777
  options.get
@@ -14745,6 +14821,9 @@ var multisortNested = (sortInfo, array, options) => {
14745
14821
  array = [...array].sort(sortFn);
14746
14822
  }
14747
14823
  }
14824
+ if (marker) {
14825
+ marker.end();
14826
+ }
14748
14827
  return array;
14749
14828
  };
14750
14829
  multisort.knownTypes = sortTypes_default;
@@ -18692,6 +18771,163 @@ function finishRowInfoReducersFor(params) {
18692
18771
  return results;
18693
18772
  }
18694
18773
 
18774
+ // src/utils/devTools/index.ts
18775
+ var DevToolsMarker = class _DevToolsMarker {
18776
+ constructor(debugId) {
18777
+ this.debugId = debugId;
18778
+ this.markerDetails = {
18779
+ label: "",
18780
+ track: "",
18781
+ trackGroup: void 0,
18782
+ color: void 0,
18783
+ details: [],
18784
+ tooltip: void 0
18785
+ };
18786
+ this.stopped = false;
18787
+ this.start = (startDetails) => {
18788
+ if (this.markerDetails.startTs) {
18789
+ return this;
18790
+ }
18791
+ const start = performance.now();
18792
+ this.markerDetails.details = startDetails?.details ?? [];
18793
+ this.markerDetails.startTs = start;
18794
+ return this;
18795
+ };
18796
+ this.end = (markerDetails = {}) => {
18797
+ if (this.stopped) {
18798
+ return this;
18799
+ }
18800
+ this.stopped = true;
18801
+ const start = markerDetails.startTs ?? this.markerDetails.startTs;
18802
+ const end = markerDetails.endTs ?? this.markerDetails.endTs ?? performance.now();
18803
+ const color = markerDetails.color || this.markerDetails.color || "primary";
18804
+ const trackGroup = markerDetails.trackGroup || this.markerDetails.trackGroup || `Infinite Table (${this.debugId})`;
18805
+ const details = [
18806
+ ...this.markerDetails.details || [],
18807
+ ...markerDetails.details || []
18808
+ ];
18809
+ const tooltip = markerDetails.tooltip || this.markerDetails.tooltip;
18810
+ const label = markerDetails.label || this.markerDetails.label || "Unknown";
18811
+ const track = markerDetails.track || this.markerDetails.track || "Unknown";
18812
+ performance.measure(label, {
18813
+ start,
18814
+ end,
18815
+ detail: {
18816
+ devtools: {
18817
+ dataType: "track-entry",
18818
+ trackGroup,
18819
+ track,
18820
+ color,
18821
+ properties: details.length > 0 ? details.map((detail) => [detail.name, detail.value]) : void 0,
18822
+ tooltipText: tooltip
18823
+ }
18824
+ }
18825
+ });
18826
+ return this;
18827
+ };
18828
+ this.debugId = debugId;
18829
+ }
18830
+ static create(debugId) {
18831
+ return new _DevToolsMarker(debugId);
18832
+ }
18833
+ get startTimestamp() {
18834
+ return this.markerDetails.startTs;
18835
+ }
18836
+ get track() {
18837
+ const self = this;
18838
+ return Object.keys(DevToolsTracks).reduce(
18839
+ (acc, track) => {
18840
+ const trackObj = {
18841
+ start: self.start,
18842
+ end: (markerDetails) => {
18843
+ return self.end({
18844
+ ...markerDetails,
18845
+ track: DevToolsTracks[track].track,
18846
+ label: markerDetails.label
18847
+ });
18848
+ },
18849
+ get label() {
18850
+ const currentTrack = DevToolsTracks[track];
18851
+ return Object.keys(currentTrack.labels).reduce(
18852
+ (labelAcc, label) => {
18853
+ const labelObj = {
18854
+ start: self.start,
18855
+ end: (markerDetails) => {
18856
+ return self.end({
18857
+ ...markerDetails,
18858
+ track: currentTrack.track,
18859
+ label: currentTrack.labels[label]
18860
+ });
18861
+ }
18862
+ };
18863
+ Object.defineProperty(labelAcc, label, {
18864
+ get: () => {
18865
+ self.markerDetails.label = currentTrack.labels[label];
18866
+ return labelObj;
18867
+ }
18868
+ });
18869
+ return labelAcc;
18870
+ },
18871
+ {}
18872
+ );
18873
+ }
18874
+ };
18875
+ Object.defineProperty(acc, track, {
18876
+ get: () => {
18877
+ const currentTrack = DevToolsTracks[track];
18878
+ self.markerDetails.track = currentTrack.track;
18879
+ return trackObj;
18880
+ }
18881
+ });
18882
+ return acc;
18883
+ },
18884
+ {}
18885
+ );
18886
+ }
18887
+ };
18888
+ var DevToolsTracks = {
18889
+ DataSource: {
18890
+ track: "DataSource",
18891
+ labels: {
18892
+ RemoteDataLoad: "Remote data load",
18893
+ TreeUnfilteredTreePaths: "Computing unfiltered tree paths",
18894
+ Filter: "Filter",
18895
+ Sort: "Sort",
18896
+ Group: "Group",
18897
+ LazyGroup: "Lazy group",
18898
+ Tree: "Tree",
18899
+ FlattenTree: "Flatten tree",
18900
+ Flatten: "Flatten groups",
18901
+ PrepareData: "Preparing data",
18902
+ ComputeSelectionCount: "Computing selection count",
18903
+ ComputeSelectionCountLazy: "Computing selection count (lazy)",
18904
+ PrepareRowInfo: "Preparing row info array"
18905
+ }
18906
+ },
18907
+ InfiniteTable: {
18908
+ track: "InfiniteTable",
18909
+ labels: {
18910
+ Render: "Rendering"
18911
+ }
18912
+ },
18913
+ MatrixBrain: {
18914
+ track: "Layout Computations",
18915
+ labels: {
18916
+ ComputeRenderRange: "Computing render range"
18917
+ }
18918
+ }
18919
+ };
18920
+ function getMarker(debugId) {
18921
+ return DevToolsMarker.create(debugId);
18922
+ }
18923
+
18924
+ // src/components/InfiniteTable/types/Utility.ts
18925
+ function notNullable(value) {
18926
+ if (value === null || value === void 0) return false;
18927
+ const testDummyForCompileError = value;
18928
+ return true;
18929
+ }
18930
+
18695
18931
  // src/components/DataSource/state/reducer.ts
18696
18932
  function cleanupEmptyFilterValues(filterValue, filterTypes) {
18697
18933
  if (!filterValue) {
@@ -18822,6 +19058,7 @@ function filterTreeDataSource(params) {
18822
19058
  function filterDataArray(params) {
18823
19059
  const {
18824
19060
  filterTypes,
19061
+ marker,
18825
19062
  operatorsByFilterType,
18826
19063
  filterFunction,
18827
19064
  toPrimaryKey,
@@ -18831,6 +19068,9 @@ function filterDataArray(params) {
18831
19068
  isLeafNode
18832
19069
  } = params;
18833
19070
  let { dataArray } = params;
19071
+ marker?.start({
19072
+ details: [{ name: "Count before", value: dataArray.length }]
19073
+ });
18834
19074
  if (filterFunction) {
18835
19075
  dataArray = dataArray.filter(
18836
19076
  (data, index, arr) => filterFunction({
@@ -18852,7 +19092,7 @@ function filterDataArray(params) {
18852
19092
  }
18853
19093
  const filterValueArray = cleanupEmptyFilterValues(params.filterValue, filterTypes) || [];
18854
19094
  if (filterValueArray && filterValueArray.length) {
18855
- return dataArray.filter((data, index, arr) => {
19095
+ const result = dataArray.filter((data, index, arr) => {
18856
19096
  const param = {
18857
19097
  data,
18858
19098
  index,
@@ -18889,11 +19129,24 @@ function filterDataArray(params) {
18889
19129
  }
18890
19130
  return true;
18891
19131
  });
19132
+ marker?.end({
19133
+ details: [{ name: "Count after", value: result.length }]
19134
+ });
19135
+ return result;
18892
19136
  }
19137
+ marker?.end({
19138
+ details: [{ name: "Count after", value: dataArray.length }]
19139
+ });
18893
19140
  return dataArray;
18894
19141
  }
18895
19142
  function concludeReducer(params) {
19143
+ let marker;
18896
19144
  const { state, previousState } = params;
19145
+ const debugId = state.debugId;
19146
+ let rootMarker;
19147
+ if (debugId) {
19148
+ rootMarker = getMarker(debugId).track.DataSource.label.PrepareData.start();
19149
+ }
18897
19150
  const cacheAffectedParts = getCacheAffectedParts(state);
18898
19151
  const sortInfo = state.sortInfo;
18899
19152
  const sortMode = state.sortMode;
@@ -19037,6 +19290,9 @@ function concludeReducer(params) {
19037
19290
  let dataArray = state.originalDataArray;
19038
19291
  if (shouldTree && shouldTreeAgain) {
19039
19292
  const treeParams = {
19293
+ marker: debugId ? getMarker(
19294
+ debugId
19295
+ ).track.DataSource.label.TreeUnfilteredTreePaths.start() : void 0,
19040
19296
  isLeafNode,
19041
19297
  getNodeChildren,
19042
19298
  toKey: toPrimaryKey
@@ -19054,6 +19310,7 @@ function concludeReducer(params) {
19054
19310
  filterTimestamp = Date.now();
19055
19311
  }
19056
19312
  dataArray = filterDataArray({
19313
+ marker: debugId ? getMarker(debugId).track.DataSource.label.Filter.start() : void 0,
19057
19314
  // tree-related stuff
19058
19315
  getNodeChildren,
19059
19316
  isLeafNode,
@@ -19086,11 +19343,21 @@ function concludeReducer(params) {
19086
19343
  if (state.devToolsDetected) {
19087
19344
  sortTimestamp = Date.now();
19088
19345
  }
19346
+ if (debugId) {
19347
+ marker = getMarker(debugId).track.DataSource.label.Sort.start({
19348
+ details: [{ name: "Count", value: dataArray.length }]
19349
+ });
19350
+ }
19089
19351
  if (state.sortFunction) {
19090
19352
  dataArray = state.sortFunction(sortInfo, [...dataArray]);
19353
+ if (marker) {
19354
+ marker.end();
19355
+ marker = void 0;
19356
+ }
19091
19357
  } else {
19092
19358
  if (isTree) {
19093
19359
  dataArray = multisortNested(sortInfo, dataArray, {
19360
+ marker,
19094
19361
  inplace: false,
19095
19362
  isLeafNode,
19096
19363
  getNodeChildren,
@@ -19098,9 +19365,13 @@ function concludeReducer(params) {
19098
19365
  nodesKey
19099
19366
  });
19100
19367
  } else {
19101
- dataArray = multisort(sortInfo, [...dataArray]);
19368
+ dataArray = multisort(sortInfo, [...dataArray], { marker });
19102
19369
  }
19103
19370
  }
19371
+ if (debugId) {
19372
+ marker?.end();
19373
+ marker = void 0;
19374
+ }
19104
19375
  if (state.devToolsDetected) {
19105
19376
  const sortDuration = Date.now() - sortTimestamp;
19106
19377
  state.debugTimings.set("sort", sortDuration);
@@ -19166,14 +19437,16 @@ function concludeReducer(params) {
19166
19437
  reducers: aggregationReducers,
19167
19438
  indexer: state.indexer,
19168
19439
  toPrimaryKey,
19169
- cache
19440
+ cache,
19441
+ marker: debugId ? getMarker(debugId).track.DataSource.label.LazyGroup.start() : void 0
19170
19442
  },
19171
19443
  state.originalLazyGroupData
19172
19444
  ) : group(
19173
19445
  {
19174
19446
  groupBy,
19175
19447
  pivot: pivotBy,
19176
- reducers: aggregationReducers
19448
+ reducers: aggregationReducers,
19449
+ marker: debugId ? getMarker(debugId).track.DataSource.label.Group.start() : void 0
19177
19450
  },
19178
19451
  dataArray
19179
19452
  );
@@ -19207,6 +19480,7 @@ function concludeReducer(params) {
19207
19480
  withRowInfoForCellSelection
19208
19481
  ) : void 0;
19209
19482
  const flattenResult = enhancedFlatten({
19483
+ marker: debugId ? getMarker(debugId).track.DataSource.label.FlattenTree.start() : void 0,
19210
19484
  groupResult,
19211
19485
  lazyLoad: !!state.lazyLoad,
19212
19486
  reducers: aggregationReducers,
@@ -19253,6 +19527,7 @@ function concludeReducer(params) {
19253
19527
  }
19254
19528
  let aggregationReducers = state.aggregationReducers;
19255
19529
  const treeParams = {
19530
+ marker: debugId ? getMarker(debugId).track.DataSource.label.Tree.start() : void 0,
19256
19531
  isLeafNode,
19257
19532
  getNodeChildren,
19258
19533
  toKey: toPrimaryKey,
@@ -19299,6 +19574,7 @@ function concludeReducer(params) {
19299
19574
  } : void 0;
19300
19575
  const repeatWrappedGroupRows = state.rowsPerPage != null ? state.repeatWrappedGroupRows : false;
19301
19576
  const flattenResult = enhancedTreeFlatten({
19577
+ marker: debugId ? getMarker(debugId).track.DataSource.label.FlattenTree.start() : void 0,
19302
19578
  treeResult,
19303
19579
  treeParams,
19304
19580
  dataArray,
@@ -19375,6 +19651,11 @@ function concludeReducer(params) {
19375
19651
  state.reducedAt = now;
19376
19652
  if (state.selectionMode === "multi-row") {
19377
19653
  if (shouldGroup && state.lazyLoad) {
19654
+ if (debugId) {
19655
+ marker = getMarker(
19656
+ debugId
19657
+ ).track.DataSource.label.ComputeSelectionCountLazy.start();
19658
+ }
19378
19659
  let allRowsSelected = true;
19379
19660
  let someRowsSelected = false;
19380
19661
  state.dataArray.forEach((rowInfo) => {
@@ -19393,11 +19674,24 @@ function concludeReducer(params) {
19393
19674
  });
19394
19675
  state.allRowsSelected = allRowsSelected;
19395
19676
  state.someRowsSelected = someRowsSelected;
19677
+ if (debugId) {
19678
+ marker?.end();
19679
+ marker = void 0;
19680
+ }
19396
19681
  } else {
19682
+ if (debugId) {
19683
+ marker = getMarker(
19684
+ debugId
19685
+ ).track.DataSource.label.ComputeSelectionCount.start();
19686
+ }
19397
19687
  const dataArrayCount = state.isTree ? state.totalLeafNodesCount : state.filteredCount;
19398
19688
  const selectedRowCount = state.isTree ? state.treeSelectionState ? state.treeSelectionState.getSelectedCount() : 0 : state.rowSelection.getSelectedCount();
19399
19689
  state.allRowsSelected = dataArrayCount === selectedRowCount;
19400
19690
  state.someRowsSelected = selectedRowCount > 0;
19691
+ if (debugId) {
19692
+ marker?.end();
19693
+ marker = void 0;
19694
+ }
19401
19695
  }
19402
19696
  }
19403
19697
  if (false) {
@@ -19411,6 +19705,33 @@ function concludeReducer(params) {
19411
19705
  treeMutations: treeMutations?.size ? treeMutations : void 0
19412
19706
  };
19413
19707
  }
19708
+ if (rootMarker) {
19709
+ rootMarker?.track.DataSource.label.PrepareData.end({
19710
+ details: [
19711
+ shouldFilterAgain || shouldSortAgain || shouldGroupAgain || shouldTreeAgain ? {
19712
+ name: "Performed operations",
19713
+ value: [
19714
+ shouldFilterAgain ? "filter" : null,
19715
+ shouldSortAgain ? "sort" : null,
19716
+ shouldGroupAgain ? "group" : null,
19717
+ shouldTreeAgain ? "tree" : null
19718
+ ].filter(notNullable).join(", ")
19719
+ } : null,
19720
+ refetchKeyChanged ? {
19721
+ name: "Refetch key",
19722
+ value: `Old ${previousState.refetchKey} -> New ${state.refetchKey}`
19723
+ } : null,
19724
+ originalDataArrayChanged ? {
19725
+ name: "Original data array changed",
19726
+ value: ``
19727
+ } : null,
19728
+ {
19729
+ name: "Unfiltered data length",
19730
+ value: state.originalDataArray.length
19731
+ }
19732
+ ].filter(notNullable)
19733
+ });
19734
+ }
19414
19735
  return state;
19415
19736
  }
19416
19737
 
@@ -20001,6 +20322,12 @@ function useLoadData(options) {
20001
20322
  }
20002
20323
  const componentState2 = getComponentState();
20003
20324
  if (typeof componentState2.data === "function") {
20325
+ let marker;
20326
+ if (componentState2.debugId) {
20327
+ marker = getMarker(
20328
+ componentState2.debugId
20329
+ ).track.DataSource.label.RemoteDataLoad.start();
20330
+ }
20004
20331
  loadData(
20005
20332
  componentState2.data,
20006
20333
  componentState2,
@@ -20009,7 +20336,9 @@ function useLoadData(options) {
20009
20336
  append: appendWhenLivePagination
20010
20337
  },
20011
20338
  masterContext
20012
- );
20339
+ ).then(() => {
20340
+ marker?.end();
20341
+ });
20013
20342
  }
20014
20343
  },
20015
20344
  { ...depsObject, data }
@@ -21317,13 +21646,6 @@ function realignColumnContextMenu(param) {
21317
21646
  return colId;
21318
21647
  }
21319
21648
 
21320
- // src/components/InfiniteTable/types/Utility.ts
21321
- function notNullable(value) {
21322
- if (value === null || value === void 0) return false;
21323
- const testDummyForCompileError = value;
21324
- return true;
21325
- }
21326
-
21327
21649
  // src/components/types/CellPositionByIndex.ts
21328
21650
  function ensureMinMaxCellPositionByIndex(start, end) {
21329
21651
  let { rowIndex: startRowIndex, colIndex: startColIndex } = start;
@@ -25312,7 +25634,7 @@ var useLicense = (licenseKey = "") => {
25312
25634
  }
25313
25635
  let valid2 = isValidLicense(licenseKey, {
25314
25636
  publishedAt: 1624970570587,
25315
- version: "7.3.6"
25637
+ version: "7.4.0"
25316
25638
  });
25317
25639
  if (!licenseKey && !valid2 && isInsidePlayground) {
25318
25640
  return true;