@deephaven/grid 0.26.1 → 0.26.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Grid.js +3 -1
- package/dist/Grid.js.map +1 -1
- package/dist/GridMetricCalculator.js +3 -1
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMouseHandler.js +3 -1
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js +3 -1
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js +3 -1
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.js +9 -7
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js +3 -1
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridModel.js +3 -1
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js +3 -1
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js +3 -1
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/ViewportDataGridModel.js +3 -1
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js +3 -1
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js +3 -1
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/memoizeClear.js +3 -1
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +3 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSeparatorMouseHandler.js","names":["getOrThrow","GridMouseHandler","GridSeparatorMouseHandler","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","pop","removeTargetSize","getNextShownItem","push","forEach","setSize","resetSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport { getOrThrow } from '../GridMetricCalculator';\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 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 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 | null> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\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: number | null = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\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 if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\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 if (newSize !== null) {\n this.setSize(metricCalculator, modelIndex, newSize);\n } else {\n this.resetSize(metricCalculator, modelIndex);\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 this.resetSize(metricCalculator, modelIndex);\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","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","pop","removeTargetSize","getNextShownItem","push","forEach","setSize","resetSize","onUp","onDoubleClick","forceUpdate","itemIndex","visibleSizes","visibleSizesProperty","cursor","hiddenCursor","defaultCursor","userSizes","userSizesProperty","delete"],"sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"sourcesContent":["import type Grid from '../Grid';\nimport type { GridMetricCalculator } from '../GridMetricCalculator';\nimport type GridModel from '../GridModel';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport { getOrThrow } from '../GridMetricCalculator';\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 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 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 | null> = new Map();\n\n // Use a loop as we may need to resize multiple items if they drag quickly\n let resizeIndex: number | null = this.resizingItems[\n this.resizingItems.length - 1\n ];\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: number | null = itemSize;\n if (\n Math.abs(itemSize - calculatedSize) <= theme.headerResizeSnapThreshold\n ) {\n // Snapping behaviour to \"natural\" width\n newSize = null;\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 if (newSize !== calculatedSize) {\n newSizes.set(modelIndex, newSize);\n } else {\n newSizes.set(modelIndex, null);\n }\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 if (newSize !== null) {\n this.setSize(metricCalculator, modelIndex, newSize);\n } else {\n this.resetSize(metricCalculator, modelIndex);\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 this.resetSize(metricCalculator, modelIndex);\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,4 +1,6 @@
|
|
|
1
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
1
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
3
|
+
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); }
|
|
2
4
|
import clamp from 'lodash.clamp';
|
|
3
5
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
4
6
|
/* eslint class-methods-use-this: "off" */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","allRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.allRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"GridVerticalScrollBarMouseHandler.js","names":["clamp","GridMouseHandler","GridVerticalScrollBarMouseHandler","getTopWithOffsetFromRawTop","grid","rawTop","theme","getTheme","metrics","metricCalculator","Error","scrollSnapToRow","top","Math","round","topOffset","floor","topOffsetPercent","rowHeight","allRowHeights","get","metricState","getMetricState","getVisibleRowHeight","isInScrollBar","gridPoint","scrollBarSize","scrollBarHoverSize","x","y","barTop","barHeight","width","hasVerticalBar","getTopWithOffset","handleHeight","lastTop","rowCount","scrollableContentHeight","scrollableViewportHeight","mouseBarY","scrollPercent","dragOffset","onDown","scrollY","setState","isDraggingVerticalScrollBar","newTop","newTopOffset","setViewState","isDragging","onMove","onDrag","onUp","undefined","onClick"],"sources":["../../src/mouse-handlers/GridVerticalScrollBarMouseHandler.ts"],"sourcesContent":["import clamp from 'lodash.clamp';\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { VisibleIndex } from '../GridMetrics';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/* eslint class-methods-use-this: \"off\" */\nclass GridVerticalScrollBarMouseHandler extends GridMouseHandler {\n static getTopWithOffsetFromRawTop(\n grid: Grid,\n rawTop: number\n ): { top: VisibleIndex; topOffset: number } {\n const theme = grid.getTheme();\n const { metrics, metricCalculator } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n if (theme.scrollSnapToRow) {\n const top = Math.round(rawTop);\n const topOffset = 0;\n\n return { top, topOffset };\n }\n const top = Math.floor(rawTop);\n const topOffsetPercent = rawTop - top;\n let rowHeight = metrics.allRowHeights.get(top);\n if (rowHeight == null) {\n const metricState = grid.getMetricState();\n rowHeight = metricCalculator.getVisibleRowHeight(top, metricState);\n }\n const topOffset = rowHeight * topOffsetPercent;\n\n return { top, topOffset };\n }\n\n private dragOffset?: number;\n\n // to trigger pointer event blocking\n cursor = 'default';\n\n isInScrollBar(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n\n const { scrollBarSize, scrollBarHoverSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { barTop, barHeight, width, hasVerticalBar } = metrics;\n\n return (\n hasVerticalBar &&\n scrollBarSize > 0 &&\n x >= width - scrollBarHoverSize &&\n x < width &&\n y > barTop &&\n y < barTop + barHeight\n );\n }\n\n getTopWithOffset(\n gridPoint: GridPoint,\n grid: Grid\n ): { top: number; topOffset: number } {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const {\n barHeight,\n handleHeight,\n lastTop,\n barTop,\n rowCount,\n scrollableContentHeight,\n scrollableViewportHeight,\n } = metrics;\n\n const mouseBarY = y - barTop;\n const scrollPercent = clamp(\n (mouseBarY - (this.dragOffset ?? 0)) / (barHeight - handleHeight),\n 0,\n 1\n );\n\n if (rowCount === 1) {\n return {\n top: 0,\n topOffset:\n scrollPercent * (scrollableContentHeight - scrollableViewportHeight),\n };\n }\n\n const rawTop = scrollPercent * lastTop;\n return GridVerticalScrollBarMouseHandler.getTopWithOffsetFromRawTop(\n grid,\n rawTop\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { y } = gridPoint;\n const { handleHeight, barTop, scrollY } = metrics;\n if (!this.isInScrollBar(gridPoint, grid)) {\n return false;\n }\n\n const mouseBarY = y - barTop;\n if (mouseBarY >= scrollY && mouseBarY <= scrollY + handleHeight) {\n // Grabbed the vertical handle\n this.dragOffset = mouseBarY - scrollY;\n grid.setState({ isDraggingVerticalScrollBar: true });\n } else {\n // clicked elsewhere in bar\n this.dragOffset = 0;\n\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n }\n\n return true;\n }\n\n onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset != null) {\n const { top: newTop, topOffset: newTopOffset } = this.getTopWithOffset(\n gridPoint,\n grid\n );\n\n grid.setViewState({\n top: newTop,\n topOffset: newTopOffset,\n isDraggingVerticalScrollBar: true,\n isDragging: true,\n });\n return true;\n }\n return false;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.dragOffset !== undefined) {\n this.dragOffset = undefined;\n grid.setState({ isDraggingVerticalScrollBar: false, isDragging: false });\n }\n\n return this.isInScrollBar(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInScrollBar(gridPoint, grid);\n }\n}\n\nexport default GridVerticalScrollBarMouseHandler;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/grid",
|
|
3
|
-
"version": "0.26.1",
|
|
3
|
+
"version": "0.26.2-beta.1+2bf1a88",
|
|
4
4
|
"description": "Deephaven React grid component",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -25,13 +25,13 @@
|
|
|
25
25
|
"react": "^17.0.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@deephaven/tsconfig": "^0.26.
|
|
28
|
+
"@deephaven/tsconfig": "^0.26.2-beta.1+2bf1a88"
|
|
29
29
|
},
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/utils": "^0.26.
|
|
34
|
+
"@deephaven/utils": "^0.26.2-beta.1+2bf1a88",
|
|
35
35
|
"classnames": "^2.3.1",
|
|
36
36
|
"color-convert": "^2.0.1",
|
|
37
37
|
"event-target-shim": "^6.0.2",
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"publishConfig": {
|
|
44
44
|
"access": "public"
|
|
45
45
|
},
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "2bf1a885feb422ebf6ce3d7752d289e374df2233"
|
|
47
47
|
}
|