@deephaven/grid 1.19.1-console-types-fixes.0 → 1.22.1

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.
@@ -151,16 +151,45 @@ export declare class GridUtils {
151
151
  */
152
152
  static getNextShownRow(startIndex: VisibleIndex, metrics: GridMetrics): VisibleIndex | null;
153
153
  /**
154
- * Check if a separator exists between a column and the next column at a given depth.
155
- * A separator exists if adjacent columns have different header text at the specified depth.
154
+ * Determine whether two adjacent columns belong to the same column-header group
155
+ * at the given depth.
156
+ *
157
+ * - When the model exposes group instances via `getColumnHeaderGroup`, identity
158
+ * decides: two distinct group instances that happen to share a display name
159
+ * (e.g. pivot Totals groups) are treated as different groups.
160
+ * - When only one side has a declared group, they are different groups.
161
+ * - When neither side has a declared group, fall back to header-text equality so
162
+ * plain grouped-header models (which express grouping only through repeated
163
+ * text) keep their existing behavior.
164
+ *
165
+ * @param model The grid model
166
+ * @param depth The header depth to check at
167
+ * @param columnIndex The first model column index
168
+ * @param otherColumnIndex The second model column index
169
+ * @returns true if both columns are part of the same group at this depth
170
+ */
171
+ static isSameColumnGroupAtDepth(model: GridModel, depth: number, columnIndex: ModelIndex, otherColumnIndex: ModelIndex): boolean;
172
+ /**
173
+ * Check if a separator exists between the column at `visibleIndex` and the
174
+ * column immediately after it at a given header depth.
175
+ *
176
+ * - At leaf depth (0), every model column has a separator on its trailing edge.
177
+ * - At deeper depths, separator existence follows column-header-group identity
178
+ * (see {@link isSameColumnGroupAtDepth}). Distinct group instances that share a
179
+ * display name (e.g. pivot Totals groups) are correctly treated as separate.
180
+ * - The true trailing edge of the table (the last column) always has a separator.
181
+ *
182
+ * The next model column is resolved from `visibleIndex + 1` so that an off-screen
183
+ * neighbor is handled correctly and is not mistaken for the table's trailing edge.
156
184
  *
157
185
  * @param model The grid model
158
186
  * @param depth The header depth to check at
159
- * @param columnIndex The current model column index
160
- * @param nextColumnIndex The next model column index (undefined for last column)
187
+ * @param visibleIndex The visible index of the current column
188
+ * @param columnCount The total number of columns in the model
189
+ * @param movedColumns The current column-move operations
161
190
  * @returns true if a separator should be shown, false otherwise
162
191
  */
163
- static hasColumnSeparatorAtDepth(model: GridModel, depth: number | undefined, columnIndex: ModelIndex | undefined, nextColumnIndex: ModelIndex | undefined): boolean;
192
+ static hasColumnSeparatorAtDepth(model: GridModel, depth: number | undefined, visibleIndex: VisibleIndex | undefined, columnCount: number, movedColumns: readonly MoveOperation[]): boolean;
164
193
  /**
165
194
  * Gets the column index if the x/y coordinates provided are close enough to the separator, otherwise null
166
195
  * @param x Mouse x coordinate
@@ -1 +1 @@
1
- {"version":3,"file":"GridUtils.d.ts","sourceRoot":"","sources":["../src/GridUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GridUtils.d.ts","sourceRoot":"","sources":["../src/GridUtils.ts"],"names":[],"mappings":"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"}
package/dist/GridUtils.js CHANGED
@@ -294,27 +294,74 @@ export class GridUtils {
294
294
  }
295
295
 
296
296
  /**
297
- * Check if a separator exists between a column and the next column at a given depth.
298
- * A separator exists if adjacent columns have different header text at the specified depth.
297
+ * Determine whether two adjacent columns belong to the same column-header group
298
+ * at the given depth.
299
+ *
300
+ * - When the model exposes group instances via `getColumnHeaderGroup`, identity
301
+ * decides: two distinct group instances that happen to share a display name
302
+ * (e.g. pivot Totals groups) are treated as different groups.
303
+ * - When only one side has a declared group, they are different groups.
304
+ * - When neither side has a declared group, fall back to header-text equality so
305
+ * plain grouped-header models (which express grouping only through repeated
306
+ * text) keep their existing behavior.
307
+ *
308
+ * @param model The grid model
309
+ * @param depth The header depth to check at
310
+ * @param columnIndex The first model column index
311
+ * @param otherColumnIndex The second model column index
312
+ * @returns true if both columns are part of the same group at this depth
313
+ */
314
+ static isSameColumnGroupAtDepth(model, depth, columnIndex, otherColumnIndex) {
315
+ var groupA = model.getColumnHeaderGroup(columnIndex, depth);
316
+ var groupB = model.getColumnHeaderGroup(otherColumnIndex, depth);
317
+ if (groupA != null && groupB != null) {
318
+ return groupA === groupB;
319
+ }
320
+ if (groupA != null || groupB != null) {
321
+ return false;
322
+ }
323
+
324
+ // Neither side has a declared group; fall back to text equality
325
+ return model.textForColumnHeader(columnIndex, depth) === model.textForColumnHeader(otherColumnIndex, depth);
326
+ }
327
+
328
+ /**
329
+ * Check if a separator exists between the column at `visibleIndex` and the
330
+ * column immediately after it at a given header depth.
331
+ *
332
+ * - At leaf depth (0), every model column has a separator on its trailing edge.
333
+ * - At deeper depths, separator existence follows column-header-group identity
334
+ * (see {@link isSameColumnGroupAtDepth}). Distinct group instances that share a
335
+ * display name (e.g. pivot Totals groups) are correctly treated as separate.
336
+ * - The true trailing edge of the table (the last column) always has a separator.
337
+ *
338
+ * The next model column is resolved from `visibleIndex + 1` so that an off-screen
339
+ * neighbor is handled correctly and is not mistaken for the table's trailing edge.
299
340
  *
300
341
  * @param model The grid model
301
342
  * @param depth The header depth to check at
302
- * @param columnIndex The current model column index
303
- * @param nextColumnIndex The next model column index (undefined for last column)
343
+ * @param visibleIndex The visible index of the current column
344
+ * @param columnCount The total number of columns in the model
345
+ * @param movedColumns The current column-move operations
304
346
  * @returns true if a separator should be shown, false otherwise
305
347
  */
306
- static hasColumnSeparatorAtDepth(model, depth, columnIndex, nextColumnIndex) {
307
- if (depth == null || columnIndex == null) {
348
+ static hasColumnSeparatorAtDepth(model, depth, visibleIndex, columnCount, movedColumns) {
349
+ if (depth == null || visibleIndex == null) {
308
350
  return false;
309
351
  }
310
352
 
311
- // Always show separator for the last column
312
- if (nextColumnIndex == null) {
353
+ // True trailing edge of the table
354
+ if (visibleIndex >= columnCount - 1) {
313
355
  return true;
314
356
  }
315
357
 
316
- // A separator exists if adjacent columns have different header text at this depth
317
- return model.textForColumnHeader(columnIndex, depth) !== model.textForColumnHeader(nextColumnIndex, depth);
358
+ // Leaf depth: every distinct model column is a physical boundary
359
+ if (depth === 0) {
360
+ return true;
361
+ }
362
+ var columnIndex = GridUtils.getModelIndex(visibleIndex, movedColumns);
363
+ var nextColumnIndex = GridUtils.getModelIndex(visibleIndex + 1, movedColumns);
364
+ return !GridUtils.isSameColumnGroupAtDepth(model, depth, columnIndex, nextColumnIndex);
318
365
  }
319
366
 
320
367
  /**
@@ -336,7 +383,8 @@ export class GridUtils {
336
383
  allColumnXs,
337
384
  allColumnWidths,
338
385
  columnHeaderMaxDepth,
339
- modelColumns
386
+ columnCount,
387
+ movedColumns
340
388
  } = metrics;
341
389
  var {
342
390
  allowColumnResize,
@@ -366,7 +414,7 @@ export class GridUtils {
366
414
  }
367
415
  var minX = midX - halfSeparatorSize;
368
416
  var maxX = midX + halfSeparatorSize;
369
- if (minX <= gridX && gridX <= maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, modelColumns.get(column), modelColumns.get(column + 1))) {
417
+ if (minX <= gridX && gridX <= maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, column, columnCount, movedColumns)) {
370
418
  return column;
371
419
  }
372
420
  isPreviousColumnHidden = isColumnHidden;
@@ -395,7 +443,7 @@ export class GridUtils {
395
443
  }
396
444
  var _minX = _midX - halfSeparatorSize;
397
445
  var _maxX = _midX + halfSeparatorSize;
398
- if (_minX <= gridX && gridX <= _maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, modelColumns.get(_column), modelColumns.get(_column + 1))) {
446
+ if (_minX <= gridX && gridX <= _maxX && GridUtils.hasColumnSeparatorAtDepth(model, depth, _column, columnCount, movedColumns)) {
399
447
  return _column;
400
448
  }
401
449
  isPreviousColumnHidden = _isColumnHidden;