@infinite-table/infinite-react 6.0.20 → 6.1.0-canary.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.
Files changed (7) hide show
  1. package/index.css +3 -1
  2. package/index.d.ts +143 -97
  3. package/index.dev.js +1302 -886
  4. package/index.dev.mjs +1307 -891
  5. package/index.js +1302 -886
  6. package/index.mjs +1307 -891
  7. package/package.json +2 -2
package/index.js CHANGED
@@ -143,7 +143,7 @@ function debounce(fn, { wait }) {
143
143
  }
144
144
 
145
145
  // src/components/InfiniteTable/index.tsx
146
- var React69 = __toESM(require("react"));
146
+ var React70 = __toESM(require("react"));
147
147
 
148
148
  // src/utils/join.ts
149
149
  var join = (...args) => args.filter((x) => !!`${x}`).join(" ");
@@ -179,12 +179,15 @@ var DeepMap = class {
179
179
  this.revision = 0;
180
180
  this.emptyKey = Symbol("emptyKey");
181
181
  this.visit = (fn) => {
182
- this.map.forEach((_, k) => this.visitKey(k, this.map, [], fn));
182
+ this.map.forEach((_, k) => this.visitKey(k, this.map, [], fn, false));
183
+ };
184
+ this.visitSome = (fn) => {
185
+ this.visitWithNext([], fn, true);
183
186
  };
184
187
  this.visitDepthFirst = (fn) => {
185
- this.visitWithNext([], fn);
188
+ this.visitWithNext([], fn, false);
186
189
  };
187
- this.visitWithNext = (parentKeys, fn, currentMap = this.map, depthLimit, skipSelfValue) => {
190
+ this.visitWithNext = (parentKeys, fn, earlyReturn, currentMap = this.map, depthLimit, skipSelfValue) => {
188
191
  if (!currentMap) {
189
192
  return;
190
193
  }
@@ -211,22 +214,33 @@ var DeepMap = class {
211
214
  let next = map2 ? () => this.visitWithNext(
212
215
  keys,
213
216
  fn,
217
+ earlyReturn,
214
218
  map2,
215
219
  depthLimit !== void 0 ? depthLimit - 1 : void 0
216
220
  ) : void 0;
217
221
  if (pair.hasOwnProperty("value")) {
218
- fn(pair.value, keys, i, next, pair);
222
+ const res = fn(pair.value, keys, i, next, pair);
223
+ if (earlyReturn && res === true) {
224
+ return true;
225
+ }
219
226
  i++;
220
227
  } else {
221
228
  next?.();
222
229
  }
230
+ return;
223
231
  };
224
232
  if (hasEmptyKey) {
225
233
  iterator(void 0, this.emptyKey);
226
234
  allowEmptyKey = false;
227
235
  i = 0;
228
236
  }
229
- currentMap.forEach(iterator);
237
+ for (const [key, pair] of currentMap) {
238
+ const res = iterator(pair, key);
239
+ if (earlyReturn && res === true) {
240
+ return res;
241
+ }
242
+ }
243
+ return;
230
244
  };
231
245
  this.fill(initial);
232
246
  }
@@ -314,6 +328,7 @@ var DeepMap = class {
314
328
  (_value, keys2, _i, _next, pair2) => {
315
329
  fn({ ...pair2, keys: keys2 });
316
330
  },
331
+ false,
317
332
  currentMap,
318
333
  depthLimit,
319
334
  excludeSelf
@@ -366,6 +381,7 @@ var DeepMap = class {
366
381
  fn(keys2, value);
367
382
  next?.();
368
383
  },
384
+ false,
369
385
  currentMap,
370
386
  depthLimit,
371
387
  excludeSelf
@@ -567,7 +583,7 @@ var DeepMap = class {
567
583
  }
568
584
  return false;
569
585
  }
570
- visitKey(key, currentMap, parentKeys, fn) {
586
+ visitKey(key, currentMap, parentKeys, fn, earlyReturn) {
571
587
  const pair = currentMap.get(key);
572
588
  if (!pair) {
573
589
  return;
@@ -576,15 +592,23 @@ var DeepMap = class {
576
592
  const keys = key === this.emptyKey ? [] : [...parentKeys, key];
577
593
  const next = once(() => {
578
594
  if (map2) {
579
- map2.forEach((_, k) => {
580
- this.visitKey(k, map2, keys, fn);
581
- });
595
+ for (const [k] of map2) {
596
+ const res = this.visitKey(k, map2, keys, fn, earlyReturn);
597
+ if (earlyReturn && res === true) {
598
+ return true;
599
+ }
600
+ }
582
601
  }
602
+ return false;
583
603
  });
584
604
  if (pair.hasOwnProperty("value")) {
585
- fn(pair, keys, next);
605
+ const res = fn(pair, keys, next);
606
+ if (earlyReturn && res === true) {
607
+ return true;
608
+ }
586
609
  }
587
610
  next();
611
+ return;
588
612
  }
589
613
  getArray(fn) {
590
614
  const result = [];
@@ -598,6 +622,13 @@ var DeepMap = class {
598
622
  });
599
623
  return result;
600
624
  }
625
+ rawKeysAt(keys) {
626
+ const map2 = this.getMapAt(keys);
627
+ if (!map2) {
628
+ return [];
629
+ }
630
+ return [...map2.keys()];
631
+ }
601
632
  valuesAt(keys) {
602
633
  const map2 = this.getMapAt(keys);
603
634
  if (!map2) {
@@ -1185,7 +1216,7 @@ function useMasterDetailContext() {
1185
1216
  }
1186
1217
 
1187
1218
  // src/components/HeadlessTable/index.tsx
1188
- var React13 = __toESM(require("react"));
1219
+ var React14 = __toESM(require("react"));
1189
1220
  var import_react10 = require("react");
1190
1221
 
1191
1222
  // src/components/VirtualList/SpacePlaceholder.tsx
@@ -1298,7 +1329,7 @@ var VirtualScrollContainer = React7.forwardRef(
1298
1329
  );
1299
1330
 
1300
1331
  // src/components/HeadlessTable/RawTable.tsx
1301
- var React10 = __toESM(require("react"));
1332
+ var React11 = __toESM(require("react"));
1302
1333
  var import_react6 = require("react");
1303
1334
 
1304
1335
  // src/components/RawList/AvoidReactDiff.tsx
@@ -1547,29 +1578,6 @@ function setInfiniteScrollPosition(scrollPosition, node) {
1547
1578
  );
1548
1579
  }
1549
1580
 
1550
- // src/components/HeadlessTable/ReactHeadlessTableRenderer.tsx
1551
- var React9 = __toESM(require("react"));
1552
-
1553
- // src/utils/mathIntersection.ts
1554
- function arrayIntersection(...arrays) {
1555
- if (!arrays.length) {
1556
- return [];
1557
- }
1558
- const map2 = /* @__PURE__ */ new Map();
1559
- arrays.forEach((arr) => {
1560
- for (let i = 0, len2 = arr.length; i < len2; i++) {
1561
- const item = arr[i];
1562
- const count = map2.get(item) ?? 0;
1563
- map2.set(item, count + 1);
1564
- }
1565
- return map2;
1566
- });
1567
- const len = arrays.length;
1568
- return arrays[0].filter((x) => {
1569
- return map2.get(x) === len;
1570
- });
1571
- }
1572
-
1573
1581
  // src/utils/raf.ts
1574
1582
  var raf = getGlobal().requestAnimationFrame || ((fn) => {
1575
1583
  return setTimeout(fn, 16);
@@ -2837,300 +2845,861 @@ var MatrixBrain = class extends Logger {
2837
2845
  }
2838
2846
  };
2839
2847
 
2840
- // src/components/HeadlessTable/MappedCells.ts
2841
- var MappedCells = class extends Logger {
2842
- constructor(opts) {
2843
- super(`MappedCells`);
2844
- this.withCellAdditionalInfo = false;
2845
- this.getElementFromListForColumn = (elementsOutsideItemRange, colIndex) => {
2846
- const { elementIndexToCell } = this;
2847
- const last = elementsOutsideItemRange.length - 1;
2848
- for (let i = last; i >= 0; i--) {
2849
- const elementIndex = elementsOutsideItemRange[i];
2850
- const cell = elementIndexToCell[elementIndex];
2851
- if (cell && cell[1] === colIndex) {
2852
- if (i === last) {
2853
- return elementsOutsideItemRange.pop();
2854
- }
2855
- elementsOutsideItemRange.splice(i, 1);
2856
- return elementIndex;
2857
- }
2848
+ // src/components/HeadlessTable/GridCellManager.ts
2849
+ var import_binary_search2 = __toESM(require_binary_search());
2850
+
2851
+ // src/utils/setUtils.ts
2852
+ function setIntersection(...sets) {
2853
+ if (!sets.length) {
2854
+ return /* @__PURE__ */ new Set();
2855
+ }
2856
+ const [first, ...rest] = sets;
2857
+ return new Set([...first].filter((x) => rest.every((set) => set.has(x))));
2858
+ }
2859
+ function setFilter(set, filter) {
2860
+ const result = /* @__PURE__ */ new Set();
2861
+ for (const x of set) {
2862
+ if (filter(x)) {
2863
+ result.add(x);
2864
+ }
2865
+ }
2866
+ return result;
2867
+ }
2868
+ function setFind(set, find) {
2869
+ for (const x of set) {
2870
+ if (find(x)) {
2871
+ return x;
2872
+ }
2873
+ }
2874
+ return void 0;
2875
+ }
2876
+
2877
+ // src/components/HeadlessTable/GridCellPoolForReact.tsx
2878
+ var React9 = __toESM(require("react"));
2879
+ var CELL_COUNT_BY_DEBUG_ID = /* @__PURE__ */ new Map();
2880
+ var emptyFn = () => {
2881
+ };
2882
+ var GridCellForReact = class {
2883
+ constructor(debugId, cellInfo) {
2884
+ this.element = null;
2885
+ this.mountSubscription = buildSubscriptionCallback();
2886
+ const count = CELL_COUNT_BY_DEBUG_ID.get(debugId) ?? 0;
2887
+ const key = `${debugId}:GridCellReact:${count}`;
2888
+ CELL_COUNT_BY_DEBUG_ID.set(debugId, count + 1);
2889
+ this.debugId = key;
2890
+ this.cellInfo = cellInfo;
2891
+ this.updater = buildSubscriptionCallback();
2892
+ this.node = /* @__PURE__ */ React9.createElement(AvoidReactDiff, { key, name: key, updater: this.updater });
2893
+ this.ref = (htmlElement) => {
2894
+ this.element = htmlElement;
2895
+ if (htmlElement) {
2896
+ this.mountSubscription(this);
2897
+ }
2898
+ };
2899
+ }
2900
+ onMount(callback) {
2901
+ const off = this.mountSubscription.onChange((cell) => {
2902
+ if (cell != null) {
2903
+ callback(cell);
2858
2904
  }
2859
- return elementsOutsideItemRange.pop();
2860
- };
2861
- this.getElementFromListForRow = (elementsOutsideItemRange, _rowIndex) => {
2862
- return elementsOutsideItemRange.pop();
2863
- };
2864
- /**
2865
- * Retrieves the elements that contain rendered cells that are outside
2866
- * of the specified range
2867
- *
2868
- * @param start in [rowIndex, colIndex] format - represents the topmost-leftmost cell visible of the render range
2869
- * @param end in [rowIndex, colIndex] format - represents the bottom-right corner of the visible range. The end is not inclusive,
2870
- * so the last visible cell will be [rowIndex-1, colIndex-1]
2871
- *
2872
- * @returns an array of element indexes that are outside the specified range
2873
- */
2874
- this.getElementsOutsideRenderRange = (range) => {
2905
+ });
2906
+ return off;
2907
+ }
2908
+ destroy() {
2909
+ this.mountSubscription.destroy();
2910
+ this.updater.destroy();
2911
+ this.ref = emptyFn;
2912
+ this.element = null;
2913
+ this.node = null;
2914
+ }
2915
+ getNode() {
2916
+ return this.node;
2917
+ }
2918
+ update(content, additionalInfo) {
2919
+ this.updater(content);
2920
+ this.cellInfo = additionalInfo;
2921
+ }
2922
+ getAdditionalInfo() {
2923
+ return this.cellInfo;
2924
+ }
2925
+ getElement() {
2926
+ return this.element;
2927
+ }
2928
+ };
2929
+ var _GridCellPoolForReact = class extends Logger {
2930
+ constructor(debugId) {
2931
+ super(`${debugId}:GridCellPoolForReact`);
2932
+ this.debugId = debugId;
2933
+ this.cellRemoveSubscription = buildSubscriptionCallback();
2934
+ this.attachedCells = /* @__PURE__ */ new Set();
2935
+ this.detachedCells = /* @__PURE__ */ new Set();
2936
+ this.allCellsOrdered = /* @__PURE__ */ new Set();
2937
+ }
2938
+ destroy() {
2939
+ this.reset();
2940
+ }
2941
+ onRemoveCell(callback) {
2942
+ const off = this.cellRemoveSubscription.onChange((cell) => {
2943
+ if (cell != null) {
2944
+ callback(cell);
2945
+ }
2946
+ });
2947
+ return off;
2948
+ }
2949
+ reset() {
2950
+ this.attachedCells.clear();
2951
+ this.detachedCells.clear();
2952
+ this.allCellsOrdered.clear();
2953
+ this.cellRemoveSubscription.destroy();
2954
+ }
2955
+ getAttachedCells() {
2956
+ return this.attachedCells;
2957
+ }
2958
+ getDetachedCells() {
2959
+ return this.detachedCells;
2960
+ }
2961
+ getAllCells() {
2962
+ return this.allCellsOrdered;
2963
+ }
2964
+ /**
2965
+ * This should be the only place where we create a new cell.
2966
+ */
2967
+ createCell() {
2968
+ const cell = new GridCellForReact(this.debugId);
2969
+ this.detachedCells.add(cell);
2970
+ this.allCellsOrdered.add(cell);
2971
+ return cell;
2972
+ }
2973
+ /**
2974
+ * This really removes the cell, not only makes it detached,
2975
+ * but removes it from the render tree and from the pool.
2976
+ */
2977
+ removeCell(cell) {
2978
+ if (false) {
2979
+ if (!this.detachedCells.has(cell)) {
2980
+ this.error(
2981
+ `You want to remove the cell, but it's not in the detached cells set!`
2982
+ );
2983
+ }
2984
+ }
2985
+ this.detachedCells.delete(cell);
2986
+ this.attachedCells.delete(cell);
2987
+ this.allCellsOrdered.delete(cell);
2988
+ cell.destroy();
2989
+ this.cellRemoveSubscription(cell);
2990
+ }
2991
+ /**
2992
+ * This attaches a cell to the table.
2993
+ * If no cell is provided, it will get a detached one from the pool
2994
+ * and move that cell to the attached set.
2995
+ * If a cell is provided, it's moved to the attached set as well.
2996
+ */
2997
+ attachCell(cell) {
2998
+ if (!cell) {
2999
+ cell = this.getDetachedCell();
3000
+ }
3001
+ this.detachedCells.delete(cell);
3002
+ this.attachedCells.add(cell);
3003
+ return cell;
3004
+ }
3005
+ detachCell(cell) {
3006
+ this.attachedCells.delete(cell);
3007
+ this.detachedCells.add(cell);
3008
+ }
3009
+ /**
3010
+ * This gets a detached cell from the pool.
3011
+ * If no detached cell is available, it will create a new one and return that.
3012
+ */
3013
+ getDetachedCell() {
3014
+ const { detachedCells } = this;
3015
+ let cell = detachedCells.values().next().value;
3016
+ if (!cell) {
3017
+ this.poolSize += _GridCellPoolForReact.POOL_SIZE_INCREMENT;
3018
+ }
3019
+ cell = detachedCells.values().next().value;
3020
+ if (!cell) {
3021
+ this.error("No cells available in the pool!");
3022
+ }
3023
+ return cell;
3024
+ }
3025
+ get attachedSize() {
3026
+ return this.attachedCells.size;
3027
+ }
3028
+ get detachedSize() {
3029
+ return this.detachedCells.size;
3030
+ }
3031
+ get poolSize() {
3032
+ return this.allCellsOrdered.size;
3033
+ }
3034
+ set poolSize(value) {
3035
+ value = Math.ceil(value / _GridCellPoolForReact.POOL_SIZE_INCREMENT) * _GridCellPoolForReact.POOL_SIZE_INCREMENT;
3036
+ const currentSize = this.poolSize;
3037
+ if (value === currentSize) {
3038
+ return;
3039
+ }
3040
+ const { detachedCells } = this;
3041
+ let diff = currentSize - value;
3042
+ if (diff > 0) {
3043
+ if (diff > detachedCells.size) {
3044
+ diff = detachedCells.size;
3045
+ this.debug("Trying to destroy more cells than are currently detached!");
3046
+ }
3047
+ const iterator = detachedCells.values();
3048
+ while (diff > 0) {
3049
+ const cell = iterator.next().value;
3050
+ this.removeCell(cell);
3051
+ diff--;
3052
+ }
3053
+ } else {
3054
+ diff = -diff;
3055
+ while (diff > 0) {
3056
+ this.createCell();
3057
+ diff--;
3058
+ }
3059
+ }
3060
+ }
3061
+ };
3062
+ var GridCellPoolForReact = _GridCellPoolForReact;
3063
+ // we'll grow the pool by this amount at a time
3064
+ GridCellPoolForReact.POOL_SIZE_INCREMENT = 5;
3065
+
3066
+ // src/components/HeadlessTable/GridCellManager.ts
3067
+ var GridCellManager = class extends Logger {
3068
+ constructor(debugId) {
3069
+ super(`${debugId}:GridCellManager`);
3070
+ this.matrix = new DeepMap();
3071
+ this.matrixWithHistory = new DeepMap();
3072
+ this.cellToMatrixPosition = /* @__PURE__ */ new WeakMap();
3073
+ this.getCellsOutsideRenderRange = (range) => {
2875
3074
  const { start, end } = range;
2876
3075
  const [startRow, startCol] = start;
2877
3076
  const [endRow, endCol] = end;
2878
- const result = [];
2879
- for (let elementIndex = 0, len = this.elementIndexToCell.length; elementIndex < len; elementIndex++) {
2880
- const entry = this.elementIndexToCell[elementIndex];
2881
- if (!entry) {
2882
- continue;
3077
+ const cells = /* @__PURE__ */ new Set();
3078
+ this.matrix.visit(({ value: cell }, cellPos) => {
3079
+ if (!cell) {
3080
+ return;
2883
3081
  }
2884
- const [rowIndex, colIndex] = entry;
3082
+ const [rowIndex, colIndex] = cellPos;
2885
3083
  const rowBefore = rowIndex < startRow;
2886
3084
  const rowAfter = rowIndex >= endRow;
2887
3085
  const colBefore = colIndex < startCol;
2888
3086
  const colAfter = colIndex >= endCol;
2889
3087
  const outsideRenderRange = rowBefore || rowAfter || colBefore || colAfter;
2890
3088
  if (outsideRenderRange) {
2891
- result.push(elementIndex);
3089
+ cells.add(cell);
2892
3090
  }
2893
- }
2894
- return result;
2895
- };
2896
- this.isCellRendered = (rowIndex, columnIndex) => {
2897
- return this.cellToElementIndex.has([rowIndex, columnIndex]);
2898
- };
2899
- this.getCellAdditionalInfo = (rowIndex, columnIndex) => {
2900
- return this.cellAdditionalInfo.get([rowIndex, columnIndex]);
2901
- };
2902
- this.isElementRendered = (elementIndex) => {
2903
- return !!this.elementIndexToCell[elementIndex];
2904
- };
2905
- this.getElementsForRowIndex = (rowIndex) => {
2906
- return this.cellToElementIndex.getValuesStartingWith([rowIndex]);
2907
- };
2908
- this.getAdditionalInfoForRowIndex = (rowIndex) => {
2909
- return this.cellAdditionalInfo.getValuesStartingWith([rowIndex]);
2910
- };
2911
- this.getRenderedNodeAtElement = (elementIndex) => {
2912
- return this.renderedElements[elementIndex] || null;
2913
- };
2914
- this.getRenderedCellAtElement = (elementIndex) => {
2915
- const cell = this.elementIndexToCell[elementIndex];
2916
- return cell || null;
2917
- };
2918
- this.getRenderedNodeForCell = (rowIndex, columnIndex) => {
2919
- const elementIndex = this.cellToElementIndex.get([rowIndex, columnIndex]);
2920
- return elementIndex != null ? this.renderedElements[elementIndex] || null : null;
2921
- };
2922
- this.getElementIndexForCell = (rowIndex, columnIndex) => {
2923
- const elementIndex = this.cellToElementIndex.get([rowIndex, columnIndex]);
2924
- return elementIndex ?? null;
3091
+ });
3092
+ return cells;
2925
3093
  };
2926
- this.renderCellAtElement = (rowIndex, colIndex, elementIndex, renderNode, cellAdditionalInfo) => {
2927
- if (false) {
2928
- this.debug(
2929
- `Render cell ${rowIndex},${colIndex} at element ${elementIndex}`
2930
- );
2931
- }
2932
- const key = [rowIndex, colIndex];
2933
- const currentCell = this.elementIndexToCell[elementIndex];
2934
- if (currentCell) {
2935
- const currentCellKey = [currentCell[0], currentCell[1]];
2936
- this.cellToElementIndex.delete(currentCellKey);
2937
- if (this.withCellAdditionalInfo) {
2938
- this.cellAdditionalInfo.delete(currentCellKey);
2939
- }
2940
- }
2941
- if (renderNode) {
2942
- this.renderedElements[elementIndex] = renderNode;
3094
+ this.debugId = debugId;
3095
+ this.pool = new GridCellPoolForReact(debugId);
3096
+ this.offRemoveCell = this.pool.onRemoveCell(
3097
+ (cell) => this.onRemoveCell(cell)
3098
+ );
3099
+ }
3100
+ onRemoveCell(cell) {
3101
+ const cellPos = this.cellToMatrixPosition.get(cell);
3102
+ this.cellToMatrixPosition.delete(cell);
3103
+ if (!cellPos) {
3104
+ return;
3105
+ }
3106
+ this.matrix.delete(cellPos);
3107
+ let cellsAtPos = this.matrixWithHistory.get(cellPos);
3108
+ if (cellsAtPos) {
3109
+ cellsAtPos.delete(cell);
3110
+ }
3111
+ }
3112
+ set poolSize(cellCount) {
3113
+ this.pool.poolSize = cellCount;
3114
+ }
3115
+ get poolSize() {
3116
+ return this.pool.poolSize;
3117
+ }
3118
+ getDetachedCell() {
3119
+ console.warn("getting detached cell");
3120
+ return this.pool.getDetachedCell();
3121
+ }
3122
+ setCellPositionInMatrix(cell, cellPos) {
3123
+ if (cellPos == null) {
3124
+ const currentCellPos = this.cellToMatrixPosition.get(cell);
3125
+ if (currentCellPos) {
3126
+ this.matrix.delete(currentCellPos);
2943
3127
  }
2944
- this.elementIndexToCell[elementIndex] = [rowIndex, colIndex];
2945
- this.cellToElementIndex.set(key, elementIndex);
2946
- if (this.withCellAdditionalInfo && cellAdditionalInfo !== void 0) {
2947
- this.cellAdditionalInfo.set(key, cellAdditionalInfo);
3128
+ } else {
3129
+ let prevCellPos = this.cellToMatrixPosition.get(cell);
3130
+ const samePos = prevCellPos && prevCellPos[0] === cellPos[0] && prevCellPos[1] === cellPos[1];
3131
+ this.matrix.set(cellPos, cell);
3132
+ this.cellToMatrixPosition.set(cell, cellPos);
3133
+ let cellsAtPos = this.matrixWithHistory.get(cellPos);
3134
+ if (!cellsAtPos) {
3135
+ cellsAtPos = /* @__PURE__ */ new Set();
3136
+ cellsAtPos.add(cell);
3137
+ this.matrixWithHistory.set(cellPos, cellsAtPos);
3138
+ } else {
3139
+ cellsAtPos.add(cell);
2948
3140
  }
2949
- };
2950
- this.discardCell = (rowIndex, colIndex) => {
2951
- const key = [rowIndex, colIndex];
2952
- const elementIndex = this.cellToElementIndex.get(key);
2953
- if (elementIndex != null) {
2954
- this.renderedElements[elementIndex] = null;
2955
- this.elementIndexToCell[elementIndex] = null;
2956
- this.cellToElementIndex.delete(key);
2957
- if (this.withCellAdditionalInfo) {
2958
- this.cellAdditionalInfo.delete(key);
3141
+ if (prevCellPos && !samePos) {
3142
+ this.matrix.delete(prevCellPos);
3143
+ let cellsAtPrevPos = this.matrixWithHistory.get(prevCellPos);
3144
+ if (cellsAtPrevPos) {
3145
+ cellsAtPrevPos.delete(cell);
2959
3146
  }
2960
3147
  }
2961
- };
2962
- this.discardElement = (elementIndex) => {
2963
- const cell = this.elementIndexToCell[elementIndex];
2964
- if (cell) {
2965
- const key = [cell[0], cell[1]];
2966
- this.renderedElements[elementIndex] = null;
2967
- this.elementIndexToCell[elementIndex] = null;
2968
- this.cellToElementIndex.delete(key);
2969
- if (this.withCellAdditionalInfo) {
2970
- this.cellAdditionalInfo.delete(key);
2971
- }
2972
- return cell;
3148
+ }
3149
+ }
3150
+ renderNodeAtCell(node, cell, cellPos, additionalInfo) {
3151
+ const currentCellAtPos = this.getCellAt(cellPos);
3152
+ if (currentCellAtPos) {
3153
+ if (currentCellAtPos !== cell) {
3154
+ this.detachCellAt(cellPos);
3155
+ this.detachCell(cell);
3156
+ } else {
2973
3157
  }
3158
+ } else {
3159
+ this.detachCell(cell);
3160
+ }
3161
+ this.pool.attachCell(cell);
3162
+ this.setCellPositionInMatrix(cell, cellPos);
3163
+ cell.update(node, additionalInfo);
3164
+ return cell;
3165
+ }
3166
+ getCellPosition(cell) {
3167
+ const cellPos = this.cellToMatrixPosition.get(cell);
3168
+ if (!cellPos) {
2974
3169
  return null;
2975
- };
2976
- this.discardElementsStartingWith = (elIndex, callback) => {
2977
- let discardedCell = null;
2978
- let oneDiscarded = false;
2979
- if (elIndex < this.elementIndexToCell.length) {
2980
- for (let elementIndex = elIndex, len = this.elementIndexToCell.length; elementIndex < len; elementIndex++) {
2981
- discardedCell = this.discardElement(elementIndex);
2982
- if (discardedCell) {
2983
- oneDiscarded = true;
3170
+ }
3171
+ const cellAtPos = this.getCellAt(cellPos);
3172
+ if (cellAtPos != cell) {
3173
+ return null;
3174
+ }
3175
+ return cellPos;
3176
+ }
3177
+ getCellAt(cellPos) {
3178
+ return this.matrix.get(cellPos);
3179
+ }
3180
+ /**
3181
+ * This gets a cell for a given position.
3182
+ * If there's already a cell currently attached at that position, it will be returned.
3183
+ *
3184
+ * Otherwise, we try to return the most optimal cell to use for that position.
3185
+ * If the optimise parameter is set to 'row', we will try to return a detached cell
3186
+ * that was last rendered in that row.
3187
+ *
3188
+ * If the optimise parameter is set to 'column', we will try to return a detached cell
3189
+ * that was last rendered in that column.
3190
+ *
3191
+ * @param cellPos [rowIndex, colIndex]
3192
+ * @param optimise 'row' | 'column'
3193
+ */
3194
+ getCellFor(cellPos, optimise) {
3195
+ let cell = this.getCellAt(cellPos);
3196
+ if (cell) {
3197
+ return cell;
3198
+ }
3199
+ const [rowIndex, colIndex] = cellPos;
3200
+ if (optimise === "row") {
3201
+ this.matrixWithHistory.visitSome((cellsForPos, [row], __, next) => {
3202
+ if (cell) {
3203
+ return true;
3204
+ }
3205
+ if (row === rowIndex) {
3206
+ cell = setFind(cellsForPos, (c) => !this.isCellAttached(c));
3207
+ if (cell) {
3208
+ return true;
2984
3209
  }
2985
- if (callback) {
2986
- callback(elementIndex, discardedCell);
3210
+ }
3211
+ next?.();
3212
+ return false;
3213
+ });
3214
+ }
3215
+ if (optimise === "column") {
3216
+ this.matrixWithHistory.visitSome((cellsForPos, [_row, col], __, next) => {
3217
+ if (cell) {
3218
+ return true;
3219
+ }
3220
+ if (col === colIndex) {
3221
+ cell = setFind(cellsForPos, (c) => !this.isCellAttached(c));
3222
+ if (cell) {
3223
+ return true;
2987
3224
  }
2988
3225
  }
2989
- this.elementIndexToCell.length = elIndex;
2990
- this.renderedElements.length = elIndex;
3226
+ next?.();
3227
+ return false;
3228
+ });
3229
+ }
3230
+ return cell ?? this.getDetachedCell();
3231
+ }
3232
+ isCellAttached(cell) {
3233
+ return this.getCellPosition(cell) !== null;
3234
+ }
3235
+ isCellAttachedAt(cellPos) {
3236
+ const cell = this.getCellAt(cellPos);
3237
+ if (!cell) {
3238
+ return false;
3239
+ }
3240
+ return this.isCellAttached(cell);
3241
+ }
3242
+ getMatrix() {
3243
+ const lastRow = this.getRowsWithCells().pop() ?? -1;
3244
+ const lastColumn = this.getColumnsWithCells().pop() ?? -1;
3245
+ const matrix = Array.from({ length: lastRow + 1 }, (_, rowIndex) => {
3246
+ const row = Array.from({ length: lastColumn + 1 }, (_2, colIndex) => {
3247
+ const cellPos = [rowIndex, colIndex];
3248
+ const cell = this.getCellAt(cellPos);
3249
+ return cell ? cell.getNode() : null;
3250
+ });
3251
+ return row;
3252
+ });
3253
+ return matrix;
3254
+ }
3255
+ getAllCells() {
3256
+ return [...this.pool.getAllCells()];
3257
+ }
3258
+ getCellsForRow(rowIndex) {
3259
+ return this.matrix.getKeysStartingWith([rowIndex]).map((cellPos) => {
3260
+ return this.getCellAt(cellPos);
3261
+ }).filter(Boolean);
3262
+ }
3263
+ getOneAttachedCell() {
3264
+ const cells = this.pool.getAttachedCells();
3265
+ const cell = cells.values().next().value;
3266
+ return cell;
3267
+ }
3268
+ getRowsWithCells() {
3269
+ return this.matrix.rawKeysAt([]).sort();
3270
+ }
3271
+ getColumnsWithCells() {
3272
+ const positions = this.matrix.getUnnestedKeysStartingWith([], true);
3273
+ const columns = new Set(positions.map((pos) => pos[1]));
3274
+ return [...columns.values()].sort();
3275
+ }
3276
+ isRowAttached(rowIndex) {
3277
+ return this.getRowsWithCells().includes(rowIndex);
3278
+ }
3279
+ isColumnAttached(colIndex) {
3280
+ return this.getColumnsWithCells().includes(colIndex);
3281
+ }
3282
+ detachRow(rowIndex) {
3283
+ const cellPositions = this.matrix.getKeysStartingWith([
3284
+ rowIndex
3285
+ ]);
3286
+ cellPositions.forEach((cellPos) => this.detachCellAt(cellPos));
3287
+ }
3288
+ detachCol(colIndex) {
3289
+ this.matrix.visit((_, cellPos) => {
3290
+ if (cellPos[1] === colIndex) {
3291
+ this.detachCellAt(cellPos);
2991
3292
  }
2992
- return oneDiscarded;
2993
- };
2994
- this.init();
2995
- if (opts?.withCellAdditionalInfo) {
2996
- this.withCellAdditionalInfo = opts.withCellAdditionalInfo;
3293
+ });
3294
+ }
3295
+ detachCell(cell) {
3296
+ const cellPos = this.getCellPosition(cell);
3297
+ if (cellPos) {
3298
+ this.detachCellAt(cellPos);
2997
3299
  }
2998
3300
  }
2999
- init() {
3000
- this.elementIndexToCell = [];
3001
- this.cellToElementIndex = new DeepMap();
3002
- this.cellAdditionalInfo = new DeepMap();
3003
- this.renderedElements = [];
3301
+ detachCells(cells) {
3302
+ cells.forEach((cell) => this.detachCell(cell));
3004
3303
  }
3005
- reset() {
3006
- this.init();
3304
+ detachRowsStartingWith(rowIndex) {
3305
+ const rows = this.getRowsWithCells().sort();
3306
+ let idx = (0, import_binary_search2.default)(rows, rowIndex, (a, b) => a - b);
3307
+ if (idx < 0) {
3308
+ idx = ~idx;
3309
+ }
3310
+ const rowsToDiscard = rows.slice(idx);
3311
+ rowsToDiscard.forEach((row) => this.detachRow(row));
3312
+ }
3313
+ detachColsStartingWith(colIndex) {
3314
+ const cols = this.getColumnsWithCells().sort();
3315
+ let idx = (0, import_binary_search2.default)(cols, colIndex, (a, b) => a - b);
3316
+ if (idx < 0) {
3317
+ idx = ~idx;
3318
+ }
3319
+ const colsToDiscard = cols.slice(idx);
3320
+ colsToDiscard.forEach((col) => this.detachCol(col));
3321
+ }
3322
+ detachCellsStartingAt(cellPos) {
3323
+ const [rowIndex, colIndex] = cellPos;
3324
+ this.matrix.visit((_, cellPos2) => {
3325
+ const [row, col] = cellPos2;
3326
+ if (row >= rowIndex || col >= colIndex) {
3327
+ this.detachCellAt(cellPos2);
3328
+ }
3329
+ });
3330
+ }
3331
+ detachCellAt(cellPos) {
3332
+ const cell = this.getCellAt(cellPos);
3333
+ if (cell) {
3334
+ this.setCellPositionInMatrix(cell, null);
3335
+ this.pool.detachCell(cell);
3336
+ }
3337
+ }
3338
+ getCellFromListForRow(cells, rowIndex) {
3339
+ return setFind(cells, (cell) => {
3340
+ return this.getCellPosition(cell)?.[0] === rowIndex;
3341
+ });
3342
+ }
3343
+ getCellFromListForColumn(cells, colIndex) {
3344
+ return setFind(cells, (cell) => {
3345
+ return this.getCellPosition(cell)?.[1] === colIndex;
3346
+ });
3347
+ }
3348
+ getCellCountInMatrix() {
3349
+ return this.matrix.size;
3007
3350
  }
3008
3351
  destroy() {
3009
- this.elementIndexToCell = [];
3010
- this.cellToElementIndex.clear();
3011
- this.cellAdditionalInfo.clear();
3012
- this.renderedElements = [];
3352
+ this.reset();
3353
+ }
3354
+ reset() {
3355
+ this.pool.reset();
3356
+ this.matrix.clear();
3357
+ this.matrixWithHistory.clear();
3358
+ this.offRemoveCell();
3359
+ this.offRemoveCell = () => {
3360
+ };
3361
+ }
3362
+ makeDetachedCellsEmpty() {
3363
+ this.pool.getDetachedCells().forEach((cell) => {
3364
+ cell.update(null);
3365
+ });
3013
3366
  }
3014
3367
  };
3015
3368
 
3016
- // src/components/HeadlessTable/MappedVirtualRows.ts
3017
- var MappedVirtualRows = class extends Logger {
3018
- constructor() {
3019
- super(`MappedVirtualRows`);
3020
- /**
3021
- * Retrieves the elements that contain rendered rows that are outside
3022
- * of the specified range
3023
- *
3024
- * @param start in [rowIndex, colIndex] format - represents the topmost-leftmost cell visible of the render range
3025
- * @param end in [rowIndex, colIndex] format - represents the bottom-right corner of the visible range. The end is not inclusive,
3026
- * so the last visible cell will be [rowIndex-1, colIndex-1]
3027
- *
3028
- * @returns an array of element indexes that are outside the specified range
3029
- */
3030
- this.getElementsOutsideRenderRange = (range) => {
3031
- const { start, end } = range;
3032
- const [startRow] = start;
3033
- const [endRow] = end;
3034
- const result = [];
3035
- for (let elementIndex = 0, len = this.elementIndexToRowIndex.length; elementIndex < len; elementIndex++) {
3036
- const currentRowIndex = this.elementIndexToRowIndex[elementIndex];
3037
- if (currentRowIndex == null) {
3038
- continue;
3039
- }
3040
- const rowBefore = currentRowIndex < startRow;
3041
- const rowAfter = currentRowIndex >= endRow;
3042
- const outsideRenderRange = rowBefore || rowAfter;
3043
- if (outsideRenderRange) {
3044
- result.push(elementIndex);
3045
- }
3369
+ // src/components/HeadlessTable/ListRowManager.ts
3370
+ var import_binary_search3 = __toESM(require_binary_search());
3371
+
3372
+ // src/components/HeadlessTable/ListRowPoolForReact.tsx
3373
+ var React10 = __toESM(require("react"));
3374
+ var ROW_COUNT_BY_DEBUG_ID = /* @__PURE__ */ new Map();
3375
+ var emptyFn2 = () => {
3376
+ };
3377
+ var ListRowForReact = class {
3378
+ constructor(debugId) {
3379
+ this.element = null;
3380
+ this.mountSubscription = buildSubscriptionCallback();
3381
+ const count = ROW_COUNT_BY_DEBUG_ID.get(debugId) ?? 0;
3382
+ const key = `${debugId}:ListRowReact:${count}`;
3383
+ ROW_COUNT_BY_DEBUG_ID.set(debugId, count + 1);
3384
+ this.debugId = key;
3385
+ this.updater = buildSubscriptionCallback();
3386
+ this.node = /* @__PURE__ */ React10.createElement(
3387
+ AvoidReactDiff,
3388
+ {
3389
+ key: `detail-row-${key}`,
3390
+ name: `detail-row-${key}`,
3391
+ updater: this.updater
3392
+ }
3393
+ );
3394
+ this.ref = (htmlElement) => {
3395
+ this.element = htmlElement;
3396
+ if (htmlElement) {
3397
+ this.mountSubscription(this);
3046
3398
  }
3047
- return result;
3048
- };
3049
- this.isRowRendered = (rowIndex) => {
3050
- return this.rowToElementIndex[rowIndex] != null;
3051
- };
3052
- this.isElementRendered = (elementIndex) => {
3053
- return this.elementIndexToRowIndex[elementIndex] != null;
3054
- };
3055
- this.getRenderedNodeAtElement = (elementIndex) => {
3056
- return this.renderedElements[elementIndex] || null;
3057
- };
3058
- this.getRenderedRowAtElement = (elementIndex) => {
3059
- const row = this.elementIndexToRowIndex[elementIndex];
3060
- return row ?? null;
3061
- };
3062
- this.getRenderedNodeForRow = (rowIndex) => {
3063
- const elementIndex = this.rowToElementIndex[rowIndex];
3064
- return elementIndex != null ? this.renderedElements[elementIndex] ?? null : null;
3065
- };
3066
- this.getElementIndexForRow = (rowIndex) => {
3067
- const elementIndex = this.rowToElementIndex[rowIndex];
3068
- return elementIndex ?? null;
3069
3399
  };
3070
- this.renderRowAtElement = (rowIndex, elementIndex, renderNode) => {
3071
- if (false) {
3072
- this.debug(`Render row ${rowIndex} at element ${elementIndex}`);
3400
+ }
3401
+ onMount(callback) {
3402
+ const off = this.mountSubscription.onChange((row) => {
3403
+ if (row != null) {
3404
+ callback(row);
3073
3405
  }
3074
- const currentRow = this.elementIndexToRowIndex[elementIndex];
3075
- if (currentRow != null) {
3076
- this.rowToElementIndex[currentRow] = null;
3406
+ });
3407
+ return off;
3408
+ }
3409
+ destroy() {
3410
+ this.mountSubscription.destroy();
3411
+ this.updater.destroy();
3412
+ this.ref = emptyFn2;
3413
+ this.element = null;
3414
+ this.node = null;
3415
+ }
3416
+ getNode() {
3417
+ return this.node;
3418
+ }
3419
+ update(content) {
3420
+ this.updater(content);
3421
+ }
3422
+ getElement() {
3423
+ return this.element;
3424
+ }
3425
+ };
3426
+ var _ListRowPoolForReact = class extends Logger {
3427
+ constructor(debugId) {
3428
+ super(`${debugId}:ListRowPoolForReact`);
3429
+ this.debugId = debugId;
3430
+ this.rowRemoveSubscription = buildSubscriptionCallback();
3431
+ this.attachedRows = /* @__PURE__ */ new Set();
3432
+ this.detachedRows = /* @__PURE__ */ new Set();
3433
+ this.allRowsOrdered = /* @__PURE__ */ new Set();
3434
+ }
3435
+ destroy() {
3436
+ this.reset();
3437
+ }
3438
+ onRemoveRow(callback) {
3439
+ const off = this.rowRemoveSubscription.onChange((row) => {
3440
+ if (row != null) {
3441
+ callback(row);
3077
3442
  }
3078
- if (renderNode !== void 0) {
3079
- this.renderedElements[elementIndex] = renderNode;
3443
+ });
3444
+ return off;
3445
+ }
3446
+ reset() {
3447
+ this.attachedRows.clear();
3448
+ this.detachedRows.clear();
3449
+ this.allRowsOrdered.clear();
3450
+ this.rowRemoveSubscription.destroy();
3451
+ }
3452
+ getAttachedRows() {
3453
+ return this.attachedRows;
3454
+ }
3455
+ getDetachedRows() {
3456
+ return this.detachedRows;
3457
+ }
3458
+ getAllRows() {
3459
+ return this.allRowsOrdered;
3460
+ }
3461
+ /**
3462
+ * This should be the only place where we create a new cell.
3463
+ */
3464
+ createRow() {
3465
+ const row = new ListRowForReact(this.debugId);
3466
+ this.detachedRows.add(row);
3467
+ this.allRowsOrdered.add(row);
3468
+ return row;
3469
+ }
3470
+ /**
3471
+ * This really removes the cell, not only makes it detached,
3472
+ * but removes it from the render tree and from the pool.
3473
+ */
3474
+ removeRow(row) {
3475
+ if (false) {
3476
+ if (!this.detachedRows.has(row)) {
3477
+ this.error(
3478
+ `You want to remove the row, but it's not in the detached rows set!`
3479
+ );
3080
3480
  }
3081
- this.elementIndexToRowIndex[elementIndex] = rowIndex;
3082
- this.rowToElementIndex[rowIndex] = elementIndex;
3083
- };
3084
- this.discardRow = (rowIndex) => {
3085
- const elementIndex = this.rowToElementIndex[rowIndex];
3086
- if (elementIndex != null) {
3087
- this.renderedElements[elementIndex] = null;
3088
- this.elementIndexToRowIndex[elementIndex] = null;
3089
- this.rowToElementIndex[rowIndex] = null;
3481
+ }
3482
+ this.detachedRows.delete(row);
3483
+ this.attachedRows.delete(row);
3484
+ this.allRowsOrdered.delete(row);
3485
+ row.destroy();
3486
+ this.rowRemoveSubscription(row);
3487
+ }
3488
+ /**
3489
+ * This attaches a row to the list.
3490
+ * If no row is provided, it will get a detached one from the pool
3491
+ * and move that row to the attached set.
3492
+ * If a row is provided, it's moved to the attached set as well.
3493
+ */
3494
+ attachRow(row) {
3495
+ if (!row) {
3496
+ row = this.getDetachedRow();
3497
+ }
3498
+ this.detachedRows.delete(row);
3499
+ this.attachedRows.add(row);
3500
+ return row;
3501
+ }
3502
+ detachRow(row) {
3503
+ this.attachedRows.delete(row);
3504
+ this.detachedRows.add(row);
3505
+ }
3506
+ /**
3507
+ * This gets a detached row from the pool.
3508
+ * If no detached row is available, it will create a new one and return that.
3509
+ */
3510
+ getDetachedRow() {
3511
+ const { detachedRows } = this;
3512
+ let row = detachedRows.values().next().value;
3513
+ if (!row) {
3514
+ this.poolSize += _ListRowPoolForReact.POOL_SIZE_INCREMENT;
3515
+ }
3516
+ row = detachedRows.values().next().value;
3517
+ if (!row) {
3518
+ this.error("No rows available in the pool!");
3519
+ }
3520
+ return row;
3521
+ }
3522
+ get attachedSize() {
3523
+ return this.attachedRows.size;
3524
+ }
3525
+ get detachedSize() {
3526
+ return this.detachedRows.size;
3527
+ }
3528
+ get poolSize() {
3529
+ return this.allRowsOrdered.size;
3530
+ }
3531
+ set poolSize(value) {
3532
+ value = Math.ceil(value / _ListRowPoolForReact.POOL_SIZE_INCREMENT) * _ListRowPoolForReact.POOL_SIZE_INCREMENT;
3533
+ const currentSize = this.poolSize;
3534
+ if (value === currentSize) {
3535
+ return;
3536
+ }
3537
+ const { detachedRows } = this;
3538
+ let diff = currentSize - value;
3539
+ if (diff > 0) {
3540
+ if (diff > detachedRows.size) {
3541
+ diff = detachedRows.size;
3542
+ this.debug("Trying to destroy more rows than are currently detached!");
3090
3543
  }
3091
- };
3092
- this.discardElement = (elementIndex) => {
3093
- const rowIndex = this.elementIndexToRowIndex[elementIndex];
3094
- if (rowIndex != null) {
3095
- this.renderedElements[elementIndex] = null;
3096
- this.elementIndexToRowIndex[elementIndex] = null;
3097
- this.rowToElementIndex[rowIndex] = null;
3098
- return rowIndex;
3544
+ const iterator = detachedRows.values();
3545
+ while (diff > 0) {
3546
+ const row = iterator.next().value;
3547
+ this.removeRow(row);
3548
+ diff--;
3099
3549
  }
3100
- return null;
3101
- };
3102
- this.discardElementsStartingWith = (elIndex, callback) => {
3103
- let discardedRow = null;
3104
- let oneDiscarded = false;
3105
- if (elIndex < this.elementIndexToRowIndex.length) {
3106
- for (let elementIndex = elIndex, len = this.elementIndexToRowIndex.length; elementIndex < len; elementIndex++) {
3107
- discardedRow = this.discardElement(elementIndex);
3108
- if (discardedRow) {
3109
- oneDiscarded = true;
3110
- }
3111
- if (callback) {
3112
- callback(elementIndex, discardedRow);
3113
- }
3114
- }
3115
- this.elementIndexToRowIndex.length = elIndex;
3116
- this.renderedElements.length = elIndex;
3550
+ } else {
3551
+ diff = -diff;
3552
+ while (diff > 0) {
3553
+ this.createRow();
3554
+ diff--;
3117
3555
  }
3118
- return oneDiscarded;
3119
- };
3120
- this.init();
3556
+ }
3557
+ }
3558
+ };
3559
+ var ListRowPoolForReact = _ListRowPoolForReact;
3560
+ // we'll grow the pool by this amount at a time
3561
+ ListRowPoolForReact.POOL_SIZE_INCREMENT = 5;
3562
+
3563
+ // src/components/HeadlessTable/ListRowManager.ts
3564
+ var ListRowManager = class extends Logger {
3565
+ constructor(debugId) {
3566
+ super(`${debugId}:ListRowManager`);
3567
+ this.indexToRow = /* @__PURE__ */ new Map();
3568
+ this.rowToIndex = /* @__PURE__ */ new WeakMap();
3569
+ this.debugId = debugId;
3570
+ this.pool = new ListRowPoolForReact(debugId);
3571
+ this.offRemoveRow = this.pool.onRemoveRow((row) => this.onRemoveRow(row));
3572
+ }
3573
+ onRemoveRow(row) {
3574
+ const rowIndex = this.rowToIndex.get(row);
3575
+ if (rowIndex == null) {
3576
+ return;
3577
+ }
3578
+ this.rowToIndex.delete(row);
3579
+ this.indexToRow.delete(rowIndex);
3580
+ }
3581
+ set poolSize(rowCount) {
3582
+ this.pool.poolSize = rowCount;
3583
+ }
3584
+ get poolSize() {
3585
+ return this.pool.poolSize;
3586
+ }
3587
+ getDetachedRow() {
3588
+ return this.pool.getDetachedRow();
3589
+ }
3590
+ /**
3591
+ * This gets a row for a given position.
3592
+ * If there's already a row currently attached at that position, it will be returned.
3593
+ *
3594
+ * Otherwise, we return another row.
3595
+ * @param rowIndex
3596
+ */
3597
+ getRowFor(rowIndex) {
3598
+ return this.getRowAt(rowIndex) ?? this.getDetachedRow();
3599
+ }
3600
+ setRowIndexInList(row, rowIndex) {
3601
+ const currentIndex = this.rowToIndex.get(row);
3602
+ if (currentIndex != null) {
3603
+ this.indexToRow.delete(currentIndex);
3604
+ }
3605
+ if (rowIndex == null) {
3606
+ this.rowToIndex.delete(row);
3607
+ } else {
3608
+ this.rowToIndex.set(row, rowIndex);
3609
+ this.indexToRow.set(rowIndex, row);
3610
+ }
3611
+ }
3612
+ detachStartingWith(rowIndex) {
3613
+ const rows = this.getAttachedIndexes();
3614
+ let idx = (0, import_binary_search3.default)(rows, rowIndex, (a, b) => a - b);
3615
+ if (idx < 0) {
3616
+ idx = ~idx;
3617
+ }
3618
+ const rowsToDiscard = rows.slice(idx);
3619
+ rowsToDiscard.forEach((rowIndex2) => this.detachRowAt(rowIndex2));
3620
+ }
3621
+ getRowAt(rowPos) {
3622
+ return this.indexToRow.get(rowPos);
3623
+ }
3624
+ getRowIndex(row) {
3625
+ return this.rowToIndex.get(row);
3626
+ }
3627
+ isRowAttached(row) {
3628
+ const rowIndex = this.getRowIndex(row);
3629
+ return rowIndex != null;
3630
+ }
3631
+ isRowAttachedAt(rowIndex) {
3632
+ const row = this.getRowAt(rowIndex);
3633
+ return !!row;
3634
+ }
3635
+ getList() {
3636
+ const max = Math.max(...this.indexToRow.keys());
3637
+ const list = Array.from({ length: max + 1 }, (_, index) => {
3638
+ const row = this.indexToRow.get(index);
3639
+ if (!row) {
3640
+ return null;
3641
+ }
3642
+ return row.getNode();
3643
+ });
3644
+ return list;
3645
+ }
3646
+ getAttachedCount() {
3647
+ return this.indexToRow.size;
3648
+ }
3649
+ forEachAttachedRow(fn) {
3650
+ this.indexToRow.forEach(fn);
3651
+ }
3652
+ getAttachedIndexes() {
3653
+ return Array.from(this.indexToRow.keys()).sort();
3654
+ }
3655
+ getAllRows() {
3656
+ return [...this.pool.getAllRows()];
3657
+ }
3658
+ detachRowAt(rowIndex) {
3659
+ const row = this.getRowAt(rowIndex);
3660
+ if (!row) {
3661
+ return;
3662
+ }
3663
+ this.setRowIndexInList(row, null);
3664
+ this.pool.detachRow(row);
3665
+ }
3666
+ detachRow(row) {
3667
+ const rowIndex = this.getRowIndex(row);
3668
+ if (rowIndex == null) {
3669
+ return;
3670
+ }
3671
+ this.detachRowAt(rowIndex);
3121
3672
  }
3122
- init() {
3123
- this.elementIndexToRowIndex = [];
3124
- this.rowToElementIndex = [];
3125
- this.renderedElements = [];
3673
+ renderNodeAtRow(node, row, rowIndex) {
3674
+ const currentRowAtPos = this.getRowAt(rowIndex);
3675
+ if (currentRowAtPos) {
3676
+ if (currentRowAtPos !== row) {
3677
+ this.detachRowAt(rowIndex);
3678
+ this.detachRow(row);
3679
+ } else {
3680
+ }
3681
+ } else {
3682
+ this.detachRow(row);
3683
+ }
3684
+ this.pool.attachRow(row);
3685
+ this.setRowIndexInList(row, rowIndex);
3686
+ row.update(node);
3687
+ return row;
3126
3688
  }
3127
- reset() {
3128
- this.init();
3689
+ makeDetachedRowsEmpty() {
3690
+ this.pool.getDetachedRows().forEach((row) => {
3691
+ row.update(null);
3692
+ });
3129
3693
  }
3130
3694
  destroy() {
3131
- this.elementIndexToRowIndex = [];
3132
- this.rowToElementIndex = [];
3133
- this.renderedElements = [];
3695
+ this.reset();
3696
+ }
3697
+ reset() {
3698
+ this.pool.reset();
3699
+ this.indexToRow.clear();
3700
+ this.offRemoveRow();
3701
+ this.offRemoveRow = () => {
3702
+ };
3134
3703
  }
3135
3704
  };
3136
3705
 
@@ -3142,7 +3711,7 @@ var columnOffsetAtIndex2 = stripVar(InternalVars.columnOffsetAtIndex);
3142
3711
  var columnOffsetAtIndexWhileReordering2 = stripVar(
3143
3712
  InternalVars.columnOffsetAtIndexWhileReordering
3144
3713
  );
3145
- var ReactHeadlessTableRenderer = class extends Logger {
3714
+ var GridRenderer = class extends Logger {
3146
3715
  constructor(brain, debugId) {
3147
3716
  debugId = debugId || "ReactHeadlessTableRenderer";
3148
3717
  super(debugId);
@@ -3150,14 +3719,6 @@ var ReactHeadlessTableRenderer = class extends Logger {
3150
3719
  this.destroyed = false;
3151
3720
  this.scrolling = false;
3152
3721
  this.cellHoverClassNames = [];
3153
- this.itemDOMElements = [];
3154
- this.itemDOMRefs = [];
3155
- this.updaters = [];
3156
- this.detailRowDOMElements = [];
3157
- this.detailRowDOMRefs = [];
3158
- this.detailRowUpdaters = [];
3159
- this.items = [];
3160
- this.detailItems = [];
3161
3722
  this.lastEnteredRow = -1;
3162
3723
  this.lastExitedRow = -1;
3163
3724
  this.hoverRowUpdatesInProgress = /* @__PURE__ */ new Map();
@@ -3383,12 +3944,13 @@ var ReactHeadlessTableRenderer = class extends Logger {
3383
3944
  };
3384
3945
  this.isRowRendered = (rowIndex) => {
3385
3946
  if (!this.brain.isHorizontalLayoutBrain) {
3386
- const elements = this.mappedCells.getElementsForRowIndex(rowIndex);
3387
- return elements.length > 0;
3947
+ return this.cellManager.isRowAttached(rowIndex);
3388
3948
  }
3389
3949
  const initialRowIndex = rowIndex;
3390
3950
  rowIndex = this.brain.rowsPerPage ? rowIndex % this.brain.rowsPerPage : rowIndex;
3391
- return this.mappedCells.getAdditionalInfoForRowIndex(rowIndex).filter((info) => info.renderRowIndex === initialRowIndex).length > 0;
3951
+ return this.cellManager.getCellsForRow(rowIndex).filter(
3952
+ (cell) => cell.getAdditionalInfo()?.renderRowIndex === initialRowIndex
3953
+ ).length > 0;
3392
3954
  };
3393
3955
  this.isCellVisible = (rowIndex, colIndex) => {
3394
3956
  return this.isRowVisible(rowIndex) && this.isColumnVisible(colIndex);
@@ -3454,8 +4016,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3454
4016
  const colsCount = this.brain.getInitialCols();
3455
4017
  colIndex = colsCount * opts.horizontalLayoutPageIndex + colIndex;
3456
4018
  }
3457
- const nodeRendered = this.mappedCells.getRenderedNodeForCell(startRow, colIndex) !== null;
3458
- return nodeRendered;
4019
+ return this.cellManager.isCellAttachedAt([startRow, colIndex]);
3459
4020
  };
3460
4021
  this.getExtraSpanCellsForRange = (range) => {
3461
4022
  const { start, end } = range;
@@ -3598,11 +4159,11 @@ var ReactHeadlessTableRenderer = class extends Logger {
3598
4159
  }
3599
4160
  };
3600
4161
  this.addHoverClass = (rowIndex) => {
3601
- this.mappedCells.getElementsForRowIndex(rowIndex).forEach((elIndex) => {
3602
- const node = this.itemDOMElements[elIndex];
3603
- if (node) {
4162
+ this.cellManager.getCellsForRow(rowIndex).forEach((cell) => {
4163
+ const element = cell.getElement();
4164
+ if (element) {
3604
4165
  this.cellHoverClassNames.forEach((cls) => {
3605
- node.classList.add(cls);
4166
+ element.classList.add(cls);
3606
4167
  });
3607
4168
  }
3608
4169
  });
@@ -3618,11 +4179,11 @@ var ReactHeadlessTableRenderer = class extends Logger {
3618
4179
  }
3619
4180
  };
3620
4181
  this.removeHoverClass = (rowIndex) => {
3621
- this.mappedCells.getElementsForRowIndex(rowIndex).forEach((elIndex) => {
3622
- const node = this.itemDOMElements[elIndex];
3623
- if (node) {
4182
+ this.cellManager.getCellsForRow(rowIndex).forEach((cell) => {
4183
+ const element = cell.getElement();
4184
+ if (element) {
3624
4185
  this.cellHoverClassNames.forEach((cls) => {
3625
- node.classList.remove(cls);
4186
+ element.classList.remove(cls);
3626
4187
  });
3627
4188
  }
3628
4189
  });
@@ -3655,19 +4216,16 @@ var ReactHeadlessTableRenderer = class extends Logger {
3655
4216
  this.hoverRowUpdatesInProgress.delete(rowIndex);
3656
4217
  });
3657
4218
  };
3658
- this.updateElementPosition = (elementIndex, options) => {
4219
+ this.updateElementPosition = (cell, options) => {
3659
4220
  if (this.destroyed) {
3660
4221
  return;
3661
4222
  }
3662
- const itemElement = this.itemDOMElements[elementIndex];
3663
- const cell = this.mappedCells.getRenderedCellAtElement(elementIndex);
3664
- if (cell == null) {
3665
- if (false) {
3666
- this.error(`Cannot find item for element ${elementIndex}`);
3667
- }
4223
+ const itemElement = cell.getElement();
4224
+ const cellPos = this.cellManager.getCellPosition(cell);
4225
+ if (!cellPos) {
3668
4226
  return;
3669
4227
  }
3670
- const [rowIndex, colIndex] = cell;
4228
+ const [rowIndex, colIndex] = cellPos;
3671
4229
  const itemPosition = this.brain.getCellOffset(rowIndex, colIndex);
3672
4230
  if (itemPosition == null) {
3673
4231
  return;
@@ -3699,15 +4257,15 @@ var ReactHeadlessTableRenderer = class extends Logger {
3699
4257
  }
3700
4258
  }
3701
4259
  };
3702
- this.updateDetailElementPosition = (elementIndex) => {
4260
+ this.updateDetailElementPosition = (row) => {
3703
4261
  if (this.destroyed) {
3704
4262
  return;
3705
4263
  }
3706
- const itemElement = this.detailRowDOMElements[elementIndex];
3707
- const rowIndex = this.mappedDetailRows.getRenderedRowAtElement(elementIndex);
4264
+ const itemElement = row.getElement();
4265
+ const rowIndex = this.rowManager.getRowIndex(row);
3708
4266
  if (rowIndex == null) {
3709
4267
  if (false) {
3710
- this.error(`Cannot find row for detail element ${elementIndex}`);
4268
+ this.error(`Cannot find row for detail element ${rowIndex}`);
3711
4269
  }
3712
4270
  return;
3713
4271
  }
@@ -3747,21 +4305,22 @@ var ReactHeadlessTableRenderer = class extends Logger {
3747
4305
  }
3748
4306
  };
3749
4307
  this.adjustFixedElementsOnScroll = (scrollPosition = this.brain.getScrollPosition()) => {
3750
- const { mappedCells, brain, itemDOMElements, detailRowDOMElements } = this;
4308
+ const { brain, cellManager, rowManager } = this;
3751
4309
  const cols = this.brain.getColCount();
3752
4310
  const rows = this.brain.getRowCount();
3753
4311
  const { fixedColsStart, fixedColsEnd, fixedRowsStart, fixedRowsEnd } = this.brain.getFixedCellInfo();
3754
- if (detailRowDOMElements.length) {
3755
- this.detailRowDOMElements.forEach((node, index) => {
3756
- if (!node) {
3757
- return;
3758
- }
3759
- const rowIndex = this.mappedDetailRows.getRenderedRowAtElement(index);
4312
+ if (rowManager.getAttachedCount()) {
4313
+ rowManager.forEachAttachedRow((row) => {
4314
+ const rowIndex = rowManager.getRowIndex(row);
3760
4315
  if (rowIndex != null) {
3761
4316
  const y = this.brain.getItemOffsetFor(rowIndex, "vertical");
3762
4317
  if (y == null) {
3763
4318
  return;
3764
4319
  }
4320
+ const node = row.getElement();
4321
+ if (!node) {
4322
+ return;
4323
+ }
3765
4324
  this.setDetailTransform(node, rowIndex, {
3766
4325
  y,
3767
4326
  scrollLeft: scrollPosition.scrollLeft
@@ -3772,10 +4331,11 @@ var ReactHeadlessTableRenderer = class extends Logger {
3772
4331
  if (!fixedColsStart && !fixedColsEnd && !fixedRowsStart && !fixedRowsEnd) {
3773
4332
  return;
3774
4333
  }
3775
- if (itemDOMElements[0]) {
4334
+ const attachedCell = this.cellManager.getOneAttachedCell();
4335
+ if (attachedCell) {
3776
4336
  setInfiniteScrollPosition(
3777
4337
  scrollPosition,
3778
- this.getInfiniteNode(itemDOMElements[0])
4338
+ this.getInfiniteNode(attachedCell.getElement())
3779
4339
  );
3780
4340
  }
3781
4341
  const fixedEndColsOffsets = this.brain.getFixedEndColsOffsets({
@@ -3788,16 +4348,13 @@ var ReactHeadlessTableRenderer = class extends Logger {
3788
4348
  const [startRow, startCol] = start;
3789
4349
  const [endRow, endCol] = end;
3790
4350
  function adjustElementPosition(rowIndex, colIndex, fn) {
3791
- const elementIndex = mappedCells.getElementIndexForCell(
3792
- rowIndex,
3793
- colIndex
3794
- );
3795
- if (elementIndex === null) {
4351
+ const cell = cellManager.getCellAt([rowIndex, colIndex]);
4352
+ if (cell == null) {
3796
4353
  return;
3797
4354
  }
3798
4355
  const itemPosition = brain.getCellOffset(rowIndex, colIndex);
3799
- const node = itemDOMElements[elementIndex];
3800
- if (elementIndex != null && node && itemPosition) {
4356
+ const node = cell.getElement();
4357
+ if (node && itemPosition) {
3801
4358
  fn(rowIndex, colIndex, node, itemPosition);
3802
4359
  }
3803
4360
  }
@@ -3958,15 +4515,11 @@ var ReactHeadlessTableRenderer = class extends Logger {
3958
4515
  this.hoverRowUpdatesInProgress.clear();
3959
4516
  this.hoverRowUpdatesInProgress = null;
3960
4517
  this.brain = null;
3961
- this.mappedCells = null;
3962
- this.mappedDetailRows = null;
3963
4518
  };
3964
4519
  this.brain = brain;
3965
4520
  this.debugId = debugId;
3966
- this.mappedCells = new MappedCells({
3967
- withCellAdditionalInfo: brain.isHorizontalLayoutBrain
3968
- });
3969
- this.mappedDetailRows = new MappedVirtualRows();
4521
+ this.cellManager = new GridCellManager(debugId);
4522
+ this.rowManager = new ListRowManager(debugId);
3970
4523
  this.renderRange = this.renderRange.bind(this);
3971
4524
  const removeOnScroll = brain.onScroll(this.adjustFixedElementsOnScroll);
3972
4525
  const removeOnSizeChange = brain.onAvailableSizeChange(() => {
@@ -3994,7 +4547,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
3994
4547
  return this.infiniteNode;
3995
4548
  }
3996
4549
  isCellRenderedAndMappedCorrectly(row, col) {
3997
- const rendered = this.mappedCells.isCellRendered(row, col);
4550
+ const rendered = !!this.cellManager.getCellAt([row, col]);
3998
4551
  return {
3999
4552
  rendered,
4000
4553
  mapped: rendered
@@ -4009,7 +4562,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
4009
4562
  if (false) {
4010
4563
  this.debug(`Render range ${start}-${end}. Force ${force}`);
4011
4564
  }
4012
- const { mappedCells, mappedDetailRows } = this;
4565
+ const { rowManager, cellManager } = this;
4013
4566
  const fixedRanges = this.getFixedRanges(range);
4014
4567
  const ranges = [range, ...fixedRanges];
4015
4568
  const alwaysRenderedColumns = this.brain.getAlwaysRenderedColumns();
@@ -4038,86 +4591,33 @@ var ReactHeadlessTableRenderer = class extends Logger {
4038
4591
  0
4039
4592
  );
4040
4593
  const renderRowCount = renderDetailRow ? ranges.reduce((sum2, range2) => sum2 + getRenderRangeRowCount(range2), 0) : 0;
4041
- if (this.itemDOMElements.length >= renderCount) {
4042
- mappedCells.discardElementsStartingWith(renderCount, (elementIndex) => {
4043
- if (this.updaters[elementIndex]) {
4044
- this.updaters[elementIndex].destroy();
4045
- }
4046
- if (false) {
4047
- this.debug(`Discard element ${elementIndex}`);
4048
- }
4049
- });
4050
- this.itemDOMElements.length = Math.min(
4051
- this.itemDOMElements.length,
4052
- renderCount
4053
- );
4054
- this.itemDOMRefs.length = Math.min(this.itemDOMRefs.length, renderCount);
4055
- this.updaters.length = Math.min(this.updaters.length, renderCount);
4056
- this.items.length = Math.min(this.items.length, renderCount);
4057
- }
4058
- if (renderDetailRow && this.detailRowDOMElements.length && this.detailRowDOMElements.length >= renderRowCount) {
4059
- mappedDetailRows.discardElementsStartingWith(
4060
- renderRowCount,
4061
- (elementIndex) => {
4062
- if (this.detailRowUpdaters[elementIndex]) {
4063
- this.detailRowUpdaters[elementIndex].destroy();
4064
- }
4065
- if (false) {
4066
- this.debug(`Discard detail row element ${elementIndex}`);
4067
- }
4068
- }
4069
- );
4070
- this.detailRowDOMElements.length = Math.min(
4071
- this.detailRowDOMElements.length,
4072
- renderRowCount
4073
- );
4074
- this.detailRowDOMRefs.length = Math.min(
4075
- this.detailRowDOMRefs.length,
4076
- renderRowCount
4077
- );
4078
- this.detailRowUpdaters.length = Math.min(
4079
- this.detailRowUpdaters.length,
4080
- renderRowCount
4081
- );
4082
- this.detailItems.length = Math.min(
4083
- this.detailItems.length,
4084
- renderRowCount
4085
- );
4086
- }
4087
- const elementsOutsideRanges = arrayIntersection(
4088
- ...ranges.map(mappedCells.getElementsOutsideRenderRange)
4089
- );
4090
- const detailElementsOutsideRanges = renderDetailRow ? arrayIntersection(
4091
- ...ranges.map(mappedDetailRows.getElementsOutsideRenderRange)
4092
- ) : [];
4093
- const elementsOutsideItemRange = elementsOutsideRanges.filter(
4094
- (elementIndex) => {
4095
- const cell = this.mappedCells.getRenderedCellAtElement(elementIndex);
4096
- if (cell && extraCellsMap.has(`${cell[0]}:${cell[1]}`)) {
4097
- return false;
4098
- }
4099
- return true;
4100
- }
4101
- );
4102
- if (this.items.length > renderCount) {
4103
- this.items.length = renderCount;
4104
- }
4105
- if (renderDetailRow && this.detailItems.length > renderRowCount) {
4106
- this.detailItems.length = renderRowCount;
4107
- }
4108
- for (let i = this.items.length; i < renderCount; i++) {
4109
- this.renderElement(i);
4110
- elementsOutsideItemRange.splice(0, 0, i);
4594
+ cellManager.detachCellsStartingAt([
4595
+ this.brain.getRowCount(),
4596
+ this.brain.getColCount()
4597
+ ]);
4598
+ if (cellManager.poolSize > renderCount) {
4599
+ cellManager.poolSize = renderCount;
4111
4600
  }
4112
4601
  if (renderDetailRow) {
4113
- for (let i = this.detailItems.length; i < renderRowCount; i++) {
4114
- this.renderDetailElement(i);
4115
- detailElementsOutsideRanges.splice(0, 0, i);
4602
+ rowManager.detachStartingWith(this.brain.getRowCount());
4603
+ if (rowManager.poolSize > renderRowCount) {
4604
+ rowManager.poolSize = renderRowCount;
4116
4605
  }
4117
4606
  }
4607
+ let cellsOutsideRanges = setIntersection(
4608
+ ...ranges.map((range2) => cellManager.getCellsOutsideRenderRange(range2))
4609
+ );
4610
+ cellsOutsideRanges = setFilter(cellsOutsideRanges, (cell) => {
4611
+ const cellPos = cellManager.getCellPosition(cell);
4612
+ if (cellPos && extraCellsMap.has(`${cellPos[0]}:${cellPos[1]}`)) {
4613
+ return false;
4614
+ }
4615
+ return true;
4616
+ });
4617
+ cellManager.detachCells(cellsOutsideRanges);
4618
+ cellManager.poolSize = renderCount;
4118
4619
  const visitedCells = /* @__PURE__ */ new Map();
4119
4620
  const visitedRows = /* @__PURE__ */ new Map();
4120
- const elementsRenderedOnTheFly = /* @__PURE__ */ new Set();
4121
4621
  ranges.forEach((range2) => {
4122
4622
  const { start: start2, end: end2 } = range2;
4123
4623
  const [startRow, startCol] = start2;
@@ -4131,14 +4631,11 @@ var ReactHeadlessTableRenderer = class extends Logger {
4131
4631
  visitedCells.set(key, true);
4132
4632
  const { rendered: cellRendered, mapped: cellMappedCorrectly } = this.isCellRenderedAndMappedCorrectly(row, col);
4133
4633
  if (row === startRow || col === startCol) {
4134
- const parentCell = this.isCellCovered(row, col);
4135
- if (parentCell && extraCellsMap.has(`${parentCell[0]}:${parentCell[1]}`)) {
4136
- const elIndexForCoveredCell = mappedCells.getElementIndexForCell(
4137
- row,
4138
- col
4139
- );
4140
- if (elIndexForCoveredCell != null) {
4141
- elementsOutsideItemRange.push(elIndexForCoveredCell);
4634
+ const parentCellPos = this.isCellCovered(row, col);
4635
+ if (parentCellPos && extraCellsMap.has(`${parentCellPos[0]}:${parentCellPos[1]}`)) {
4636
+ const coveredCell = cellManager.getCellAt([row, col]);
4637
+ if (coveredCell != null) {
4638
+ cellManager.detachCell(coveredCell);
4142
4639
  }
4143
4640
  continue;
4144
4641
  }
@@ -4146,37 +4643,19 @@ var ReactHeadlessTableRenderer = class extends Logger {
4146
4643
  if (cellRendered && !force && cellMappedCorrectly) {
4147
4644
  continue;
4148
4645
  }
4149
- let elementIndex = cellRendered ? mappedCells.getElementIndexForCell(row, col) : (
4150
- // TODO when horizontal layout, just do elementsOutsideItemRange.pop()
4151
- horizontalLayout ? mappedCells.getElementFromListForRow(
4152
- elementsOutsideItemRange,
4153
- row
4154
- ) : mappedCells.getElementFromListForColumn(
4155
- elementsOutsideItemRange,
4156
- col
4157
- )
4158
- );
4159
- if (elementIndex == null) {
4160
- for (let i = this.itemDOMElements.length; i <= this.itemDOMRefs.length; i++) {
4161
- if (!this.itemDOMElements[i] && this.itemDOMRefs[i] && !elementsRenderedOnTheFly.has(i)) {
4162
- elementIndex = i;
4163
- elementsRenderedOnTheFly.add(i);
4164
- if (false) {
4165
- this.debug(
4166
- `Last-moment recovery of element ${elementIndex} to render cell ${row}:${col}`
4167
- );
4168
- }
4169
- break;
4170
- }
4171
- }
4646
+ let theCell;
4647
+ if (cellRendered) {
4648
+ theCell = cellManager.getCellAt([row, col]);
4649
+ } else {
4650
+ theCell = cellManager.getCellFor(
4651
+ [row, col],
4652
+ horizontalLayout ? "row" : "column"
4653
+ );
4172
4654
  }
4173
- if (elementIndex == null) {
4174
- if (false) {
4175
- this.error(`Cannot find element to render cell ${row}:${col}`);
4176
- }
4177
- continue;
4655
+ if (theCell == null) {
4656
+ theCell = cellManager.getDetachedCell();
4178
4657
  }
4179
- this.renderCellAtElement(row, col, elementIndex, renderCell);
4658
+ this.renderCellAt(row, col, theCell, renderCell);
4180
4659
  }
4181
4660
  if (!renderDetailRow) {
4182
4661
  continue;
@@ -4185,20 +4664,15 @@ var ReactHeadlessTableRenderer = class extends Logger {
4185
4664
  continue;
4186
4665
  }
4187
4666
  visitedRows.set(row, true);
4188
- const rowRendered = mappedDetailRows.isRowRendered(row);
4667
+ const rowRendered = rowManager.isRowAttachedAt(row);
4189
4668
  if (rowRendered && !force) {
4190
4669
  continue;
4191
4670
  }
4192
- const detailElementIndex = rowRendered ? mappedDetailRows.getElementIndexForRow(row) : detailElementsOutsideRanges.pop();
4193
- if (detailElementIndex == null) {
4194
- if (false) {
4195
- this.error(
4196
- `Cannot find detail element to render detail row ${row}`
4197
- );
4198
- }
4199
- continue;
4200
- }
4201
- this.renderDetailRowAtElement(row, detailElementIndex, renderDetailRow);
4671
+ this.renderDetailRowAtElement(
4672
+ row,
4673
+ this.rowManager.getRowFor(row),
4674
+ renderDetailRow
4675
+ );
4202
4676
  }
4203
4677
  });
4204
4678
  extraCells.forEach(([rowIndex, colIndex]) => {
@@ -4208,84 +4682,41 @@ var ReactHeadlessTableRenderer = class extends Logger {
4208
4682
  );
4209
4683
  if (rendered) {
4210
4684
  if (force || !mapped) {
4211
- const elementIndex2 = mappedCells.getElementIndexForCell(
4212
- rowIndex,
4213
- colIndex
4214
- );
4215
- this.renderCellAtElement(
4216
- rowIndex,
4217
- colIndex,
4218
- elementIndex2,
4219
- renderCell
4220
- );
4685
+ const cellPos = [rowIndex, colIndex];
4686
+ const cell2 = cellManager.getCellAt(cellPos);
4687
+ this.renderCellAt(rowIndex, colIndex, cell2, renderCell);
4221
4688
  }
4222
4689
  return;
4223
4690
  }
4224
- const elementIndex = elementsOutsideItemRange.pop();
4225
- if (elementIndex == null) {
4691
+ const cell = cellManager.getCellFor(
4692
+ [rowIndex, colIndex],
4693
+ horizontalLayout ? "row" : "column"
4694
+ );
4695
+ if (cell == null) {
4226
4696
  if (false) {
4227
- this.error(
4228
- `Cannot find element to render cell ${rowIndex}-${colIndex}`
4229
- );
4697
+ this.error(`Cannot find cell to render ${rowIndex}-${colIndex}`);
4230
4698
  }
4231
4699
  return;
4232
4700
  }
4233
- this.renderCellAtElement(rowIndex, colIndex, elementIndex, renderCell);
4701
+ this.renderCellAt(rowIndex, colIndex, cell, renderCell);
4234
4702
  });
4235
- let result = this.items;
4236
- result = [...this.items, ...this.detailItems];
4703
+ cellManager.makeDetachedCellsEmpty();
4704
+ if (renderDetailRow) {
4705
+ rowManager.makeDetachedRowsEmpty();
4706
+ }
4707
+ let result = cellManager.getAllCells().map((cell) => cell.getNode());
4708
+ if (renderDetailRow) {
4709
+ rowManager.getAllRows().forEach((row) => {
4710
+ result.push(row.getNode());
4711
+ });
4712
+ }
4237
4713
  this.adjustFixedElementsOnScroll();
4238
4714
  if (onRender) {
4239
4715
  onRender(result);
4240
4716
  }
4241
4717
  return result;
4242
4718
  }
4243
- renderElement(elementIndex) {
4244
- const domRef = (node) => {
4245
- if (node) {
4246
- this.itemDOMElements[elementIndex] = node;
4247
- node.style.position = "absolute";
4248
- node.style.left = "0px";
4249
- node.style.top = "0px";
4250
- this.updateElementPosition(elementIndex);
4251
- }
4252
- };
4253
- this.itemDOMRefs[elementIndex] = domRef;
4254
- this.updaters[elementIndex] = buildSubscriptionCallback();
4255
- const item = /* @__PURE__ */ React9.createElement(
4256
- AvoidReactDiff,
4257
- {
4258
- key: elementIndex,
4259
- name: `${elementIndex}`,
4260
- updater: this.updaters[elementIndex]
4261
- }
4262
- );
4263
- this.items[elementIndex] = item;
4264
- return item;
4265
- }
4266
- renderDetailElement(elementIndex) {
4267
- const domRef = (node) => {
4268
- if (node) {
4269
- this.detailRowDOMElements[elementIndex] = node;
4270
- node.style.position = "absolute";
4271
- node.style.left = "0px";
4272
- this.updateDetailElementPosition(elementIndex);
4273
- }
4274
- };
4275
- this.detailRowDOMRefs[elementIndex] = domRef;
4276
- this.detailRowUpdaters[elementIndex] = buildSubscriptionCallback();
4277
- const detailItem = /* @__PURE__ */ React9.createElement(
4278
- AvoidReactDiff,
4279
- {
4280
- key: `detail-${elementIndex}`,
4281
- name: `detail-${elementIndex}`,
4282
- updater: this.detailRowUpdaters[elementIndex]
4283
- }
4284
- );
4285
- this.detailItems[elementIndex] = detailItem;
4286
- return detailItem;
4287
- }
4288
- renderDetailRowAtElement(rowIndex, detailElementIndex, renderDetailRow) {
4719
+ renderDetailRowAtElement(rowIndex, row, renderDetailRow) {
4289
4720
  if (this.destroyed) {
4290
4721
  return;
4291
4722
  }
@@ -4302,27 +4733,18 @@ var ReactHeadlessTableRenderer = class extends Logger {
4302
4733
  },
4303
4734
  onMouseLeave: () => {
4304
4735
  },
4305
- domRef: this.detailRowDOMRefs[detailElementIndex]
4736
+ domRef: row.ref
4306
4737
  });
4307
- const itemUpdater = this.detailRowUpdaters[detailElementIndex];
4308
- if (!itemUpdater) {
4309
- this.error(
4310
- `Cannot find detail item updater for item ${rowIndex} at this time... sorry.`
4311
- );
4312
- return;
4313
- }
4314
- this.mappedDetailRows.renderRowAtElement(
4315
- rowIndex,
4316
- detailElementIndex,
4317
- renderedDetailNode
4318
- );
4319
- if (false) {
4320
- this.debug(
4321
- `Render detail row ${rowIndex} at element ${detailElementIndex}`
4322
- );
4323
- }
4324
- itemUpdater(renderedDetailNode);
4325
- this.updateDetailElementPosition(detailElementIndex);
4738
+ row.onMount((row2) => {
4739
+ const element = row2.getElement();
4740
+ if (element) {
4741
+ element.style.position = "absolute";
4742
+ element.style.left = "0px";
4743
+ }
4744
+ this.updateDetailElementPosition(row2);
4745
+ });
4746
+ this.rowManager.renderNodeAtRow(renderedDetailNode, row, rowIndex);
4747
+ this.updateDetailElementPosition(row);
4326
4748
  return;
4327
4749
  }
4328
4750
  getCellRealCoordinates(rowIndex, colIndex) {
@@ -4331,7 +4753,7 @@ var ReactHeadlessTableRenderer = class extends Logger {
4331
4753
  colIndex
4332
4754
  };
4333
4755
  }
4334
- renderCellAtElement(rowIndex, colIndex, elementIndex, renderCell) {
4756
+ renderCellAt(rowIndex, colIndex, cell, renderCell) {
4335
4757
  if (this.destroyed) {
4336
4758
  return;
4337
4759
  }
@@ -4362,42 +4784,38 @@ var ReactHeadlessTableRenderer = class extends Logger {
4362
4784
  widthWithColspan,
4363
4785
  onMouseEnter: this.onMouseEnter.bind(null, rowIndex),
4364
4786
  onMouseLeave: this.onMouseLeave.bind(null, rowIndex),
4365
- domRef: this.itemDOMRefs[elementIndex]
4787
+ domRef: cell.ref
4788
+ });
4789
+ cell.onMount((cell2) => {
4790
+ const element = cell2.getElement();
4791
+ if (element) {
4792
+ element.style.position = "absolute";
4793
+ element.style.left = "0px";
4794
+ element.style.top = "0px";
4795
+ }
4796
+ this.updateElementPosition(cell2);
4366
4797
  });
4367
- const itemUpdater = this.updaters[elementIndex];
4368
- if (!itemUpdater) {
4369
- this.error(
4370
- `Cannot find item updater for item ${rowIndex},${colIndex} at this time... sorry.`
4371
- );
4372
- return;
4373
- }
4374
4798
  const cellAdditionalInfo = this.brain.isHorizontalLayoutBrain ? {
4375
4799
  renderRowIndex,
4376
4800
  renderColIndex
4377
4801
  } : void 0;
4378
- this.mappedCells.renderCellAtElement(
4379
- rowIndex,
4380
- colIndex,
4381
- elementIndex,
4802
+ this.cellManager.renderNodeAtCell(
4382
4803
  renderedNode,
4804
+ cell,
4805
+ [rowIndex, colIndex],
4383
4806
  cellAdditionalInfo
4384
4807
  );
4385
- itemUpdater(renderedNode);
4386
- this.updateElementPosition(elementIndex, { hidden, rowspan, colspan });
4808
+ this.updateElementPosition(cell, { hidden, rowspan, colspan });
4387
4809
  return;
4388
4810
  }
4389
4811
  reset() {
4390
- this.itemDOMElements = [];
4391
- this.itemDOMRefs = [];
4392
- this.updaters = [];
4393
- this.items = [];
4394
- this.mappedCells.reset();
4395
- this.mappedDetailRows.reset();
4812
+ this.cellManager.reset();
4813
+ this.rowManager.reset();
4396
4814
  }
4397
4815
  };
4398
4816
 
4399
4817
  // src/components/HeadlessTable/HorizontalLayoutTableRenderer.tsx
4400
- var HorizontalLayoutTableRenderer = class extends ReactHeadlessTableRenderer {
4818
+ var HorizontalLayoutTableRenderer = class extends GridRenderer {
4401
4819
  constructor(brain, debugId) {
4402
4820
  super(brain, debugId);
4403
4821
  this.setTransform = (element, rowIndex, colIndex, options, _zIndex) => {
@@ -4437,14 +4855,15 @@ var HorizontalLayoutTableRenderer = class extends ReactHeadlessTableRenderer {
4437
4855
  });
4438
4856
  }
4439
4857
  isCellRenderedAndMappedCorrectly(row, col) {
4440
- const rendered = this.mappedCells.isCellRendered(row, col);
4858
+ const cell = this.cellManager.getCellAt([row, col]);
4859
+ const rendered = !!cell;
4441
4860
  if (!rendered) {
4442
4861
  return {
4443
4862
  rendered,
4444
4863
  mapped: false
4445
4864
  };
4446
4865
  }
4447
- const cellAdditionalInfo = this.mappedCells.getCellAdditionalInfo(row, col);
4866
+ const cellAdditionalInfo = cell.getAdditionalInfo();
4448
4867
  if (!cellAdditionalInfo) {
4449
4868
  return {
4450
4869
  rendered,
@@ -4462,10 +4881,7 @@ var HorizontalLayoutTableRenderer = class extends ReactHeadlessTableRenderer {
4462
4881
 
4463
4882
  // src/components/HeadlessTable/createRenderer.ts
4464
4883
  function createRenderer(brain) {
4465
- const renderer = !brain.isHorizontalLayoutBrain ? new ReactHeadlessTableRenderer(
4466
- brain,
4467
- `ReactHeadlessTableRenderer:${brain.name}`
4468
- ) : new HorizontalLayoutTableRenderer(
4884
+ const renderer = !brain.isHorizontalLayoutBrain ? new GridRenderer(brain, `ReactHeadlessTableRenderer:${brain.name}`) : new HorizontalLayoutTableRenderer(
4469
4885
  brain,
4470
4886
  `HorizontalLayoutTableRenderer:${brain.name}`
4471
4887
  );
@@ -4529,12 +4945,12 @@ function RawTableFn(props) {
4529
4945
  });
4530
4946
  return remove;
4531
4947
  }, [renderCell, renderDetailRow, brain, onRenderUpdater]);
4532
- return /* @__PURE__ */ React10.createElement(AvoidReactDiff, { updater: onRenderUpdater });
4948
+ return /* @__PURE__ */ React11.createElement(AvoidReactDiff, { updater: onRenderUpdater });
4533
4949
  }
4534
- var RawTable = React10.memo(RawTableFn);
4950
+ var RawTable = React11.memo(RawTableFn);
4535
4951
 
4536
4952
  // src/components/InfiniteTable/components/ActiveRowIndicator.tsx
4537
- var React11 = __toESM(require("react"));
4953
+ var React12 = __toESM(require("react"));
4538
4954
  var import_react8 = require("react");
4539
4955
 
4540
4956
  // src/components/hooks/useRerender.ts
@@ -4724,7 +5140,7 @@ var ActiveRowIndicatorFn = (props) => {
4724
5140
  }, [brain]);
4725
5141
  return (
4726
5142
  // #correct-scroll-size this wrapper is here in order to make the indicator not take up space in the scroll container - to reproduce: remove this and click on a row, you will see that if you scroll at the bottom, there is extra space
4727
- /* @__PURE__ */ React11.createElement("div", { className: ActiveIndicatorWrapperCls, "data-name": "active-row" }, /* @__PURE__ */ React11.createElement(
5143
+ /* @__PURE__ */ React12.createElement("div", { className: ActiveIndicatorWrapperCls, "data-name": "active-row" }, /* @__PURE__ */ React12.createElement(
4728
5144
  "div",
4729
5145
  {
4730
5146
  ref: domRef,
@@ -4737,12 +5153,12 @@ var ActiveRowIndicatorFn = (props) => {
4737
5153
  ))
4738
5154
  );
4739
5155
  };
4740
- var ActiveRowIndicator = React11.memo(
5156
+ var ActiveRowIndicator = React12.memo(
4741
5157
  ActiveRowIndicatorFn
4742
5158
  );
4743
5159
 
4744
5160
  // src/components/InfiniteTable/components/ActiveCellIndicator.tsx
4745
- var React12 = __toESM(require("react"));
5161
+ var React13 = __toESM(require("react"));
4746
5162
  var import_react9 = require("react");
4747
5163
  var { rootClassName: rootClassName4 } = internalProps;
4748
5164
  var baseCls2 = `${rootClassName4}-ActiveCellIndicator`;
@@ -4784,7 +5200,7 @@ var ActiveCellIndicatorFn = (props) => {
4784
5200
  }, [brain]);
4785
5201
  return (
4786
5202
  // #correct-scroll-size this wrapper is here in order to make the indicator not take up space in the scroll container - to reproduce: remove this and click on a row, you will see that if you scroll at the bottom, there is extra space
4787
- /* @__PURE__ */ React12.createElement(
5203
+ /* @__PURE__ */ React13.createElement(
4788
5204
  "div",
4789
5205
  {
4790
5206
  className: ActiveIndicatorWrapperCls,
@@ -4794,7 +5210,7 @@ var ActiveCellIndicatorFn = (props) => {
4794
5210
  zIndex: `var(${columnZIndexAtIndex2}-${props.activeCellIndex[1]})`
4795
5211
  } : void 0
4796
5212
  },
4797
- /* @__PURE__ */ React12.createElement(
5213
+ /* @__PURE__ */ React13.createElement(
4798
5214
  "div",
4799
5215
  {
4800
5216
  "data-name": "active-cell-indicator",
@@ -4806,7 +5222,7 @@ var ActiveCellIndicatorFn = (props) => {
4806
5222
  )
4807
5223
  );
4808
5224
  };
4809
- var ActiveCellIndicator = React12.memo(
5225
+ var ActiveCellIndicator = React13.memo(
4810
5226
  ActiveCellIndicatorFn
4811
5227
  );
4812
5228
 
@@ -4900,21 +5316,21 @@ function HeadlessTable(props) {
4900
5316
  );
4901
5317
  return removeOnRenderCount;
4902
5318
  }, [brain]);
4903
- return /* @__PURE__ */ React13.createElement(
5319
+ return /* @__PURE__ */ React14.createElement(
4904
5320
  VirtualScrollContainer,
4905
5321
  {
4906
5322
  onContainerScroll,
4907
5323
  ...domProps,
4908
5324
  ref: scrollerDOMRef
4909
5325
  },
4910
- /* @__PURE__ */ React13.createElement(
5326
+ /* @__PURE__ */ React14.createElement(
4911
5327
  "div",
4912
5328
  {
4913
5329
  ref: domRef,
4914
5330
  className: CHILD_TO_SCROLL_CLS,
4915
5331
  "data-name": "scroll-transform-target"
4916
5332
  },
4917
- /* @__PURE__ */ React13.createElement(
5333
+ /* @__PURE__ */ React14.createElement(
4918
5334
  RawTable,
4919
5335
  {
4920
5336
  forceRerenderTimestamp,
@@ -4926,7 +5342,7 @@ function HeadlessTable(props) {
4926
5342
  cellHoverClassNames
4927
5343
  }
4928
5344
  ),
4929
- activeCellIndex != null ? /* @__PURE__ */ React13.createElement(
5345
+ activeCellIndex != null ? /* @__PURE__ */ React14.createElement(
4930
5346
  ActiveCellIndicator,
4931
5347
  {
4932
5348
  brain,
@@ -4935,8 +5351,8 @@ function HeadlessTable(props) {
4935
5351
  }
4936
5352
  ) : null
4937
5353
  ),
4938
- activeRowIndex != null ? /* @__PURE__ */ React13.createElement(ActiveRowIndicator, { brain, activeRowIndex }) : null,
4939
- /* @__PURE__ */ React13.createElement(
5354
+ activeRowIndex != null ? /* @__PURE__ */ React14.createElement(ActiveRowIndicator, { brain, activeRowIndex }) : null,
5355
+ /* @__PURE__ */ React14.createElement(
4940
5356
  SpacePlaceholder,
4941
5357
  {
4942
5358
  width: scrollSize.width,
@@ -4947,7 +5363,7 @@ function HeadlessTable(props) {
4947
5363
  }
4948
5364
 
4949
5365
  // src/components/hooks/useComponentState/index.tsx
4950
- var React14 = __toESM(require("react"));
5366
+ var React15 = __toESM(require("react"));
4951
5367
  var import_react14 = require("react");
4952
5368
 
4953
5369
  // src/utils/proxyFnCall.ts
@@ -5346,9 +5762,9 @@ function buildManagedComponent(config) {
5346
5762
  });
5347
5763
  return { contextValue, ContextComponent: Context };
5348
5764
  }
5349
- const ManagedComponentContextProvider = React14.memo(function CSR(props) {
5765
+ const ManagedComponentContextProvider = React15.memo(function CSR(props) {
5350
5766
  const { contextValue, ContextComponent } = useManagedComponent(props);
5351
- return /* @__PURE__ */ React14.createElement(ContextComponent.Provider, { value: contextValue }, props.children);
5767
+ return /* @__PURE__ */ React15.createElement(ContextComponent.Provider, { value: contextValue }, props.children);
5352
5768
  });
5353
5769
  return {
5354
5770
  ManagedComponentContextProvider,
@@ -5357,11 +5773,11 @@ function buildManagedComponent(config) {
5357
5773
  }
5358
5774
  function useManagedComponentState() {
5359
5775
  const Context = getComponentStateContext();
5360
- return React14.useContext(Context);
5776
+ return React15.useContext(Context);
5361
5777
  }
5362
5778
 
5363
5779
  // src/components/InfiniteTable/components/InfiniteTableFooter/InfiniteTableFooter.tsx
5364
- var React15 = __toESM(require("react"));
5780
+ var React16 = __toESM(require("react"));
5365
5781
 
5366
5782
  // src/components/InfiniteTable/hooks/useInternalProps.ts
5367
5783
  var useInternalProps = () => {
@@ -5391,7 +5807,7 @@ var zIndex = { "1": "utilities_zIndex_1__16lm1iwo", "10": "utilities_zIndex_10__
5391
5807
  // src/components/InfiniteTable/components/InfiniteTableFooter/InfiniteTableFooter.tsx
5392
5808
  function InfiniteTableFooter(props) {
5393
5809
  const { rootClassName: rootClassName12 } = useInternalProps();
5394
- return /* @__PURE__ */ React15.createElement(
5810
+ return /* @__PURE__ */ React16.createElement(
5395
5811
  "div",
5396
5812
  {
5397
5813
  ...props,
@@ -5407,7 +5823,7 @@ function InfiniteTableFooter(props) {
5407
5823
  }
5408
5824
 
5409
5825
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderCell.tsx
5410
- var React42 = __toESM(require("react"));
5826
+ var React43 = __toESM(require("react"));
5411
5827
  var import_react29 = require("react");
5412
5828
  var import_react_dom = require("react-dom");
5413
5829
 
@@ -5421,7 +5837,7 @@ function keyMirror(obj) {
5421
5837
  }
5422
5838
 
5423
5839
  // src/components/InfiniteTable/components/icons/Icon.tsx
5424
- var React16 = __toESM(require("react"));
5840
+ var React17 = __toESM(require("react"));
5425
5841
  var Icon = (props) => {
5426
5842
  const size = props.size ?? `var(--infinite-icon-size)`;
5427
5843
  const style2 = {
@@ -5433,69 +5849,69 @@ var Icon = (props) => {
5433
5849
  };
5434
5850
  return (
5435
5851
  //@ts-ignore
5436
- /* @__PURE__ */ React16.createElement("svg", { viewBox: "0 0 24 24", ...props, style: style2 }, props.children)
5852
+ /* @__PURE__ */ React17.createElement("svg", { viewBox: "0 0 24 24", ...props, style: style2 }, props.children)
5437
5853
  );
5438
5854
  };
5439
5855
 
5440
5856
  // src/components/InfiniteTable/components/icons/IncludesOperatorIcon.tsx
5441
- var React17 = __toESM(require("react"));
5857
+ var React18 = __toESM(require("react"));
5442
5858
  var IncludesOperatorIcon = (props) => {
5443
- return /* @__PURE__ */ React17.createElement(Icon, { ...props }, /* @__PURE__ */ React17.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4H11.14M12 6.29L14.03 11.71H9.96L12 6.29" }), /* @__PURE__ */ React17.createElement("path", { d: "M4 18V15H2V20H22V18Z" }), /* @__PURE__ */ React17.createElement("path", { d: "M20 14V18H2V20H22V14Z" }));
5859
+ return /* @__PURE__ */ React18.createElement(Icon, { ...props }, /* @__PURE__ */ React18.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4H11.14M12 6.29L14.03 11.71H9.96L12 6.29" }), /* @__PURE__ */ React18.createElement("path", { d: "M4 18V15H2V20H22V18Z" }), /* @__PURE__ */ React18.createElement("path", { d: "M20 14V18H2V20H22V14Z" }));
5444
5860
  };
5445
5861
 
5446
5862
  // src/components/InfiniteTable/components/icons/EndsWithOperatorIcon.tsx
5447
- var React18 = __toESM(require("react"));
5863
+ var React19 = __toESM(require("react"));
5448
5864
  var EndsWithOperatorIcon = (props) => {
5449
- return /* @__PURE__ */ React18.createElement(Icon, { ...props }, /* @__PURE__ */ React18.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H2V20H22V14Z" }));
5865
+ return /* @__PURE__ */ React19.createElement(Icon, { ...props }, /* @__PURE__ */ React19.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M20 14V18H2V20H22V14Z" }));
5450
5866
  };
5451
5867
 
5452
5868
  // src/components/InfiniteTable/components/icons/EqualOperatorIcon.tsx
5453
- var React19 = __toESM(require("react"));
5869
+ var React20 = __toESM(require("react"));
5454
5870
  var EqualOperatorIcon = (props) => {
5455
- return /* @__PURE__ */ React19.createElement(Icon, { ...props }, /* @__PURE__ */ React19.createElement("path", { d: "M19,10H5V8H19V10M19,16H5V14H19V16Z" }));
5871
+ return /* @__PURE__ */ React20.createElement(Icon, { ...props }, /* @__PURE__ */ React20.createElement("path", { d: "M19,10H5V8H19V10M19,16H5V14H19V16Z" }));
5456
5872
  };
5457
5873
 
5458
5874
  // src/components/InfiniteTable/components/icons/GTEOperatorIcon.tsx
5459
- var React20 = __toESM(require("react"));
5875
+ var React21 = __toESM(require("react"));
5460
5876
  var GTEOperatorIcon = (props) => {
5461
- return /* @__PURE__ */ React20.createElement(Icon, { ...props }, /* @__PURE__ */ React20.createElement("path", { d: "M6.5,2.27L20,10.14L6.5,18L5.5,16.27L16.03,10.14L5.5,4L6.5,2.27M20,20V22H5V20H20Z" }));
5877
+ return /* @__PURE__ */ React21.createElement(Icon, { ...props }, /* @__PURE__ */ React21.createElement("path", { d: "M6.5,2.27L20,10.14L6.5,18L5.5,16.27L16.03,10.14L5.5,4L6.5,2.27M20,20V22H5V20H20Z" }));
5462
5878
  };
5463
5879
 
5464
5880
  // src/components/InfiniteTable/components/icons/GTOperatorIcon.tsx
5465
- var React21 = __toESM(require("react"));
5881
+ var React22 = __toESM(require("react"));
5466
5882
  var GTOperatorIcon = (props) => {
5467
- return /* @__PURE__ */ React21.createElement(Icon, { ...props }, /* @__PURE__ */ React21.createElement("path", { d: "M5.5,4.14L4.5,5.86L15,12L4.5,18.14L5.5,19.86L19,12L5.5,4.14Z" }));
5883
+ return /* @__PURE__ */ React22.createElement(Icon, { ...props }, /* @__PURE__ */ React22.createElement("path", { d: "M5.5,4.14L4.5,5.86L15,12L4.5,18.14L5.5,19.86L19,12L5.5,4.14Z" }));
5468
5884
  };
5469
5885
 
5470
5886
  // src/components/InfiniteTable/components/icons/LTEOperatorIcon.tsx
5471
- var React22 = __toESM(require("react"));
5887
+ var React23 = __toESM(require("react"));
5472
5888
  var LTEOperatorIcon = (props) => {
5473
- return /* @__PURE__ */ React22.createElement(Icon, { ...props }, /* @__PURE__ */ React22.createElement("path", { d: "M18.5,2.27L5,10.14L18.5,18L19.5,16.27L8.97,10.14L19.5,4L18.5,2.27M5,20V22H20V20H5Z" }));
5889
+ return /* @__PURE__ */ React23.createElement(Icon, { ...props }, /* @__PURE__ */ React23.createElement("path", { d: "M18.5,2.27L5,10.14L18.5,18L19.5,16.27L8.97,10.14L19.5,4L18.5,2.27M5,20V22H20V20H5Z" }));
5474
5890
  };
5475
5891
 
5476
5892
  // src/components/InfiniteTable/components/icons/LTOperatorIcon.tsx
5477
- var React23 = __toESM(require("react"));
5893
+ var React24 = __toESM(require("react"));
5478
5894
  var LTOperatorIcon = (props) => {
5479
- return /* @__PURE__ */ React23.createElement(Icon, { ...props }, /* @__PURE__ */ React23.createElement("path", { d: "M18.5,4.14L19.5,5.86L8.97,12L19.5,18.14L18.5,19.86L5,12L18.5,4.14Z" }));
5895
+ return /* @__PURE__ */ React24.createElement(Icon, { ...props }, /* @__PURE__ */ React24.createElement("path", { d: "M18.5,4.14L19.5,5.86L8.97,12L19.5,18.14L18.5,19.86L5,12L18.5,4.14Z" }));
5480
5896
  };
5481
5897
 
5482
5898
  // src/components/InfiniteTable/components/icons/NotEqualOperatorIcon.tsx
5483
- var React24 = __toESM(require("react"));
5899
+ var React25 = __toESM(require("react"));
5484
5900
  var NotEqualOperatorIcon = (props) => {
5485
- return /* @__PURE__ */ React24.createElement(Icon, { ...props }, /* @__PURE__ */ React24.createElement("path", { d: "M21,10H9V8H21V10M21,16H9V14H21V16M4,5H6V16H4V5M6,18V20H4V18H6Z" }));
5901
+ return /* @__PURE__ */ React25.createElement(Icon, { ...props }, /* @__PURE__ */ React25.createElement("path", { d: "M21,10H9V8H21V10M21,16H9V14H21V16M4,5H6V16H4V5M6,18V20H4V18H6Z" }));
5486
5902
  };
5487
5903
 
5488
5904
  // src/components/InfiniteTable/components/icons/StartsWithOperatorIcon.tsx
5489
- var React25 = __toESM(require("react"));
5905
+ var React26 = __toESM(require("react"));
5490
5906
  var StartsWithOperatorIcon = (props) => {
5491
- return /* @__PURE__ */ React25.createElement(Icon, { ...props }, /* @__PURE__ */ React25.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M4 18V15H2V20H22V18Z" }));
5907
+ return /* @__PURE__ */ React26.createElement(Icon, { ...props }, /* @__PURE__ */ React26.createElement("path", { d: "M11.14 4L6.43 16H8.36L9.32 13.43H14.67L15.64 16H17.57L12.86 4M12 6.29L14.03 11.71H9.96M4 18V15H2V20H22V18Z" }));
5492
5908
  };
5493
5909
 
5494
5910
  // src/components/InfiniteTable/components/FilterEditors.tsx
5495
- var React29 = __toESM(require("react"));
5911
+ var React30 = __toESM(require("react"));
5496
5912
 
5497
5913
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableColumnHeaderFilter.tsx
5498
- var React28 = __toESM(require("react"));
5914
+ var React29 = __toESM(require("react"));
5499
5915
  var import_react20 = require("react");
5500
5916
 
5501
5917
  // src/components/InfiniteTable/hooks/useInfiniteTable.ts
@@ -5528,7 +5944,7 @@ var useInfiniteTableState = () => {
5528
5944
  };
5529
5945
 
5530
5946
  // src/components/InfiniteTable/components/icons/FilterIcon.tsx
5531
- var React26 = __toESM(require("react"));
5947
+ var React27 = __toESM(require("react"));
5532
5948
  var import_react18 = require("react");
5533
5949
 
5534
5950
  // src/components/InfiniteTable/components/InfiniteTableHeader/header.css.ts
@@ -5594,7 +6010,7 @@ function FilterIcon(props) {
5594
6010
  return null;
5595
6011
  }
5596
6012
  const indexStyle = {};
5597
- return /* @__PURE__ */ React26.createElement(
6013
+ return /* @__PURE__ */ React27.createElement(
5598
6014
  "div",
5599
6015
  {
5600
6016
  "data-name": "filter-icon",
@@ -5606,7 +6022,7 @@ function FilterIcon(props) {
5606
6022
  `${InfiniteIconClassName}-filter`
5607
6023
  )
5608
6024
  },
5609
- showIndex ? /* @__PURE__ */ React26.createElement(
6025
+ showIndex ? /* @__PURE__ */ React27.createElement(
5610
6026
  "div",
5611
6027
  {
5612
6028
  "data-name": "index",
@@ -5615,9 +6031,9 @@ function FilterIcon(props) {
5615
6031
  },
5616
6032
  index
5617
6033
  ) : null,
5618
- /* @__PURE__ */ React26.createElement("div", { style: { width: sizes[0], ...lineStyle } }),
5619
- /* @__PURE__ */ React26.createElement("div", { style: { width: sizes[1], ...lineStyle } }),
5620
- /* @__PURE__ */ React26.createElement("div", { style: { width: sizes[2], ...lineStyle } })
6034
+ /* @__PURE__ */ React27.createElement("div", { style: { width: sizes[0], ...lineStyle } }),
6035
+ /* @__PURE__ */ React27.createElement("div", { style: { width: sizes[1], ...lineStyle } }),
6036
+ /* @__PURE__ */ React27.createElement("div", { style: { width: sizes[2], ...lineStyle } })
5621
6037
  );
5622
6038
  }
5623
6039
 
@@ -6678,14 +7094,14 @@ function InfiniteTableColumnHeaderFilter(props) {
6678
7094
  const FilterEditor = props.filterEditor;
6679
7095
  const FilterOperatorSwitch = props.filterOperatorSwitch;
6680
7096
  const [focused, setFocused] = (0, import_react20.useState)(false);
6681
- const onFocus = React28.useCallback(() => {
7097
+ const onFocus = React29.useCallback(() => {
6682
7098
  setFocused(true);
6683
7099
  }, []);
6684
- const onBlur = React28.useCallback(() => {
7100
+ const onBlur = React29.useCallback(() => {
6685
7101
  setFocused(false);
6686
7102
  }, []);
6687
7103
  const active = filterOperatorMenuVisibleForColumnId === column.id || focused;
6688
- return /* @__PURE__ */ React28.createElement(
7104
+ return /* @__PURE__ */ React29.createElement(
6689
7105
  "div",
6690
7106
  {
6691
7107
  onPointerUp: stopPropagation,
@@ -6699,13 +7115,13 @@ function InfiniteTableColumnHeaderFilter(props) {
6699
7115
  )}`,
6700
7116
  style: { height: props.columnHeaderHeight }
6701
7117
  },
6702
- /* @__PURE__ */ React28.createElement(InfiniteTableColumnHeaderFilterContext.Provider, { value: props }, /* @__PURE__ */ React28.createElement(FilterOperatorSwitch, null), /* @__PURE__ */ React28.createElement(FilterEditor, null))
7118
+ /* @__PURE__ */ React29.createElement(InfiniteTableColumnHeaderFilterContext.Provider, { value: props }, /* @__PURE__ */ React29.createElement(FilterOperatorSwitch, null), /* @__PURE__ */ React29.createElement(FilterEditor, null))
6703
7119
  );
6704
7120
  }
6705
7121
  function InfiniteTableFilterOperatorSwitch() {
6706
7122
  const { columnApi, disabled, operator } = useInfiniteColumnFilterEditor();
6707
7123
  const Icon2 = operator?.components?.Icon ?? FilterIcon;
6708
- return /* @__PURE__ */ React28.createElement(
7124
+ return /* @__PURE__ */ React29.createElement(
6709
7125
  "div",
6710
7126
  {
6711
7127
  "data-name": "filter-operator",
@@ -6723,7 +7139,7 @@ function InfiniteTableFilterOperatorSwitch() {
6723
7139
  disabled ? `${InfiniteTableColumnHeaderFilterOperatorClassName}--disabled` : ""
6724
7140
  )
6725
7141
  },
6726
- /* @__PURE__ */ React28.createElement(
7142
+ /* @__PURE__ */ React29.createElement(
6727
7143
  Icon2,
6728
7144
  {
6729
7145
  size: 20,
@@ -6735,7 +7151,7 @@ function InfiniteTableFilterOperatorSwitch() {
6735
7151
  );
6736
7152
  }
6737
7153
  function InfiniteTableColumnHeaderFilterEmpty() {
6738
- return /* @__PURE__ */ React28.createElement(
7154
+ return /* @__PURE__ */ React29.createElement(
6739
7155
  "div",
6740
7156
  {
6741
7157
  onPointerUp: stopPropagation,
@@ -6750,7 +7166,7 @@ function useInfiniteColumnFilterEditor() {
6750
7166
  const context = useInfiniteTable();
6751
7167
  const { column, columnApi } = useInfiniteHeaderCell();
6752
7168
  const columnLabel = getColumnLabel(column, context);
6753
- const filterContextValue = React28.useContext(
7169
+ const filterContextValue = React29.useContext(
6754
7170
  InfiniteTableColumnHeaderFilterContext
6755
7171
  );
6756
7172
  const { columnFilterType, filterTypes, columnFilterValue } = filterContextValue;
@@ -6758,17 +7174,17 @@ function useInfiniteColumnFilterEditor() {
6758
7174
  const [theValue, setTheValue] = (0, import_react20.useState)(
6759
7175
  columnFilterValue?.filter.value ?? ""
6760
7176
  );
6761
- const onInputChange = React28.useCallback(
7177
+ const onInputChange = React29.useCallback(
6762
7178
  (filterValue) => {
6763
7179
  setTheValue(filterValue);
6764
7180
  filterContextValue.onChange(filterValue);
6765
7181
  },
6766
7182
  [filterContextValue.onChange]
6767
7183
  );
6768
- const clearValue = React28.useCallback(() => {
7184
+ const clearValue = React29.useCallback(() => {
6769
7185
  context.api.clearColumnFilter(column.id);
6770
7186
  }, [column.id]);
6771
- const removeColumnFilter = React28.useCallback(() => {
7187
+ const removeColumnFilter = React29.useCallback(() => {
6772
7188
  context.api.removeColumnFilter(column.id);
6773
7189
  }, [column.id]);
6774
7190
  (0, import_react20.useEffect)(() => {
@@ -6811,7 +7227,7 @@ function useInfiniteColumnFilterEditor() {
6811
7227
  // src/components/InfiniteTable/components/FilterEditors.tsx
6812
7228
  function StringFilterEditor() {
6813
7229
  const { ariaLabel, value, setValue, className, disabled } = useInfiniteColumnFilterEditor();
6814
- return /* @__PURE__ */ React29.createElement(
7230
+ return /* @__PURE__ */ React30.createElement(
6815
7231
  "input",
6816
7232
  {
6817
7233
  "data-xxx": true,
@@ -6828,7 +7244,7 @@ function StringFilterEditor() {
6828
7244
  }
6829
7245
  function NumberFilterEditor() {
6830
7246
  const { ariaLabel, value, setValue, className, disabled } = useInfiniteColumnFilterEditor();
6831
- return /* @__PURE__ */ React29.createElement(
7247
+ return /* @__PURE__ */ React30.createElement(
6832
7248
  "input",
6833
7249
  {
6834
7250
  "aria-label": ariaLabel,
@@ -7311,7 +7727,7 @@ function useDOMProps(initialDOMProps) {
7311
7727
  }
7312
7728
 
7313
7729
  // src/components/InfiniteTable/hooks/reorderColumnsOnDrag.ts
7314
- var import_binary_search2 = __toESM(require_binary_search());
7730
+ var import_binary_search4 = __toESM(require_binary_search());
7315
7731
 
7316
7732
  // src/components/InfiniteTable/utils/CSSCalc.ts
7317
7733
  function mapToContinuation(args) {
@@ -7745,7 +8161,7 @@ function reorderColumnsOnDrag(params) {
7745
8161
  restrictToParentGroup: draggableColumnsRestrictTo === "group"
7746
8162
  });
7747
8163
  let currentPos = dir === -1 ? dragColumn.computedOffset + diffX : dragColumn.computedOffset + dragColumn.computedWidth + diffX;
7748
- let idx = (0, import_binary_search2.default)(
8164
+ let idx = (0, import_binary_search4.default)(
7749
8165
  breakpoints,
7750
8166
  currentPos,
7751
8167
  ({ offsetX }, value) => {
@@ -8086,14 +8502,14 @@ var useColumnPointerEvents = ({
8086
8502
  };
8087
8503
 
8088
8504
  // src/components/InfiniteTable/utils/RenderHookComponentForInfinite.tsx
8089
- var React37 = __toESM(require("react"));
8505
+ var React38 = __toESM(require("react"));
8090
8506
 
8091
8507
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnCell.tsx
8092
- var React36 = __toESM(require("react"));
8508
+ var React37 = __toESM(require("react"));
8093
8509
  var import_react25 = require("react");
8094
8510
 
8095
8511
  // src/components/InfiniteTable/utils/getColumnForGroupBy.tsx
8096
- var React32 = __toESM(require("react"));
8512
+ var React33 = __toESM(require("react"));
8097
8513
 
8098
8514
  // src/components/DataSource/state/rowInfoStatus.ts
8099
8515
  var showLoadingIcon = (rowInfo) => {
@@ -8104,7 +8520,7 @@ var showLoadingIcon = (rowInfo) => {
8104
8520
  };
8105
8521
 
8106
8522
  // src/components/InfiniteTable/components/icons/ExpandCollapseIcon.tsx
8107
- var React30 = __toESM(require("react"));
8523
+ var React31 = __toESM(require("react"));
8108
8524
  var import_react22 = require("react");
8109
8525
 
8110
8526
  // src/components/InfiniteTable/components/icons/ExpandCollapseIcon.css.ts
@@ -8124,13 +8540,13 @@ function ExpandCollapseIcon(props) {
8124
8540
  setExpanded(!expanded);
8125
8541
  }
8126
8542
  };
8127
- React30.useEffect(() => {
8543
+ React31.useEffect(() => {
8128
8544
  if (isControlled("expanded", props)) {
8129
8545
  setExpanded(props.expanded);
8130
8546
  }
8131
8547
  }, [props.expanded]);
8132
8548
  const currentState = expanded ? "expanded" : "collapsed";
8133
- return /* @__PURE__ */ React30.createElement(
8549
+ return /* @__PURE__ */ React31.createElement(
8134
8550
  "svg",
8135
8551
  {
8136
8552
  "data-name": "expand-collapse-icon",
@@ -8157,19 +8573,19 @@ function ExpandCollapseIcon(props) {
8157
8573
  disabled ? `${THIS_ICON}--disabled` : ""
8158
8574
  )
8159
8575
  },
8160
- /* @__PURE__ */ React30.createElement("path", { d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z" })
8576
+ /* @__PURE__ */ React31.createElement("path", { d: "M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z" })
8161
8577
  );
8162
8578
  }
8163
8579
 
8164
8580
  // src/components/InfiniteTable/components/icons/LoadingIcon.tsx
8165
- var React31 = __toESM(require("react"));
8581
+ var React32 = __toESM(require("react"));
8166
8582
 
8167
8583
  // src/components/InfiniteTable/components/icons/LoadingIcon.css.ts
8168
8584
  var LoadingIconCls = "utilities_stroke_accentColor__16lm1iwb utilities_flex_none__16lm1iwn utilities_cursor_pointer__16lm1iwi";
8169
8585
 
8170
8586
  // src/components/InfiniteTable/components/icons/LoadingIcon.tsx
8171
8587
  var LoadingIcon = (props) => {
8172
- return /* @__PURE__ */ React31.createElement(
8588
+ return /* @__PURE__ */ React32.createElement(
8173
8589
  "svg",
8174
8590
  {
8175
8591
  xmlns: "http://www.w3.org/2000/svg",
@@ -8189,7 +8605,7 @@ var LoadingIcon = (props) => {
8189
8605
  "InfiniteIcon-loading"
8190
8606
  )
8191
8607
  },
8192
- /* @__PURE__ */ React31.createElement(
8608
+ /* @__PURE__ */ React32.createElement(
8193
8609
  "circle",
8194
8610
  {
8195
8611
  cx: "50",
@@ -8199,7 +8615,7 @@ var LoadingIcon = (props) => {
8199
8615
  r: "35",
8200
8616
  strokeDasharray: "164.93361431346415 56.97787143782138"
8201
8617
  },
8202
- /* @__PURE__ */ React31.createElement(
8618
+ /* @__PURE__ */ React32.createElement(
8203
8619
  "animateTransform",
8204
8620
  {
8205
8621
  attributeName: "transform",
@@ -8244,11 +8660,11 @@ function getGroupColumnRender({
8244
8660
  );
8245
8661
  if (groupRenderStrategy === "multi-column") {
8246
8662
  if (groupIndexForColumn + 1 !== groupRowInfo.groupNesting && groupRowInfo.isGroupRow) {
8247
- return selectionCheckBox ? /* @__PURE__ */ React32.createElement("div", { className }, selectionCheckBox) : null;
8663
+ return selectionCheckBox ? /* @__PURE__ */ React33.createElement("div", { className }, selectionCheckBox) : null;
8248
8664
  }
8249
8665
  } else if (groupRenderStrategy === "single-column" && !groupRowInfo.isGroupRow) {
8250
8666
  }
8251
- return /* @__PURE__ */ React32.createElement("div", { className }, groupIcon, selectionCheckBox, /* @__PURE__ */ React32.createElement("div", { className: cssEllipsisClassName }, valueToRender ?? null));
8667
+ return /* @__PURE__ */ React33.createElement("div", { className }, groupIcon, selectionCheckBox, /* @__PURE__ */ React33.createElement("div", { className: cssEllipsisClassName }, valueToRender ?? null));
8252
8668
  };
8253
8669
  }
8254
8670
  function getGroupColumnRenderGroupIcon({
@@ -8296,9 +8712,9 @@ function getGroupColumnRenderGroupIcon({
8296
8712
  const showExpanderIcon = pivotBy ? (groupRowInfo.groupKeys?.length || 0) < groupBy?.length : (groupRowInfo.groupKeys?.length || 0) <= groupBy?.length;
8297
8713
  const isLoading = showLoadingIcon(groupRowInfo);
8298
8714
  if (isLoading) {
8299
- icon = /* @__PURE__ */ React32.createElement(LoadingIcon, null);
8715
+ icon = /* @__PURE__ */ React33.createElement(LoadingIcon, null);
8300
8716
  } else if (showExpanderIcon) {
8301
- const defaultIcon = /* @__PURE__ */ React32.createElement(
8717
+ const defaultIcon = /* @__PURE__ */ React33.createElement(
8302
8718
  ExpandCollapseIcon,
8303
8719
  {
8304
8720
  expanded: !collapsed,
@@ -8312,7 +8728,7 @@ function getGroupColumnRenderGroupIcon({
8312
8728
  }
8313
8729
  if (initialRenderGroupIcon) {
8314
8730
  renderOptions.renderBag.groupIcon = icon;
8315
- icon = /* @__PURE__ */ React32.createElement(
8731
+ icon = /* @__PURE__ */ React33.createElement(
8316
8732
  RenderCellHookComponent,
8317
8733
  {
8318
8734
  render: initialRenderGroupIcon,
@@ -8400,7 +8816,7 @@ var FlashingColumnCellRecipe = createRuntimeFn({ defaultClassName: "cell_Flashin
8400
8816
  var SelectionCheckboxCls = "cell_SelectionCheckboxCls__1eexc2a7";
8401
8817
 
8402
8818
  // src/components/InfiniteTable/components/CheckBox.tsx
8403
- var React33 = __toESM(require("react"));
8819
+ var React34 = __toESM(require("react"));
8404
8820
  var import_react23 = require("react");
8405
8821
 
8406
8822
  // src/components/InfiniteTable/components/CheckBox.css.ts
@@ -8439,7 +8855,7 @@ function InfiniteCheckBoxComponent() {
8439
8855
  (0, import_react23.useEffect)(() => {
8440
8856
  inputRef.current.indeterminate = checked == null;
8441
8857
  }, [checked]);
8442
- return /* @__PURE__ */ React33.createElement(
8858
+ return /* @__PURE__ */ React34.createElement(
8443
8859
  "input",
8444
8860
  {
8445
8861
  ...domProps,
@@ -8458,7 +8874,7 @@ function InfiniteCheckBoxComponent() {
8458
8874
  );
8459
8875
  }
8460
8876
  function InfiniteCheckBox(props) {
8461
- return /* @__PURE__ */ React33.createElement(InfiniteCheckBoxRoot, { ...props }, /* @__PURE__ */ React33.createElement(InfiniteCheckBoxComponent, null));
8877
+ return /* @__PURE__ */ React34.createElement(InfiniteCheckBoxRoot, { ...props }, /* @__PURE__ */ React34.createElement(InfiniteCheckBoxComponent, null));
8462
8878
  }
8463
8879
 
8464
8880
  // src/components/InfiniteTable/components/InfiniteTableRow/columnRendering.tsx
@@ -8882,7 +9298,7 @@ function getFormattedValueContextForCell(options) {
8882
9298
  }
8883
9299
 
8884
9300
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableCell.tsx
8885
- var React34 = __toESM(require("react"));
9301
+ var React35 = __toESM(require("react"));
8886
9302
  var { rootClassName: rootClassName5 } = internalProps;
8887
9303
  var InfiniteTableCellClassName = `${rootClassName5}Cell`;
8888
9304
  var InfiniteTableCellContentClassName = `${rootClassName5}Cell_content`;
@@ -8929,7 +9345,7 @@ function InfiniteTableCellFn(props) {
8929
9345
  // ? `${InfiniteTableCellClassName}--shifting ${CellClsVariants.shifting}`
8930
9346
  // : '',
8931
9347
  ),
8932
- children: /* @__PURE__ */ React34.createElement(React34.Fragment, null, beforeChildren, /* @__PURE__ */ React34.createElement(
9348
+ children: /* @__PURE__ */ React35.createElement(React35.Fragment, null, beforeChildren, /* @__PURE__ */ React35.createElement(
8933
9349
  "div",
8934
9350
  {
8935
9351
  className: join(
@@ -8947,21 +9363,21 @@ function InfiniteTableCellFn(props) {
8947
9363
  }
8948
9364
  const RenderComponent = cellType === "body" ? column.components?.ColumnCell : column.components?.HeaderCell;
8949
9365
  if (RenderComponent) {
8950
- return /* @__PURE__ */ React34.createElement(RenderComponent, { ...finalDOMProps, ref: domRef });
9366
+ return /* @__PURE__ */ React35.createElement(RenderComponent, { ...finalDOMProps, ref: domRef });
8951
9367
  }
8952
- return /* @__PURE__ */ React34.createElement("div", { ...finalDOMProps, ref: domRef });
9368
+ return /* @__PURE__ */ React35.createElement("div", { ...finalDOMProps, ref: domRef });
8953
9369
  }
8954
- var InfiniteTableCell = React34.memo(
9370
+ var InfiniteTableCell = React35.memo(
8955
9371
  InfiniteTableCellFn
8956
9372
  );
8957
9373
 
8958
9374
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableColumnEditor.tsx
8959
- var React35 = __toESM(require("react"));
9375
+ var React36 = __toESM(require("react"));
8960
9376
  var import_react24 = require("react");
8961
9377
  function InfiniteTableColumnEditor() {
8962
9378
  const { initialValue, setValue, confirmEdit, cancelEdit, readOnly } = useInfiniteColumnEditor();
8963
9379
  const domRef = (0, import_react24.useRef)();
8964
- const refCallback = React35.useCallback((node) => {
9380
+ const refCallback = React36.useCallback((node) => {
8965
9381
  domRef.current = node;
8966
9382
  if (node) {
8967
9383
  node.focus();
@@ -8977,7 +9393,7 @@ function InfiniteTableColumnEditor() {
8977
9393
  event.stopPropagation();
8978
9394
  }
8979
9395
  }, []);
8980
- return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(
9396
+ return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(
8981
9397
  "input",
8982
9398
  {
8983
9399
  readOnly,
@@ -9004,11 +9420,11 @@ function styleForTreeColumn({
9004
9420
  [stripVar(ThemeVars.components.Row.groupNesting)]: rowInfo.isTreeNode ? rowInfo.isParentNode ? rowInfo.treeNesting : rowInfo.treeNesting + 1 : 0
9005
9421
  };
9006
9422
  }
9007
- var InfiniteTableColumnCellContext = React36.createContext(null);
9423
+ var InfiniteTableColumnCellContext = React37.createContext(null);
9008
9424
  var InfiniteTableColumnCellClassName = `${rootClassName6}ColumnCell`;
9009
9425
  var defaultRenderRowDetailIcon = (params) => {
9010
9426
  const { toggleCurrentRowDetails, rowDetailState } = params;
9011
- return /* @__PURE__ */ React36.createElement(
9427
+ return /* @__PURE__ */ React37.createElement(
9012
9428
  ExpandCollapseIcon,
9013
9429
  {
9014
9430
  style: {
@@ -9026,7 +9442,7 @@ var EXPANDER_STYLE = {
9026
9442
  var defaultRenderTreeIcon = (params) => {
9027
9443
  const { rowInfo, toggleCurrentTreeNode, nodeExpanded, api } = params;
9028
9444
  const isNodeReadOnly2 = api.getDataSourceState().isNodeReadOnly;
9029
- return /* @__PURE__ */ React36.createElement(
9445
+ return /* @__PURE__ */ React37.createElement(
9030
9446
  ExpandCollapseIcon,
9031
9447
  {
9032
9448
  disabled: rowInfo.isTreeNode && rowInfo.isParentNode ? isNodeReadOnly2(rowInfo) : false,
@@ -9051,7 +9467,7 @@ var defaultRenderSelectionCheckBox = (params) => {
9051
9467
  const { components: components2 } = api.getState();
9052
9468
  const isNodeSelectable2 = api.getDataSourceState().isNodeSelectable;
9053
9469
  const CheckBoxCmp = components2?.CheckBox || InfiniteCheckBox;
9054
- return /* @__PURE__ */ React36.createElement(
9470
+ return /* @__PURE__ */ React37.createElement(
9055
9471
  CheckBoxCmp,
9056
9472
  {
9057
9473
  domProps: {
@@ -9111,7 +9527,7 @@ function InfiniteTableColumnCellFn(props) {
9111
9527
  hidden,
9112
9528
  showZebraRows
9113
9529
  } = props;
9114
- const htmlElementRef = React36.useRef(null);
9530
+ const htmlElementRef = React37.useRef(null);
9115
9531
  const domRef = (0, import_react25.useCallback)(
9116
9532
  (node) => {
9117
9533
  htmlElementRef.current = node;
@@ -9122,7 +9538,7 @@ function InfiniteTableColumnCellFn(props) {
9122
9538
  [initialDomRef]
9123
9539
  );
9124
9540
  if (!column) {
9125
- return /* @__PURE__ */ React36.createElement("div", { ref: domRef }, "no column");
9541
+ return /* @__PURE__ */ React37.createElement("div", { ref: domRef }, "no column");
9126
9542
  }
9127
9543
  const { rowSelected } = rowInfo;
9128
9544
  const {
@@ -9172,7 +9588,7 @@ function InfiniteTableColumnCellFn(props) {
9172
9588
  } = colRenderingParams;
9173
9589
  const { align: align2, verticalAlign } = renderParams;
9174
9590
  const renderParam = renderParams;
9175
- const renderParamRef = React36.useRef(renderParam);
9591
+ const renderParamRef = React37.useRef(renderParam);
9176
9592
  const onClick = (0, import_react25.useCallback)(
9177
9593
  (event) => {
9178
9594
  const colIndex = column.computedVisibleIndex;
@@ -9237,7 +9653,7 @@ function InfiniteTableColumnCellFn(props) {
9237
9653
  [rowInfo]
9238
9654
  );
9239
9655
  const EditorComponent = column.components?.Editor ?? InfiniteTableColumnEditor;
9240
- const editor = inEdit ? /* @__PURE__ */ React36.createElement(CellEditorContextComponent, { contextValue: renderParam }, /* @__PURE__ */ React36.createElement(EditorComponent, null)) : null;
9656
+ const editor = inEdit ? /* @__PURE__ */ React37.createElement(CellEditorContextComponent, { contextValue: renderParam }, /* @__PURE__ */ React37.createElement(EditorComponent, null)) : null;
9241
9657
  const renderChildren = (0, import_react25.useCallback)(
9242
9658
  once(() => {
9243
9659
  if (hidden) {
@@ -9248,7 +9664,7 @@ function InfiniteTableColumnCellFn(props) {
9248
9664
  }
9249
9665
  renderParamRef.current = renderParam;
9250
9666
  if (renderFunctions.renderGroupIcon) {
9251
- renderParam.renderBag.groupIcon = /* @__PURE__ */ React36.createElement(
9667
+ renderParam.renderBag.groupIcon = /* @__PURE__ */ React37.createElement(
9252
9668
  RenderCellHookComponent,
9253
9669
  {
9254
9670
  render: renderFunctions.renderGroupIcon,
@@ -9260,7 +9676,7 @@ function InfiniteTableColumnCellFn(props) {
9260
9676
  );
9261
9677
  }
9262
9678
  if (renderFunctions.renderSelectionCheckBox && selectionMode == "multi-row") {
9263
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
9679
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React37.createElement(
9264
9680
  RenderCellHookComponent,
9265
9681
  {
9266
9682
  render: defaultRenderSelectionCheckBox,
@@ -9268,7 +9684,7 @@ function InfiniteTableColumnCellFn(props) {
9268
9684
  }
9269
9685
  );
9270
9686
  if (renderFunctions.renderSelectionCheckBox !== true) {
9271
- renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React36.createElement(
9687
+ renderParam.renderBag.selectionCheckBox = /* @__PURE__ */ React37.createElement(
9272
9688
  RenderCellHookComponent,
9273
9689
  {
9274
9690
  render: renderFunctions.renderSelectionCheckBox,
@@ -9289,7 +9705,7 @@ function InfiniteTableColumnCellFn(props) {
9289
9705
  if (fn === true) {
9290
9706
  fn = defaultRenderTreeIcon;
9291
9707
  } else if (fn) {
9292
- renderParam.renderBag.treeIcon = /* @__PURE__ */ React36.createElement(
9708
+ renderParam.renderBag.treeIcon = /* @__PURE__ */ React37.createElement(
9293
9709
  RenderCellHookComponent,
9294
9710
  {
9295
9711
  render: defaultRenderTreeIcon,
@@ -9298,7 +9714,7 @@ function InfiniteTableColumnCellFn(props) {
9298
9714
  );
9299
9715
  }
9300
9716
  if (fn) {
9301
- renderParam.renderBag.treeIcon = /* @__PURE__ */ React36.createElement(
9717
+ renderParam.renderBag.treeIcon = /* @__PURE__ */ React37.createElement(
9302
9718
  RenderCellHookComponent,
9303
9719
  {
9304
9720
  render: fn,
@@ -9311,7 +9727,7 @@ function InfiniteTableColumnCellFn(props) {
9311
9727
  }
9312
9728
  }
9313
9729
  if (renderFunctions.renderRowDetailIcon) {
9314
- renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React36.createElement(
9730
+ renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React37.createElement(
9315
9731
  RenderCellHookComponent,
9316
9732
  {
9317
9733
  render: defaultRenderRowDetailIcon,
@@ -9324,7 +9740,7 @@ function InfiniteTableColumnCellFn(props) {
9324
9740
  }
9325
9741
  );
9326
9742
  if (typeof renderFunctions.renderRowDetailIcon === "function") {
9327
- renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React36.createElement(
9743
+ renderParam.renderBag.rowDetailsIcon = /* @__PURE__ */ React37.createElement(
9328
9744
  RenderCellHookComponent,
9329
9745
  {
9330
9746
  render: renderFunctions.renderRowDetailIcon,
@@ -9337,7 +9753,7 @@ function InfiniteTableColumnCellFn(props) {
9337
9753
  }
9338
9754
  }
9339
9755
  if (renderFunctions.renderValue) {
9340
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
9756
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
9341
9757
  RenderCellHookComponent,
9342
9758
  {
9343
9759
  render: renderFunctions.renderValue,
@@ -9349,7 +9765,7 @@ function InfiniteTableColumnCellFn(props) {
9349
9765
  );
9350
9766
  }
9351
9767
  if (rowInfo.isGroupRow && renderFunctions.renderGroupValue) {
9352
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
9768
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
9353
9769
  RenderCellHookComponent,
9354
9770
  {
9355
9771
  render: renderFunctions.renderGroupValue,
@@ -9361,7 +9777,7 @@ function InfiniteTableColumnCellFn(props) {
9361
9777
  );
9362
9778
  }
9363
9779
  if (!rowInfo.isGroupRow && renderFunctions.renderLeafValue) {
9364
- renderParam.renderBag.value = /* @__PURE__ */ React36.createElement(
9780
+ renderParam.renderBag.value = /* @__PURE__ */ React37.createElement(
9365
9781
  RenderCellHookComponent,
9366
9782
  {
9367
9783
  render: renderFunctions.renderLeafValue,
@@ -9377,9 +9793,9 @@ function InfiniteTableColumnCellFn(props) {
9377
9793
  if (valueToRender instanceof Date) {
9378
9794
  valueToRender = valueToRender.toLocaleDateString();
9379
9795
  }
9380
- const all = /* @__PURE__ */ React36.createElement(React36.Fragment, null, align2 !== "end" ? renderParam.renderBag.treeIcon : null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 === "end" ? renderParam.renderBag.groupIcon : null, align2 === "end" ? renderParam.renderBag.treeIcon : null);
9796
+ const all = /* @__PURE__ */ React37.createElement(React37.Fragment, null, align2 !== "end" ? renderParam.renderBag.treeIcon : null, align2 !== "end" ? renderParam.renderBag.groupIcon : null, align2 !== "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 !== "end" ? renderParam.renderBag.selectionCheckBox : null, valueToRender, align2 === "end" ? renderParam.renderBag.selectionCheckBox : null, align2 === "end" ? renderParam.renderBag.rowDetailsIcon : null, align2 === "end" ? renderParam.renderBag.groupIcon : null, align2 === "end" ? renderParam.renderBag.treeIcon : null);
9381
9797
  if (column.render) {
9382
- return /* @__PURE__ */ React36.createElement(
9798
+ return /* @__PURE__ */ React37.createElement(
9383
9799
  RenderCellHookComponent,
9384
9800
  {
9385
9801
  render: column.render,
@@ -9565,16 +9981,16 @@ function InfiniteTableColumnCellFn(props) {
9565
9981
  return (
9566
9982
  // this context is here for supporting useInfiniteColumnCell to be used
9567
9983
  // with a custom column component, specified via column.components.ColumnCell
9568
- /* @__PURE__ */ React36.createElement(
9984
+ /* @__PURE__ */ React37.createElement(
9569
9985
  ContextProvider,
9570
9986
  {
9571
9987
  value: renderParamRef.current
9572
9988
  },
9573
- /* @__PURE__ */ React36.createElement(InfiniteTableCell, { ...cellProps })
9989
+ /* @__PURE__ */ React37.createElement(InfiniteTableCell, { ...cellProps })
9574
9990
  )
9575
9991
  );
9576
9992
  }
9577
- var InfiniteTableColumnCell = React36.memo(
9993
+ var InfiniteTableColumnCell = React37.memo(
9578
9994
  InfiniteTableColumnCellFn
9579
9995
  );
9580
9996
  function useInfiniteColumnCell() {
@@ -9589,14 +10005,14 @@ function useInfiniteColumnEditor() {
9589
10005
  state: { editingValueRef, editingCell }
9590
10006
  } = useInfiniteTable();
9591
10007
  const { column, rowInfo } = useInfiniteColumnCell();
9592
- const [initialValue] = React36.useState(() => editingCell?.value);
9593
- const [currentValue, setCurrentValue] = React36.useState(initialValue);
10008
+ const [initialValue] = React37.useState(() => editingCell?.value);
10009
+ const [currentValue, setCurrentValue] = React37.useState(initialValue);
9594
10010
  const readOnly = editingCell ? !editingCell.active && !!editingCell.waiting : false;
9595
- const setValue = React36.useCallback((value) => {
10011
+ const setValue = React37.useCallback((value) => {
9596
10012
  editingValueRef.current = value;
9597
10013
  setCurrentValue(value);
9598
10014
  }, []);
9599
- React36.useLayoutEffect(() => {
10015
+ React37.useLayoutEffect(() => {
9600
10016
  editingValueRef.current = initialValue;
9601
10017
  }, []);
9602
10018
  const confirmEdit = api.confirmEdit;
@@ -9624,7 +10040,7 @@ function RenderHookComponent(props) {
9624
10040
  // src/components/InfiniteTable/utils/RenderHookComponentForInfinite.tsx
9625
10041
  function RenderCellHookComponent(props) {
9626
10042
  const ContextProvider = InfiniteTableColumnCellContext.Provider;
9627
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React37.createElement(
10043
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React38.createElement(
9628
10044
  RenderHookComponent,
9629
10045
  {
9630
10046
  render: props.render,
@@ -9634,11 +10050,11 @@ function RenderCellHookComponent(props) {
9634
10050
  }
9635
10051
  function CellEditorContextComponent(props) {
9636
10052
  const ContextProvider = InfiniteTableColumnCellContext.Provider;
9637
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.contextValue }, props.children);
10053
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.contextValue }, props.children);
9638
10054
  }
9639
10055
  function RenderHeaderCellHookComponent(props) {
9640
10056
  const ContextProvider = InfiniteTableHeaderCellContext.Provider;
9641
- return /* @__PURE__ */ React37.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React37.createElement(
10057
+ return /* @__PURE__ */ React38.createElement(ContextProvider, { value: props.renderParam }, /* @__PURE__ */ React38.createElement(
9642
10058
  RenderHookComponent,
9643
10059
  {
9644
10060
  render: props.render,
@@ -9648,7 +10064,7 @@ function RenderHeaderCellHookComponent(props) {
9648
10064
  }
9649
10065
 
9650
10066
  // src/components/InfiniteTable/components/icons/MenuIcon.tsx
9651
- var React38 = __toESM(require("react"));
10067
+ var React39 = __toESM(require("react"));
9652
10068
  var defaultLineStyle2 = {
9653
10069
  width: "100%",
9654
10070
  pointerEvents: "none"
@@ -9674,7 +10090,7 @@ function MenuIcon(props) {
9674
10090
  borderTop: `${ThemeVars.components.HeaderCell.menuIconLineWidth} solid currentColor`,
9675
10091
  ...props.lineStyle
9676
10092
  };
9677
- return /* @__PURE__ */ React38.createElement(
10093
+ return /* @__PURE__ */ React39.createElement(
9678
10094
  "div",
9679
10095
  {
9680
10096
  ...domProps,
@@ -9691,12 +10107,12 @@ function MenuIcon(props) {
9691
10107
  `${InfiniteIconClassName}-menu`
9692
10108
  )
9693
10109
  },
9694
- children ?? /* @__PURE__ */ React38.createElement(React38.Fragment, null, /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React38.createElement("div", { className: lineClassName, style: lineStyle }))
10110
+ children ?? /* @__PURE__ */ React39.createElement(React39.Fragment, null, /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }), /* @__PURE__ */ React39.createElement("div", { className: lineClassName, style: lineStyle }))
9695
10111
  );
9696
10112
  }
9697
10113
 
9698
10114
  // src/components/InfiniteTable/components/icons/SortIcon.tsx
9699
- var React39 = __toESM(require("react"));
10115
+ var React40 = __toESM(require("react"));
9700
10116
  var import_react26 = require("react");
9701
10117
 
9702
10118
  // src/components/InfiniteTable/components/icons/SortIcon.css.ts
@@ -9755,7 +10171,7 @@ function SortIcon(props) {
9755
10171
  if (direction === -1) {
9756
10172
  indexStyle.top = "100%";
9757
10173
  }
9758
- return /* @__PURE__ */ React39.createElement(
10174
+ return /* @__PURE__ */ React40.createElement(
9759
10175
  "div",
9760
10176
  {
9761
10177
  "data-name": "sort-icon",
@@ -9767,7 +10183,7 @@ function SortIcon(props) {
9767
10183
  `${InfiniteIconClassName}-sort`
9768
10184
  )
9769
10185
  },
9770
- showIndex ? /* @__PURE__ */ React39.createElement(
10186
+ showIndex ? /* @__PURE__ */ React40.createElement(
9771
10187
  "div",
9772
10188
  {
9773
10189
  "data-name": "index",
@@ -9776,25 +10192,25 @@ function SortIcon(props) {
9776
10192
  },
9777
10193
  index
9778
10194
  ) : null,
9779
- /* @__PURE__ */ React39.createElement(
10195
+ /* @__PURE__ */ React40.createElement(
9780
10196
  "div",
9781
10197
  {
9782
10198
  style: { width: sizes[0], ...lineStyle },
9783
10199
  onTransitionEnd
9784
10200
  }
9785
10201
  ),
9786
- /* @__PURE__ */ React39.createElement("div", { style: { width: sizes[1], ...lineStyle } }),
9787
- /* @__PURE__ */ React39.createElement("div", { style: { width: sizes[2], ...lineStyle } })
10202
+ /* @__PURE__ */ React40.createElement("div", { style: { width: sizes[1], ...lineStyle } }),
10203
+ /* @__PURE__ */ React40.createElement("div", { style: { width: sizes[2], ...lineStyle } })
9788
10204
  );
9789
10205
  }
9790
10206
 
9791
10207
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnResizeHandle.tsx
9792
- var React41 = __toESM(require("react"));
10208
+ var React42 = __toESM(require("react"));
9793
10209
  var import_react28 = require("react");
9794
10210
 
9795
10211
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/index.tsx
9796
10212
  var import_react27 = require("react");
9797
- var React40 = __toESM(require("react"));
10213
+ var React41 = __toESM(require("react"));
9798
10214
 
9799
10215
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/columnResizer.ts
9800
10216
  function getColumnResizer(colIndex, {
@@ -10010,7 +10426,7 @@ function ResizeHandleFn(props) {
10010
10426
  right: computedPinned === "start" ? void 0 : 0
10011
10427
  //ThemeVars.components.HeaderCell.resizeHandleWidth,
10012
10428
  } : computedPinned === "end" && computedFirstInCategory ? { right: void 0 } : void 0;
10013
- return /* @__PURE__ */ React40.createElement(
10429
+ return /* @__PURE__ */ React41.createElement(
10014
10430
  "div",
10015
10431
  {
10016
10432
  ref: domRef,
@@ -10023,7 +10439,7 @@ function ResizeHandleFn(props) {
10023
10439
  )}`,
10024
10440
  onPointerDown
10025
10441
  },
10026
- /* @__PURE__ */ React40.createElement(
10442
+ /* @__PURE__ */ React41.createElement(
10027
10443
  "div",
10028
10444
  {
10029
10445
  style: style2,
@@ -10037,7 +10453,7 @@ function ResizeHandleFn(props) {
10037
10453
  )
10038
10454
  );
10039
10455
  }
10040
- var ResizeHandle = React40.memo(ResizeHandleFn);
10456
+ var ResizeHandle = React41.memo(ResizeHandleFn);
10041
10457
 
10042
10458
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnResizeHandle.tsx
10043
10459
  function useColumnResizeHandle(column, opts) {
@@ -10107,7 +10523,7 @@ function useColumnResizeHandle(column, opts) {
10107
10523
  },
10108
10524
  [computeResizeForDiff]
10109
10525
  );
10110
- const resizeHandle = column.computedResizable ? /* @__PURE__ */ React41.createElement(
10526
+ const resizeHandle = column.computedResizable ? /* @__PURE__ */ React42.createElement(
10111
10527
  ResizeHandle,
10112
10528
  {
10113
10529
  horizontalLayoutPageIndex: opts.horizontalLayoutPageIndex,
@@ -10130,7 +10546,7 @@ var defaultRenderSelectionCheckBox2 = (params) => {
10130
10546
  const selected = allRowsSelected ? true : someRowsSelected ? null : false;
10131
10547
  const { components: components2, isTree } = api.getState();
10132
10548
  const CheckBoxCmp = components2?.CheckBox || InfiniteCheckBox;
10133
- return /* @__PURE__ */ React42.createElement(
10549
+ return /* @__PURE__ */ React43.createElement(
10134
10550
  CheckBoxCmp,
10135
10551
  {
10136
10552
  domProps: {
@@ -10155,9 +10571,9 @@ var defaultRenderSelectionCheckBox2 = (params) => {
10155
10571
  }
10156
10572
  );
10157
10573
  };
10158
- var InfiniteTableHeaderCellContext = React42.createContext(null);
10574
+ var InfiniteTableHeaderCellContext = React43.createContext(null);
10159
10575
  var columnZIndexAtIndex5 = stripVar(InternalVars.columnZIndexAtIndex);
10160
- var spacer = /* @__PURE__ */ React42.createElement("div", { className: flex["1"] });
10576
+ var spacer = /* @__PURE__ */ React43.createElement("div", { className: flex["1"] });
10161
10577
  var InfiniteHeaderCellDataAttributes = keyMirror({
10162
10578
  "data-name": ``,
10163
10579
  "data-field": ``,
@@ -10219,7 +10635,7 @@ function InfiniteTableHeaderCell(props) {
10219
10635
  getState
10220
10636
  });
10221
10637
  const computedSortable = columnApi.isSortable();
10222
- const sortIcon = computedSortable && (column.computedSorted || alwaysShow) ? /* @__PURE__ */ React42.createElement(
10638
+ const sortIcon = computedSortable && (column.computedSorted || alwaysShow) ? /* @__PURE__ */ React43.createElement(
10223
10639
  SortIcon,
10224
10640
  {
10225
10641
  index: column.computedMultiSort ? column.computedSortIndex + 1 : void 0,
@@ -10236,7 +10652,7 @@ function InfiniteTableHeaderCell(props) {
10236
10652
  }
10237
10653
  ) : null;
10238
10654
  const filtered = column.computedFilterable && column.computedFiltered;
10239
- const filterIcon = filtered ? /* @__PURE__ */ React42.createElement(FilterIcon, null) : null;
10655
+ const filterIcon = filtered ? /* @__PURE__ */ React43.createElement(FilterIcon, null) : null;
10240
10656
  const headerCSSEllipsis = column.headerCssEllipsis ?? column.cssEllipsis ?? true;
10241
10657
  const menuIconProps = {
10242
10658
  reserveSpaceWhenHidden: align2 === "center",
@@ -10256,7 +10672,7 @@ function InfiniteTableHeaderCell(props) {
10256
10672
  }
10257
10673
  };
10258
10674
  const MenuIconCmp = column.components?.MenuIcon || components2?.MenuIcon || MenuIcon;
10259
- const menuIcon = /* @__PURE__ */ React42.createElement(MenuIconCmp, { ...menuIconProps });
10675
+ const menuIcon = /* @__PURE__ */ React43.createElement(MenuIconCmp, { ...menuIconProps });
10260
10676
  const domRef = (0, import_react29.useRef)(null);
10261
10677
  const initialRenderParam = {
10262
10678
  horizontalLayoutPageIndex,
@@ -10291,7 +10707,7 @@ function InfiniteTableHeaderCell(props) {
10291
10707
  renderBag: { ...initialRenderParam.renderBag }
10292
10708
  };
10293
10709
  if (column.renderSortIcon) {
10294
- renderParam2.renderBag.sortIcon = /* @__PURE__ */ React42.createElement(
10710
+ renderParam2.renderBag.sortIcon = /* @__PURE__ */ React43.createElement(
10295
10711
  RenderHeaderCellHookComponent,
10296
10712
  {
10297
10713
  render: column.renderSortIcon,
@@ -10309,7 +10725,7 @@ function InfiniteTableHeaderCell(props) {
10309
10725
  );
10310
10726
  }
10311
10727
  if (column.renderFilterIcon) {
10312
- renderParam2.renderBag.filterIcon = /* @__PURE__ */ React42.createElement(
10728
+ renderParam2.renderBag.filterIcon = /* @__PURE__ */ React43.createElement(
10313
10729
  RenderHeaderCellHookComponent,
10314
10730
  {
10315
10731
  render: column.renderFilterIcon,
@@ -10321,7 +10737,7 @@ function InfiniteTableHeaderCell(props) {
10321
10737
  );
10322
10738
  }
10323
10739
  if (typeof column.renderMenuIcon === "function") {
10324
- renderParam2.renderBag.menuIcon = /* @__PURE__ */ React42.createElement(
10740
+ renderParam2.renderBag.menuIcon = /* @__PURE__ */ React43.createElement(
10325
10741
  RenderHeaderCellHookComponent,
10326
10742
  {
10327
10743
  render: (param) => {
@@ -10333,7 +10749,7 @@ function InfiniteTableHeaderCell(props) {
10333
10749
  if (result.type === MenuIconCmp || result.type === MenuIcon) {
10334
10750
  return result;
10335
10751
  }
10336
- return /* @__PURE__ */ React42.createElement(MenuIconCmp, { ...menuIconProps }, result);
10752
+ return /* @__PURE__ */ React43.createElement(MenuIconCmp, { ...menuIconProps }, result);
10337
10753
  }
10338
10754
  return null;
10339
10755
  },
@@ -10347,7 +10763,7 @@ function InfiniteTableHeaderCell(props) {
10347
10763
  );
10348
10764
  }
10349
10765
  if (column.renderSelectionCheckBox && selectionMode === "multi-row") {
10350
- renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React42.createElement(
10766
+ renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React43.createElement(
10351
10767
  RenderHeaderCellHookComponent,
10352
10768
  {
10353
10769
  render: defaultRenderSelectionCheckBox2,
@@ -10361,7 +10777,7 @@ function InfiniteTableHeaderCell(props) {
10361
10777
  );
10362
10778
  const renderHeaderSelectionCheckBox = column.renderHeaderSelectionCheckBox ?? column.renderSelectionCheckBox;
10363
10779
  if (renderHeaderSelectionCheckBox && renderHeaderSelectionCheckBox !== true) {
10364
- renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React42.createElement(
10780
+ renderParam2.renderBag.selectionCheckBox = /* @__PURE__ */ React43.createElement(
10365
10781
  RenderHeaderCellHookComponent,
10366
10782
  {
10367
10783
  render: renderHeaderSelectionCheckBox,
@@ -10376,7 +10792,7 @@ function InfiniteTableHeaderCell(props) {
10376
10792
  }
10377
10793
  }
10378
10794
  if (header instanceof Function) {
10379
- renderParam2.renderBag.header = /* @__PURE__ */ React42.createElement(
10795
+ renderParam2.renderBag.header = /* @__PURE__ */ React43.createElement(
10380
10796
  RenderHeaderCellHookComponent,
10381
10797
  {
10382
10798
  render: header,
@@ -10388,10 +10804,10 @@ function InfiniteTableHeaderCell(props) {
10388
10804
  );
10389
10805
  }
10390
10806
  const theMenuIcon = column.renderMenuIcon === false ? null : renderParam2.renderBag.menuIcon;
10391
- const headerContent = headerCSSEllipsis ? /* @__PURE__ */ React42.createElement("div", { className: cssEllipsisClassName }, renderParam2.renderBag.header) : renderParam2.renderBag.header;
10392
- const all = /* @__PURE__ */ React42.createElement(React42.Fragment, null, align2 === "center" ? spacer : null, renderParam2.renderBag.selectionCheckBox, headerContent, renderParam2.renderBag.sortIcon, renderParam2.renderBag.filterIcon, align2 === "center" ? spacer : null, align2 !== "center" ? spacer : null, theMenuIcon);
10807
+ const headerContent = headerCSSEllipsis ? /* @__PURE__ */ React43.createElement("div", { className: cssEllipsisClassName }, renderParam2.renderBag.header) : renderParam2.renderBag.header;
10808
+ const all = /* @__PURE__ */ React43.createElement(React43.Fragment, null, align2 === "center" ? spacer : null, renderParam2.renderBag.selectionCheckBox, headerContent, renderParam2.renderBag.sortIcon, renderParam2.renderBag.filterIcon, align2 === "center" ? spacer : null, align2 !== "center" ? spacer : null, theMenuIcon);
10393
10809
  if (column.renderHeader) {
10394
- return /* @__PURE__ */ React42.createElement(
10810
+ return /* @__PURE__ */ React43.createElement(
10395
10811
  RenderHeaderCellHookComponent,
10396
10812
  {
10397
10813
  render: column.renderHeader,
@@ -10429,7 +10845,7 @@ function InfiniteTableHeaderCell(props) {
10429
10845
  });
10430
10846
  let draggingProxy = null;
10431
10847
  if (dragging && proxyPosition) {
10432
- draggingProxy = /* @__PURE__ */ React42.createElement(
10848
+ draggingProxy = /* @__PURE__ */ React43.createElement(
10433
10849
  "div",
10434
10850
  {
10435
10851
  key: column.id,
@@ -10453,7 +10869,7 @@ function InfiniteTableHeaderCell(props) {
10453
10869
  verticalAlign,
10454
10870
  align: align2
10455
10871
  };
10456
- const debouncedOnFilterValueChange = React42.useMemo(() => {
10872
+ const debouncedOnFilterValueChange = React43.useMemo(() => {
10457
10873
  const fn = (filterValue) => {
10458
10874
  api.setColumnFilter(column.id, filterValue);
10459
10875
  };
@@ -10481,7 +10897,7 @@ function InfiniteTableHeaderCell(props) {
10481
10897
  "data-sort": column.computedSortedAsc ? "asc" : column.computedSortedDesc ? "desc" : "none",
10482
10898
  "data-sort-index": `${column.computedSortIndex ?? -1}`
10483
10899
  };
10484
- const columnFilterEditor = column.computedFilterable ? /* @__PURE__ */ React42.createElement(
10900
+ const columnFilterEditor = column.computedFilterable ? /* @__PURE__ */ React43.createElement(
10485
10901
  InfiniteTableColumnHeaderFilter,
10486
10902
  {
10487
10903
  horizontalLayoutPageIndex,
@@ -10495,9 +10911,9 @@ function InfiniteTableHeaderCell(props) {
10495
10911
  columnFilterValue: column.computedFilterValue,
10496
10912
  columnHeaderHeight
10497
10913
  }
10498
- ) : /* @__PURE__ */ React42.createElement(InfiniteTableColumnHeaderFilterEmpty, null);
10914
+ ) : /* @__PURE__ */ React43.createElement(InfiniteTableColumnHeaderFilterEmpty, null);
10499
10915
  renderParam.renderBag.filterEditor = columnFilterEditor;
10500
- return /* @__PURE__ */ React42.createElement(ContextProvider, { value: renderParam }, /* @__PURE__ */ React42.createElement(
10916
+ return /* @__PURE__ */ React43.createElement(ContextProvider, { value: renderParam }, /* @__PURE__ */ React43.createElement(
10501
10917
  InfiniteTableCell,
10502
10918
  {
10503
10919
  domRef: ref,
@@ -10544,7 +10960,7 @@ function InfiniteTableHeaderCell(props) {
10544
10960
  CellCls
10545
10961
  ),
10546
10962
  cssEllipsis: headerCSSEllipsis,
10547
- afterChildren: /* @__PURE__ */ React42.createElement(React42.Fragment, null, showColumnFilters ? columnFilterEditor : null, resizeHandle),
10963
+ afterChildren: /* @__PURE__ */ React43.createElement(React43.Fragment, null, showColumnFilters ? columnFilterEditor : null, resizeHandle),
10548
10964
  renderChildren
10549
10965
  }
10550
10966
  ), draggingProxy);
@@ -10557,7 +10973,7 @@ function useInfiniteHeaderCell() {
10557
10973
  }
10558
10974
 
10559
10975
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderWrapper.tsx
10560
- var React47 = __toESM(require("react"));
10976
+ var React48 = __toESM(require("react"));
10561
10977
 
10562
10978
  // src/components/InfiniteTable/components/InfiniteTableHeader/buildColumnAndGroupTree.ts
10563
10979
  function buildColumnAndGroupTree(columns, columnGroups, columnGroupsDepthsMap, columnGroupsMaxDepth) {
@@ -10662,19 +11078,19 @@ function assignGroupOffsetsAndComputedWidths(items, groupOffset = 0) {
10662
11078
  }
10663
11079
 
10664
11080
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeader.tsx
10665
- var React46 = __toESM(require("react"));
11081
+ var React47 = __toESM(require("react"));
10666
11082
  var import_react32 = require("react");
10667
11083
 
10668
11084
  // src/components/InfiniteTable/components/InfiniteTableHeader/InfiniteTableHeaderGroup.tsx
10669
- var React45 = __toESM(require("react"));
11085
+ var React46 = __toESM(require("react"));
10670
11086
 
10671
11087
  // src/components/InfiniteTable/components/InfiniteTableHeader/useColumnGroupResizeHandle.tsx
10672
- var React44 = __toESM(require("react"));
11088
+ var React45 = __toESM(require("react"));
10673
11089
  var import_react31 = require("react");
10674
11090
 
10675
11091
  // src/components/InfiniteTable/components/InfiniteTableHeader/ResizeHandle/GroupResizeHandle.tsx
10676
11092
  var import_react30 = require("react");
10677
- var React43 = __toESM(require("react"));
11093
+ var React44 = __toESM(require("react"));
10678
11094
  var { rootClassName: rootClassName8 } = internalProps;
10679
11095
  var InfiniteTableHeaderCellResizeHandleCls2 = `${rootClassName8}HeaderCell_ResizeHandle`;
10680
11096
  function GroupResizeHandleFn(props) {
@@ -10743,7 +11159,7 @@ function GroupResizeHandleFn(props) {
10743
11159
  const style2 = (computedPinned === false || computedPinned === "start") && computedLastInCategory ? {
10744
11160
  right: computedPinned === "start" ? void 0 : ThemeVars.components.HeaderCell.resizeHandleWidth
10745
11161
  } : computedPinned === "end" && computedFirstInCategory ? { right: void 0 } : void 0;
10746
- return /* @__PURE__ */ React43.createElement(
11162
+ return /* @__PURE__ */ React44.createElement(
10747
11163
  "div",
10748
11164
  {
10749
11165
  ref: domRef,
@@ -10756,7 +11172,7 @@ function GroupResizeHandleFn(props) {
10756
11172
  )}`,
10757
11173
  onPointerDown
10758
11174
  },
10759
- /* @__PURE__ */ React43.createElement(
11175
+ /* @__PURE__ */ React44.createElement(
10760
11176
  "div",
10761
11177
  {
10762
11178
  style: { ...style2, ...props.style },
@@ -10767,7 +11183,7 @@ function GroupResizeHandleFn(props) {
10767
11183
  )
10768
11184
  );
10769
11185
  }
10770
- var GroupResizeHandle = React43.memo(
11186
+ var GroupResizeHandle = React44.memo(
10771
11187
  GroupResizeHandleFn
10772
11188
  );
10773
11189
 
@@ -10832,7 +11248,7 @@ function useColumnGroupResizeHandle(groupColumns, config) {
10832
11248
  [computeResizeForDiff]
10833
11249
  );
10834
11250
  const groupResizable = groupColumns.some((c) => c.computedResizable);
10835
- const resizeHandle = groupResizable ? /* @__PURE__ */ React44.createElement(
11251
+ const resizeHandle = groupResizable ? /* @__PURE__ */ React45.createElement(
10836
11252
  GroupResizeHandle,
10837
11253
  {
10838
11254
  brain: bodyBrain,
@@ -10880,7 +11296,7 @@ function InfiniteTableHeaderGroup(props) {
10880
11296
  style2 = style2 && typeof style2 === "object" ? style2 : {};
10881
11297
  style2.width = width;
10882
11298
  style2.height = height2;
10883
- return /* @__PURE__ */ React45.createElement(
11299
+ return /* @__PURE__ */ React46.createElement(
10884
11300
  "div",
10885
11301
  {
10886
11302
  ref: props.domRef,
@@ -10889,7 +11305,7 @@ function InfiniteTableHeaderGroup(props) {
10889
11305
  style: style2,
10890
11306
  "data-z-index": zIndex2
10891
11307
  },
10892
- /* @__PURE__ */ React45.createElement(
11308
+ /* @__PURE__ */ React46.createElement(
10893
11309
  "div",
10894
11310
  {
10895
11311
  className: join(
@@ -10978,7 +11394,7 @@ function InfiniteTableHeaderFn(props) {
10978
11394
  groupOffset: colGroupItem.groupOffset
10979
11395
  };
10980
11396
  const visible = getState().columnGroupVisibility[colGroupItem.id] !== false;
10981
- return visible ? /* @__PURE__ */ React46.createElement(
11397
+ return visible ? /* @__PURE__ */ React47.createElement(
10982
11398
  InfiniteTableHeaderGroup,
10983
11399
  {
10984
11400
  horizontalLayoutPageIndex,
@@ -10992,7 +11408,7 @@ function InfiniteTableHeaderFn(props) {
10992
11408
  }
10993
11409
  ) : null;
10994
11410
  }
10995
- return /* @__PURE__ */ React46.createElement(
11411
+ return /* @__PURE__ */ React47.createElement(
10996
11412
  InfiniteTableHeaderCell,
10997
11413
  {
10998
11414
  domRef: domRef2,
@@ -11018,7 +11434,7 @@ function InfiniteTableHeaderFn(props) {
11018
11434
  headerBrain
11019
11435
  ]
11020
11436
  );
11021
- return /* @__PURE__ */ React46.createElement("div", { ...domProps }, /* @__PURE__ */ React46.createElement(
11437
+ return /* @__PURE__ */ React47.createElement("div", { ...domProps }, /* @__PURE__ */ React47.createElement(
11022
11438
  RawTable,
11023
11439
  {
11024
11440
  name: "header",
@@ -11028,7 +11444,7 @@ function InfiniteTableHeaderFn(props) {
11028
11444
  }
11029
11445
  ));
11030
11446
  }
11031
- var InfiniteTableHeader = React46.memo(
11447
+ var InfiniteTableHeader = React47.memo(
11032
11448
  InfiniteTableHeaderFn
11033
11449
  );
11034
11450
 
@@ -11053,7 +11469,7 @@ function TableHeaderWrapper(props) {
11053
11469
  } = tableContextValue;
11054
11470
  const rows = !computedColumnGroups || !Object.keys(computedColumnGroups).length ? 1 : columnGroupsMaxDepth + 2;
11055
11471
  const height2 = rows * columnHeaderHeight + (showColumnFilters ? columnHeaderHeight : 0);
11056
- const columnAndGroupTreeInfo = React47.useMemo(() => {
11472
+ const columnAndGroupTreeInfo = React48.useMemo(() => {
11057
11473
  if (!computedColumnGroups || !Object.keys(computedColumnGroups).length) {
11058
11474
  return void 0;
11059
11475
  }
@@ -11064,7 +11480,7 @@ function TableHeaderWrapper(props) {
11064
11480
  columnGroupsMaxDepth
11065
11481
  );
11066
11482
  }, [computedVisibleColumns, computedColumnGroups, columnGroupsDepthsMap]);
11067
- const cellspan = React47.useCallback(
11483
+ const cellspan = React48.useCallback(
11068
11484
  ({ rowIndex, colIndex }) => {
11069
11485
  const column = computedVisibleColumns[colIndex];
11070
11486
  const rowspan2 = 1;
@@ -11102,15 +11518,15 @@ function TableHeaderWrapper(props) {
11102
11518
  columnGroupsDepthsMap
11103
11519
  ]
11104
11520
  );
11105
- const rowspan = React47.useCallback(
11521
+ const rowspan = React48.useCallback(
11106
11522
  ({ rowIndex, colIndex }) => cellspan({ rowIndex, colIndex }).rowspan,
11107
11523
  [cellspan]
11108
11524
  );
11109
- const colspan = React47.useCallback(
11525
+ const colspan = React48.useCallback(
11110
11526
  ({ rowIndex, colIndex }) => cellspan({ rowIndex, colIndex }).colspan,
11111
11527
  [cellspan]
11112
11528
  );
11113
- const rowHeight = React47.useCallback(
11529
+ const rowHeight = React48.useCallback(
11114
11530
  (index) => {
11115
11531
  return showColumnFilters ? index < rows - 1 ? columnHeaderHeight : 2 * columnHeaderHeight : columnHeaderHeight;
11116
11532
  },
@@ -11132,7 +11548,7 @@ function TableHeaderWrapper(props) {
11132
11548
  fixedColsStart: computedPinnedStartColumns.length
11133
11549
  }
11134
11550
  );
11135
- const header = /* @__PURE__ */ React47.createElement(
11551
+ const header = /* @__PURE__ */ React48.createElement(
11136
11552
  InfiniteTableHeader,
11137
11553
  {
11138
11554
  columns: computedVisibleColumns,
@@ -11143,7 +11559,7 @@ function TableHeaderWrapper(props) {
11143
11559
  columnAndGroupTreeInfo
11144
11560
  }
11145
11561
  );
11146
- const verticalScrollbarPlaceholder = scrollbars.vertical && getScrollbarWidth() ? /* @__PURE__ */ React47.createElement(
11562
+ const verticalScrollbarPlaceholder = scrollbars.vertical && getScrollbarWidth() ? /* @__PURE__ */ React48.createElement(
11147
11563
  "div",
11148
11564
  {
11149
11565
  className: HeaderScrollbarPlaceholderCls,
@@ -11153,7 +11569,7 @@ function TableHeaderWrapper(props) {
11153
11569
  }
11154
11570
  }
11155
11571
  ) : null;
11156
- return /* @__PURE__ */ React47.createElement(
11572
+ return /* @__PURE__ */ React48.createElement(
11157
11573
  "div",
11158
11574
  {
11159
11575
  className: `${InfiniteTableHeaderWrapperClassName} ${HeaderWrapperCls}`,
@@ -11167,7 +11583,7 @@ function TableHeaderWrapper(props) {
11167
11583
  }
11168
11584
 
11169
11585
  // src/components/InfiniteTable/components/InfiniteTableLicenseFooter/index.tsx
11170
- var React48 = __toESM(require("react"));
11586
+ var React49 = __toESM(require("react"));
11171
11587
  var import_react33 = require("react");
11172
11588
 
11173
11589
  // src/components/utils/decamelize.ts
@@ -11210,11 +11626,11 @@ var enforceStyle = (node, style2) => {
11210
11626
  );
11211
11627
  }
11212
11628
  };
11213
- var InfiniteTableLicenseFooter = React48.forwardRef(
11629
+ var InfiniteTableLicenseFooter = React49.forwardRef(
11214
11630
  function InfiniteTableLicenseFooter2(props, ref) {
11215
11631
  const { rootClassName: rootClassName12 } = useInternalProps();
11216
- const domRef = React48.useRef(null);
11217
- const domCallback = React48.useCallback((node) => {
11632
+ const domRef = React49.useRef(null);
11633
+ const domCallback = React49.useCallback((node) => {
11218
11634
  domRef.current = node;
11219
11635
  if (!ref) {
11220
11636
  return;
@@ -11241,7 +11657,7 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
11241
11657
  clearInterval(intervalId);
11242
11658
  };
11243
11659
  }, []);
11244
- return /* @__PURE__ */ React48.createElement(
11660
+ return /* @__PURE__ */ React49.createElement(
11245
11661
  "div",
11246
11662
  {
11247
11663
  ref: domCallback,
@@ -11255,7 +11671,7 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
11255
11671
  },
11256
11672
  "Powered by",
11257
11673
  " ",
11258
- /* @__PURE__ */ React48.createElement(
11674
+ /* @__PURE__ */ React49.createElement(
11259
11675
  "a",
11260
11676
  {
11261
11677
  href: "https://infinite-table.com",
@@ -11270,7 +11686,7 @@ var InfiniteTableLicenseFooter = React48.forwardRef(
11270
11686
  );
11271
11687
 
11272
11688
  // src/components/InfiniteTable/components/LoadMask.tsx
11273
- var React49 = __toESM(require("react"));
11689
+ var React50 = __toESM(require("react"));
11274
11690
 
11275
11691
  // src/components/InfiniteTable/components/LoadMask.css.ts
11276
11692
  var LoadMaskCls = { visible: "LoadMask_LoadMaskCls_visible__qy58ya1 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1d utilities_left_0__16lm1iw1f utilities_right_0__16lm1iw1k utilities_bottom_0__16lm1iw1i", hidden: "LoadMask_LoadMaskCls_hidden__qy58ya2 LoadMask_LoadMaskBaseCls__qy58ya0 utilities_position_absolute__16lm1iw2 utilities_top_0__16lm1iw1d utilities_left_0__16lm1iw1f utilities_right_0__16lm1iw1k utilities_bottom_0__16lm1iw1i" };
@@ -11282,16 +11698,16 @@ var { rootClassName: rootClassName10 } = internalProps;
11282
11698
  var baseCls3 = `${rootClassName10}-LoadMask`;
11283
11699
  function LoadMaskFn(props) {
11284
11700
  const { visible, children = "Loading" } = props;
11285
- return /* @__PURE__ */ React49.createElement(
11701
+ return /* @__PURE__ */ React50.createElement(
11286
11702
  "div",
11287
11703
  {
11288
11704
  className: `${LoadMaskCls[visible ? "visible" : "hidden"]} ${baseCls3}`
11289
11705
  },
11290
- /* @__PURE__ */ React49.createElement("div", { className: `${LoadMaskOverlayCls} ${baseCls3}-Overlay` }),
11291
- /* @__PURE__ */ React49.createElement("div", { className: `${LoadMaskTextCls} ${baseCls3}-Text` }, children)
11706
+ /* @__PURE__ */ React50.createElement("div", { className: `${LoadMaskOverlayCls} ${baseCls3}-Overlay` }),
11707
+ /* @__PURE__ */ React50.createElement("div", { className: `${LoadMaskTextCls} ${baseCls3}-Text` }, children)
11292
11708
  );
11293
11709
  }
11294
- var LoadMask = React49.memo(LoadMaskFn);
11710
+ var LoadMask = React50.memo(LoadMaskFn);
11295
11711
 
11296
11712
  // src/utils/deepClone.ts
11297
11713
  function cloneArray(arr) {
@@ -12303,10 +12719,10 @@ function enhancedFlatten(param) {
12303
12719
  }
12304
12720
 
12305
12721
  // src/components/DataSource/index.tsx
12306
- var React51 = __toESM(require("react"));
12722
+ var React52 = __toESM(require("react"));
12307
12723
 
12308
12724
  // src/utils/groupAndPivot/treeUtils.ts
12309
- var emptyFn = () => {
12725
+ var emptyFn3 = () => {
12310
12726
  };
12311
12727
  function toTreeDataArray(data, options) {
12312
12728
  const treeMap = new DeepMap();
@@ -12360,7 +12776,7 @@ function traverseTreeNode(traverseParams, treeTraverseOptions, parentPath, item)
12360
12776
  });
12361
12777
  if (isLeaf) {
12362
12778
  onLeafNode?.(item);
12363
- onNode?.(item, emptyFn);
12779
+ onNode?.(item, emptyFn3);
12364
12780
  } else {
12365
12781
  onParentNode?.(item, next, getNodeChildren(item));
12366
12782
  onNode?.(item, next);
@@ -18555,7 +18971,7 @@ var {
18555
18971
  });
18556
18972
  function DataSource(props) {
18557
18973
  const { DataSource: DataSourceComponent } = useDataSourceInternal(props);
18558
- return /* @__PURE__ */ React51.createElement(DataSourceComponent, null, props.children ?? null);
18974
+ return /* @__PURE__ */ React52.createElement(DataSourceComponent, null, props.children ?? null);
18559
18975
  }
18560
18976
  function useRowInfoReducers() {
18561
18977
  const { rowInfoReducerResults } = useDataSourceState();
@@ -20024,7 +20440,7 @@ function useAutoSizeColumns() {
20024
20440
  // src/components/InfiniteTable/hooks/useCellRendering.tsx
20025
20441
  var import_react39 = require("react");
20026
20442
  var import_react40 = require("react");
20027
- var React53 = __toESM(require("react"));
20443
+ var React54 = __toESM(require("react"));
20028
20444
 
20029
20445
  // src/components/InfiniteTable/hooks/useYourBrain.ts
20030
20446
  function useYourBrain(param) {
@@ -20061,7 +20477,7 @@ function useYourBrain(param) {
20061
20477
  }
20062
20478
 
20063
20479
  // src/components/InfiniteTable/components/InfiniteTableRow/InfiniteTableDetailRow.tsx
20064
- var React52 = __toESM(require("react"));
20480
+ var React53 = __toESM(require("react"));
20065
20481
 
20066
20482
  // src/components/InfiniteTable/components/rowDetail.css.ts
20067
20483
  var RowDetailRecipe = createRuntimeFn({ defaultClassName: "rowDetail_RowDetailRecipe__evqes20", variantClassNames: {}, defaultVariants: {}, compoundVariants: [] });
@@ -20198,7 +20614,7 @@ function InfiniteTableDetailRowFn(props) {
20198
20614
  rowDetailsCache,
20199
20615
  rowInfo
20200
20616
  });
20201
- return /* @__PURE__ */ React52.createElement(DataSourceMasterDetailContext.Provider, { value: masterDetailContextValue }, /* @__PURE__ */ React52.createElement(
20617
+ return /* @__PURE__ */ React53.createElement(DataSourceMasterDetailContext.Provider, { value: masterDetailContextValue }, /* @__PURE__ */ React53.createElement(
20202
20618
  "div",
20203
20619
  {
20204
20620
  ref: domRef,
@@ -20215,7 +20631,7 @@ function InfiniteTableDetailRowFn(props) {
20215
20631
  rowDetailRenderer(rowInfo, currentRowCache)
20216
20632
  ));
20217
20633
  }
20218
- var InfiniteTableDetailRow = React52.memo(
20634
+ var InfiniteTableDetailRow = React53.memo(
20219
20635
  InfiniteTableDetailRowFn
20220
20636
  );
20221
20637
 
@@ -20398,7 +20814,7 @@ function useCellRendering(param) {
20398
20814
  cellStyle,
20399
20815
  cellClassName
20400
20816
  };
20401
- return /* @__PURE__ */ React53.createElement(InfiniteTableColumnCell, { ...cellProps });
20817
+ return /* @__PURE__ */ React54.createElement(InfiniteTableColumnCell, { ...cellProps });
20402
20818
  },
20403
20819
  [
20404
20820
  rowHeight,
@@ -20432,10 +20848,10 @@ function useCellRendering(param) {
20432
20848
  const dataArray2 = getData();
20433
20849
  const rowInfo = dataArray2[rowIndex];
20434
20850
  if (!rowInfo || !isRowDetailsExpanded(rowInfo) || !computedRowSizeCacheForDetails) {
20435
- return /* @__PURE__ */ React53.createElement("div", { ref: domRef, className: visibility.hidden });
20851
+ return /* @__PURE__ */ React54.createElement("div", { ref: domRef, className: visibility.hidden });
20436
20852
  }
20437
20853
  const { rowDetailHeight: rowDetailHeight2, rowHeight: rowHeight2 } = computedRowSizeCacheForDetails.getSize(rowIndex);
20438
- return /* @__PURE__ */ React53.createElement(
20854
+ return /* @__PURE__ */ React54.createElement(
20439
20855
  InfiniteTableDetailRow,
20440
20856
  {
20441
20857
  rowInfo,
@@ -20809,10 +21225,10 @@ function computeColumnGroupsDepths(columnGroups, columnGroupVisibility) {
20809
21225
  }
20810
21226
 
20811
21227
  // src/components/InfiniteTable/state/rowDetailRendererFromComponent.tsx
20812
- var React54 = __toESM(require("react"));
21228
+ var React55 = __toESM(require("react"));
20813
21229
  function getRowDetailRendererFromComponent(RowDetail) {
20814
21230
  return (rowInfo, cache) => {
20815
- return /* @__PURE__ */ React54.createElement(RowDetail, { key: rowInfo.id, rowInfo, cache });
21231
+ return /* @__PURE__ */ React55.createElement(RowDetail, { key: rowInfo.id, rowInfo, cache });
20816
21232
  };
20817
21233
  }
20818
21234
 
@@ -22610,7 +23026,7 @@ var useLicense = (licenseKey = "") => {
22610
23026
  }
22611
23027
  let valid2 = isValidLicense(licenseKey, {
22612
23028
  publishedAt: 1624970570587,
22613
- version: "6.0.20"
23029
+ version: "6.1.0-canary.0"
22614
23030
  });
22615
23031
  if (!licenseKey && !valid2 && isInsidePlayground) {
22616
23032
  return true;
@@ -23258,7 +23674,7 @@ var getFirstFocusableChildForNode = (node) => {
23258
23674
  };
23259
23675
 
23260
23676
  // src/components/InfiniteTable/utils/cellFocusUtils.ts
23261
- var import_binary_search3 = __toESM(require_binary_search());
23677
+ var import_binary_search5 = __toESM(require_binary_search());
23262
23678
 
23263
23679
  // src/components/InfiniteTable/utils/waitForFunction.ts
23264
23680
  async function waitForFunction(fn, tickTimeout = 10, maxTimeout = 300) {
@@ -23336,7 +23752,7 @@ function getFollowingFocusableCell(cellPos, direction, context) {
23336
23752
  return nextCellPos;
23337
23753
  }
23338
23754
  function getNextCol(colIndex, direction, validColIndexes) {
23339
- let index = (0, import_binary_search3.default)(validColIndexes, colIndex + direction, SORT_ASC2);
23755
+ let index = (0, import_binary_search5.default)(validColIndexes, colIndex + direction, SORT_ASC2);
23340
23756
  if (index < 0) {
23341
23757
  index = ~index;
23342
23758
  if (direction > 0 && index >= validColIndexes.length) {
@@ -23771,7 +24187,7 @@ function useDOMEventHandlers() {
23771
24187
  var import_react58 = require("react");
23772
24188
 
23773
24189
  // src/components/hooks/useOverlay/index.tsx
23774
- var React55 = __toESM(require("react"));
24190
+ var React56 = __toESM(require("react"));
23775
24191
  var import_react54 = require("react");
23776
24192
  var import_react_dom2 = require("react-dom");
23777
24193
 
@@ -24156,10 +24572,10 @@ async function retrieveElement(elementGetter) {
24156
24572
  return queryForElement(await result);
24157
24573
  }
24158
24574
  function DefaultOverlayPortal(props) {
24159
- return /* @__PURE__ */ React55.createElement("div", { style: { position: "fixed", top: 0, left: 0 } }, props.children);
24575
+ return /* @__PURE__ */ React56.createElement("div", { style: { position: "fixed", top: 0, left: 0 } }, props.children);
24160
24576
  }
24161
24577
  function OverlayContent(props) {
24162
- const nodeRef = React55.useRef(null);
24578
+ const nodeRef = React56.useRef(null);
24163
24579
  (0, import_react54.useEffect)(() => {
24164
24580
  return props.realign.onChange((handle) => {
24165
24581
  if (nodeRef.current && handle) {
@@ -24167,7 +24583,7 @@ function OverlayContent(props) {
24167
24583
  }
24168
24584
  });
24169
24585
  }, [props.realign]);
24170
- return /* @__PURE__ */ React55.createElement(
24586
+ return /* @__PURE__ */ React56.createElement(
24171
24587
  "div",
24172
24588
  {
24173
24589
  style: { position: "absolute", top: 0, left: 0 },
@@ -24235,22 +24651,22 @@ function useOverlayPortal(content, portalContainer) {
24235
24651
  }, [portalContainer]);
24236
24652
  return portalContainer ? container ? (0, import_react_dom2.createPortal)(content, container) : (
24237
24653
  // we're probably still fetching the container
24238
- /* @__PURE__ */ React55.createElement(React55.Fragment, null)
24239
- ) : portalContainer === null || portalContainer === false ? content : /* @__PURE__ */ React55.createElement(DefaultOverlayPortal, null, content);
24654
+ /* @__PURE__ */ React56.createElement(React56.Fragment, null)
24655
+ ) : portalContainer === null || portalContainer === false ? content : /* @__PURE__ */ React56.createElement(DefaultOverlayPortal, null, content);
24240
24656
  }
24241
24657
  function getIdForReactOnlyChild(children) {
24242
- if (React55.Children.count(children) === 1) {
24243
- const child = React55.Children.only(children);
24244
- if (React55.isValidElement(child)) {
24658
+ if (React56.Children.count(children) === 1) {
24659
+ const child = React56.Children.only(children);
24660
+ if (React56.isValidElement(child)) {
24245
24661
  return child.props.id || child.key;
24246
24662
  }
24247
24663
  }
24248
24664
  return null;
24249
24665
  }
24250
24666
  function injectPortalContainerAndConstrainInMenuChild(children, portalContainer, constrainTo) {
24251
- if (React55.Children.count(children) === 1) {
24252
- const child = React55.Children.only(children);
24253
- if (React55.isValidElement(child) && child.type[propToIdentifyMenu]) {
24667
+ if (React56.Children.count(children) === 1) {
24668
+ const child = React56.Children.only(children);
24669
+ if (React56.isValidElement(child) && child.type[propToIdentifyMenu]) {
24254
24670
  const newProps = {};
24255
24671
  if (child.props.portalContainer === void 0) {
24256
24672
  newProps.portalContainer = portalContainer;
@@ -24258,7 +24674,7 @@ function injectPortalContainerAndConstrainInMenuChild(children, portalContainer,
24258
24674
  if (child.props.constrainTo === void 0) {
24259
24675
  newProps.constrainTo = constrainTo;
24260
24676
  }
24261
- return React55.cloneElement(child, newProps);
24677
+ return React56.cloneElement(child, newProps);
24262
24678
  }
24263
24679
  }
24264
24680
  return children;
@@ -24274,7 +24690,7 @@ function useOverlay(params) {
24274
24690
  const contentForPortal = [];
24275
24691
  for (const [_2, handle] of handles) {
24276
24692
  contentForPortal.push(
24277
- /* @__PURE__ */ React55.createElement(OverlayContent, { ...handle, key: handle.key })
24693
+ /* @__PURE__ */ React56.createElement(OverlayContent, { ...handle, key: handle.key })
24278
24694
  );
24279
24695
  }
24280
24696
  return contentForPortal;
@@ -24333,7 +24749,7 @@ function useOverlay(params) {
24333
24749
  },
24334
24750
  [handles, rootParams.portalContainer, updateContent]
24335
24751
  );
24336
- React55.useEffect(() => {
24752
+ React56.useEffect(() => {
24337
24753
  if (handleToRealign) {
24338
24754
  const handle = handles.get(handleToRealign);
24339
24755
  if (handle) {
@@ -24352,7 +24768,7 @@ function useOverlay(params) {
24352
24768
  handles.clear();
24353
24769
  updateContent();
24354
24770
  };
24355
- React55.useEffect(() => {
24771
+ React56.useEffect(() => {
24356
24772
  }, []);
24357
24773
  return {
24358
24774
  portal,
@@ -24364,16 +24780,16 @@ function useOverlay(params) {
24364
24780
  }
24365
24781
 
24366
24782
  // src/components/InfiniteTable/utils/getMenuForColumn.tsx
24367
- var React61 = __toESM(require("react"));
24783
+ var React62 = __toESM(require("react"));
24368
24784
 
24369
24785
  // src/components/Menu/index.tsx
24370
- var React59 = __toESM(require("react"));
24786
+ var React60 = __toESM(require("react"));
24371
24787
 
24372
24788
  // src/components/Menu/getMenuState.tsx
24373
- var React57 = __toESM(require("react"));
24789
+ var React58 = __toESM(require("react"));
24374
24790
 
24375
24791
  // src/components/Menu/childrenToRuntimeItems.tsx
24376
- var React56 = __toESM(require("react"));
24792
+ var React57 = __toESM(require("react"));
24377
24793
 
24378
24794
  // src/components/Menu/MenuItem.tsx
24379
24795
  function MenuItem(_props) {
@@ -24392,7 +24808,7 @@ var MenuSeparatorCls = "MenuCls_MenuSeparatorCls__db3arfd";
24392
24808
  // src/components/Menu/childrenToRuntimeItems.tsx
24393
24809
  var SEPARATOR = "-";
24394
24810
  function MenuSeparator() {
24395
- return /* @__PURE__ */ React56.createElement("hr", { className: MenuSeparatorCls });
24811
+ return /* @__PURE__ */ React57.createElement("hr", { className: MenuSeparatorCls });
24396
24812
  }
24397
24813
  var toRuntimeItem = ({
24398
24814
  columns,
@@ -24401,7 +24817,7 @@ var toRuntimeItem = ({
24401
24817
  menuId
24402
24818
  }, item) => {
24403
24819
  const menuItem = item && (item.key != null || item.label != null) ? item : null;
24404
- const menuDecoration = menuItem === null ? item === SEPARATOR ? /* @__PURE__ */ React56.createElement(MenuSeparator, null) : item : null;
24820
+ const menuDecoration = menuItem === null ? item === SEPARATOR ? /* @__PURE__ */ React57.createElement(MenuSeparator, null) : item : null;
24405
24821
  const runtimeItem = menuItem != null ? {
24406
24822
  type: "item",
24407
24823
  parentMenuId: menuId,
@@ -24429,7 +24845,7 @@ var toRuntimeItem = ({
24429
24845
  return runtimeItem;
24430
24846
  };
24431
24847
  function childrenToRuntimeItems(context, children) {
24432
- return React56.Children.map(children, (child) => {
24848
+ return React57.Children.map(children, (child) => {
24433
24849
  if (child) {
24434
24850
  if (child.props.__is_menu_item || child.type === MenuItem) {
24435
24851
  const itemProps = { ...child.props };
@@ -24452,7 +24868,7 @@ function childrenToRuntimeItems(context, children) {
24452
24868
  // src/components/Menu/getMenuState.tsx
24453
24869
  var SUBMENU_COL_NAME = "submenu";
24454
24870
  function getInitialMenuState() {
24455
- const domRef = React57.createRef();
24871
+ const domRef = React58.createRef();
24456
24872
  return {
24457
24873
  keyboardActiveItemKey: null,
24458
24874
  activeItemKey: null,
@@ -24507,7 +24923,7 @@ var deriveStateFromProps2 = (params) => {
24507
24923
  columns.push({
24508
24924
  name: SUBMENU_COL_NAME,
24509
24925
  render: ({ domProps, item }) => {
24510
- return item.menu ? /* @__PURE__ */ React57.createElement("div", { ...domProps }, /* @__PURE__ */ React57.createElement(ExpandCollapseIcon, { expanded: false })) : /* @__PURE__ */ React57.createElement("div", { ...domProps });
24926
+ return item.menu ? /* @__PURE__ */ React58.createElement("div", { ...domProps }, /* @__PURE__ */ React58.createElement(ExpandCollapseIcon, { expanded: false })) : /* @__PURE__ */ React58.createElement("div", { ...domProps });
24511
24927
  }
24512
24928
  });
24513
24929
  }
@@ -24524,7 +24940,7 @@ var deriveStateFromProps2 = (params) => {
24524
24940
  };
24525
24941
 
24526
24942
  // src/components/Menu/Menu.tsx
24527
- var React58 = __toESM(require("react"));
24943
+ var React59 = __toESM(require("react"));
24528
24944
  var import_react57 = require("react");
24529
24945
 
24530
24946
  // src/utils/pageGeometry/Triangle.ts
@@ -24784,7 +25200,7 @@ function renderSubmenuForItem(item, config) {
24784
25200
  if (typeof itemMenu === "function") {
24785
25201
  itemMenu = itemMenu();
24786
25202
  }
24787
- return /* @__PURE__ */ React58.createElement(
25203
+ return /* @__PURE__ */ React59.createElement(
24788
25204
  Menu,
24789
25205
  {
24790
25206
  key: overlayId,
@@ -24994,7 +25410,7 @@ function MenuComponent(props) {
24994
25410
  setActiveItemKey(key);
24995
25411
  }
24996
25412
  });
24997
- renderedChildren = runtimeItems.map((runtimeItem, index) => /* @__PURE__ */ React58.createElement(
25413
+ renderedChildren = runtimeItems.map((runtimeItem, index) => /* @__PURE__ */ React59.createElement(
24998
25414
  RuntimeItemRenderer,
24999
25415
  {
25000
25416
  key: runtimeItem.type === "item" ? runtimeItem.key : index,
@@ -25176,7 +25592,7 @@ function MenuComponent(props) {
25176
25592
  domRef.current = node;
25177
25593
  }
25178
25594
  }, []);
25179
- const result = /* @__PURE__ */ React58.createElement("div", { className: display.contents }, /* @__PURE__ */ React58.createElement(
25595
+ const result = /* @__PURE__ */ React59.createElement("div", { className: display.contents }, /* @__PURE__ */ React59.createElement(
25180
25596
  "div",
25181
25597
  {
25182
25598
  ...domProps,
@@ -25206,12 +25622,12 @@ function MenuComponent(props) {
25206
25622
  return destroyed ? null : result;
25207
25623
  }
25208
25624
  function RuntimeItemRenderer(props) {
25209
- const [pressed, setPressed] = React58.useState(false);
25625
+ const [pressed, setPressed] = React59.useState(false);
25210
25626
  const { columns, item, index, active, keyboardActive } = props;
25211
25627
  const key = item.type === "item" ? item.value.key : index;
25212
25628
  let content = null;
25213
25629
  if (item.type === "decoration") {
25214
- content = /* @__PURE__ */ React58.createElement("div", { style: item.style }, item.value);
25630
+ content = /* @__PURE__ */ React59.createElement("div", { style: item.style }, item.value);
25215
25631
  } else {
25216
25632
  let spanIndex = 0;
25217
25633
  content = columns.map((col, i) => {
@@ -25272,7 +25688,7 @@ function RuntimeItemRenderer(props) {
25272
25688
  }
25273
25689
  }
25274
25690
  };
25275
- return col.render ? /* @__PURE__ */ React58.createElement(
25691
+ return col.render ? /* @__PURE__ */ React59.createElement(
25276
25692
  RenderHookComponent,
25277
25693
  {
25278
25694
  key: `${key}-${field}`,
@@ -25284,10 +25700,10 @@ function RuntimeItemRenderer(props) {
25284
25700
  domProps
25285
25701
  }
25286
25702
  }
25287
- ) : /* @__PURE__ */ React58.createElement("div", { key: `${key}-${field}`, ...domProps }, target[field]);
25703
+ ) : /* @__PURE__ */ React59.createElement("div", { key: `${key}-${field}`, ...domProps }, target[field]);
25288
25704
  }).filter(Boolean);
25289
25705
  }
25290
- return /* @__PURE__ */ React58.createElement("div", { className: MenuRowCls }, content);
25706
+ return /* @__PURE__ */ React59.createElement("div", { className: MenuRowCls }, content);
25291
25707
  }
25292
25708
 
25293
25709
  // src/components/Menu/index.tsx
@@ -25301,12 +25717,12 @@ var { ManagedComponentContextProvider: MenuRoot } = buildManagedComponent({
25301
25717
  function MenuContextProvider(props) {
25302
25718
  const { componentActions, componentState } = useManagedComponentState();
25303
25719
  const getState = useLatest(componentState);
25304
- return /* @__PURE__ */ React59.createElement(
25720
+ return /* @__PURE__ */ React60.createElement(
25305
25721
  MenuContext.Provider,
25306
25722
  {
25307
25723
  value: { componentActions, componentState, getState }
25308
25724
  },
25309
- /* @__PURE__ */ React59.createElement(MenuComponent, { domProps: props.domProps })
25725
+ /* @__PURE__ */ React60.createElement(MenuComponent, { domProps: props.domProps })
25310
25726
  );
25311
25727
  }
25312
25728
  function Menu(props) {
@@ -25331,7 +25747,7 @@ function Menu(props) {
25331
25747
  __is_infinite_menu_component,
25332
25748
  ...domProps
25333
25749
  } = props;
25334
- const menu = /* @__PURE__ */ React59.createElement(
25750
+ const menu = /* @__PURE__ */ React60.createElement(
25335
25751
  MenuRoot,
25336
25752
  {
25337
25753
  addSubmenuColumnIfNeeded,
@@ -25339,17 +25755,17 @@ function Menu(props) {
25339
25755
  wrapLabels,
25340
25756
  ...props
25341
25757
  },
25342
- /* @__PURE__ */ React59.createElement(MenuContextProvider, { domProps })
25758
+ /* @__PURE__ */ React60.createElement(MenuContextProvider, { domProps })
25343
25759
  );
25344
25760
  if (false) {
25345
- return /* @__PURE__ */ React59.createElement(React59.StrictMode, null, menu);
25761
+ return /* @__PURE__ */ React60.createElement(React60.StrictMode, null, menu);
25346
25762
  }
25347
25763
  return menu;
25348
25764
  }
25349
25765
  Menu[propToIdentifyMenu] = true;
25350
25766
 
25351
25767
  // src/components/InfiniteTable/utils/defaultGetColumnMenuItems.tsx
25352
- var React60 = __toESM(require("react"));
25768
+ var React61 = __toESM(require("react"));
25353
25769
  function defaultGetColumnMenuItems(_items, params) {
25354
25770
  const { columnApi, column, getComputed, api } = params;
25355
25771
  const sortable = columnApi.isSortable();
@@ -25436,7 +25852,7 @@ function defaultGetColumnMenuItems(_items, params) {
25436
25852
  colItems.push({
25437
25853
  key: id,
25438
25854
  label,
25439
- check: /* @__PURE__ */ React60.createElement(
25855
+ check: /* @__PURE__ */ React61.createElement(
25440
25856
  InfiniteCheckBox,
25441
25857
  {
25442
25858
  key: col.id,
@@ -25498,7 +25914,7 @@ function getMenuForColumn(columnId, context, onHideIntent) {
25498
25914
  if (!items || !items.length) {
25499
25915
  return null;
25500
25916
  }
25501
- return /* @__PURE__ */ React61.createElement(
25917
+ return /* @__PURE__ */ React62.createElement(
25502
25918
  MenuCmp,
25503
25919
  {
25504
25920
  autoFocus: true,
@@ -25616,7 +26032,7 @@ function useColumnMenu() {
25616
26032
  }
25617
26033
 
25618
26034
  // src/components/InfiniteTable/components/FocusDetect.tsx
25619
- var React62 = __toESM(require("react"));
26035
+ var React63 = __toESM(require("react"));
25620
26036
  var import_react59 = require("react");
25621
26037
  var style = {
25622
26038
  width: 0,
@@ -25650,7 +26066,7 @@ function FocusDetect() {
25650
26066
  };
25651
26067
  focusLastFocusableCell(context);
25652
26068
  }, []);
25653
- return /* @__PURE__ */ React62.createElement(
26069
+ return /* @__PURE__ */ React63.createElement(
25654
26070
  "div",
25655
26071
  {
25656
26072
  onFocus,
@@ -25788,18 +26204,18 @@ function useEditingCallbackProps() {
25788
26204
  var import_react61 = require("react");
25789
26205
 
25790
26206
  // src/components/InfiniteTable/utils/getFilterOperatorMenuForColumn.tsx
25791
- var React65 = __toESM(require("react"));
26207
+ var React66 = __toESM(require("react"));
25792
26208
 
25793
26209
  // src/components/InfiniteTable/components/icons/ClearIcon.tsx
25794
- var React63 = __toESM(require("react"));
26210
+ var React64 = __toESM(require("react"));
25795
26211
  var ClearIcon = (props) => {
25796
- return /* @__PURE__ */ React63.createElement(Icon, { ...props }, /* @__PURE__ */ React63.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }));
26212
+ return /* @__PURE__ */ React64.createElement(Icon, { ...props }, /* @__PURE__ */ React64.createElement("path", { d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" }));
25797
26213
  };
25798
26214
 
25799
26215
  // src/components/InfiniteTable/components/icons/DoneIcon.tsx
25800
- var React64 = __toESM(require("react"));
26216
+ var React65 = __toESM(require("react"));
25801
26217
  var DoneIcon = (props) => {
25802
- return /* @__PURE__ */ React64.createElement(Icon, { ...props }, /* @__PURE__ */ React64.createElement("path", { d: "m9.55 19-6.725-6.725L5.25 9.85l4.3 4.325 9.225-9.225 2.425 2.4Z" }));
26218
+ return /* @__PURE__ */ React65.createElement(Icon, { ...props }, /* @__PURE__ */ React65.createElement("path", { d: "m9.55 19-6.725-6.725L5.25 9.85l4.3 4.325 9.225-9.225 2.425 2.4Z" }));
25803
26219
  };
25804
26220
 
25805
26221
  // src/components/InfiniteTable/utils/getFilterOperatorMenuForColumn.tsx
@@ -25842,12 +26258,12 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
25842
26258
  const IconCmp = operator.components?.Icon ?? FilterIcon;
25843
26259
  return {
25844
26260
  key,
25845
- icon: /* @__PURE__ */ React65.createElement(IconCmp, null),
25846
- label: /* @__PURE__ */ React65.createElement(React65.Fragment, null, operator.label ?? operator.name),
26261
+ icon: /* @__PURE__ */ React66.createElement(IconCmp, null),
26262
+ label: /* @__PURE__ */ React66.createElement(React66.Fragment, null, operator.label ?? operator.name),
25847
26263
  onAction: () => {
25848
26264
  api.setColumnFilterOperator(columnId, key);
25849
26265
  },
25850
- checked: checked ? /* @__PURE__ */ React65.createElement(DoneIcon, { size: 16 }) : null
26266
+ checked: checked ? /* @__PURE__ */ React66.createElement(DoneIcon, { size: 16 }) : null
25851
26267
  };
25852
26268
  });
25853
26269
  const firstItems = [
@@ -25862,7 +26278,7 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
25862
26278
  {
25863
26279
  key: "reset",
25864
26280
  label: "Reset",
25865
- icon: /* @__PURE__ */ React65.createElement(ClearIcon, null),
26281
+ icon: /* @__PURE__ */ React66.createElement(ClearIcon, null),
25866
26282
  disabled: !column.computedFiltered,
25867
26283
  onAction: () => {
25868
26284
  api.clearColumnFilter(columnId);
@@ -25884,7 +26300,7 @@ function getFilterOperatorMenuForColumn(columnId, context, onHideIntent) {
25884
26300
  filterTypes
25885
26301
  };
25886
26302
  const items = getFilterOperatorMenuItems ? getFilterOperatorMenuItems(defaultItems, param) : defaultItems;
25887
- return /* @__PURE__ */ React65.createElement(
26303
+ return /* @__PURE__ */ React66.createElement(
25888
26304
  MenuCmp,
25889
26305
  {
25890
26306
  autoFocus: true,
@@ -25990,7 +26406,7 @@ function useColumnFilterOperatorMenu() {
25990
26406
  var import_react62 = require("react");
25991
26407
 
25992
26408
  // src/components/InfiniteTable/utils/getCellContextMenu.tsx
25993
- var React66 = __toESM(require("react"));
26409
+ var React67 = __toESM(require("react"));
25994
26410
  function getCellContextMenu(cellLocation, context, onHideIntent) {
25995
26411
  const { columnId, rowIndex, event } = cellLocation;
25996
26412
  const { getComputed, getState } = context;
@@ -26030,7 +26446,7 @@ function getCellContextMenu(cellLocation, context, onHideIntent) {
26030
26446
  }
26031
26447
  return {
26032
26448
  preventDefault: true,
26033
- menu: /* @__PURE__ */ React66.createElement(
26449
+ menu: /* @__PURE__ */ React67.createElement(
26034
26450
  MenuCmp,
26035
26451
  {
26036
26452
  columns: menuColumns,
@@ -26086,7 +26502,7 @@ function getTableContextMenu(menuLocation, context, onHideIntent) {
26086
26502
  }
26087
26503
  return {
26088
26504
  preventDefault: true,
26089
- menu: /* @__PURE__ */ React66.createElement(
26505
+ menu: /* @__PURE__ */ React67.createElement(
26090
26506
  MenuCmp,
26091
26507
  {
26092
26508
  columns: menuColumns,
@@ -26296,7 +26712,7 @@ function useTableContextMenu() {
26296
26712
 
26297
26713
  // src/components/InfiniteTable/components/HScrollSyncContent.tsx
26298
26714
  var import_react64 = require("react");
26299
- var React67 = __toESM(require("react"));
26715
+ var React68 = __toESM(require("react"));
26300
26716
 
26301
26717
  // src/components/InfiniteTable/hooks/useGridScroll.ts
26302
26718
  var import_react63 = require("react");
@@ -26342,7 +26758,7 @@ function HScrollSyncContent(props) {
26342
26758
  } else if (maxWidth === "viewport") {
26343
26759
  style2.maxWidth = ThemeVars.runtime.bodyWidth;
26344
26760
  }
26345
- return /* @__PURE__ */ React67.createElement(
26761
+ return /* @__PURE__ */ React68.createElement(
26346
26762
  "div",
26347
26763
  {
26348
26764
  ref: domRef,
@@ -26443,7 +26859,7 @@ function useHorizontalLayout() {
26443
26859
  }
26444
26860
 
26445
26861
  // src/components/InfiniteTable/hooks/useDebugMode.ts
26446
- var React68 = __toESM(require("react"));
26862
+ var React69 = __toESM(require("react"));
26447
26863
  var logWarning = once(() => {
26448
26864
  console.warn(
26449
26865
  `It appears you have not loaded the CSS file for InfiniteTable.
@@ -26457,7 +26873,7 @@ import '@infinite-table/infinite-react/index.css'
26457
26873
  var cssFileLoadedVarName = stripVar(ThemeVars.loaded);
26458
26874
  function useDebugMode() {
26459
26875
  const { getState } = useInfiniteTable();
26460
- React68.useEffect(() => {
26876
+ React69.useEffect(() => {
26461
26877
  runDebugMode(getState);
26462
26878
  }, []);
26463
26879
  }
@@ -26513,7 +26929,7 @@ function InfiniteTableHeader2() {
26513
26929
  const { state: componentState, getComputed } = context;
26514
26930
  const { header, brain, headerBrain, wrapRowsHorizontally } = componentState;
26515
26931
  const { scrollbars } = getComputed();
26516
- return header ? /* @__PURE__ */ React69.createElement(
26932
+ return header ? /* @__PURE__ */ React70.createElement(
26517
26933
  TableHeaderWrapper,
26518
26934
  {
26519
26935
  wrapRowsHorizontally: !!wrapRowsHorizontally,
@@ -26530,7 +26946,7 @@ var InfiniteTableBodyCls = join(
26530
26946
  transformTranslateZero
26531
26947
  );
26532
26948
  function InfiniteTableBodyContainer(props) {
26533
- return /* @__PURE__ */ React69.createElement(
26949
+ return /* @__PURE__ */ React70.createElement(
26534
26950
  "div",
26535
26951
  {
26536
26952
  ...props,
@@ -26567,7 +26983,7 @@ function InfiniteTableBody() {
26567
26983
  const {
26568
26984
  componentState: { loading }
26569
26985
  } = useDataSourceContextValue();
26570
- const onContextMenu = React69.useCallback((event) => {
26986
+ const onContextMenu = React70.useCallback((event) => {
26571
26987
  const state = context.getState();
26572
26988
  const target = event.target;
26573
26989
  if (!masterContext && event._from_row_detail) {
@@ -26613,7 +27029,7 @@ function InfiniteTableBody() {
26613
27029
  });
26614
27030
  const { autoFocus, tabIndex } = domProps ?? {};
26615
27031
  useToggleWrapRowsHorizontally();
26616
- return /* @__PURE__ */ React69.createElement(InfiniteTableBodyContainer, { onContextMenu }, /* @__PURE__ */ React69.createElement(
27032
+ return /* @__PURE__ */ React70.createElement(InfiniteTableBodyContainer, { onContextMenu }, /* @__PURE__ */ React70.createElement(
26617
27033
  HeadlessTable,
26618
27034
  {
26619
27035
  forceRerenderTimestamp: componentState.forceBodyRerenderTimestamp,
@@ -26634,9 +27050,9 @@ function InfiniteTableBody() {
26634
27050
  cellHoverClassNames: showHoverRows ? HOVERED_CLASS_NAMES : void 0,
26635
27051
  scrollerDOMRef
26636
27052
  }
26637
- ), /* @__PURE__ */ React69.createElement(LoadMaskCmp, { visible: loading }, loadingText));
27053
+ ), /* @__PURE__ */ React70.createElement(LoadMaskCmp, { visible: loading }, loadingText));
26638
27054
  }
26639
- var InfiniteTableComponent = React69.memo(
27055
+ var InfiniteTableComponent = React70.memo(
26640
27056
  function InfiniteTableComponent2() {
26641
27057
  const context = useInfiniteTable();
26642
27058
  const masterContext = useMasterDetailContext();
@@ -26668,7 +27084,7 @@ var InfiniteTableComponent = React69.memo(
26668
27084
  useScrollToActiveRow(activeRowIndex, dataArray.length, api);
26669
27085
  useScrollToActiveCell(activeCellIndex, dataArray.length, api);
26670
27086
  const { onKeyDown: onKeyDown2 } = useDOMEventHandlers();
26671
- React69.useEffect(() => {
27087
+ React70.useEffect(() => {
26672
27088
  const dataSourceState = getDataSourceState();
26673
27089
  const onChange = debounce(
26674
27090
  (renderRange) => {
@@ -26691,7 +27107,7 @@ var InfiniteTableComponent = React69.memo(
26691
27107
  ...initialDOMProps
26692
27108
  } = componentState.domProps ?? {};
26693
27109
  const domProps = useDOMProps(initialDOMProps);
26694
- React69.useEffect(() => {
27110
+ React70.useEffect(() => {
26695
27111
  brain.setScrollStopDelay(scrollStopDelay);
26696
27112
  dataSourceActions.scrollStopDelayUpdatedByTable = scrollStopDelay;
26697
27113
  }, [scrollStopDelay]);
@@ -26702,7 +27118,7 @@ var InfiniteTableComponent = React69.memo(
26702
27118
  const { menuPortal: cellContextMenuPortal } = useCellContextMenu();
26703
27119
  const { menuPortal: tableContextMenuPortal } = useTableContextMenu();
26704
27120
  const { menuPortal: filterOperatorMenuPortal } = useColumnFilterOperatorMenu();
26705
- React69.useEffect(() => {
27121
+ React70.useEffect(() => {
26706
27122
  if (typeof globalThis.__DO_NOT_USE_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_IS_READY === "function") {
26707
27123
  globalThis.__DO_NOT_USE_UNLESS_YOU_KNOW_WHAT_YOURE_DOING_IS_READY(
26708
27124
  componentState.id,
@@ -26716,13 +27132,13 @@ var InfiniteTableComponent = React69.memo(
26716
27132
  }
26717
27133
  }, [componentState.ready]);
26718
27134
  useDebugMode();
26719
- React69.useEffect(() => {
27135
+ React70.useEffect(() => {
26720
27136
  if (masterContext) {
26721
27137
  portalDOMRef.current = masterContext.getMasterState().portalDOMRef.current;
26722
27138
  }
26723
27139
  }, []);
26724
- const children = initialChildren ?? /* @__PURE__ */ React69.createElement(React69.Fragment, null, /* @__PURE__ */ React69.createElement(InfiniteTableHeader2, null), /* @__PURE__ */ React69.createElement(InfiniteTableBody, null));
26725
- return /* @__PURE__ */ React69.createElement("div", { onKeyDown: onKeyDown2, ref: domRef, ...domProps }, children, /* @__PURE__ */ React69.createElement(
27140
+ const children = initialChildren ?? /* @__PURE__ */ React70.createElement(React70.Fragment, null, /* @__PURE__ */ React70.createElement(InfiniteTableHeader2, null), /* @__PURE__ */ React70.createElement(InfiniteTableBody, null));
27141
+ return /* @__PURE__ */ React70.createElement("div", { onKeyDown: onKeyDown2, ref: domRef, ...domProps }, children, /* @__PURE__ */ React70.createElement(
26726
27142
  "div",
26727
27143
  {
26728
27144
  ref: portalDOMRef,
@@ -26738,14 +27154,14 @@ var InfiniteTableComponent = React69.memo(
26738
27154
  cellContextMenuPortal,
26739
27155
  tableContextMenuPortal,
26740
27156
  filterOperatorMenuPortal
26741
- ), rowHeightCSSVar ? /* @__PURE__ */ React69.createElement(
27157
+ ), rowHeightCSSVar ? /* @__PURE__ */ React70.createElement(
26742
27158
  CSSNumericVariableWatch,
26743
27159
  {
26744
27160
  key: "row-height",
26745
27161
  varName: rowHeightCSSVar,
26746
27162
  onChange: onRowHeightCSSVarChange
26747
27163
  }
26748
- ) : null, /* @__PURE__ */ React69.createElement(
27164
+ ) : null, /* @__PURE__ */ React70.createElement(
26749
27165
  CSSNumericVariableWatch,
26750
27166
  {
26751
27167
  key: "flashing-duration",
@@ -26753,21 +27169,21 @@ var InfiniteTableComponent = React69.memo(
26753
27169
  varName: ThemeVars.components.Cell.flashingDuration,
26754
27170
  onChange: onFlashingDurationCSSVarChange
26755
27171
  }
26756
- ), rowDetailHeightCSSVar ? /* @__PURE__ */ React69.createElement(
27172
+ ), rowDetailHeightCSSVar ? /* @__PURE__ */ React70.createElement(
26757
27173
  CSSNumericVariableWatch,
26758
27174
  {
26759
27175
  key: "row-detail-height",
26760
27176
  varName: rowDetailHeightCSSVar,
26761
27177
  onChange: onRowDetailHeightCSSVarChange
26762
27178
  }
26763
- ) : null, columnHeaderHeightCSSVar ? /* @__PURE__ */ React69.createElement(
27179
+ ) : null, columnHeaderHeightCSSVar ? /* @__PURE__ */ React70.createElement(
26764
27180
  CSSNumericVariableWatch,
26765
27181
  {
26766
27182
  key: "column-header-height",
26767
27183
  varName: columnHeaderHeightCSSVar,
26768
27184
  onChange: onColumnHeaderHeightCSSVarChange
26769
27185
  }
26770
- ) : null, licenseValid ? null : /* @__PURE__ */ React69.createElement(InfiniteTableLicenseFooter, null), /* @__PURE__ */ React69.createElement(FocusDetect, null));
27186
+ ) : null, licenseValid ? null : /* @__PURE__ */ React70.createElement(InfiniteTableLicenseFooter, null), /* @__PURE__ */ React70.createElement(FocusDetect, null));
26771
27187
  }
26772
27188
  );
26773
27189
  function InfiniteTableContextProvider({
@@ -26791,7 +27207,7 @@ function InfiniteTableContextProvider({
26791
27207
  getDataSourceMasterContext,
26792
27208
  api: dataSourceApi
26793
27209
  } = useDataSourceContextValue();
26794
- const [imperativeApi] = React69.useState(() => {
27210
+ const [imperativeApi] = React70.useState(() => {
26795
27211
  return getImperativeApi({
26796
27212
  getComputed,
26797
27213
  getState,
@@ -26827,20 +27243,20 @@ function InfiniteTableContextProvider({
26827
27243
  },
26828
27244
  { earlyAttach: true, debounce: 50 }
26829
27245
  );
26830
- React69.useEffect(() => {
27246
+ React70.useEffect(() => {
26831
27247
  if (scrollerDOMRef.current) {
26832
27248
  scrollerDOMRef.current.scrollTop = 0;
26833
27249
  }
26834
27250
  }, [scrollTopKey, scrollerDOMRef]);
26835
27251
  const TableContext2 = getInfiniteTableContext();
26836
- return /* @__PURE__ */ React69.createElement(TableContext2.Provider, { value: contextValue }, /* @__PURE__ */ React69.createElement(InfiniteTableComponent, null));
27252
+ return /* @__PURE__ */ React70.createElement(TableContext2.Provider, { value: contextValue }, /* @__PURE__ */ React70.createElement(InfiniteTableComponent, null));
26837
27253
  }
26838
27254
  var DEFAULT_ROW_HEIGHT = 40;
26839
27255
  var DEFAULT_COLUMN_HEADER_HEIGHT = toCSSVarName(columnHeaderHeightName);
26840
27256
  var InfiniteTable = function(props) {
26841
27257
  const table = (
26842
27258
  //@ts-ignore
26843
- /* @__PURE__ */ React69.createElement(
27259
+ /* @__PURE__ */ React70.createElement(
26844
27260
  InfiniteTableRoot,
26845
27261
  {
26846
27262
  repeatWrappedGroupRows: !!props.wrapRowsHorizontally,
@@ -26848,30 +27264,30 @@ var InfiniteTable = function(props) {
26848
27264
  columnHeaderHeight: DEFAULT_COLUMN_HEADER_HEIGHT,
26849
27265
  ...props
26850
27266
  },
26851
- /* @__PURE__ */ React69.createElement(InfiniteTableContextProvider, { children: props.children })
27267
+ /* @__PURE__ */ React70.createElement(InfiniteTableContextProvider, { children: props.children })
26852
27268
  )
26853
27269
  );
26854
27270
  if (false) {
26855
- return /* @__PURE__ */ React69.createElement(React69.StrictMode, null, table);
27271
+ return /* @__PURE__ */ React70.createElement(React70.StrictMode, null, table);
26856
27272
  }
26857
27273
  return table;
26858
27274
  };
26859
27275
  InfiniteTable.Header = InfiniteTableHeader2;
26860
27276
  InfiniteTable.Body = InfiniteTableBody;
26861
27277
  InfiniteTable.HScrollSyncContent = HScrollSyncContent;
26862
- InfiniteTable.Footer = () => /* @__PURE__ */ React69.createElement(InfiniteTableFooter, null);
27278
+ InfiniteTable.Footer = () => /* @__PURE__ */ React70.createElement(InfiniteTableFooter, null);
26863
27279
 
26864
27280
  // src/components/TreeGrid/TreeDataSource.tsx
26865
- var React70 = __toESM(require("react"));
27281
+ var React71 = __toESM(require("react"));
26866
27282
  function TreeDataSource(props) {
26867
27283
  const { DataSource: DataSourceComponent } = useDataSourceInternal({ nodesKey: "children", ...props });
26868
- return /* @__PURE__ */ React70.createElement(DataSourceComponent, null, props.children ?? null);
27284
+ return /* @__PURE__ */ React71.createElement(DataSourceComponent, null, props.children ?? null);
26869
27285
  }
26870
27286
 
26871
27287
  // src/components/TreeGrid/TreeGrid.tsx
26872
- var React71 = __toESM(require("react"));
27288
+ var React72 = __toESM(require("react"));
26873
27289
  function TreeGrid(props) {
26874
- return /* @__PURE__ */ React71.createElement(InfiniteTable, { ...props });
27290
+ return /* @__PURE__ */ React72.createElement(InfiniteTable, { ...props });
26875
27291
  }
26876
27292
 
26877
27293
  // src/components/DataSource/DataLoader/DataQuery.ts
@@ -27338,12 +27754,12 @@ var useEffectWhen = (callback, options) => {
27338
27754
  };
27339
27755
 
27340
27756
  // src/components/InfiniteTable/components/InfiniteTableRow/FlashingColumnCell.tsx
27341
- var React72 = __toESM(require("react"));
27757
+ var React73 = __toESM(require("react"));
27342
27758
  var currentFlashingDurationVar = stripVar(
27343
27759
  InternalVars.currentFlashingDuration
27344
27760
  );
27345
27761
  var defaultRender = ({ children }) => {
27346
- return /* @__PURE__ */ React72.createElement(React72.Fragment, null, children);
27762
+ return /* @__PURE__ */ React73.createElement(React73.Fragment, null, children);
27347
27763
  };
27348
27764
  var DEFAULT_FLASH_DURATION = 1e3;
27349
27765
  var INTERNAL_FLASH_CLS_FOR_DIRECTION = {
@@ -27365,7 +27781,7 @@ var createFlashingColumnCellComponent = (options = {}) => {
27365
27781
  // fadeClassName,
27366
27782
  render = defaultRender
27367
27783
  } = options;
27368
- const FlashingColumnCell2 = React72.forwardRef(
27784
+ const FlashingColumnCell2 = React73.forwardRef(
27369
27785
  (props, _ref) => {
27370
27786
  const cellContext = useInfiniteColumnCell();
27371
27787
  const {
@@ -27375,13 +27791,13 @@ var createFlashingColumnCellComponent = (options = {}) => {
27375
27791
  const { domRef, value, column, rowInfo, htmlElementRef } = cellContext;
27376
27792
  const rowId = rowInfo.id;
27377
27793
  const columnId = column.id;
27378
- const initialRef = React72.useRef(true);
27379
- const oldValueRef = React72.useRef(value);
27794
+ const initialRef = React73.useRef(true);
27795
+ const oldValueRef = React73.useRef(value);
27380
27796
  const oldValue = initialRef.current ? null : oldValueRef.current;
27381
27797
  initialRef.current = false;
27382
- const flashTimeoutIdRef = React72.useRef();
27383
- const flashDirectionRef = React72.useRef();
27384
- const fadeTimeoutIdRef = React72.useRef();
27798
+ const flashTimeoutIdRef = React73.useRef();
27799
+ const flashDirectionRef = React73.useRef();
27800
+ const fadeTimeoutIdRef = React73.useRef();
27385
27801
  useEffectWhen(
27386
27802
  () => {
27387
27803
  if (value === oldValueRef.current) {
@@ -27428,7 +27844,7 @@ var createFlashingColumnCellComponent = (options = {}) => {
27428
27844
  different: [value]
27429
27845
  }
27430
27846
  );
27431
- return /* @__PURE__ */ React72.createElement("div", { ref: domRef, ...props, className: join(props.className) }, render({ children: props.children, oldValue }));
27847
+ return /* @__PURE__ */ React73.createElement("div", { ref: domRef, ...props, className: join(props.className) }, render({ children: props.children, oldValue }));
27432
27848
  }
27433
27849
  );
27434
27850
  return FlashingColumnCell2;