@deephaven/grid 0.72.1-xcomponent.2 → 0.73.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +10 -2
- package/dist/GridRenderer.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +14 -10
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +7 -6
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridColumnMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"GridColumnMoveMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,gBAAgB,EAAE,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EAEV,aAAa,EACb,UAAU,EACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,UAAU;IAClB,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,UAAU,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,KAAK,EAAE,gBAAgB,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAuFD,cAAM,0BAA2B,SAAQ,gBAAgB;IACvD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE7B,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,OAAO,CAAC,aAAa,CAAC,CAAS;IAE/B,OAAO,CAAC,gBAAgB,CAAC,CAAY;IAErC,OAAO,CAAC,iBAAiB,CAAC,CAAS;IAEnC,OAAO,CAAC,kBAAkB,CAAC,CAAmB;IAE9C,OAAO,CAAC,cAAc,CAA+B;IAErD,OAAO,CAAC,iBAAiB;IAqFzB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,IAAI,kBAAkB;IAK7B,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAkC5D,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IA+FrB;;;;;OAKG;IACH,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAwSpE;;;;;;;OAOG;IACH,UAAU,CACR,cAAc,EAAE,UAAU,EAC1B,EAAE,EAAE,MAAM,EACV,YAAY,EAAE,SAAS,aAAa,EAAE,GACrC,aAAa,EAAE;IAqBlB,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAgB3D;AAED,eAAe,0BAA0B,CAAC"}
|
|
@@ -4,6 +4,7 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
4
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
5
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
6
|
import clamp from 'lodash.clamp';
|
|
7
|
+
import { assertNotNull } from '@deephaven/utils';
|
|
7
8
|
import GridUtils from "../GridUtils.js";
|
|
8
9
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
9
10
|
var SLOPPY_CLICK_DISTANCE = 5;
|
|
@@ -280,6 +281,13 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
280
281
|
if (this.draggingOffset === undefined || this.initialGridPoint === undefined || this.initialOffset === undefined || this.draggingColumn == null || deltaX === 0) {
|
|
281
282
|
return;
|
|
282
283
|
}
|
|
284
|
+
var {
|
|
285
|
+
metrics
|
|
286
|
+
} = grid;
|
|
287
|
+
assertNotNull(metrics, 'Metrics not set');
|
|
288
|
+
var {
|
|
289
|
+
gridX
|
|
290
|
+
} = metrics;
|
|
283
291
|
|
|
284
292
|
// Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again
|
|
285
293
|
if (this.initialOffset !== this.draggingOffset) {
|
|
@@ -292,7 +300,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
292
300
|
this.draggingOffset += deltaX;
|
|
293
301
|
}
|
|
294
302
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
295
|
-
left: mouseX - this.draggingOffset
|
|
303
|
+
left: mouseX - this.draggingOffset - gridX
|
|
296
304
|
});
|
|
297
305
|
grid.setState({
|
|
298
306
|
draggingColumn: this.draggingColumn
|
|
@@ -308,10 +316,6 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
308
316
|
var {
|
|
309
317
|
movedColumns
|
|
310
318
|
} = grid.state;
|
|
311
|
-
var {
|
|
312
|
-
metrics
|
|
313
|
-
} = grid;
|
|
314
|
-
if (!metrics) throw new Error('Metrics not set');
|
|
315
319
|
var {
|
|
316
320
|
floatingLeftWidth,
|
|
317
321
|
width,
|
|
@@ -326,7 +330,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
326
330
|
|
|
327
331
|
// The returned left/right are the original position, not dragged position
|
|
328
332
|
// This is where the dragging column's floating position accounting for dragged distance
|
|
329
|
-
var floatingDraggingLeft = mouseX - this.draggingOffset;
|
|
333
|
+
var floatingDraggingLeft = mouseX - this.draggingOffset - gridX;
|
|
330
334
|
var floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;
|
|
331
335
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
332
336
|
left: floatingDraggingLeft
|
|
@@ -334,7 +338,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
334
338
|
grid.setState({
|
|
335
339
|
draggingColumn: this.draggingColumn
|
|
336
340
|
});
|
|
337
|
-
var swapColumn = getColumnInfo(GridUtils.getColumnAtX(clamp(isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight, floatingLeftWidth, width), metrics, true), draggingColumnDepth, metrics, model);
|
|
341
|
+
var swapColumn = getColumnInfo(GridUtils.getColumnAtX(clamp(isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight, floatingLeftWidth, width) + gridX, metrics, true), draggingColumnDepth, metrics, model);
|
|
338
342
|
var parentGroup = model.getColumnHeaderParentGroup(draggingColumn.modelIndex, draggingColumn.depth);
|
|
339
343
|
if (!swapColumn) {
|
|
340
344
|
return;
|
|
@@ -349,7 +353,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
349
353
|
var _newMovedColumns = this.moveColumn(draggingColumn, parentVisibleRange[0], movedColumns);
|
|
350
354
|
this.draggingOffset = mouseX - ((_allColumnXs$get3 = allColumnXs.get(parentVisibleRange[0])) !== null && _allColumnXs$get3 !== void 0 ? _allColumnXs$get3 : 0);
|
|
351
355
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
352
|
-
left: mouseX - this.draggingOffset
|
|
356
|
+
left: mouseX - this.draggingOffset - gridX
|
|
353
357
|
});
|
|
354
358
|
this.clearScrollInterval();
|
|
355
359
|
grid.setState({
|
|
@@ -368,7 +372,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
368
372
|
} = (_getColumnInfo = getColumnInfo(parentVisibleRange[1], 0, metrics, model)) !== null && _getColumnInfo !== void 0 ? _getColumnInfo : {};
|
|
369
373
|
this.draggingOffset = mouseX - (parentRight - draggingColumn.width);
|
|
370
374
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
371
|
-
left: mouseX - this.draggingOffset
|
|
375
|
+
left: mouseX - this.draggingOffset - gridX
|
|
372
376
|
});
|
|
373
377
|
this.clearScrollInterval();
|
|
374
378
|
grid.setState({
|
|
@@ -413,7 +417,7 @@ class GridColumnMoveMouseHandler extends GridMouseHandler {
|
|
|
413
417
|
this.draggingOffset = mouseX - (((_toColumnInfo$right = toColumnInfo === null || toColumnInfo === void 0 ? void 0 : toColumnInfo.right) !== null && _toColumnInfo$right !== void 0 ? _toColumnInfo$right : 0) - draggingColumn.width);
|
|
414
418
|
}
|
|
415
419
|
this.draggingColumn = _objectSpread(_objectSpread({}, this.draggingColumn), {}, {
|
|
416
|
-
left: mouseX - this.draggingOffset
|
|
420
|
+
left: mouseX - this.draggingOffset - gridX
|
|
417
421
|
});
|
|
418
422
|
grid.setState({
|
|
419
423
|
draggingColumn: this.draggingColumn
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridColumnMoveMouseHandler.js","names":["clamp","GridUtils","GridMouseHandler","SLOPPY_CLICK_DISTANCE","SCROLL_INTERVAL","SCROLL_DELTA","getColumnInfo","visibleIndex","depth","metrics","model","_modelColumns$get","modelColumns","movedColumns","allColumnXs","columnCount","allColumnWidths","userColumnWidths","calculatedColumnWidths","floatingLeftWidth","maxX","modelIndex","get","getModelIndex","group","getColumnHeaderGroup","isColumnGroup","left","right","range","_allColumnXs$get","_allColumnXs$get2","_allColumnWidths$get","startVisibleIndex","endVisibleIndex","getVisibleRange","_ref","_ref2","_allColumnWidths$get2","possibleLeft","width","GridColumnMoveMouseHandler","constructor","arguments","_defineProperty","setScrollInterval","grid","direction","scrollingInterval","scrollingDirection","window","setInterval","lastLeft","leftOffset","nextLeft","nextOffset","_userColumnWidths$get","prevColumnWidth","undefined","leftColumnWidth","_userColumnWidths$get2","mouseX","mouseY","state","moveDraggingColumn","setState","clearScrollInterval","clearInterval","onLeave","onDown","gridPoint","props","x","column","columnHeaderDepth","Error","columnInfo","rowHeaderWidth","initialGridPoint","draggingColumn","cursor","isColumnMovable","draggingOffset","initialOffset","onDrag","event","y","Math","abs","initialColumnInfo","startColumn","endColumn","isDragging","movementX","deltaX","_draggingParentGroup$","_objectSpread","draggingColumnDepth","columnHeaderMaxDepth","isDraggingLeft","floatingDraggingLeft","floatingDraggingRight","swapColumn","getColumnAtX","parentGroup","getColumnHeaderParentGroup","parentVisibleRange","_allColumnXs$get3","newMovedColumns","moveColumn","_getColumnInfo","parentRight","toVisibleIndex","toColumnInfo","_toColumnInfo$left","_toColumnInfo$right","switchPoint","draggingParentGroup","maxDepthSwapGroup","maxSwapDepth","to","moveRange","moveItem","moveDistance","newDraggingRange","onUp"],"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport Grid from '../Grid';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport type {\n VisibleIndex,\n ModelIndex,\n GridMetrics,\n MoveOperation,\n Coordinate,\n} from '../GridMetrics';\nimport type { BoundedAxisRange } from '../GridAxisRange';\nimport type GridModel from '../GridModel';\nimport type { IColumnHeaderGroup } from '../ColumnHeaderGroup';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\nconst SCROLL_INTERVAL = 1000 / 60;\nconst SCROLL_DELTA = 10;\n\nexport interface DraggingColumn {\n range: BoundedAxisRange;\n depth: number;\n left: Coordinate;\n width: number;\n}\n\ninterface ColumnInfo {\n visibleIndex: VisibleIndex;\n modelIndex: ModelIndex;\n left: number;\n right: number;\n width: number;\n isColumnGroup: boolean;\n range: BoundedAxisRange;\n depth: number;\n}\n\n/**\n * Gets info about a visible column\n * @param visibleIndex The visible index to get info for\n * @param depth The header depth to get info for\n * @param metrics Grid metrics\n * @param model Grid model\n * @returns The column info at the depth.\n * If the column is not in a group at that depth, returns the info for the base column.\n * Returns null if the column is not visible.\n */\nfunction getColumnInfo(\n visibleIndex: VisibleIndex | null,\n depth: number | undefined,\n metrics: GridMetrics,\n model: GridModel\n): ColumnInfo | null {\n const {\n modelColumns,\n movedColumns,\n allColumnXs,\n columnCount,\n allColumnWidths,\n userColumnWidths,\n calculatedColumnWidths,\n floatingLeftWidth,\n maxX,\n } = metrics;\n\n if (\n depth == null ||\n visibleIndex == null ||\n visibleIndex > columnCount ||\n visibleIndex < 0\n ) {\n return null;\n }\n\n const modelIndex =\n modelColumns.get(visibleIndex) ??\n GridUtils.getModelIndex(visibleIndex, movedColumns);\n\n const group = model.getColumnHeaderGroup(modelIndex, depth);\n const isColumnGroup = group != null;\n\n let left: number;\n let right: number;\n let range: BoundedAxisRange;\n\n if (group != null) {\n const [startVisibleIndex, endVisibleIndex] =\n group.getVisibleRange(movedColumns);\n\n left = allColumnXs.get(startVisibleIndex) ?? floatingLeftWidth;\n right =\n (allColumnXs.get(endVisibleIndex) ?? maxX) +\n (allColumnWidths.get(endVisibleIndex) ?? 0);\n range = [startVisibleIndex, endVisibleIndex];\n } else {\n const possibleLeft = allColumnXs.get(visibleIndex);\n if (possibleLeft == null) {\n return null;\n }\n\n left = possibleLeft;\n right =\n left +\n (allColumnWidths.get(visibleIndex) ??\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex) ??\n 0);\n range = [visibleIndex, visibleIndex];\n }\n\n return {\n visibleIndex,\n modelIndex,\n left,\n right,\n width: right - left,\n isColumnGroup,\n range,\n depth,\n };\n}\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor: string | null = null;\n\n private draggingOffset?: number;\n\n private initialOffset?: number;\n\n private initialGridPoint?: GridPoint;\n\n private scrollingInterval?: number;\n\n private scrollingDirection?: 'left' | 'right';\n\n private draggingColumn: DraggingColumn | null = null;\n\n private setScrollInterval(grid: Grid, direction: 'left' | 'right'): void {\n if (\n this.scrollingInterval != null &&\n direction === this.scrollingDirection\n ) {\n return;\n }\n\n this.scrollingDirection = direction;\n this.scrollingInterval = window.setInterval(() => {\n const { metrics } = grid;\n if (!metrics) {\n return;\n }\n\n const {\n left,\n lastLeft,\n leftOffset,\n userColumnWidths,\n calculatedColumnWidths,\n movedColumns,\n allColumnWidths,\n } = metrics;\n\n let nextLeft = left;\n let nextOffset = leftOffset;\n if (direction === 'left') {\n nextOffset -= SCROLL_DELTA;\n while (nextOffset < 0) {\n nextLeft -= 1;\n const modelIndex = GridUtils.getModelIndex(left - 1, movedColumns);\n const prevColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n if (prevColumnWidth === undefined) {\n nextOffset = 0;\n } else {\n nextOffset += prevColumnWidth;\n }\n if (nextLeft < 0) {\n nextOffset = 0;\n nextLeft = 0;\n }\n }\n } else {\n nextOffset += SCROLL_DELTA;\n let leftColumnWidth = allColumnWidths.get(left);\n while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {\n nextLeft += 1;\n nextOffset -= leftColumnWidth;\n const modelIndex = GridUtils.getModelIndex(left + 1, movedColumns);\n leftColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n\n if (nextLeft > lastLeft) {\n nextOffset = 0;\n nextLeft = lastLeft;\n }\n }\n }\n\n const { mouseX, mouseY } = grid.state;\n\n if (metrics == null || mouseX == null || mouseY == null) {\n return;\n }\n\n this.moveDraggingColumn(\n mouseX,\n grid,\n direction === 'left' ? -SCROLL_DELTA : SCROLL_DELTA\n );\n grid.setState({ left: nextLeft, leftOffset: nextOffset });\n\n if (\n (direction === 'left' && nextLeft === 0 && leftOffset === 0) ||\n (direction === 'right' && nextLeft === lastLeft)\n ) {\n this.clearScrollInterval();\n }\n }, SCROLL_INTERVAL);\n }\n\n private clearScrollInterval(): void {\n this.scrollingDirection = undefined;\n window.clearInterval(this.scrollingInterval);\n this.scrollingInterval = undefined;\n }\n\n onLeave(): EventHandlerResult {\n this.clearScrollInterval();\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, column, columnHeaderDepth } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);\n\n if (column == null || columnInfo == null || columnHeaderDepth == null) {\n return false;\n }\n\n // Can't drag a base column from the empty group area\n if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {\n return false;\n }\n\n const { rowHeaderWidth } = metrics;\n\n this.initialGridPoint = gridPoint;\n this.draggingColumn = null;\n this.cursor = null;\n\n if (\n columnInfo.modelIndex != null &&\n columnHeaderDepth != null &&\n model.isColumnMovable(columnInfo.modelIndex, columnHeaderDepth)\n ) {\n this.draggingOffset = x - columnInfo.left - rowHeaderWidth;\n this.initialOffset = this.draggingOffset;\n }\n return false;\n }\n\n onDrag(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined\n ) {\n return false;\n }\n\n const { x: mouseX, y: mouseY } = gridPoint;\n const { columnHeaderDepth } = this.initialGridPoint;\n\n const { model } = grid.props;\n let { draggingColumn } = this;\n const { metrics } = grid;\n\n if (!metrics) throw new Error('Metrics not set');\n\n // before considering it a drag, the mouse must have moved a minimum distance\n // this prevents click actions from triggering a drag state\n if (\n !draggingColumn &&\n Math.abs(this.initialGridPoint.x - mouseX) < SLOPPY_CLICK_DISTANCE &&\n Math.abs(this.initialGridPoint.y - mouseY) < SLOPPY_CLICK_DISTANCE\n ) {\n return false;\n }\n\n // Get the initial dragging column info\n if (draggingColumn == null) {\n const initialColumnInfo = getColumnInfo(\n this.initialGridPoint.column,\n columnHeaderDepth,\n metrics,\n model\n );\n\n if (!initialColumnInfo || columnHeaderDepth == null) {\n return false;\n }\n\n if (!model.isColumnMovable(initialColumnInfo.modelIndex)) {\n return false;\n }\n\n // Disallow dragging from the blank space in column header groups\n if (columnHeaderDepth > 0 && !initialColumnInfo.isColumnGroup) {\n return false;\n }\n\n if (initialColumnInfo.range[0] == null) {\n return false;\n }\n\n draggingColumn = {\n range: initialColumnInfo.range,\n depth: columnHeaderDepth,\n left: initialColumnInfo.left,\n width: initialColumnInfo.width,\n };\n\n const startColumn = getColumnInfo(\n draggingColumn.range[0],\n 0,\n metrics,\n model\n );\n const endColumn = getColumnInfo(\n draggingColumn.range[1],\n 0,\n metrics,\n model\n );\n\n // Group goes off the table. Drag and drop could be wonky here\n // Column draws only use columns that are partially visible too\n // So this could cause rendering errors if we tried dragging it\n if (!startColumn || !endColumn) {\n return false;\n }\n\n this.draggingColumn = draggingColumn;\n grid.setState({ draggingColumn, isDragging: true });\n }\n\n /**\n * At this point, we have determined we are actually dragging a column\n */\n this.cursor = 'move';\n\n this.moveDraggingColumn(gridPoint.x, grid, event.movementX);\n\n return true;\n }\n\n /**\n * Moves a dragging column, if possible, the specified distance\n * @param mouseX The point the move was initiated from\n * @param grid The Grid component\n * @param deltaX The distance of the move\n */\n moveDraggingColumn(mouseX: number, grid: Grid, deltaX: number): void {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined ||\n this.draggingColumn == null ||\n deltaX === 0\n ) {\n return;\n }\n\n // Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again\n if (this.initialOffset !== this.draggingOffset) {\n // Pre move < Initial < Post move or vice-versa\n // User crossed back past the iniital offset point, so we can start moving again\n if (\n (this.draggingOffset < this.initialOffset &&\n this.initialOffset < this.draggingOffset + deltaX) ||\n (this.draggingOffset > this.initialOffset &&\n this.initialOffset > this.draggingOffset + deltaX)\n ) {\n this.draggingOffset = this.initialOffset;\n } else {\n // Column can't move since we aren't back at the initial offset yet\n this.draggingOffset += deltaX;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n grid.setState({ draggingColumn: this.draggingColumn });\n return;\n }\n\n const { depth: draggingColumnDepth } = this.draggingColumn;\n\n const { model } = grid.props;\n const { movedColumns } = grid.state;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const { floatingLeftWidth, width, columnHeaderMaxDepth, allColumnXs } =\n metrics;\n\n const isDraggingLeft = deltaX < 0;\n\n const draggingColumn = getColumnInfo(\n this.draggingColumn.range[0],\n draggingColumnDepth,\n metrics,\n model\n );\n\n if (!draggingColumn) {\n return;\n }\n\n // The returned left/right are the original position, not dragged position\n // This is where the dragging column's floating position accounting for dragged distance\n const floatingDraggingLeft = mouseX - this.draggingOffset;\n const floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n const swapColumn = getColumnInfo(\n GridUtils.getColumnAtX(\n clamp(\n isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight,\n floatingLeftWidth,\n width\n ),\n metrics,\n true\n ),\n draggingColumnDepth,\n metrics,\n model\n );\n\n const parentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n if (!swapColumn) {\n return;\n }\n\n // Check if we should pin to the edge of the parent\n if (parentGroup !== undefined) {\n const parentVisibleRange = parentGroup.getVisibleRange(movedColumns);\n // Cannot move to this left position, pin to left of parent\n if (swapColumn.visibleIndex < parentVisibleRange[0]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[0],\n movedColumns\n );\n\n this.draggingOffset =\n mouseX - (allColumnXs.get(parentVisibleRange[0]) ?? 0);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n\n // Pin to the right of parent\n if (swapColumn.visibleIndex > parentVisibleRange[1]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n\n const { right: parentRight = 0 } =\n getColumnInfo(parentVisibleRange[1], 0, metrics, model) ?? {};\n\n this.draggingOffset = mouseX - (parentRight - draggingColumn.width);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n }\n\n // Hit an unmovable column, move to the first available position next to it\n if (!model.isColumnMovable(swapColumn.modelIndex)) {\n let toVisibleIndex = swapColumn.visibleIndex;\n if (isDraggingLeft) {\n toVisibleIndex += 1;\n while (\n toVisibleIndex < draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex += 1;\n }\n } else {\n toVisibleIndex -= 1;\n while (\n toVisibleIndex > draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex -= 1;\n }\n }\n\n if (toVisibleIndex !== draggingColumn.visibleIndex) {\n if (!isDraggingLeft) {\n // Offset for range if dragging right\n toVisibleIndex -= draggingColumn.range[1] - draggingColumn.range[0];\n }\n\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n toVisibleIndex,\n movedColumns\n );\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n const toColumnInfo = getColumnInfo(toVisibleIndex, 0, metrics, model);\n if (isDraggingLeft) {\n this.draggingOffset = mouseX - (toColumnInfo?.left ?? 0);\n } else {\n this.draggingOffset =\n mouseX - ((toColumnInfo?.right ?? 0) - draggingColumn.width);\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset,\n };\n\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n return;\n }\n\n if (floatingDraggingLeft <= floatingLeftWidth) {\n this.setScrollInterval(grid, 'left');\n } else if (floatingDraggingRight > width) {\n this.setScrollInterval(grid, 'right');\n } else {\n this.clearScrollInterval();\n }\n\n // Can't swap a column with itself\n if (swapColumn.visibleIndex === draggingColumn.visibleIndex) {\n return;\n }\n\n // Can't swap a column to the left when dragging right or vice versa\n if (\n (isDraggingLeft &&\n draggingColumn.visibleIndex < swapColumn.visibleIndex) ||\n (!isDraggingLeft && draggingColumn.visibleIndex > swapColumn.visibleIndex)\n ) {\n return;\n }\n\n const switchPoint = swapColumn.left + swapColumn.width * 0.5;\n const draggingParentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n // Get the highest level group that is not the common base group\n // This group is what we need to drag past\n let maxDepthSwapGroup: IColumnHeaderGroup | undefined;\n let maxSwapDepth = (draggingParentGroup?.depth ?? columnHeaderMaxDepth) - 1;\n while (maxSwapDepth >= 0 && maxDepthSwapGroup === undefined) {\n maxDepthSwapGroup = model.getColumnHeaderGroup(\n swapColumn.modelIndex,\n maxSwapDepth\n );\n maxSwapDepth -= 1;\n }\n\n let newMovedColumns: readonly MoveOperation[] | undefined;\n\n if (\n isDraggingLeft &&\n floatingDraggingLeft < switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[0])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[0],\n movedColumns\n );\n }\n\n if (\n !isDraggingLeft &&\n floatingDraggingRight > switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[1])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n }\n\n if (!newMovedColumns) {\n return;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n /**\n * Applies the column move and updates draggingColumn in the mouse handler\n * Does not check if the move is valid\n * @param draggingColumn The dragging column info\n * @param to The index to move the column or range to\n * @param movedColumns The array of column moves\n * @returns A new array of column moves\n */\n moveColumn(\n draggingColumn: ColumnInfo,\n to: number,\n movedColumns: readonly MoveOperation[]\n ): MoveOperation[] {\n const newMovedColumns = draggingColumn.isColumnGroup\n ? GridUtils.moveRange(draggingColumn.range, to, movedColumns)\n : GridUtils.moveItem(draggingColumn.visibleIndex, to, movedColumns);\n\n const moveDistance = to - draggingColumn.range[0];\n const newDraggingRange: BoundedAxisRange = [\n draggingColumn.range[0] + moveDistance,\n draggingColumn.range[1] + moveDistance,\n ];\n\n if (this.draggingColumn) {\n this.draggingColumn = {\n ...this.draggingColumn,\n range: newDraggingRange,\n };\n }\n\n return newMovedColumns;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n this.cursor = null;\n\n this.clearScrollInterval();\n\n if (this.draggingOffset != null) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GridColumnMoveMouseHandler.js","names":["clamp","assertNotNull","GridUtils","GridMouseHandler","SLOPPY_CLICK_DISTANCE","SCROLL_INTERVAL","SCROLL_DELTA","getColumnInfo","visibleIndex","depth","metrics","model","_modelColumns$get","modelColumns","movedColumns","allColumnXs","columnCount","allColumnWidths","userColumnWidths","calculatedColumnWidths","floatingLeftWidth","maxX","modelIndex","get","getModelIndex","group","getColumnHeaderGroup","isColumnGroup","left","right","range","_allColumnXs$get","_allColumnXs$get2","_allColumnWidths$get","startVisibleIndex","endVisibleIndex","getVisibleRange","_ref","_ref2","_allColumnWidths$get2","possibleLeft","width","GridColumnMoveMouseHandler","constructor","arguments","_defineProperty","setScrollInterval","grid","direction","scrollingInterval","scrollingDirection","window","setInterval","lastLeft","leftOffset","nextLeft","nextOffset","_userColumnWidths$get","prevColumnWidth","undefined","leftColumnWidth","_userColumnWidths$get2","mouseX","mouseY","state","moveDraggingColumn","setState","clearScrollInterval","clearInterval","onLeave","onDown","gridPoint","props","x","column","columnHeaderDepth","Error","columnInfo","rowHeaderWidth","initialGridPoint","draggingColumn","cursor","isColumnMovable","draggingOffset","initialOffset","onDrag","event","y","Math","abs","initialColumnInfo","startColumn","endColumn","isDragging","movementX","deltaX","_draggingParentGroup$","gridX","_objectSpread","draggingColumnDepth","columnHeaderMaxDepth","isDraggingLeft","floatingDraggingLeft","floatingDraggingRight","swapColumn","getColumnAtX","parentGroup","getColumnHeaderParentGroup","parentVisibleRange","_allColumnXs$get3","newMovedColumns","moveColumn","_getColumnInfo","parentRight","toVisibleIndex","toColumnInfo","_toColumnInfo$left","_toColumnInfo$right","switchPoint","draggingParentGroup","maxDepthSwapGroup","maxSwapDepth","to","moveRange","moveItem","moveDistance","newDraggingRange","onUp"],"sources":["../../src/mouse-handlers/GridColumnMoveMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { assertNotNull } from '@deephaven/utils';\nimport Grid from '../Grid';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport type {\n VisibleIndex,\n ModelIndex,\n GridMetrics,\n MoveOperation,\n Coordinate,\n} from '../GridMetrics';\nimport type { BoundedAxisRange } from '../GridAxisRange';\nimport type GridModel from '../GridModel';\nimport type { IColumnHeaderGroup } from '../ColumnHeaderGroup';\n\nconst SLOPPY_CLICK_DISTANCE = 5;\nconst SCROLL_INTERVAL = 1000 / 60;\nconst SCROLL_DELTA = 10;\n\nexport interface DraggingColumn {\n range: BoundedAxisRange;\n depth: number;\n left: Coordinate;\n width: number;\n}\n\ninterface ColumnInfo {\n visibleIndex: VisibleIndex;\n modelIndex: ModelIndex;\n left: number;\n right: number;\n width: number;\n isColumnGroup: boolean;\n range: BoundedAxisRange;\n depth: number;\n}\n\n/**\n * Gets info about a visible column\n * @param visibleIndex The visible index to get info for\n * @param depth The header depth to get info for\n * @param metrics Grid metrics\n * @param model Grid model\n * @returns The column info at the depth.\n * If the column is not in a group at that depth, returns the info for the base column.\n * Returns null if the column is not visible.\n */\nfunction getColumnInfo(\n visibleIndex: VisibleIndex | null,\n depth: number | undefined,\n metrics: GridMetrics,\n model: GridModel\n): ColumnInfo | null {\n const {\n modelColumns,\n movedColumns,\n allColumnXs,\n columnCount,\n allColumnWidths,\n userColumnWidths,\n calculatedColumnWidths,\n floatingLeftWidth,\n maxX,\n } = metrics;\n\n if (\n depth == null ||\n visibleIndex == null ||\n visibleIndex > columnCount ||\n visibleIndex < 0\n ) {\n return null;\n }\n\n const modelIndex =\n modelColumns.get(visibleIndex) ??\n GridUtils.getModelIndex(visibleIndex, movedColumns);\n\n const group = model.getColumnHeaderGroup(modelIndex, depth);\n const isColumnGroup = group != null;\n\n let left: number;\n let right: number;\n let range: BoundedAxisRange;\n\n if (group != null) {\n const [startVisibleIndex, endVisibleIndex] =\n group.getVisibleRange(movedColumns);\n\n left = allColumnXs.get(startVisibleIndex) ?? floatingLeftWidth;\n right =\n (allColumnXs.get(endVisibleIndex) ?? maxX) +\n (allColumnWidths.get(endVisibleIndex) ?? 0);\n range = [startVisibleIndex, endVisibleIndex];\n } else {\n const possibleLeft = allColumnXs.get(visibleIndex);\n if (possibleLeft == null) {\n return null;\n }\n\n left = possibleLeft;\n right =\n left +\n (allColumnWidths.get(visibleIndex) ??\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex) ??\n 0);\n range = [visibleIndex, visibleIndex];\n }\n\n return {\n visibleIndex,\n modelIndex,\n left,\n right,\n width: right - left,\n isColumnGroup,\n range,\n depth,\n };\n}\n\nclass GridColumnMoveMouseHandler extends GridMouseHandler {\n cursor: string | null = null;\n\n private draggingOffset?: number;\n\n private initialOffset?: number;\n\n private initialGridPoint?: GridPoint;\n\n private scrollingInterval?: number;\n\n private scrollingDirection?: 'left' | 'right';\n\n private draggingColumn: DraggingColumn | null = null;\n\n private setScrollInterval(grid: Grid, direction: 'left' | 'right'): void {\n if (\n this.scrollingInterval != null &&\n direction === this.scrollingDirection\n ) {\n return;\n }\n\n this.scrollingDirection = direction;\n this.scrollingInterval = window.setInterval(() => {\n const { metrics } = grid;\n if (!metrics) {\n return;\n }\n\n const {\n left,\n lastLeft,\n leftOffset,\n userColumnWidths,\n calculatedColumnWidths,\n movedColumns,\n allColumnWidths,\n } = metrics;\n\n let nextLeft = left;\n let nextOffset = leftOffset;\n if (direction === 'left') {\n nextOffset -= SCROLL_DELTA;\n while (nextOffset < 0) {\n nextLeft -= 1;\n const modelIndex = GridUtils.getModelIndex(left - 1, movedColumns);\n const prevColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n if (prevColumnWidth === undefined) {\n nextOffset = 0;\n } else {\n nextOffset += prevColumnWidth;\n }\n if (nextLeft < 0) {\n nextOffset = 0;\n nextLeft = 0;\n }\n }\n } else {\n nextOffset += SCROLL_DELTA;\n let leftColumnWidth = allColumnWidths.get(left);\n while (leftColumnWidth !== undefined && nextOffset > leftColumnWidth) {\n nextLeft += 1;\n nextOffset -= leftColumnWidth;\n const modelIndex = GridUtils.getModelIndex(left + 1, movedColumns);\n leftColumnWidth =\n userColumnWidths.get(modelIndex) ??\n calculatedColumnWidths.get(modelIndex);\n\n if (nextLeft > lastLeft) {\n nextOffset = 0;\n nextLeft = lastLeft;\n }\n }\n }\n\n const { mouseX, mouseY } = grid.state;\n\n if (metrics == null || mouseX == null || mouseY == null) {\n return;\n }\n\n this.moveDraggingColumn(\n mouseX,\n grid,\n direction === 'left' ? -SCROLL_DELTA : SCROLL_DELTA\n );\n grid.setState({ left: nextLeft, leftOffset: nextOffset });\n\n if (\n (direction === 'left' && nextLeft === 0 && leftOffset === 0) ||\n (direction === 'right' && nextLeft === lastLeft)\n ) {\n this.clearScrollInterval();\n }\n }, SCROLL_INTERVAL);\n }\n\n private clearScrollInterval(): void {\n this.scrollingDirection = undefined;\n window.clearInterval(this.scrollingInterval);\n this.scrollingInterval = undefined;\n }\n\n onLeave(): EventHandlerResult {\n this.clearScrollInterval();\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { model } = grid.props;\n const { x, column, columnHeaderDepth } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('Metrics not set');\n\n const columnInfo = getColumnInfo(column, columnHeaderDepth, metrics, model);\n\n if (column == null || columnInfo == null || columnHeaderDepth == null) {\n return false;\n }\n\n // Can't drag a base column from the empty group area\n if (columnHeaderDepth > 0 && !columnInfo.isColumnGroup) {\n return false;\n }\n\n const { rowHeaderWidth } = metrics;\n\n this.initialGridPoint = gridPoint;\n this.draggingColumn = null;\n this.cursor = null;\n\n if (\n columnInfo.modelIndex != null &&\n columnHeaderDepth != null &&\n model.isColumnMovable(columnInfo.modelIndex, columnHeaderDepth)\n ) {\n this.draggingOffset = x - columnInfo.left - rowHeaderWidth;\n this.initialOffset = this.draggingOffset;\n }\n return false;\n }\n\n onDrag(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined\n ) {\n return false;\n }\n\n const { x: mouseX, y: mouseY } = gridPoint;\n const { columnHeaderDepth } = this.initialGridPoint;\n\n const { model } = grid.props;\n let { draggingColumn } = this;\n const { metrics } = grid;\n\n if (!metrics) throw new Error('Metrics not set');\n\n // before considering it a drag, the mouse must have moved a minimum distance\n // this prevents click actions from triggering a drag state\n if (\n !draggingColumn &&\n Math.abs(this.initialGridPoint.x - mouseX) < SLOPPY_CLICK_DISTANCE &&\n Math.abs(this.initialGridPoint.y - mouseY) < SLOPPY_CLICK_DISTANCE\n ) {\n return false;\n }\n\n // Get the initial dragging column info\n if (draggingColumn == null) {\n const initialColumnInfo = getColumnInfo(\n this.initialGridPoint.column,\n columnHeaderDepth,\n metrics,\n model\n );\n\n if (!initialColumnInfo || columnHeaderDepth == null) {\n return false;\n }\n\n if (!model.isColumnMovable(initialColumnInfo.modelIndex)) {\n return false;\n }\n\n // Disallow dragging from the blank space in column header groups\n if (columnHeaderDepth > 0 && !initialColumnInfo.isColumnGroup) {\n return false;\n }\n\n if (initialColumnInfo.range[0] == null) {\n return false;\n }\n\n draggingColumn = {\n range: initialColumnInfo.range,\n depth: columnHeaderDepth,\n left: initialColumnInfo.left,\n width: initialColumnInfo.width,\n };\n\n const startColumn = getColumnInfo(\n draggingColumn.range[0],\n 0,\n metrics,\n model\n );\n const endColumn = getColumnInfo(\n draggingColumn.range[1],\n 0,\n metrics,\n model\n );\n\n // Group goes off the table. Drag and drop could be wonky here\n // Column draws only use columns that are partially visible too\n // So this could cause rendering errors if we tried dragging it\n if (!startColumn || !endColumn) {\n return false;\n }\n\n this.draggingColumn = draggingColumn;\n grid.setState({ draggingColumn, isDragging: true });\n }\n\n /**\n * At this point, we have determined we are actually dragging a column\n */\n this.cursor = 'move';\n\n this.moveDraggingColumn(gridPoint.x, grid, event.movementX);\n\n return true;\n }\n\n /**\n * Moves a dragging column, if possible, the specified distance\n * @param mouseX The point the move was initiated from\n * @param grid The Grid component\n * @param deltaX The distance of the move\n */\n moveDraggingColumn(mouseX: number, grid: Grid, deltaX: number): void {\n if (\n this.draggingOffset === undefined ||\n this.initialGridPoint === undefined ||\n this.initialOffset === undefined ||\n this.draggingColumn == null ||\n deltaX === 0\n ) {\n return;\n }\n const { metrics } = grid;\n assertNotNull(metrics, 'Metrics not set');\n const { gridX } = metrics;\n\n // Cursor has moved past the column drag bounds, don't move the column until we hit the initial offset point again\n if (this.initialOffset !== this.draggingOffset) {\n // Pre move < Initial < Post move or vice-versa\n // User crossed back past the iniital offset point, so we can start moving again\n if (\n (this.draggingOffset < this.initialOffset &&\n this.initialOffset < this.draggingOffset + deltaX) ||\n (this.draggingOffset > this.initialOffset &&\n this.initialOffset > this.draggingOffset + deltaX)\n ) {\n this.draggingOffset = this.initialOffset;\n } else {\n // Column can't move since we aren't back at the initial offset yet\n this.draggingOffset += deltaX;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset - gridX,\n };\n grid.setState({ draggingColumn: this.draggingColumn });\n return;\n }\n\n const { depth: draggingColumnDepth } = this.draggingColumn;\n\n const { model } = grid.props;\n const { movedColumns } = grid.state;\n\n const { floatingLeftWidth, width, columnHeaderMaxDepth, allColumnXs } =\n metrics;\n\n const isDraggingLeft = deltaX < 0;\n\n const draggingColumn = getColumnInfo(\n this.draggingColumn.range[0],\n draggingColumnDepth,\n metrics,\n model\n );\n\n if (!draggingColumn) {\n return;\n }\n\n // The returned left/right are the original position, not dragged position\n // This is where the dragging column's floating position accounting for dragged distance\n const floatingDraggingLeft = mouseX - this.draggingOffset - gridX;\n const floatingDraggingRight = floatingDraggingLeft + draggingColumn.width;\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n const swapColumn = getColumnInfo(\n GridUtils.getColumnAtX(\n clamp(\n isDraggingLeft ? floatingDraggingLeft : floatingDraggingRight,\n floatingLeftWidth,\n width\n ) + gridX,\n metrics,\n true\n ),\n draggingColumnDepth,\n metrics,\n model\n );\n\n const parentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n if (!swapColumn) {\n return;\n }\n\n // Check if we should pin to the edge of the parent\n if (parentGroup !== undefined) {\n const parentVisibleRange = parentGroup.getVisibleRange(movedColumns);\n // Cannot move to this left position, pin to left of parent\n if (swapColumn.visibleIndex < parentVisibleRange[0]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[0],\n movedColumns\n );\n\n this.draggingOffset =\n mouseX - (allColumnXs.get(parentVisibleRange[0]) ?? 0);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset - gridX,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n\n // Pin to the right of parent\n if (swapColumn.visibleIndex > parentVisibleRange[1]) {\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n parentVisibleRange[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n\n const { right: parentRight = 0 } =\n getColumnInfo(parentVisibleRange[1], 0, metrics, model) ?? {};\n\n this.draggingOffset = mouseX - (parentRight - draggingColumn.width);\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset - gridX,\n };\n this.clearScrollInterval();\n grid.setState({\n draggingColumn: this.draggingColumn,\n movedColumns: newMovedColumns,\n });\n return;\n }\n }\n\n // Hit an unmovable column, move to the first available position next to it\n if (!model.isColumnMovable(swapColumn.modelIndex)) {\n let toVisibleIndex = swapColumn.visibleIndex;\n if (isDraggingLeft) {\n toVisibleIndex += 1;\n while (\n toVisibleIndex < draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex += 1;\n }\n } else {\n toVisibleIndex -= 1;\n while (\n toVisibleIndex > draggingColumn.visibleIndex &&\n !model.isColumnMovable(\n GridUtils.getModelIndex(toVisibleIndex, movedColumns)\n )\n ) {\n toVisibleIndex -= 1;\n }\n }\n\n if (toVisibleIndex !== draggingColumn.visibleIndex) {\n if (!isDraggingLeft) {\n // Offset for range if dragging right\n toVisibleIndex -= draggingColumn.range[1] - draggingColumn.range[0];\n }\n\n const newMovedColumns = this.moveColumn(\n draggingColumn,\n toVisibleIndex,\n movedColumns\n );\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n const toColumnInfo = getColumnInfo(toVisibleIndex, 0, metrics, model);\n if (isDraggingLeft) {\n this.draggingOffset = mouseX - (toColumnInfo?.left ?? 0);\n } else {\n this.draggingOffset =\n mouseX - ((toColumnInfo?.right ?? 0) - draggingColumn.width);\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: mouseX - this.draggingOffset - gridX,\n };\n\n grid.setState({\n draggingColumn: this.draggingColumn,\n });\n\n return;\n }\n\n if (floatingDraggingLeft <= floatingLeftWidth) {\n this.setScrollInterval(grid, 'left');\n } else if (floatingDraggingRight > width) {\n this.setScrollInterval(grid, 'right');\n } else {\n this.clearScrollInterval();\n }\n\n // Can't swap a column with itself\n if (swapColumn.visibleIndex === draggingColumn.visibleIndex) {\n return;\n }\n\n // Can't swap a column to the left when dragging right or vice versa\n if (\n (isDraggingLeft &&\n draggingColumn.visibleIndex < swapColumn.visibleIndex) ||\n (!isDraggingLeft && draggingColumn.visibleIndex > swapColumn.visibleIndex)\n ) {\n return;\n }\n\n const switchPoint = swapColumn.left + swapColumn.width * 0.5;\n const draggingParentGroup = model.getColumnHeaderParentGroup(\n draggingColumn.modelIndex,\n draggingColumn.depth\n );\n\n // Get the highest level group that is not the common base group\n // This group is what we need to drag past\n let maxDepthSwapGroup: IColumnHeaderGroup | undefined;\n let maxSwapDepth = (draggingParentGroup?.depth ?? columnHeaderMaxDepth) - 1;\n while (maxSwapDepth >= 0 && maxDepthSwapGroup === undefined) {\n maxDepthSwapGroup = model.getColumnHeaderGroup(\n swapColumn.modelIndex,\n maxSwapDepth\n );\n maxSwapDepth -= 1;\n }\n\n let newMovedColumns: readonly MoveOperation[] | undefined;\n\n if (\n isDraggingLeft &&\n floatingDraggingLeft < switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[0])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[0],\n movedColumns\n );\n }\n\n if (\n !isDraggingLeft &&\n floatingDraggingRight > switchPoint &&\n (!maxDepthSwapGroup ||\n swapColumn.visibleIndex ===\n maxDepthSwapGroup.getVisibleRange(movedColumns)[1])\n ) {\n newMovedColumns = this.moveColumn(\n draggingColumn,\n swapColumn.range[1] -\n (draggingColumn.range[1] - draggingColumn.range[0]),\n movedColumns\n );\n }\n\n if (!newMovedColumns) {\n return;\n }\n\n this.draggingColumn = {\n ...this.draggingColumn,\n left: floatingDraggingLeft,\n };\n\n grid.setState({\n movedColumns: newMovedColumns,\n draggingColumn: this.draggingColumn,\n });\n }\n\n /**\n * Applies the column move and updates draggingColumn in the mouse handler\n * Does not check if the move is valid\n * @param draggingColumn The dragging column info\n * @param to The index to move the column or range to\n * @param movedColumns The array of column moves\n * @returns A new array of column moves\n */\n moveColumn(\n draggingColumn: ColumnInfo,\n to: number,\n movedColumns: readonly MoveOperation[]\n ): MoveOperation[] {\n const newMovedColumns = draggingColumn.isColumnGroup\n ? GridUtils.moveRange(draggingColumn.range, to, movedColumns)\n : GridUtils.moveItem(draggingColumn.visibleIndex, to, movedColumns);\n\n const moveDistance = to - draggingColumn.range[0];\n const newDraggingRange: BoundedAxisRange = [\n draggingColumn.range[0] + moveDistance,\n draggingColumn.range[1] + moveDistance,\n ];\n\n if (this.draggingColumn) {\n this.draggingColumn = {\n ...this.draggingColumn,\n range: newDraggingRange,\n };\n }\n\n return newMovedColumns;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n this.cursor = null;\n\n this.clearScrollInterval();\n\n if (this.draggingOffset != null) {\n this.draggingOffset = undefined;\n grid.setState({\n draggingColumn: null,\n isDragging: false,\n });\n return true;\n }\n\n return false;\n }\n}\n\nexport default GridColumnMoveMouseHandler;\n"],"mappings":";;;;;AAAA,OAAOA,KAAK,MAAM,cAAc;AAChC,SAASC,aAAa,QAAQ,kBAAkB;AAAC,OAE1CC,SAAS;AAAA,OACTC,gBAAgB;AAavB,IAAMC,qBAAqB,GAAG,CAAC;AAC/B,IAAMC,eAAe,GAAG,IAAI,GAAG,EAAE;AACjC,IAAMC,YAAY,GAAG,EAAE;AAoBvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,aAAaA,CACpBC,YAAiC,EACjCC,KAAyB,EACzBC,OAAoB,EACpBC,KAAgB,EACG;EAAA,IAAAC,iBAAA;EACnB,IAAM;IACJC,YAAY;IACZC,YAAY;IACZC,WAAW;IACXC,WAAW;IACXC,eAAe;IACfC,gBAAgB;IAChBC,sBAAsB;IACtBC,iBAAiB;IACjBC;EACF,CAAC,GAAGX,OAAO;EAEX,IACED,KAAK,IAAI,IAAI,IACbD,YAAY,IAAI,IAAI,IACpBA,YAAY,GAAGQ,WAAW,IAC1BR,YAAY,GAAG,CAAC,EAChB;IACA,OAAO,IAAI;EACb;EAEA,IAAMc,UAAU,IAAAV,iBAAA,GACdC,YAAY,CAACU,GAAG,CAACf,YAAY,CAAC,cAAAI,iBAAA,cAAAA,iBAAA,GAC9BV,SAAS,CAACsB,aAAa,CAAChB,YAAY,EAAEM,YAAY,CAAC;EAErD,IAAMW,KAAK,GAAGd,KAAK,CAACe,oBAAoB,CAACJ,UAAU,EAAEb,KAAK,CAAC;EAC3D,IAAMkB,aAAa,GAAGF,KAAK,IAAI,IAAI;EAEnC,IAAIG,IAAY;EAChB,IAAIC,KAAa;EACjB,IAAIC,KAAuB;EAE3B,IAAIL,KAAK,IAAI,IAAI,EAAE;IAAA,IAAAM,gBAAA,EAAAC,iBAAA,EAAAC,oBAAA;IACjB,IAAM,CAACC,iBAAiB,EAAEC,eAAe,CAAC,GACxCV,KAAK,CAACW,eAAe,CAACtB,YAAY,CAAC;IAErCc,IAAI,IAAAG,gBAAA,GAAGhB,WAAW,CAACQ,GAAG,CAACW,iBAAiB,CAAC,cAAAH,gBAAA,cAAAA,gBAAA,GAAIX,iBAAiB;IAC9DS,KAAK,GACH,EAAAG,iBAAA,GAACjB,WAAW,CAACQ,GAAG,CAACY,eAAe,CAAC,cAAAH,iBAAA,cAAAA,iBAAA,GAAIX,IAAI,MAAAY,oBAAA,GACxChB,eAAe,CAACM,GAAG,CAACY,eAAe,CAAC,cAAAF,oBAAA,cAAAA,oBAAA,GAAI,CAAC,CAAC;IAC7CH,KAAK,GAAG,CAACI,iBAAiB,EAAEC,eAAe,CAAC;EAC9C,CAAC,MAAM;IAAA,IAAAE,IAAA,EAAAC,KAAA,EAAAC,qBAAA;IACL,IAAMC,YAAY,GAAGzB,WAAW,CAACQ,GAAG,CAACf,YAAY,CAAC;IAClD,IAAIgC,YAAY,IAAI,IAAI,EAAE;MACxB,OAAO,IAAI;IACb;IAEAZ,IAAI,GAAGY,YAAY;IACnBX,KAAK,GACHD,IAAI,KAAAS,IAAA,IAAAC,KAAA,IAAAC,qBAAA,GACHtB,eAAe,CAACM,GAAG,CAACf,YAAY,CAAC,cAAA+B,qBAAA,cAAAA,qBAAA,GAChCrB,gBAAgB,CAACK,GAAG,CAACD,UAAU,CAAC,cAAAgB,KAAA,cAAAA,KAAA,GAChCnB,sBAAsB,CAACI,GAAG,CAACD,UAAU,CAAC,cAAAe,IAAA,cAAAA,IAAA,GACtC,CAAC,CAAC;IACNP,KAAK,GAAG,CAACtB,YAAY,EAAEA,YAAY,CAAC;EACtC;EAEA,OAAO;IACLA,YAAY;IACZc,UAAU;IACVM,IAAI;IACJC,KAAK;IACLY,KAAK,EAAEZ,KAAK,GAAGD,IAAI;IACnBD,aAAa;IACbG,KAAK;IACLrB;EACF,CAAC;AACH;AAEA,MAAMiC,0BAA0B,SAASvC,gBAAgB,CAAC;EAAAwC,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,iBAChC,IAAI;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,yBAYoB,IAAI;EAAA;EAE5CC,iBAAiBA,CAACC,IAAU,EAAEC,SAA2B,EAAQ;IACvE,IACE,IAAI,CAACC,iBAAiB,IAAI,IAAI,IAC9BD,SAAS,KAAK,IAAI,CAACE,kBAAkB,EACrC;MACA;IACF;IAEA,IAAI,CAACA,kBAAkB,GAAGF,SAAS;IACnC,IAAI,CAACC,iBAAiB,GAAGE,MAAM,CAACC,WAAW,CAAC,MAAM;MAChD,IAAM;QAAE1C;MAAQ,CAAC,GAAGqC,IAAI;MACxB,IAAI,CAACrC,OAAO,EAAE;QACZ;MACF;MAEA,IAAM;QACJkB,IAAI;QACJyB,QAAQ;QACRC,UAAU;QACVpC,gBAAgB;QAChBC,sBAAsB;QACtBL,YAAY;QACZG;MACF,CAAC,GAAGP,OAAO;MAEX,IAAI6C,QAAQ,GAAG3B,IAAI;MACnB,IAAI4B,UAAU,GAAGF,UAAU;MAC3B,IAAIN,SAAS,KAAK,MAAM,EAAE;QACxBQ,UAAU,IAAIlD,YAAY;QAC1B,OAAOkD,UAAU,GAAG,CAAC,EAAE;UAAA,IAAAC,qBAAA;UACrBF,QAAQ,IAAI,CAAC;UACb,IAAMjC,UAAU,GAAGpB,SAAS,CAACsB,aAAa,CAACI,IAAI,GAAG,CAAC,EAAEd,YAAY,CAAC;UAClE,IAAM4C,eAAe,IAAAD,qBAAA,GACnBvC,gBAAgB,CAACK,GAAG,CAACD,UAAU,CAAC,cAAAmC,qBAAA,cAAAA,qBAAA,GAChCtC,sBAAsB,CAACI,GAAG,CAACD,UAAU,CAAC;UACxC,IAAIoC,eAAe,KAAKC,SAAS,EAAE;YACjCH,UAAU,GAAG,CAAC;UAChB,CAAC,MAAM;YACLA,UAAU,IAAIE,eAAe;UAC/B;UACA,IAAIH,QAAQ,GAAG,CAAC,EAAE;YAChBC,UAAU,GAAG,CAAC;YACdD,QAAQ,GAAG,CAAC;UACd;QACF;MACF,CAAC,MAAM;QACLC,UAAU,IAAIlD,YAAY;QAC1B,IAAIsD,eAAe,GAAG3C,eAAe,CAACM,GAAG,CAACK,IAAI,CAAC;QAC/C,OAAOgC,eAAe,KAAKD,SAAS,IAAIH,UAAU,GAAGI,eAAe,EAAE;UAAA,IAAAC,sBAAA;UACpEN,QAAQ,IAAI,CAAC;UACbC,UAAU,IAAII,eAAe;UAC7B,IAAMtC,WAAU,GAAGpB,SAAS,CAACsB,aAAa,CAACI,IAAI,GAAG,CAAC,EAAEd,YAAY,CAAC;UAClE8C,eAAe,IAAAC,sBAAA,GACb3C,gBAAgB,CAACK,GAAG,CAACD,WAAU,CAAC,cAAAuC,sBAAA,cAAAA,sBAAA,GAChC1C,sBAAsB,CAACI,GAAG,CAACD,WAAU,CAAC;UAExC,IAAIiC,QAAQ,GAAGF,QAAQ,EAAE;YACvBG,UAAU,GAAG,CAAC;YACdD,QAAQ,GAAGF,QAAQ;UACrB;QACF;MACF;MAEA,IAAM;QAAES,MAAM;QAAEC;MAAO,CAAC,GAAGhB,IAAI,CAACiB,KAAK;MAErC,IAAItD,OAAO,IAAI,IAAI,IAAIoD,MAAM,IAAI,IAAI,IAAIC,MAAM,IAAI,IAAI,EAAE;QACvD;MACF;MAEA,IAAI,CAACE,kBAAkB,CACrBH,MAAM,EACNf,IAAI,EACJC,SAAS,KAAK,MAAM,GAAG,CAAC1C,YAAY,GAAGA,YACzC,CAAC;MACDyC,IAAI,CAACmB,QAAQ,CAAC;QAAEtC,IAAI,EAAE2B,QAAQ;QAAED,UAAU,EAAEE;MAAW,CAAC,CAAC;MAEzD,IACGR,SAAS,KAAK,MAAM,IAAIO,QAAQ,KAAK,CAAC,IAAID,UAAU,KAAK,CAAC,IAC1DN,SAAS,KAAK,OAAO,IAAIO,QAAQ,KAAKF,QAAS,EAChD;QACA,IAAI,CAACc,mBAAmB,CAAC,CAAC;MAC5B;IACF,CAAC,EAAE9D,eAAe,CAAC;EACrB;EAEQ8D,mBAAmBA,CAAA,EAAS;IAClC,IAAI,CAACjB,kBAAkB,GAAGS,SAAS;IACnCR,MAAM,CAACiB,aAAa,CAAC,IAAI,CAACnB,iBAAiB,CAAC;IAC5C,IAAI,CAACA,iBAAiB,GAAGU,SAAS;EACpC;EAEAU,OAAOA,CAAA,EAAuB;IAC5B,IAAI,CAACF,mBAAmB,CAAC,CAAC;IAC1B,OAAO,KAAK;EACd;EAEAG,MAAMA,CAACC,SAAoB,EAAExB,IAAU,EAAsB;IAC3D,IAAM;MAAEpC;IAAM,CAAC,GAAGoC,IAAI,CAACyB,KAAK;IAC5B,IAAM;MAAEC,CAAC;MAAEC,MAAM;MAAEC;IAAkB,CAAC,GAAGJ,SAAS;IAClD,IAAM;MAAE7D;IAAQ,CAAC,GAAGqC,IAAI;IACxB,IAAI,CAACrC,OAAO,EAAE,MAAM,IAAIkE,KAAK,CAAC,iBAAiB,CAAC;IAEhD,IAAMC,UAAU,GAAGtE,aAAa,CAACmE,MAAM,EAAEC,iBAAiB,EAAEjE,OAAO,EAAEC,KAAK,CAAC;IAE3E,IAAI+D,MAAM,IAAI,IAAI,IAAIG,UAAU,IAAI,IAAI,IAAIF,iBAAiB,IAAI,IAAI,EAAE;MACrE,OAAO,KAAK;IACd;;IAEA;IACA,IAAIA,iBAAiB,GAAG,CAAC,IAAI,CAACE,UAAU,CAAClD,aAAa,EAAE;MACtD,OAAO,KAAK;IACd;IAEA,IAAM;MAAEmD;IAAe,CAAC,GAAGpE,OAAO;IAElC,IAAI,CAACqE,gBAAgB,GAAGR,SAAS;IACjC,IAAI,CAACS,cAAc,GAAG,IAAI;IAC1B,IAAI,CAACC,MAAM,GAAG,IAAI;IAElB,IACEJ,UAAU,CAACvD,UAAU,IAAI,IAAI,IAC7BqD,iBAAiB,IAAI,IAAI,IACzBhE,KAAK,CAACuE,eAAe,CAACL,UAAU,CAACvD,UAAU,EAAEqD,iBAAiB,CAAC,EAC/D;MACA,IAAI,CAACQ,cAAc,GAAGV,CAAC,GAAGI,UAAU,CAACjD,IAAI,GAAGkD,cAAc;MAC1D,IAAI,CAACM,aAAa,GAAG,IAAI,CAACD,cAAc;IAC1C;IACA,OAAO,KAAK;EACd;EAEAE,MAAMA,CACJd,SAAoB,EACpBxB,IAAU,EACVuC,KAAqB,EACD;IACpB,IACE,IAAI,CAACH,cAAc,KAAKxB,SAAS,IACjC,IAAI,CAACoB,gBAAgB,KAAKpB,SAAS,IACnC,IAAI,CAACyB,aAAa,KAAKzB,SAAS,EAChC;MACA,OAAO,KAAK;IACd;IAEA,IAAM;MAAEc,CAAC,EAAEX,MAAM;MAAEyB,CAAC,EAAExB;IAAO,CAAC,GAAGQ,SAAS;IAC1C,IAAM;MAAEI;IAAkB,CAAC,GAAG,IAAI,CAACI,gBAAgB;IAEnD,IAAM;MAAEpE;IAAM,CAAC,GAAGoC,IAAI,CAACyB,KAAK;IAC5B,IAAI;MAAEQ;IAAe,CAAC,GAAG,IAAI;IAC7B,IAAM;MAAEtE;IAAQ,CAAC,GAAGqC,IAAI;IAExB,IAAI,CAACrC,OAAO,EAAE,MAAM,IAAIkE,KAAK,CAAC,iBAAiB,CAAC;;IAEhD;IACA;IACA,IACE,CAACI,cAAc,IACfQ,IAAI,CAACC,GAAG,CAAC,IAAI,CAACV,gBAAgB,CAACN,CAAC,GAAGX,MAAM,CAAC,GAAG1D,qBAAqB,IAClEoF,IAAI,CAACC,GAAG,CAAC,IAAI,CAACV,gBAAgB,CAACQ,CAAC,GAAGxB,MAAM,CAAC,GAAG3D,qBAAqB,EAClE;MACA,OAAO,KAAK;IACd;;IAEA;IACA,IAAI4E,cAAc,IAAI,IAAI,EAAE;MAC1B,IAAMU,iBAAiB,GAAGnF,aAAa,CACrC,IAAI,CAACwE,gBAAgB,CAACL,MAAM,EAC5BC,iBAAiB,EACjBjE,OAAO,EACPC,KACF,CAAC;MAED,IAAI,CAAC+E,iBAAiB,IAAIf,iBAAiB,IAAI,IAAI,EAAE;QACnD,OAAO,KAAK;MACd;MAEA,IAAI,CAAChE,KAAK,CAACuE,eAAe,CAACQ,iBAAiB,CAACpE,UAAU,CAAC,EAAE;QACxD,OAAO,KAAK;MACd;;MAEA;MACA,IAAIqD,iBAAiB,GAAG,CAAC,IAAI,CAACe,iBAAiB,CAAC/D,aAAa,EAAE;QAC7D,OAAO,KAAK;MACd;MAEA,IAAI+D,iBAAiB,CAAC5D,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE;QACtC,OAAO,KAAK;MACd;MAEAkD,cAAc,GAAG;QACflD,KAAK,EAAE4D,iBAAiB,CAAC5D,KAAK;QAC9BrB,KAAK,EAAEkE,iBAAiB;QACxB/C,IAAI,EAAE8D,iBAAiB,CAAC9D,IAAI;QAC5Ba,KAAK,EAAEiD,iBAAiB,CAACjD;MAC3B,CAAC;MAED,IAAMkD,WAAW,GAAGpF,aAAa,CAC/ByE,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,EACvB,CAAC,EACDpB,OAAO,EACPC,KACF,CAAC;MACD,IAAMiF,SAAS,GAAGrF,aAAa,CAC7ByE,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,EACvB,CAAC,EACDpB,OAAO,EACPC,KACF,CAAC;;MAED;MACA;MACA;MACA,IAAI,CAACgF,WAAW,IAAI,CAACC,SAAS,EAAE;QAC9B,OAAO,KAAK;MACd;MAEA,IAAI,CAACZ,cAAc,GAAGA,cAAc;MACpCjC,IAAI,CAACmB,QAAQ,CAAC;QAAEc,cAAc;QAAEa,UAAU,EAAE;MAAK,CAAC,CAAC;IACrD;;IAEA;AACJ;AACA;IACI,IAAI,CAACZ,MAAM,GAAG,MAAM;IAEpB,IAAI,CAAChB,kBAAkB,CAACM,SAAS,CAACE,CAAC,EAAE1B,IAAI,EAAEuC,KAAK,CAACQ,SAAS,CAAC;IAE3D,OAAO,IAAI;EACb;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE7B,kBAAkBA,CAACH,MAAc,EAAEf,IAAU,EAAEgD,MAAc,EAAQ;IAAA,IAAAC,qBAAA;IACnE,IACE,IAAI,CAACb,cAAc,KAAKxB,SAAS,IACjC,IAAI,CAACoB,gBAAgB,KAAKpB,SAAS,IACnC,IAAI,CAACyB,aAAa,KAAKzB,SAAS,IAChC,IAAI,CAACqB,cAAc,IAAI,IAAI,IAC3Be,MAAM,KAAK,CAAC,EACZ;MACA;IACF;IACA,IAAM;MAAErF;IAAQ,CAAC,GAAGqC,IAAI;IACxB9C,aAAa,CAACS,OAAO,EAAE,iBAAiB,CAAC;IACzC,IAAM;MAAEuF;IAAM,CAAC,GAAGvF,OAAO;;IAEzB;IACA,IAAI,IAAI,CAAC0E,aAAa,KAAK,IAAI,CAACD,cAAc,EAAE;MAC9C;MACA;MACA,IACG,IAAI,CAACA,cAAc,GAAG,IAAI,CAACC,aAAa,IACvC,IAAI,CAACA,aAAa,GAAG,IAAI,CAACD,cAAc,GAAGY,MAAM,IAClD,IAAI,CAACZ,cAAc,GAAG,IAAI,CAACC,aAAa,IACvC,IAAI,CAACA,aAAa,GAAG,IAAI,CAACD,cAAc,GAAGY,MAAO,EACpD;QACA,IAAI,CAACZ,cAAc,GAAG,IAAI,CAACC,aAAa;MAC1C,CAAC,MAAM;QACL;QACA,IAAI,CAACD,cAAc,IAAIY,MAAM;MAC/B;MAEA,IAAI,CAACf,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;QACtBpD,IAAI,EAAEkC,MAAM,GAAG,IAAI,CAACqB,cAAc,GAAGc;MAAK,EAC3C;MACDlD,IAAI,CAACmB,QAAQ,CAAC;QAAEc,cAAc,EAAE,IAAI,CAACA;MAAe,CAAC,CAAC;MACtD;IACF;IAEA,IAAM;MAAEvE,KAAK,EAAE0F;IAAoB,CAAC,GAAG,IAAI,CAACnB,cAAc;IAE1D,IAAM;MAAErE;IAAM,CAAC,GAAGoC,IAAI,CAACyB,KAAK;IAC5B,IAAM;MAAE1D;IAAa,CAAC,GAAGiC,IAAI,CAACiB,KAAK;IAEnC,IAAM;MAAE5C,iBAAiB;MAAEqB,KAAK;MAAE2D,oBAAoB;MAAErF;IAAY,CAAC,GACnEL,OAAO;IAET,IAAM2F,cAAc,GAAGN,MAAM,GAAG,CAAC;IAEjC,IAAMf,cAAc,GAAGzE,aAAa,CAClC,IAAI,CAACyE,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,EAC5BqE,mBAAmB,EACnBzF,OAAO,EACPC,KACF,CAAC;IAED,IAAI,CAACqE,cAAc,EAAE;MACnB;IACF;;IAEA;IACA;IACA,IAAMsB,oBAAoB,GAAGxC,MAAM,GAAG,IAAI,CAACqB,cAAc,GAAGc,KAAK;IACjE,IAAMM,qBAAqB,GAAGD,oBAAoB,GAAGtB,cAAc,CAACvC,KAAK;IAEzE,IAAI,CAACuC,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;MACtBpD,IAAI,EAAE0E;IAAoB,EAC3B;IACDvD,IAAI,CAACmB,QAAQ,CAAC;MACZc,cAAc,EAAE,IAAI,CAACA;IACvB,CAAC,CAAC;IAEF,IAAMwB,UAAU,GAAGjG,aAAa,CAC9BL,SAAS,CAACuG,YAAY,CACpBzG,KAAK,CACHqG,cAAc,GAAGC,oBAAoB,GAAGC,qBAAqB,EAC7DnF,iBAAiB,EACjBqB,KACF,CAAC,GAAGwD,KAAK,EACTvF,OAAO,EACP,IACF,CAAC,EACDyF,mBAAmB,EACnBzF,OAAO,EACPC,KACF,CAAC;IAED,IAAM+F,WAAW,GAAG/F,KAAK,CAACgG,0BAA0B,CAClD3B,cAAc,CAAC1D,UAAU,EACzB0D,cAAc,CAACvE,KACjB,CAAC;IAED,IAAI,CAAC+F,UAAU,EAAE;MACf;IACF;;IAEA;IACA,IAAIE,WAAW,KAAK/C,SAAS,EAAE;MAC7B,IAAMiD,kBAAkB,GAAGF,WAAW,CAACtE,eAAe,CAACtB,YAAY,CAAC;MACpE;MACA,IAAI0F,UAAU,CAAChG,YAAY,GAAGoG,kBAAkB,CAAC,CAAC,CAAC,EAAE;QAAA,IAAAC,iBAAA;QACnD,IAAMC,gBAAe,GAAG,IAAI,CAACC,UAAU,CACrC/B,cAAc,EACd4B,kBAAkB,CAAC,CAAC,CAAC,EACrB9F,YACF,CAAC;QAED,IAAI,CAACqE,cAAc,GACjBrB,MAAM,KAAA+C,iBAAA,GAAI9F,WAAW,CAACQ,GAAG,CAACqF,kBAAkB,CAAC,CAAC,CAAC,CAAC,cAAAC,iBAAA,cAAAA,iBAAA,GAAI,CAAC,CAAC;QACxD,IAAI,CAAC7B,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;UACtBpD,IAAI,EAAEkC,MAAM,GAAG,IAAI,CAACqB,cAAc,GAAGc;QAAK,EAC3C;QACD,IAAI,CAAC9B,mBAAmB,CAAC,CAAC;QAC1BpB,IAAI,CAACmB,QAAQ,CAAC;UACZc,cAAc,EAAE,IAAI,CAACA,cAAc;UACnClE,YAAY,EAAEgG;QAChB,CAAC,CAAC;QACF;MACF;;MAEA;MACA,IAAIN,UAAU,CAAChG,YAAY,GAAGoG,kBAAkB,CAAC,CAAC,CAAC,EAAE;QAAA,IAAAI,cAAA;QACnD,IAAMF,iBAAe,GAAG,IAAI,CAACC,UAAU,CACrC/B,cAAc,EACd4B,kBAAkB,CAAC,CAAC,CAAC,IAClB5B,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,GAAGkD,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,CAAC,EACrDhB,YACF,CAAC;QAED,IAAM;UAAEe,KAAK,EAAEoF,WAAW,GAAG;QAAE,CAAC,IAAAD,cAAA,GAC9BzG,aAAa,CAACqG,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC,EAAElG,OAAO,EAAEC,KAAK,CAAC,cAAAqG,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC;QAE/D,IAAI,CAAC7B,cAAc,GAAGrB,MAAM,IAAImD,WAAW,GAAGjC,cAAc,CAACvC,KAAK,CAAC;QACnE,IAAI,CAACuC,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;UACtBpD,IAAI,EAAEkC,MAAM,GAAG,IAAI,CAACqB,cAAc,GAAGc;QAAK,EAC3C;QACD,IAAI,CAAC9B,mBAAmB,CAAC,CAAC;QAC1BpB,IAAI,CAACmB,QAAQ,CAAC;UACZc,cAAc,EAAE,IAAI,CAACA,cAAc;UACnClE,YAAY,EAAEgG;QAChB,CAAC,CAAC;QACF;MACF;IACF;;IAEA;IACA,IAAI,CAACnG,KAAK,CAACuE,eAAe,CAACsB,UAAU,CAAClF,UAAU,CAAC,EAAE;MACjD,IAAI4F,cAAc,GAAGV,UAAU,CAAChG,YAAY;MAC5C,IAAI6F,cAAc,EAAE;QAClBa,cAAc,IAAI,CAAC;QACnB,OACEA,cAAc,GAAGlC,cAAc,CAACxE,YAAY,IAC5C,CAACG,KAAK,CAACuE,eAAe,CACpBhF,SAAS,CAACsB,aAAa,CAAC0F,cAAc,EAAEpG,YAAY,CACtD,CAAC,EACD;UACAoG,cAAc,IAAI,CAAC;QACrB;MACF,CAAC,MAAM;QACLA,cAAc,IAAI,CAAC;QACnB,OACEA,cAAc,GAAGlC,cAAc,CAACxE,YAAY,IAC5C,CAACG,KAAK,CAACuE,eAAe,CACpBhF,SAAS,CAACsB,aAAa,CAAC0F,cAAc,EAAEpG,YAAY,CACtD,CAAC,EACD;UACAoG,cAAc,IAAI,CAAC;QACrB;MACF;MAEA,IAAIA,cAAc,KAAKlC,cAAc,CAACxE,YAAY,EAAE;QAClD,IAAI,CAAC6F,cAAc,EAAE;UACnB;UACAa,cAAc,IAAIlC,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,GAAGkD,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC;QACrE;QAEA,IAAMgF,iBAAe,GAAG,IAAI,CAACC,UAAU,CACrC/B,cAAc,EACdkC,cAAc,EACdpG,YACF,CAAC;QAEDiC,IAAI,CAACmB,QAAQ,CAAC;UACZpD,YAAY,EAAEgG,iBAAe;UAC7B9B,cAAc,EAAE,IAAI,CAACA;QACvB,CAAC,CAAC;MACJ;MAEA,IAAMmC,YAAY,GAAG5G,aAAa,CAAC2G,cAAc,EAAE,CAAC,EAAExG,OAAO,EAAEC,KAAK,CAAC;MACrE,IAAI0F,cAAc,EAAE;QAAA,IAAAe,kBAAA;QAClB,IAAI,CAACjC,cAAc,GAAGrB,MAAM,KAAAsD,kBAAA,GAAID,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEvF,IAAI,cAAAwF,kBAAA,cAAAA,kBAAA,GAAI,CAAC,CAAC;MAC1D,CAAC,MAAM;QAAA,IAAAC,mBAAA;QACL,IAAI,CAAClC,cAAc,GACjBrB,MAAM,IAAI,EAAAuD,mBAAA,GAACF,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEtF,KAAK,cAAAwF,mBAAA,cAAAA,mBAAA,GAAI,CAAC,IAAIrC,cAAc,CAACvC,KAAK,CAAC;MAChE;MAEA,IAAI,CAACuC,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;QACtBpD,IAAI,EAAEkC,MAAM,GAAG,IAAI,CAACqB,cAAc,GAAGc;MAAK,EAC3C;MAEDlD,IAAI,CAACmB,QAAQ,CAAC;QACZc,cAAc,EAAE,IAAI,CAACA;MACvB,CAAC,CAAC;MAEF;IACF;IAEA,IAAIsB,oBAAoB,IAAIlF,iBAAiB,EAAE;MAC7C,IAAI,CAAC0B,iBAAiB,CAACC,IAAI,EAAE,MAAM,CAAC;IACtC,CAAC,MAAM,IAAIwD,qBAAqB,GAAG9D,KAAK,EAAE;MACxC,IAAI,CAACK,iBAAiB,CAACC,IAAI,EAAE,OAAO,CAAC;IACvC,CAAC,MAAM;MACL,IAAI,CAACoB,mBAAmB,CAAC,CAAC;IAC5B;;IAEA;IACA,IAAIqC,UAAU,CAAChG,YAAY,KAAKwE,cAAc,CAACxE,YAAY,EAAE;MAC3D;IACF;;IAEA;IACA,IACG6F,cAAc,IACbrB,cAAc,CAACxE,YAAY,GAAGgG,UAAU,CAAChG,YAAY,IACtD,CAAC6F,cAAc,IAAIrB,cAAc,CAACxE,YAAY,GAAGgG,UAAU,CAAChG,YAAa,EAC1E;MACA;IACF;IAEA,IAAM8G,WAAW,GAAGd,UAAU,CAAC5E,IAAI,GAAG4E,UAAU,CAAC/D,KAAK,GAAG,GAAG;IAC5D,IAAM8E,mBAAmB,GAAG5G,KAAK,CAACgG,0BAA0B,CAC1D3B,cAAc,CAAC1D,UAAU,EACzB0D,cAAc,CAACvE,KACjB,CAAC;;IAED;IACA;IACA,IAAI+G,iBAAiD;IACrD,IAAIC,YAAY,GAAG,EAAAzB,qBAAA,GAACuB,mBAAmB,aAAnBA,mBAAmB,uBAAnBA,mBAAmB,CAAE9G,KAAK,cAAAuF,qBAAA,cAAAA,qBAAA,GAAII,oBAAoB,IAAI,CAAC;IAC3E,OAAOqB,YAAY,IAAI,CAAC,IAAID,iBAAiB,KAAK7D,SAAS,EAAE;MAC3D6D,iBAAiB,GAAG7G,KAAK,CAACe,oBAAoB,CAC5C8E,UAAU,CAAClF,UAAU,EACrBmG,YACF,CAAC;MACDA,YAAY,IAAI,CAAC;IACnB;IAEA,IAAIX,eAAqD;IAEzD,IACET,cAAc,IACdC,oBAAoB,GAAGgB,WAAW,KACjC,CAACE,iBAAiB,IACjBhB,UAAU,CAAChG,YAAY,KACrBgH,iBAAiB,CAACpF,eAAe,CAACtB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD;MACAgG,eAAe,GAAG,IAAI,CAACC,UAAU,CAC/B/B,cAAc,EACdwB,UAAU,CAAC1E,KAAK,CAAC,CAAC,CAAC,EACnBhB,YACF,CAAC;IACH;IAEA,IACE,CAACuF,cAAc,IACfE,qBAAqB,GAAGe,WAAW,KAClC,CAACE,iBAAiB,IACjBhB,UAAU,CAAChG,YAAY,KACrBgH,iBAAiB,CAACpF,eAAe,CAACtB,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD;MACAgG,eAAe,GAAG,IAAI,CAACC,UAAU,CAC/B/B,cAAc,EACdwB,UAAU,CAAC1E,KAAK,CAAC,CAAC,CAAC,IAChBkD,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,GAAGkD,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,CAAC,EACrDhB,YACF,CAAC;IACH;IAEA,IAAI,CAACgG,eAAe,EAAE;MACpB;IACF;IAEA,IAAI,CAAC9B,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;MACtBpD,IAAI,EAAE0E;IAAoB,EAC3B;IAEDvD,IAAI,CAACmB,QAAQ,CAAC;MACZpD,YAAY,EAAEgG,eAAe;MAC7B9B,cAAc,EAAE,IAAI,CAACA;IACvB,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE+B,UAAUA,CACR/B,cAA0B,EAC1B0C,EAAU,EACV5G,YAAsC,EACrB;IACjB,IAAMgG,eAAe,GAAG9B,cAAc,CAACrD,aAAa,GAChDzB,SAAS,CAACyH,SAAS,CAAC3C,cAAc,CAAClD,KAAK,EAAE4F,EAAE,EAAE5G,YAAY,CAAC,GAC3DZ,SAAS,CAAC0H,QAAQ,CAAC5C,cAAc,CAACxE,YAAY,EAAEkH,EAAE,EAAE5G,YAAY,CAAC;IAErE,IAAM+G,YAAY,GAAGH,EAAE,GAAG1C,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC;IACjD,IAAMgG,gBAAkC,GAAG,CACzC9C,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,GAAG+F,YAAY,EACtC7C,cAAc,CAAClD,KAAK,CAAC,CAAC,CAAC,GAAG+F,YAAY,CACvC;IAED,IAAI,IAAI,CAAC7C,cAAc,EAAE;MACvB,IAAI,CAACA,cAAc,GAAAkB,aAAA,CAAAA,aAAA,KACd,IAAI,CAAClB,cAAc;QACtBlD,KAAK,EAAEgG;MAAgB,EACxB;IACH;IAEA,OAAOhB,eAAe;EACxB;EAEAiB,IAAIA,CAACxD,SAAoB,EAAExB,IAAU,EAAsB;IACzD,IAAI,CAACkC,MAAM,GAAG,IAAI;IAElB,IAAI,CAACd,mBAAmB,CAAC,CAAC;IAE1B,IAAI,IAAI,CAACgB,cAAc,IAAI,IAAI,EAAE;MAC/B,IAAI,CAACA,cAAc,GAAGxB,SAAS;MAC/BZ,IAAI,CAACmB,QAAQ,CAAC;QACZc,cAAc,EAAE,IAAI;QACpBa,UAAU,EAAE;MACd,CAAC,CAAC;MACF,OAAO,IAAI;IACb;IAEA,OAAO,KAAK;EACd;AACF;AAEA,eAAenD,0BAA0B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAC;AAChC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,KAAK,SAAS,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,WAAW,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACvE,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAG9C,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,CAAC;AACtC,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AACrE,MAAM,MAAM,qBAAqB,GAAG,cAAc,GAAG,iBAAiB,CAAC;AACvE,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAC9E,MAAM,MAAM,cAAc,GAAG,oBAAoB,GAAG,gBAAgB,CAAC;AACrE,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,GACtB,wBAAwB,CAAC;AAC7B,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,GAAG,qBAAqB,CAAC;AAC9E,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,cAAc,CAAC;AAChE,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,aAAa,CAAC;AAC5D,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,cAAc,CAAC;AAClE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,uBAAe,yBAA0B,SAAQ,gBAAgB;IAE/D,SAAS,CAAC,aAAa,CAAC,EAAE,YAAY,CAAC;IAGvC,SAAS,CAAC,aAAa,EAAE,YAAY,EAAE,CAAM;IAG7C,SAAS,CAAC,WAAW,EAAE,YAAY,EAAE,CAAM;IAG3C,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAa;IAE3D,SAAS,CAAC,UAAU,SAAK;IAGzB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAE9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAE/B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC,QAAQ,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;IAE7C,QAAQ,CAAC,qBAAqB,EAAE,qBAAqB,CAAC;IAEtD,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEnD,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IAExC,QAAQ,CAAC,uBAAuB,EAAE,sBAAsB,CAAC;IAEzD,QAAQ,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;IAEnD,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAEpD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAEhD,QAAQ,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAElD,QAAQ,CAAC,cAAc,CACrB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW,GACnB,YAAY,EAAE;IAEjB,QAAQ,CAAC,gBAAgB,CACvB,SAAS,EAAE,YAAY,EACvB,OAAO,EAAE,WAAW,GACnB,YAAY,GAAG,IAAI;IAEtB,QAAQ,CAAC,OAAO,CACd,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAEP,QAAQ,CAAC,SAAS,CAChB,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAEP,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI;IAE3E,QAAQ,CAAC,YAAY,CACnB,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,SAAS,GACf,aAAa,GAAG,IAAI;IAGvB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA2B5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAe5D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA4G5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAa1D,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IA8BnE,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAUjE,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;IAclE,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,GAAG,IAAI;CAKtE;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -92,12 +92,12 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
92
92
|
var targetSize = this.targetSizes.get(_modelIndex);
|
|
93
93
|
var isResizingMultiple = this.resizingItems.length > 1;
|
|
94
94
|
var hiddenIndex = this.hiddenItems.indexOf(resizeIndex);
|
|
95
|
-
var calculatedSize =
|
|
96
|
-
if (resizeIndex === firstIndex) {
|
|
95
|
+
var calculatedSize = calculatedSizes.get(_modelIndex);
|
|
96
|
+
if (calculatedSize != null && resizeIndex === firstIndex) {
|
|
97
97
|
calculatedSize += treePadding;
|
|
98
98
|
}
|
|
99
99
|
var newSize = itemSize;
|
|
100
|
-
if (Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold) {
|
|
100
|
+
if (calculatedSize != null && Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold) {
|
|
101
101
|
// Snapping behaviour to "natural" width
|
|
102
102
|
newSize = calculatedSize;
|
|
103
103
|
} else if (targetSize !== undefined && itemSize > targetSize && (isResizingMultiple && hiddenIndex !== 0 || hiddenIndex > 0)) {
|
|
@@ -174,9 +174,9 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
174
174
|
if (separator != null) {
|
|
175
175
|
var modelIndexes = metrics[this.modelIndexesProperty];
|
|
176
176
|
var _modelIndex2 = getOrThrow(modelIndexes, separator.index);
|
|
177
|
-
var calculatedSize =
|
|
177
|
+
var calculatedSize = metrics[this.calculatedSizesProperty].get(_modelIndex2);
|
|
178
178
|
var defaultSize = metricCalculator[this.initialSizesProperty].get(_modelIndex2);
|
|
179
|
-
if (calculatedSize === defaultSize) {
|
|
179
|
+
if (calculatedSize === defaultSize || calculatedSize == null) {
|
|
180
180
|
this.resetSize(metricCalculator, _modelIndex2);
|
|
181
181
|
} else {
|
|
182
182
|
this.setSize(metricCalculator, _modelIndex2, calculatedSize);
|
|
@@ -203,7 +203,8 @@ class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
|
203
203
|
var modelIndex = getOrThrow(modelIndexes, itemIndex);
|
|
204
204
|
var targetSize = userSizes.get(modelIndex);
|
|
205
205
|
if (targetSize == null || targetSize === 0) {
|
|
206
|
-
|
|
206
|
+
var _calculatedSizes$get;
|
|
207
|
+
targetSize = ((_calculatedSizes$get = calculatedSizes.get(modelIndex)) !== null && _calculatedSizes$get !== void 0 ? _calculatedSizes$get : 0) + treePadding;
|
|
207
208
|
}
|
|
208
209
|
this.targetSizes.set(modelIndex, targetSize);
|
|
209
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","constructor","arguments","_defineProperty","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","_this$targetSizes$get","pop","removeTargetSize","getNextShownItem","push","forEach","_metricCalculator$thi","defaultSize","initialSizesProperty","resetSize","setSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import { getOrThrow } from '@deephaven/utils';\nimport type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type InitialSizeProperty = 'initialRowHeights' | 'initialColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract initialSizesProperty: InitialSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null =\n this.resizingItems[this.resizingItems.length - 1];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = getOrThrow(calculatedSizes, modelIndex);\n if (resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = calculatedSize;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n newSizes.set(modelIndex, newSize);\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex) ??\n calculatedSizes.get(modelIndex);\n\n if (newSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, newSize);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n const calculatedSize = getOrThrow(\n metrics[this.calculatedSizesProperty],\n modelIndex\n );\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex);\n\n if (calculatedSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, calculatedSize);\n }\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = getOrThrow(calculatedSizes, modelIndex) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","constructor","arguments","_defineProperty","Map","onDown","gridPoint","grid","metrics","model","props","theme","getTheme","Error","separator","getSeparator","separatorIndex","index","dragOffset","draggingIndex","resizingItems","hiddenItems","getHiddenItems","reverse","targetSizes","clear","addTargetSize","updateCursor","updateSeparator","onMove","onDrag","point","pointProperty","metricCalculator","visibleOffsets","visibleOffsetProperty","margin","marginProperty","calculatedSizes","calculatedSizesProperty","modelIndexes","modelIndexesProperty","firstIndex","firstIndexProperty","treePadding","treePaddingProperty","newSizes","resizeIndex","length","itemOffset","itemSize","modelIndex","targetSize","get","isResizingMultiple","hiddenIndex","indexOf","calculatedSize","newSize","Math","abs","headerResizeSnapThreshold","undefined","headerResizeHiddenSnapThreshold","set","_this$targetSizes$get","pop","removeTargetSize","getNextShownItem","push","forEach","_metricCalculator$thi","defaultSize","initialSizesProperty","resetSize","setSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","_calculatedSizes$get","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import { getOrThrow } from '@deephaven/utils';\nimport type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport type { GridTheme } from '../GridTheme';\nimport type { GridPoint } from '../GridUtils';\n\n// The different properties that can be used by implementing classes, whether for rows or columns\nexport type PointProperty = 'x' | 'y';\nexport type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';\nexport type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';\nexport type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';\nexport type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';\nexport type CalculatedSizeProperty =\n | 'calculatedRowHeights'\n | 'calculatedColumnWidths';\nexport type InitialSizeProperty = 'initialRowHeights' | 'initialColumnWidths';\nexport type ModelIndexesProperty = 'modelRows' | 'modelColumns';\nexport type FirstIndexProperty = 'firstRow' | 'firstColumn';\nexport type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';\nexport interface GridSeparator {\n index: VisibleIndex;\n depth: number;\n}\n\n/**\n * Abstract class that should be extended for column/row behaviour\n * Override the necessary functions/properties\n */\nabstract class GridSeparatorMouseHandler extends GridMouseHandler {\n // The index where dragging the column separator started\n protected draggingIndex?: VisibleIndex;\n\n // The columns in the order they're being resized\n protected resizingItems: VisibleIndex[] = [];\n\n // Columns that were hidden under the separator when starting a drag\n protected hiddenItems: VisibleIndex[] = [];\n\n // The target width of the columns being resized\n protected targetSizes: Map<ModelIndex, number> = new Map();\n\n protected dragOffset = 0;\n\n // Override/Implement these properties/functions\n abstract hiddenCursor: string;\n\n abstract defaultCursor: string;\n\n abstract pointProperty: PointProperty;\n\n abstract userSizesProperty: UserSizeProperty;\n\n abstract visibleOffsetProperty: VisibleOffsetProperty;\n\n abstract visibleSizesProperty: VisibleSizeProperty;\n\n abstract marginProperty: MarginProperty;\n\n abstract calculatedSizesProperty: CalculatedSizeProperty;\n\n abstract initialSizesProperty: InitialSizeProperty;\n\n abstract modelIndexesProperty: ModelIndexesProperty;\n\n abstract firstIndexProperty: FirstIndexProperty;\n\n abstract treePaddingProperty: TreePaddingProperty;\n\n abstract getHiddenItems(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex[];\n\n abstract getNextShownItem(\n itemIndex: VisibleIndex,\n metrics: GridMetrics\n ): VisibleIndex | null;\n\n abstract setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void;\n\n abstract resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void;\n\n abstract updateSeparator(grid: Grid, separator: GridSeparator | null): void;\n\n abstract getSeparator(\n gridPoint: GridPoint,\n metrics: GridMetrics,\n model: GridModel,\n theme: GridTheme\n ): GridSeparator | null;\n // End of overrides\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n if (separator != null) {\n const separatorIndex = separator.index;\n\n this.dragOffset = 0;\n this.draggingIndex = separatorIndex;\n this.resizingItems = [separatorIndex];\n this.hiddenItems = this.getHiddenItems(separatorIndex, metrics).reverse();\n this.targetSizes.clear();\n\n this.addTargetSize(metrics, separatorIndex);\n\n this.updateCursor(metrics, separatorIndex);\n\n this.updateSeparator(grid, separator);\n\n return true;\n }\n return false;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n this.updateCursor(metrics, separator.index);\n return true;\n }\n return false;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex == null) {\n return false;\n }\n\n const point = gridPoint[this.pointProperty];\n const { metricCalculator, metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const theme = grid.getTheme();\n\n const visibleOffsets = metrics[this.visibleOffsetProperty];\n const margin = metrics[this.marginProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const modelIndexes = metrics[this.modelIndexesProperty];\n const firstIndex = metrics[this.firstIndexProperty];\n const treePadding = metrics[this.treePaddingProperty];\n\n // New sizes are batched and applied after the loop to avoid updating state while calculating next step\n const newSizes: Map<ModelIndex, number> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null =\n this.resizingItems[this.resizingItems.length - 1];\n while (resizeIndex != null) {\n const itemOffset = getOrThrow(visibleOffsets, resizeIndex);\n const itemSize = point - margin - itemOffset - this.dragOffset;\n const modelIndex = getOrThrow(modelIndexes, resizeIndex);\n const targetSize = this.targetSizes.get(modelIndex);\n const isResizingMultiple = this.resizingItems.length > 1;\n const hiddenIndex = this.hiddenItems.indexOf(resizeIndex);\n let calculatedSize = calculatedSizes.get(modelIndex);\n if (calculatedSize != null && resizeIndex === firstIndex) {\n calculatedSize += treePadding;\n }\n let newSize = itemSize;\n if (\n calculatedSize != null &&\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = calculatedSize;\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize &&\n ((isResizingMultiple && hiddenIndex !== 0) || hiddenIndex > 0)\n ) {\n newSize = targetSize;\n } else if (itemSize <= theme.headerResizeHiddenSnapThreshold) {\n // Snapping to hidden item\n newSize = 0;\n }\n\n newSizes.set(modelIndex, newSize);\n\n if (itemSize < -theme.headerResizeSnapThreshold && newSize === 0) {\n if (hiddenIndex >= 0 && isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n this.dragOffset -=\n this.targetSizes.get(getOrThrow(modelIndexes, resizeIndex)) ?? 0;\n } else {\n resizeIndex = this.getNextShownItem(resizeIndex, metrics);\n if (resizeIndex !== null) {\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n }\n }\n } else if (\n targetSize !== undefined &&\n itemSize > targetSize + theme.headerResizeSnapThreshold &&\n newSize === targetSize\n ) {\n if (hiddenIndex > 0) {\n this.dragOffset += newSize;\n resizeIndex = this.hiddenItems[hiddenIndex - 1];\n this.resizingItems.push(resizeIndex);\n this.addTargetSize(metrics, resizeIndex);\n } else if (isResizingMultiple) {\n this.resizingItems.pop();\n this.removeTargetSize(metrics, resizeIndex);\n resizeIndex = this.resizingItems[this.resizingItems.length - 1];\n } else {\n resizeIndex = null;\n }\n } else {\n resizeIndex = null;\n }\n }\n\n newSizes.forEach((newSize, modelIndex) => {\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex) ??\n calculatedSizes.get(modelIndex);\n\n if (newSize === defaultSize) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, newSize);\n }\n });\n\n this.updateCursor(metrics, this.draggingIndex);\n\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.draggingIndex != null) {\n this.draggingIndex = undefined;\n this.resizingItems = [];\n this.hiddenItems = [];\n this.targetSizes.clear();\n\n this.updateSeparator(grid, null);\n }\n\n return false;\n }\n\n onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics, metricCalculator } = grid;\n const { model } = grid.props;\n const theme = grid.getTheme();\n if (!metrics) throw new Error('metrics not set');\n\n const separator = this.getSeparator(gridPoint, metrics, model, theme);\n\n if (separator != null) {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, separator.index);\n\n const calculatedSize =\n metrics[this.calculatedSizesProperty].get(modelIndex);\n const defaultSize =\n metricCalculator[this.initialSizesProperty].get(modelIndex);\n\n if (calculatedSize === defaultSize || calculatedSize == null) {\n this.resetSize(metricCalculator, modelIndex);\n } else {\n this.setSize(metricCalculator, modelIndex, calculatedSize);\n }\n\n grid.forceUpdate();\n\n return true;\n }\n return false;\n }\n\n updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const visibleSizes = metrics[this.visibleSizesProperty];\n const itemSize = getOrThrow(visibleSizes, itemIndex);\n if (itemSize === 0) {\n this.cursor = this.hiddenCursor;\n } else {\n this.cursor = this.defaultCursor;\n }\n }\n\n addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const userSizes = metrics[this.userSizesProperty];\n const calculatedSizes = metrics[this.calculatedSizesProperty];\n const treePadding = itemIndex === 0 ? metrics[this.treePaddingProperty] : 0;\n\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n let targetSize = userSizes.get(modelIndex);\n if (targetSize == null || targetSize === 0) {\n targetSize = (calculatedSizes.get(modelIndex) ?? 0) + treePadding;\n }\n this.targetSizes.set(modelIndex, targetSize);\n }\n\n removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void {\n const modelIndexes = metrics[this.modelIndexesProperty];\n const modelIndex = getOrThrow(modelIndexes, itemIndex);\n this.targetSizes.delete(modelIndex);\n }\n}\n\nexport default GridSeparatorMouseHandler;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/grid",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.73.1-beta.0+111ea64c",
|
|
4
4
|
"description": "Deephaven React grid component",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"*.css"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/utils": "^0.
|
|
34
|
+
"@deephaven/utils": "^0.73.1-beta.0+111ea64c",
|
|
35
35
|
"classnames": "^2.3.1",
|
|
36
36
|
"color-convert": "^2.0.1",
|
|
37
37
|
"event-target-shim": "^6.0.2",
|
|
@@ -44,5 +44,5 @@
|
|
|
44
44
|
"publishConfig": {
|
|
45
45
|
"access": "public"
|
|
46
46
|
},
|
|
47
|
-
"gitHead": "
|
|
47
|
+
"gitHead": "111ea64c675190995f85789ce57ea055b8b7fd2b"
|
|
48
48
|
}
|