@deephaven/grid 0.7.3-beta.8 → 0.8.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/CellInputField.d.ts +4 -4
- package/dist/CellInputField.d.ts.map +1 -1
- package/dist/CellInputField.js +10 -11
- package/dist/CellInputField.js.map +1 -1
- package/dist/EditableGridModel.d.ts +70 -0
- package/dist/EditableGridModel.d.ts.map +1 -0
- package/dist/EditableGridModel.js +13 -0
- package/dist/EditableGridModel.js.map +1 -0
- package/dist/EventHandlerResult.d.ts +17 -0
- package/dist/EventHandlerResult.d.ts.map +1 -0
- package/dist/EventHandlerResult.js +2 -0
- package/dist/EventHandlerResult.js.map +1 -0
- package/dist/ExpandableGridModel.d.ts +34 -0
- package/dist/ExpandableGridModel.d.ts.map +1 -0
- package/dist/ExpandableGridModel.js +7 -0
- package/dist/ExpandableGridModel.js.map +1 -0
- package/dist/Grid.d.ts +283 -234
- package/dist/Grid.d.ts.map +1 -1
- package/dist/Grid.js +371 -165
- package/dist/Grid.js.map +1 -1
- package/dist/GridColorUtils.d.ts +22 -12
- package/dist/GridColorUtils.d.ts.map +1 -1
- package/dist/GridColorUtils.js +26 -21
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.d.ts.map +1 -1
- package/dist/GridMetricCalculator.js +8 -41
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridModel.d.ts +54 -60
- package/dist/GridModel.d.ts.map +1 -1
- package/dist/GridModel.js +54 -122
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.d.ts +23 -24
- package/dist/GridMouseHandler.d.ts.map +1 -1
- package/dist/GridMouseHandler.js +6 -14
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.d.ts +2 -2
- package/dist/GridRange.d.ts.map +1 -1
- package/dist/GridRange.js +1 -9
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.d.ts +117 -69
- package/dist/GridRenderer.d.ts.map +1 -1
- package/dist/GridRenderer.js +183 -168
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridUtils.d.ts +4 -4
- package/dist/GridUtils.js +4 -4
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.d.ts +10 -7
- package/dist/KeyHandler.d.ts.map +1 -1
- package/dist/KeyHandler.js +6 -10
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.d.ts +1 -1
- package/dist/MockGridData.d.ts.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.d.ts +39 -12
- package/dist/MockGridModel.d.ts.map +1 -1
- package/dist/MockGridModel.js +24 -10
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.d.ts +37 -22
- package/dist/MockTreeGridModel.d.ts.map +1 -1
- package/dist/MockTreeGridModel.js +32 -20
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/errors/AssertionError.d.ts +5 -0
- package/dist/errors/AssertionError.d.ts.map +1 -0
- package/dist/errors/AssertionError.js +12 -0
- package/dist/errors/AssertionError.js.map +1 -0
- package/dist/errors/PasteError.d.ts +1 -1
- package/dist/errors/PasteError.d.ts.map +1 -1
- package/dist/errors/PasteError.js +1 -2
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.d.ts +3 -0
- package/dist/errors/assertIsDefined.d.ts.map +1 -0
- package/dist/errors/assertIsDefined.js +8 -0
- package/dist/errors/assertIsDefined.js.map +1 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
- package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js +10 -9
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
- package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js +3 -3
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
- package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js +16 -15
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
- package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js +14 -12
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/memoizeClear.d.ts +13 -3
- package/dist/memoizeClear.d.ts.map +1 -1
- package/dist/memoizeClear.js +7 -7
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
- package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js +3 -2
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +11 -12
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +40 -38
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
- package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js +13 -12
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
- package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
- package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js +22 -20
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
- package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js +45 -86
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +40 -38
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRowSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.
|
|
1
|
+
{"version":3,"file":"GridRowSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,oBAAoB,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,yBAAyB,MAAM,6BAA6B,CAAC;AAEpE,cAAM,4BAA6B,SAAQ,yBAAyB;IAClE,MAAM,CAAC,oBAAoB,CACzB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,gBAAgB,UAAO,GACtB,YAAY,GAAG,IAAI;IAatB,YAAY,SAAc;IAE1B,aAAa,SAAgB;IAE7B,aAAa,MAAgB;IAE7B,iBAAiB,mBAA6B;IAE9C,qBAAqB,iBAA2B;IAEhD,oBAAoB,sBAAgC;IAEpD,cAAc,uBAAiC;IAE/C,uBAAuB,yBAAmC;IAE1D,oBAAoB,cAAwB;IAE5C,kBAAkB,aAAuB;IAEzC,mBAAmB,iBAA2B;IAE9C,cAAc,iCAA2B;IAEzC,gBAAgB,mCAA6B;IAE7C,OAAO,CACL,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,MAAM,GACX,IAAI;IAIP,SAAS,CACP,gBAAgB,EAAE,oBAAoB,EACtC,UAAU,EAAE,UAAU,GACrB,IAAI;IAIP,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,GAAG,IAAI,GAAG,IAAI;IAOtE,iBAAiB,2DAAqD;CACvE;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -28,7 +28,7 @@ class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
28
28
|
|
|
29
29
|
_defineProperty(this, "firstIndexProperty", 'firstRow');
|
|
30
30
|
|
|
31
|
-
_defineProperty(this, "treePaddingProperty", '
|
|
31
|
+
_defineProperty(this, "treePaddingProperty", 'treePaddingY');
|
|
32
32
|
|
|
33
33
|
_defineProperty(this, "getHiddenItems", GridUtils.getHiddenRows);
|
|
34
34
|
|
|
@@ -52,6 +52,7 @@ class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
52
52
|
var {
|
|
53
53
|
metrics
|
|
54
54
|
} = grid;
|
|
55
|
+
if (!metrics) throw new Error('metrics not set');
|
|
55
56
|
return GridUtils.getRowSeparatorIndex(x, y, metrics, theme);
|
|
56
57
|
}
|
|
57
58
|
|
|
@@ -60,13 +61,13 @@ class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
|
60
61
|
}
|
|
61
62
|
|
|
62
63
|
resetSize(metricCalculator, modelIndex) {
|
|
63
|
-
metricCalculator.
|
|
64
|
+
metricCalculator.resetRowHeight(modelIndex);
|
|
64
65
|
}
|
|
65
66
|
|
|
66
67
|
updateSeparator(grid, separatorIndex) {
|
|
67
68
|
grid.setState({
|
|
68
69
|
draggingRowSeparator: separatorIndex,
|
|
69
|
-
isDragging:
|
|
70
|
+
isDragging: separatorIndex !== null
|
|
70
71
|
});
|
|
71
72
|
}
|
|
72
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.
|
|
1
|
+
{"version":3,"sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.ts"],"names":["GridUtils","GridSeparatorMouseHandler","GridRowSeparatorMouseHandler","getHiddenRows","getNextShownRow","getRowSeparatorIndex","gridPoint","grid","checkAllowResize","theme","getTheme","allowRowResize","x","y","metrics","Error","setSize","metricCalculator","modelIndex","size","setRowHeight","resetSize","resetRowHeight","updateSeparator","separatorIndex","setState","draggingRowSeparator","isDragging"],"mappings":";;AAAA;OAIOA,S;OACAC,yB;;AAEP,MAAMC,4BAAN,SAA2CD,yBAA3C,CAAqE;AAAA;AAAA;;AAAA,0CAkBpD,UAlBoD;;AAAA,2CAoBnD,YApBmD;;AAAA,2CAsBnD,GAtBmD;;AAAA,+CAwB/C,gBAxB+C;;AAAA,mDA0B3C,cA1B2C;;AAAA,kDA4B5C,mBA5B4C;;AAAA,4CA8BlD,oBA9BkD;;AAAA,qDAgCzC,sBAhCyC;;AAAA,kDAkC5C,WAlC4C;;AAAA,gDAoC9C,UApC8C;;AAAA,iDAsC7C,cAtC6C;;AAAA,4CAwClDD,SAAS,CAACG,aAxCwC;;AAAA,8CA0ChDH,SAAS,CAACI,eA1CsC;;AAAA,+CAkE/CF,4BAA4B,CAACG,oBAlEkB;AAAA;;AACxC,SAApBA,oBAAoB,CACzBC,SADyB,EAEzBC,IAFyB,EAIJ;AAAA,QADrBC,gBACqB,uEADF,IACE;AACrB,QAAMC,KAAK,GAAGF,IAAI,CAACG,QAAL,EAAd;;AACA,QAAIF,gBAAgB,IAAI,CAACC,KAAK,CAACE,cAA/B,EAA+C;AAC7C,aAAO,IAAP;AACD;;AAED,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWP,SAAjB;AACA,QAAM;AAAEQ,MAAAA;AAAF,QAAcP,IAApB;AACA,QAAI,CAACO,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,WAAOf,SAAS,CAACK,oBAAV,CAA+BO,CAA/B,EAAkCC,CAAlC,EAAqCC,OAArC,EAA8CL,KAA9C,CAAP;AACD;;AA4BDO,EAAAA,OAAO,CACLC,gBADK,EAELC,UAFK,EAGLC,IAHK,EAIC;AACNF,IAAAA,gBAAgB,CAACG,YAAjB,CAA8BF,UAA9B,EAA0CC,IAA1C;AACD;;AAEDE,EAAAA,SAAS,CACPJ,gBADO,EAEPC,UAFO,EAGD;AACND,IAAAA,gBAAgB,CAACK,cAAjB,CAAgCJ,UAAhC;AACD;;AAEDK,EAAAA,eAAe,CAAChB,IAAD,EAAaiB,cAAb,EAAwD;AACrEjB,IAAAA,IAAI,CAACkB,QAAL,CAAc;AACZC,MAAAA,oBAAoB,EAAEF,cADV;AAEZG,MAAAA,UAAU,EAAEH,cAAc,KAAK;AAFnB,KAAd;AAID;;AAhEkE;;AAqErE,eAAetB,4BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport Grid from '../Grid';\nimport GridMetricCalculator from '../GridMetricCalculator';\nimport { ModelIndex, VisibleIndex } from '../GridMetrics';\nimport GridUtils, { GridPoint } from '../GridUtils';\nimport GridSeparatorMouseHandler from './GridSeparatorMouseHandler';\n\nclass GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getRowSeparatorIndex(\n gridPoint: GridPoint,\n grid: Grid,\n checkAllowResize = true\n ): VisibleIndex | null {\n const theme = grid.getTheme();\n if (checkAllowResize && !theme.allowRowResize) {\n return null;\n }\n\n const { x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n return GridUtils.getRowSeparatorIndex(x, y, metrics, theme);\n }\n\n hiddenCursor = 's-resize';\n\n defaultCursor = 'row-resize';\n\n pointProperty = 'y' as const;\n\n userSizesProperty = 'userRowHeights' as const;\n\n visibleOffsetProperty = 'visibleRowYs' as const;\n\n visibleSizesProperty = 'visibleRowHeights' as const;\n\n marginProperty = 'columnHeaderHeight' as const;\n\n calculatedSizesProperty = 'calculatedRowHeights' as const;\n\n modelIndexesProperty = 'modelRows' as const;\n\n firstIndexProperty = 'firstRow' as const;\n\n treePaddingProperty = 'treePaddingY' as const;\n\n getHiddenItems = GridUtils.getHiddenRows;\n\n getNextShownItem = GridUtils.getNextShownRow;\n\n setSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex,\n size: number\n ): void {\n metricCalculator.setRowHeight(modelIndex, size);\n }\n\n resetSize(\n metricCalculator: GridMetricCalculator,\n modelIndex: ModelIndex\n ): void {\n metricCalculator.resetRowHeight(modelIndex);\n }\n\n updateSeparator(grid: Grid, separatorIndex: VisibleIndex | null): void {\n grid.setState({\n draggingRowSeparator: separatorIndex,\n isDragging: separatorIndex !== null,\n });\n }\n\n getSeparatorIndex = GridRowSeparatorMouseHandler.getRowSeparatorIndex;\n}\n\nexport default GridRowSeparatorMouseHandler;\n"],"file":"GridRowSeparatorMouseHandler.js"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { EventHandlerResult } from '../EventHandlerResult';
|
|
2
|
+
import Grid from '../Grid';
|
|
3
|
+
import GridMouseHandler from '../GridMouseHandler';
|
|
4
|
+
import { GridPoint } from '../GridUtils';
|
|
2
5
|
/**
|
|
3
6
|
* Detect when the tree expand/collapse button is clicked
|
|
4
7
|
*/
|
|
5
8
|
declare class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
6
|
-
static isInTreeBox(gridPoint:
|
|
9
|
+
static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean;
|
|
10
|
+
onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
11
|
+
onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
7
12
|
}
|
|
8
|
-
|
|
13
|
+
export default GridRowTreeMouseHandler;
|
|
9
14
|
//# sourceMappingURL=GridRowTreeMouseHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridRowTreeMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.
|
|
1
|
+
{"version":3,"file":"GridRowTreeMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,cAAM,uBAAwB,SAAQ,gBAAgB;IACpD,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAuC7D,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAU9D;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/* eslint class-methods-use-this: "off" */
|
|
2
|
+
import { getOrThrow } from "../GridMetricCalculator.js";
|
|
2
3
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
4
|
+
|
|
3
5
|
/**
|
|
4
6
|
* Detect when the tree expand/collapse button is clicked
|
|
5
7
|
*/
|
|
6
|
-
|
|
7
8
|
class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
8
9
|
static isInTreeBox(gridPoint, grid) {
|
|
9
10
|
var {
|
|
@@ -15,6 +16,7 @@ class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
|
15
16
|
var {
|
|
16
17
|
metrics
|
|
17
18
|
} = grid;
|
|
19
|
+
if (!metrics) throw new Error('metrics not set');
|
|
18
20
|
var {
|
|
19
21
|
gridX,
|
|
20
22
|
gridY,
|
|
@@ -27,10 +29,10 @@ class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
|
27
29
|
} = metrics;
|
|
28
30
|
|
|
29
31
|
if (column === firstColumn && row != null && visibleRowTreeBoxes.get(row) != null && x > gridX && y > gridY) {
|
|
30
|
-
var columnX = visibleColumnXs
|
|
31
|
-
var width = visibleColumnWidths
|
|
32
|
-
var rowY = visibleRowYs
|
|
33
|
-
var height = visibleRowHeights
|
|
32
|
+
var columnX = getOrThrow(visibleColumnXs, column);
|
|
33
|
+
var width = getOrThrow(visibleColumnWidths, column);
|
|
34
|
+
var rowY = getOrThrow(visibleRowYs, row);
|
|
35
|
+
var height = getOrThrow(visibleRowHeights, row);
|
|
34
36
|
|
|
35
37
|
if (x >= gridX + columnX && x <= gridX + columnX + width && y >= gridY + rowY && y <= gridY + rowY + height) {
|
|
36
38
|
return true;
|
|
@@ -49,8 +51,11 @@ class GridRowTreeMouseHandler extends GridMouseHandler {
|
|
|
49
51
|
var {
|
|
50
52
|
row
|
|
51
53
|
} = gridPoint;
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
|
|
55
|
+
if (row !== null) {
|
|
56
|
+
grid.toggleRowExpanded(row);
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
54
59
|
}
|
|
55
60
|
|
|
56
61
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.
|
|
1
|
+
{"version":3,"sources":["../../src/mouse-handlers/GridRowTreeMouseHandler.ts"],"names":["getOrThrow","GridMouseHandler","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","Error","gridX","gridY","firstColumn","visibleColumnXs","visibleColumnWidths","visibleRowHeights","visibleRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","toggleRowExpanded"],"mappings":"AAAA;SAGSA,U;OACFC,gB;;AAGP;AACA;AACA;AACA,MAAMC,uBAAN,SAAsCD,gBAAtC,CAAuD;AACnC,SAAXE,WAAW,CAACC,SAAD,EAAuBC,IAAvB,EAA4C;AAC5D,QAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA,GAAV;AAAeC,MAAAA,CAAf;AAAkBC,MAAAA;AAAlB,QAAwBL,SAA9B;AACA,QAAM;AAAEM,MAAAA;AAAF,QAAcL,IAApB;AACA,QAAI,CAACK,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,QAAM;AACJC,MAAAA,KADI;AAEJC,MAAAA,KAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA,eAJI;AAKJC,MAAAA,mBALI;AAMJC,MAAAA,iBANI;AAOJC,MAAAA,YAPI;AAQJC,MAAAA;AARI,QASFT,OATJ;;AAWA,QACEJ,MAAM,KAAKQ,WAAX,IACAP,GAAG,IAAI,IADP,IAEAY,mBAAmB,CAACC,GAApB,CAAwBb,GAAxB,KAAgC,IAFhC,IAGAC,CAAC,GAAGI,KAHJ,IAIAH,CAAC,GAAGI,KALN,EAME;AACA,UAAMQ,OAAO,GAAGrB,UAAU,CAACe,eAAD,EAAkBT,MAAlB,CAA1B;AACA,UAAMgB,KAAK,GAAGtB,UAAU,CAACgB,mBAAD,EAAsBV,MAAtB,CAAxB;AACA,UAAMiB,IAAI,GAAGvB,UAAU,CAACkB,YAAD,EAAeX,GAAf,CAAvB;AACA,UAAMiB,MAAM,GAAGxB,UAAU,CAACiB,iBAAD,EAAoBV,GAApB,CAAzB;;AACA,UACEC,CAAC,IAAII,KAAK,GAAGS,OAAb,IACAb,CAAC,IAAII,KAAK,GAAGS,OAAR,GAAkBC,KADvB,IAEAb,CAAC,IAAII,KAAK,GAAGU,IAFb,IAGAd,CAAC,IAAII,KAAK,GAAGU,IAAR,GAAeC,MAJtB,EAKE;AACA,eAAO,IAAP;AACD;AACF;;AACD,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,CAACrB,SAAD,EAAuBC,IAAvB,EAAuD;AAC3D,WAAOH,uBAAuB,CAACC,WAAxB,CAAoCC,SAApC,EAA+CC,IAA/C,CAAP;AACD;;AAEDqB,EAAAA,OAAO,CAACtB,SAAD,EAAuBC,IAAvB,EAAuD;AAC5D,QAAIH,uBAAuB,CAACC,WAAxB,CAAoCC,SAApC,EAA+CC,IAA/C,CAAJ,EAA0D;AACxD,UAAM;AAAEE,QAAAA;AAAF,UAAUH,SAAhB;;AACA,UAAIG,GAAG,KAAK,IAAZ,EAAkB;AAChBF,QAAAA,IAAI,CAACsB,iBAAL,CAAuBpB,GAAvB;AACA,eAAO,IAAP;AACD;AACF;;AACD,WAAO,KAAP;AACD;;AArDoD;;AAwDvD,eAAeL,uBAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { getOrThrow } from '../GridMetricCalculator';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint: GridPoint, grid: Grid): boolean {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const {\n gridX,\n gridY,\n firstColumn,\n visibleColumnXs,\n visibleColumnWidths,\n visibleRowHeights,\n visibleRowYs,\n visibleRowTreeBoxes,\n } = metrics;\n\n if (\n column === firstColumn &&\n row != null &&\n visibleRowTreeBoxes.get(row) != null &&\n x > gridX &&\n y > gridY\n ) {\n const columnX = getOrThrow(visibleColumnXs, column);\n const width = getOrThrow(visibleColumnWidths, column);\n const rowY = getOrThrow(visibleRowYs, row);\n const height = getOrThrow(visibleRowHeights, row);\n if (\n x >= gridX + columnX &&\n x <= gridX + columnX + width &&\n y >= gridY + rowY &&\n y <= gridY + rowY + height\n ) {\n return true;\n }\n }\n return false;\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n if (row !== null) {\n grid.toggleRowExpanded(row);\n return true;\n }\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"file":"GridRowTreeMouseHandler.js"}
|
|
@@ -1,9 +1,15 @@
|
|
|
1
|
-
|
|
1
|
+
import { EventHandlerResult } from '../EventHandlerResult';
|
|
2
|
+
import Grid from '../Grid';
|
|
3
|
+
import GridMouseHandler from '../GridMouseHandler';
|
|
4
|
+
import { GridPoint } from '../GridUtils';
|
|
2
5
|
/**
|
|
3
6
|
* Used to eat the mouse event in the bottom right corner of the scroll bar
|
|
4
7
|
*/
|
|
5
8
|
declare class GridScrollBarCornerMouseHandler extends GridMouseHandler {
|
|
6
|
-
isInCorner(gridPoint:
|
|
9
|
+
isInCorner(gridPoint: GridPoint, grid: Grid): boolean;
|
|
10
|
+
onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
11
|
+
onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
12
|
+
onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
7
13
|
}
|
|
8
|
-
|
|
14
|
+
export default GridScrollBarCornerMouseHandler;
|
|
9
15
|
//# sourceMappingURL=GridScrollBarCornerMouseHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridScrollBarCornerMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridScrollBarCornerMouseHandler.
|
|
1
|
+
{"version":3,"file":"GridScrollBarCornerMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridScrollBarCornerMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,gBAAgB,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC;;GAEG;AACH,cAAM,+BAAgC,SAAQ,gBAAgB;IAC5D,UAAU,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO;IAmBrD,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAI1D,OAAO,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;CAG9D;AAED,eAAe,+BAA+B,CAAC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/* eslint class-methods-use-this: "off" */
|
|
2
2
|
import GridMouseHandler from "../GridMouseHandler.js";
|
|
3
|
+
|
|
3
4
|
/**
|
|
4
5
|
* Used to eat the mouse event in the bottom right corner of the scroll bar
|
|
5
6
|
*/
|
|
6
|
-
|
|
7
7
|
class GridScrollBarCornerMouseHandler extends GridMouseHandler {
|
|
8
8
|
isInCorner(gridPoint, grid) {
|
|
9
9
|
var theme = grid.getTheme();
|
|
@@ -13,6 +13,7 @@ class GridScrollBarCornerMouseHandler extends GridMouseHandler {
|
|
|
13
13
|
var {
|
|
14
14
|
metrics
|
|
15
15
|
} = grid;
|
|
16
|
+
if (!metrics) throw new Error('metrics not set');
|
|
16
17
|
var {
|
|
17
18
|
x,
|
|
18
19
|
y
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridScrollBarCornerMouseHandler.
|
|
1
|
+
{"version":3,"sources":["../../src/mouse-handlers/GridScrollBarCornerMouseHandler.ts"],"names":["GridMouseHandler","GridScrollBarCornerMouseHandler","isInCorner","gridPoint","grid","theme","getTheme","scrollBarSize","metrics","Error","x","y","lastLeft","lastTop","width","height","onDown","onUp","onClick"],"mappings":"AAAA;OAGOA,gB;;AAGP;AACA;AACA;AACA,MAAMC,+BAAN,SAA8CD,gBAA9C,CAA+D;AAC7DE,EAAAA,UAAU,CAACC,SAAD,EAAuBC,IAAvB,EAA4C;AACpD,QAAMC,KAAK,GAAGD,IAAI,CAACE,QAAL,EAAd;AACA,QAAM;AAAEC,MAAAA;AAAF,QAAoBF,KAA1B;AACA,QAAM;AAAEG,MAAAA;AAAF,QAAcJ,IAApB;AACA,QAAI,CAACI,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWR,SAAjB;AACA,QAAM;AAAES,MAAAA,QAAF;AAAYC,MAAAA,OAAZ;AAAqBC,MAAAA,KAArB;AAA4BC,MAAAA;AAA5B,QAAuCP,OAA7C;AACA,WACED,aAAa,GAAG,CAAhB,IACAM,OAAO,GAAG,CADV,IAEAD,QAAQ,GAAG,CAFX,IAGAF,CAAC,IAAII,KAAK,GAAGP,aAHb,IAIAI,CAAC,IAAII,MAAM,GAAGR,aAJd,IAKAG,CAAC,IAAII,KALL,IAMAH,CAAC,IAAII,MAPP;AASD;;AAEDC,EAAAA,MAAM,CAACb,SAAD,EAAuBC,IAAvB,EAAuD;AAC3D,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AAEDa,EAAAA,IAAI,CAACd,SAAD,EAAuBC,IAAvB,EAAuD;AACzD,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AAEDc,EAAAA,OAAO,CAACf,SAAD,EAAuBC,IAAvB,EAAuD;AAC5D,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AA9B4D;;AAiC/D,eAAeH,+BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport GridMouseHandler from '../GridMouseHandler';\nimport { GridPoint } from '../GridUtils';\n\n/**\n * Used to eat the mouse event in the bottom right corner of the scroll bar\n */\nclass GridScrollBarCornerMouseHandler extends GridMouseHandler {\n isInCorner(gridPoint: GridPoint, grid: Grid): boolean {\n const theme = grid.getTheme();\n const { scrollBarSize } = theme;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { x, y } = gridPoint;\n const { lastLeft, lastTop, width, height } = metrics;\n return (\n scrollBarSize > 0 &&\n lastTop > 0 &&\n lastLeft > 0 &&\n x >= width - scrollBarSize &&\n y >= height - scrollBarSize &&\n x <= width &&\n y <= height\n );\n }\n\n onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInCorner(gridPoint, grid);\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInCorner(gridPoint, grid);\n }\n\n onClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n return this.isInCorner(gridPoint, grid);\n }\n}\n\nexport default GridScrollBarCornerMouseHandler;\n"],"file":"GridScrollBarCornerMouseHandler.js"}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
|
-
|
|
1
|
+
import { EventHandlerResult } from '../EventHandlerResult';
|
|
2
|
+
import Grid from '../Grid';
|
|
3
|
+
import GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';
|
|
4
|
+
import { GridPoint } from '../GridUtils';
|
|
2
5
|
declare class GridSelectionMouseHandler extends GridMouseHandler {
|
|
3
|
-
startPoint
|
|
4
|
-
hasExtendedFloating
|
|
5
|
-
timer
|
|
6
|
-
lastTriggerTime
|
|
7
|
-
dragBounds
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
private startPoint?;
|
|
7
|
+
private hasExtendedFloating;
|
|
8
|
+
private timer?;
|
|
9
|
+
private lastTriggerTime?;
|
|
10
|
+
private dragBounds?;
|
|
11
|
+
onDown(gridPoint: GridPoint, grid: Grid, event: GridMouseEvent): EventHandlerResult;
|
|
12
|
+
onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
13
|
+
onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
14
|
+
moveSelection(grid: Grid, gridPoint: GridPoint, deltaX: number, deltaY: number): void;
|
|
15
|
+
startTimer(grid: Grid, gridPoint: GridPoint, deltaX: number, deltaY: number): void;
|
|
10
16
|
stopTimer(): void;
|
|
11
17
|
}
|
|
12
|
-
|
|
18
|
+
export default GridSelectionMouseHandler;
|
|
13
19
|
//# sourceMappingURL=GridSelectionMouseHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSelectionMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSelectionMouseHandler.
|
|
1
|
+
{"version":3,"file":"GridSelectionMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,gBAAgB,EAAE,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAkB,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAIpD,cAAM,yBAA0B,SAAQ,gBAAgB;IACtD,OAAO,CAAC,UAAU,CAAC,CAAY;IAE/B,OAAO,CAAC,mBAAmB,CAAS;IAGpC,OAAO,CAAC,KAAK,CAAC,CAAgC;IAE9C,OAAO,CAAC,eAAe,CAAC,CAAS;IAEjC,OAAO,CAAC,UAAU,CAAC,CAAiB;IAEpC,MAAM,CACJ,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IAmDrB,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAsI5D,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,GAAG,kBAAkB;IAW1D,aAAa,CACX,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAuBP,UAAU,CACR,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,GACb,IAAI;IAcP,SAAS,IAAI,IAAI;CAMlB;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -8,15 +8,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
10
|
|
|
11
|
-
_defineProperty(this, "startPoint", null);
|
|
12
|
-
|
|
13
11
|
_defineProperty(this, "hasExtendedFloating", false);
|
|
14
|
-
|
|
15
|
-
_defineProperty(this, "timer", null);
|
|
16
|
-
|
|
17
|
-
_defineProperty(this, "lastTriggerTime", null);
|
|
18
|
-
|
|
19
|
-
_defineProperty(this, "dragBounds", null);
|
|
20
12
|
}
|
|
21
13
|
|
|
22
14
|
onDown(gridPoint, grid, event) {
|
|
@@ -29,6 +21,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
29
21
|
var {
|
|
30
22
|
metrics
|
|
31
23
|
} = grid;
|
|
24
|
+
if (!metrics) throw new Error('metrics not set');
|
|
32
25
|
var {
|
|
33
26
|
gridX,
|
|
34
27
|
gridY,
|
|
@@ -71,7 +64,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
71
64
|
}
|
|
72
65
|
|
|
73
66
|
onDrag(gridPoint, grid) {
|
|
74
|
-
if (this.startPoint ===
|
|
67
|
+
if (this.startPoint === undefined) {
|
|
75
68
|
return false;
|
|
76
69
|
}
|
|
77
70
|
|
|
@@ -91,6 +84,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
91
84
|
var {
|
|
92
85
|
metrics
|
|
93
86
|
} = grid;
|
|
87
|
+
if (!metrics) throw new Error('metrics not set');
|
|
94
88
|
var {
|
|
95
89
|
left,
|
|
96
90
|
lastLeft,
|
|
@@ -141,21 +135,21 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
141
135
|
// So when that happens, just adjust the point to be past the new boundary
|
|
142
136
|
|
|
143
137
|
if (!this.hasExtendedFloating) {
|
|
144
|
-
if (startRow < floatingTopRowCount && row >= floatingTopRowCount) {
|
|
138
|
+
if (startRow !== null && startRow < floatingTopRowCount && row >= floatingTopRowCount) {
|
|
145
139
|
// Extending from floating top into the view
|
|
146
140
|
row = floatingTopRowCount;
|
|
147
141
|
this.hasExtendedFloating = true;
|
|
148
|
-
} else if (startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
|
|
142
|
+
} else if (startRow !== null && startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
|
|
149
143
|
// Extending from floating bottom into the view
|
|
150
144
|
row = rowCount - floatingBottomRowCount - 1;
|
|
151
145
|
this.hasExtendedFloating = true;
|
|
152
146
|
}
|
|
153
147
|
|
|
154
|
-
if (startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
|
|
148
|
+
if (startColumn !== null && startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
|
|
155
149
|
// Extending from floating left into the view
|
|
156
150
|
column = floatingLeftColumnCount;
|
|
157
151
|
this.hasExtendedFloating = true;
|
|
158
|
-
} else if (startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
|
|
152
|
+
} else if (startColumn !== null && startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
|
|
159
153
|
// Extending from floating right into the view
|
|
160
154
|
column = columnCount - floatingRightColumnCount - 1;
|
|
161
155
|
this.hasExtendedFloating = true;
|
|
@@ -163,7 +157,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
163
157
|
} // When a selection is dragging from within the main area to over a floating area, scroll.
|
|
164
158
|
|
|
165
159
|
|
|
166
|
-
if (!GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
|
|
160
|
+
if (startRow !== null && !GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
|
|
167
161
|
// Need to scroll
|
|
168
162
|
if (startRow > row && row < top) {
|
|
169
163
|
row = topVisible - 1;
|
|
@@ -172,7 +166,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
172
166
|
}
|
|
173
167
|
}
|
|
174
168
|
|
|
175
|
-
if (!GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
|
|
169
|
+
if (startColumn !== null && !GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
|
|
176
170
|
if (startColumn > column && column < left) {
|
|
177
171
|
column = leftVisible - 1;
|
|
178
172
|
} else if (startColumn < column && column > right) {
|
|
@@ -187,9 +181,9 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
187
181
|
}
|
|
188
182
|
|
|
189
183
|
onUp(gridPoint, grid) {
|
|
190
|
-
if (this.startPoint !==
|
|
191
|
-
this.startPoint =
|
|
192
|
-
this.dragBounds =
|
|
184
|
+
if (this.startPoint !== undefined) {
|
|
185
|
+
this.startPoint = undefined;
|
|
186
|
+
this.dragBounds = undefined;
|
|
193
187
|
this.stopTimer();
|
|
194
188
|
grid.commitSelection();
|
|
195
189
|
}
|
|
@@ -205,10 +199,16 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
205
199
|
var {
|
|
206
200
|
metrics
|
|
207
201
|
} = grid;
|
|
202
|
+
if (!metrics) throw new Error('metrics not set');
|
|
208
203
|
var {
|
|
209
204
|
selectionEndRow,
|
|
210
205
|
selectionEndColumn
|
|
211
206
|
} = grid.state;
|
|
207
|
+
|
|
208
|
+
if (selectionEndRow == null || selectionEndColumn == null) {
|
|
209
|
+
throw new Error('selection not set');
|
|
210
|
+
}
|
|
211
|
+
|
|
212
212
|
var {
|
|
213
213
|
rowCount,
|
|
214
214
|
columnCount
|
|
@@ -231,8 +231,10 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
stopTimer() {
|
|
234
|
-
|
|
235
|
-
|
|
234
|
+
if (this.timer !== undefined) {
|
|
235
|
+
clearTimeout(this.timer);
|
|
236
|
+
this.timer = undefined;
|
|
237
|
+
}
|
|
236
238
|
}
|
|
237
239
|
|
|
238
240
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/mouse-handlers/GridSelectionMouseHandler.js"],"names":["GridMouseHandler","GridUtils","DEFAULT_INTERVAL_MS","GridSelectionMouseHandler","onDown","gridPoint","grid","event","x","y","column","row","metrics","gridX","gridY","maxX","maxY","gridMouseX","gridMouseY","isModifierKey","isModifierKeyDown","isShiftKey","shiftKey","trimSelectedRanges","clearSelectedRanges","theme","getTheme","autoSelectRow","autoSelectColumn","focus","moveCursorToPosition","startPoint","hasExtendedFloating","dragBounds","getScrollDragBounds","onDrag","stopTimer","startRow","startColumn","left","lastLeft","top","lastTop","columnWidth","rowHeight","deltaX","deltaY","x1","x2","y1","y2","startTimer","Math","ceil","floor","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","columnCount","rowCount","bottom","right","topVisible","bottomVisible","leftVisible","rightVisible","isFloatingRow","isFloatingColumn","onUp","commitSelection","moveSelection","selectionEndRow","selectionEndColumn","state","minX","minY","min","max","lastTriggerTime","Date","now","timeout","timer","setTimeout","clearTimeout"],"mappings":"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","sourcesContent":["import GridMouseHandler from '../GridMouseHandler';\nimport GridUtils from '../GridUtils';\n\nconst DEFAULT_INTERVAL_MS = 100;\n\nclass GridSelectionMouseHandler extends GridMouseHandler {\n startPoint = null;\n\n hasExtendedFloating = false;\n\n // Timer used when holding a drag past the end of the grid\n timer = null;\n\n lastTriggerTime = null;\n\n dragBounds = null;\n\n onDown(gridPoint, grid, event) {\n const { x, y, column, row } = gridPoint;\n const { metrics } = grid;\n const { gridX, gridY, maxX, maxY } = metrics;\n const gridMouseX = x - gridX;\n const gridMouseY = y - gridY;\n if (\n gridMouseX < 0 ||\n gridMouseY < 0 ||\n (column == null && gridMouseX > maxX) ||\n (row == null && gridMouseY > maxY)\n ) {\n return false;\n }\n\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n const isShiftKey = event.shiftKey;\n if (!isModifierKey) {\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n }\n\n const theme = grid.getTheme();\n const { autoSelectRow, autoSelectColumn } = theme;\n // If they click a column/row header, don't want to select the whole table if auto select column/row is on\n if (\n (column !== null || !autoSelectColumn) &&\n (row !== null || !autoSelectRow)\n ) {\n grid.focus();\n grid.moveCursorToPosition(\n column,\n row,\n isShiftKey,\n true,\n isShiftKey && isModifierKey\n );\n }\n\n this.startPoint = gridPoint;\n this.hasExtendedFloating = false;\n this.dragBounds = GridUtils.getScrollDragBounds(metrics, row, column);\n\n return true;\n }\n\n onDrag(gridPoint, grid) {\n if (this.startPoint === null) {\n return false;\n }\n\n this.stopTimer();\n\n const { row: startRow, column: startColumn } = this.startPoint;\n const { x, y } = gridPoint;\n let { row, column } = gridPoint;\n const { metrics } = grid;\n const { left, lastLeft, top, lastTop, columnWidth, rowHeight } = metrics;\n const dragBounds = GridUtils.getScrollDragBounds(\n metrics,\n startRow,\n startColumn\n );\n\n // If we're dragging outside of the grid entirely, then we should start scrolling\n let deltaX = 0;\n let deltaY = 0;\n if (left < lastLeft) {\n if (x < dragBounds.x1) {\n deltaX = x - dragBounds.x1;\n } else if (x > dragBounds.x2) {\n deltaX = x - dragBounds.x2;\n }\n }\n if (top < lastTop) {\n if (y < dragBounds.y1) {\n deltaY = y - dragBounds.y1;\n } else if (y > dragBounds.y2) {\n deltaY = y - dragBounds.y2;\n }\n }\n\n if (deltaX !== 0 || deltaY !== 0) {\n // Have it go faster depending on how far out they've dragged\n this.startTimer(\n grid,\n gridPoint,\n deltaX > 0\n ? Math.ceil(deltaX / columnWidth)\n : Math.floor(deltaX / columnWidth),\n deltaY > 0\n ? Math.ceil(deltaY / rowHeight)\n : Math.floor(deltaY / rowHeight)\n );\n } else if (row != null && column != null) {\n const {\n floatingTopRowCount,\n floatingBottomRowCount,\n floatingLeftColumnCount,\n floatingRightColumnCount,\n columnCount,\n rowCount,\n bottom,\n right,\n topVisible,\n bottomVisible,\n leftVisible,\n rightVisible,\n } = metrics;\n // When selection crosses from a floating area to a non floating area, we need to scroll instead of jumping to the floating area\n // So when that happens, just adjust the point to be past the new boundary\n if (!this.hasExtendedFloating) {\n if (startRow < floatingTopRowCount && row >= floatingTopRowCount) {\n // Extending from floating top into the view\n row = floatingTopRowCount;\n this.hasExtendedFloating = true;\n } else if (\n startRow >= rowCount - floatingBottomRowCount &&\n row < rowCount - floatingBottomRowCount\n ) {\n // Extending from floating bottom into the view\n row = rowCount - floatingBottomRowCount - 1;\n this.hasExtendedFloating = true;\n }\n\n if (\n startColumn < floatingLeftColumnCount &&\n column >= floatingLeftColumnCount\n ) {\n // Extending from floating left into the view\n column = floatingLeftColumnCount;\n this.hasExtendedFloating = true;\n } else if (\n startColumn >= columnCount - floatingRightColumnCount &&\n column < columnCount - floatingRightColumnCount\n ) {\n // Extending from floating right into the view\n column = columnCount - floatingRightColumnCount - 1;\n this.hasExtendedFloating = true;\n }\n }\n\n // When a selection is dragging from within the main area to over a floating area, scroll.\n if (\n !GridUtils.isFloatingRow(startRow, metrics) &&\n GridUtils.isFloatingRow(row, metrics)\n ) {\n // Need to scroll\n if (startRow > row && row < top) {\n row = topVisible - 1;\n } else if (startRow < row && row > bottom) {\n row = bottomVisible + 1;\n }\n }\n if (\n !GridUtils.isFloatingColumn(startColumn, metrics) &&\n GridUtils.isFloatingColumn(column, metrics)\n ) {\n if (startColumn > column && column < left) {\n column = leftVisible - 1;\n } else if (startColumn < column && column > right) {\n column = rightVisible + 1;\n }\n }\n grid.moveCursorToPosition(column, row, true, true);\n }\n return true;\n }\n\n onUp(gridPoint, grid) {\n if (this.startPoint !== null) {\n this.startPoint = null;\n this.dragBounds = null;\n this.stopTimer();\n grid.commitSelection();\n }\n\n return false;\n }\n\n moveSelection(grid, gridPoint, deltaX, deltaY) {\n const { row, column } = gridPoint;\n const { metrics } = grid;\n const { selectionEndRow, selectionEndColumn } = grid.state;\n const { rowCount, columnCount } = metrics;\n const minX = deltaX < 0 && column != null ? column : 0;\n const maxX = deltaX > 0 && column != null ? column : columnCount - 1;\n const minY = deltaY < 0 && row != null ? row : 0;\n const maxY = deltaY > 0 && row != null ? row : rowCount - 1;\n grid.moveCursorToPosition(\n Math.min(Math.max(minX, selectionEndColumn + deltaX), maxX),\n Math.min(Math.max(minY, selectionEndRow + deltaY), maxY),\n true\n );\n this.lastTriggerTime = Date.now();\n }\n\n startTimer(grid, gridPoint, deltaX, deltaY) {\n this.stopTimer();\n\n const timeout =\n this.lastTriggerTime != null\n ? DEFAULT_INTERVAL_MS -\n Math.min(DEFAULT_INTERVAL_MS, Date.now() - this.lastTriggerTime)\n : 0;\n this.timer = setTimeout(() => {\n this.moveSelection(grid, gridPoint, deltaX, deltaY);\n this.startTimer(grid, gridPoint, deltaX, deltaY);\n }, timeout);\n }\n\n stopTimer() {\n clearTimeout(this.timer);\n this.timer = null;\n }\n}\n\nexport default GridSelectionMouseHandler;\n"],"file":"GridSelectionMouseHandler.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/mouse-handlers/GridSelectionMouseHandler.ts"],"names":["GridMouseHandler","GridUtils","DEFAULT_INTERVAL_MS","GridSelectionMouseHandler","onDown","gridPoint","grid","event","x","y","column","row","metrics","Error","gridX","gridY","maxX","maxY","gridMouseX","gridMouseY","isModifierKey","isModifierKeyDown","isShiftKey","shiftKey","trimSelectedRanges","clearSelectedRanges","theme","getTheme","autoSelectRow","autoSelectColumn","focus","moveCursorToPosition","startPoint","hasExtendedFloating","dragBounds","getScrollDragBounds","onDrag","undefined","stopTimer","startRow","startColumn","left","lastLeft","top","lastTop","columnWidth","rowHeight","deltaX","deltaY","x1","x2","y1","y2","startTimer","Math","ceil","floor","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","columnCount","rowCount","bottom","right","topVisible","bottomVisible","leftVisible","rightVisible","isFloatingRow","isFloatingColumn","onUp","commitSelection","moveSelection","selectionEndRow","selectionEndColumn","state","minX","minY","min","max","lastTriggerTime","Date","now","timeout","timer","setTimeout","clearTimeout"],"mappings":"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","sourcesContent":["import { EventHandlerResult } from '../EventHandlerResult';\nimport Grid from '../Grid';\nimport { BoxCoordinates } from '../GridMetrics';\nimport GridMouseHandler, { GridMouseEvent } from '../GridMouseHandler';\nimport GridUtils, { GridPoint } from '../GridUtils';\n\nconst DEFAULT_INTERVAL_MS = 100;\n\nclass GridSelectionMouseHandler extends GridMouseHandler {\n private startPoint?: GridPoint;\n\n private hasExtendedFloating = false;\n\n // Timer used when holding a drag past the end of the grid\n private timer?: ReturnType<typeof setTimeout>;\n\n private lastTriggerTime?: number;\n\n private dragBounds?: BoxCoordinates;\n\n onDown(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n const { x, y, column, row } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { gridX, gridY, maxX, maxY } = metrics;\n const gridMouseX = x - gridX;\n const gridMouseY = y - gridY;\n if (\n gridMouseX < 0 ||\n gridMouseY < 0 ||\n (column == null && gridMouseX > maxX) ||\n (row == null && gridMouseY > maxY)\n ) {\n return false;\n }\n\n const isModifierKey = GridUtils.isModifierKeyDown(event);\n const isShiftKey = event.shiftKey;\n if (!isModifierKey) {\n if (isShiftKey) {\n grid.trimSelectedRanges();\n } else {\n grid.clearSelectedRanges();\n }\n }\n\n const theme = grid.getTheme();\n const { autoSelectRow, autoSelectColumn } = theme;\n // If they click a column/row header, don't want to select the whole table if auto select column/row is on\n if (\n (column !== null || !autoSelectColumn) &&\n (row !== null || !autoSelectRow)\n ) {\n grid.focus();\n grid.moveCursorToPosition(\n column,\n row,\n isShiftKey,\n true,\n isShiftKey && isModifierKey\n );\n }\n\n this.startPoint = gridPoint;\n this.hasExtendedFloating = false;\n this.dragBounds = GridUtils.getScrollDragBounds(metrics, row, column);\n\n return true;\n }\n\n onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint === undefined) {\n return false;\n }\n\n this.stopTimer();\n\n const { row: startRow, column: startColumn } = this.startPoint;\n const { x, y } = gridPoint;\n let { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { left, lastLeft, top, lastTop, columnWidth, rowHeight } = metrics;\n const dragBounds = GridUtils.getScrollDragBounds(\n metrics,\n startRow,\n startColumn\n );\n\n // If we're dragging outside of the grid entirely, then we should start scrolling\n let deltaX = 0;\n let deltaY = 0;\n if (left < lastLeft) {\n if (x < dragBounds.x1) {\n deltaX = x - dragBounds.x1;\n } else if (x > dragBounds.x2) {\n deltaX = x - dragBounds.x2;\n }\n }\n if (top < lastTop) {\n if (y < dragBounds.y1) {\n deltaY = y - dragBounds.y1;\n } else if (y > dragBounds.y2) {\n deltaY = y - dragBounds.y2;\n }\n }\n\n if (deltaX !== 0 || deltaY !== 0) {\n // Have it go faster depending on how far out they've dragged\n this.startTimer(\n grid,\n gridPoint,\n deltaX > 0\n ? Math.ceil(deltaX / columnWidth)\n : Math.floor(deltaX / columnWidth),\n deltaY > 0\n ? Math.ceil(deltaY / rowHeight)\n : Math.floor(deltaY / rowHeight)\n );\n } else if (row != null && column != null) {\n const {\n floatingTopRowCount,\n floatingBottomRowCount,\n floatingLeftColumnCount,\n floatingRightColumnCount,\n columnCount,\n rowCount,\n bottom,\n right,\n topVisible,\n bottomVisible,\n leftVisible,\n rightVisible,\n } = metrics;\n // When selection crosses from a floating area to a non floating area, we need to scroll instead of jumping to the floating area\n // So when that happens, just adjust the point to be past the new boundary\n if (!this.hasExtendedFloating) {\n if (\n startRow !== null &&\n startRow < floatingTopRowCount &&\n row >= floatingTopRowCount\n ) {\n // Extending from floating top into the view\n row = floatingTopRowCount;\n this.hasExtendedFloating = true;\n } else if (\n startRow !== null &&\n startRow >= rowCount - floatingBottomRowCount &&\n row < rowCount - floatingBottomRowCount\n ) {\n // Extending from floating bottom into the view\n row = rowCount - floatingBottomRowCount - 1;\n this.hasExtendedFloating = true;\n }\n\n if (\n startColumn !== null &&\n startColumn < floatingLeftColumnCount &&\n column >= floatingLeftColumnCount\n ) {\n // Extending from floating left into the view\n column = floatingLeftColumnCount;\n this.hasExtendedFloating = true;\n } else if (\n startColumn !== null &&\n startColumn >= columnCount - floatingRightColumnCount &&\n column < columnCount - floatingRightColumnCount\n ) {\n // Extending from floating right into the view\n column = columnCount - floatingRightColumnCount - 1;\n this.hasExtendedFloating = true;\n }\n }\n\n // When a selection is dragging from within the main area to over a floating area, scroll.\n if (\n startRow !== null &&\n !GridUtils.isFloatingRow(startRow, metrics) &&\n GridUtils.isFloatingRow(row, metrics)\n ) {\n // Need to scroll\n if (startRow > row && row < top) {\n row = topVisible - 1;\n } else if (startRow < row && row > bottom) {\n row = bottomVisible + 1;\n }\n }\n if (\n startColumn !== null &&\n !GridUtils.isFloatingColumn(startColumn, metrics) &&\n GridUtils.isFloatingColumn(column, metrics)\n ) {\n if (startColumn > column && column < left) {\n column = leftVisible - 1;\n } else if (startColumn < column && column > right) {\n column = rightVisible + 1;\n }\n }\n grid.moveCursorToPosition(column, row, true, true);\n }\n return true;\n }\n\n onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult {\n if (this.startPoint !== undefined) {\n this.startPoint = undefined;\n this.dragBounds = undefined;\n this.stopTimer();\n grid.commitSelection();\n }\n\n return false;\n }\n\n moveSelection(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n const { row, column } = gridPoint;\n const { metrics } = grid;\n if (!metrics) throw new Error('metrics not set');\n\n const { selectionEndRow, selectionEndColumn } = grid.state;\n if (selectionEndRow == null || selectionEndColumn == null) {\n throw new Error('selection not set');\n }\n\n const { rowCount, columnCount } = metrics;\n const minX = deltaX < 0 && column != null ? column : 0;\n const maxX = deltaX > 0 && column != null ? column : columnCount - 1;\n const minY = deltaY < 0 && row != null ? row : 0;\n const maxY = deltaY > 0 && row != null ? row : rowCount - 1;\n grid.moveCursorToPosition(\n Math.min(Math.max(minX, selectionEndColumn + deltaX), maxX),\n Math.min(Math.max(minY, selectionEndRow + deltaY), maxY),\n true\n );\n this.lastTriggerTime = Date.now();\n }\n\n startTimer(\n grid: Grid,\n gridPoint: GridPoint,\n deltaX: number,\n deltaY: number\n ): void {\n this.stopTimer();\n\n const timeout =\n this.lastTriggerTime != null\n ? DEFAULT_INTERVAL_MS -\n Math.min(DEFAULT_INTERVAL_MS, Date.now() - this.lastTriggerTime)\n : 0;\n this.timer = setTimeout(() => {\n this.moveSelection(grid, gridPoint, deltaX, deltaY);\n this.startTimer(grid, gridPoint, deltaX, deltaY);\n }, timeout);\n }\n\n stopTimer(): void {\n if (this.timer !== undefined) {\n clearTimeout(this.timer);\n this.timer = undefined;\n }\n }\n}\n\nexport default GridSelectionMouseHandler;\n"],"file":"GridSelectionMouseHandler.js"}
|
|
@@ -1,34 +1,52 @@
|
|
|
1
|
-
|
|
1
|
+
import { Grid, GridMetricCalculator } from '..';
|
|
2
|
+
import { EventHandlerResult } from '../EventHandlerResult';
|
|
3
|
+
import GridMetrics, { ModelIndex, VisibleIndex } from '../GridMetrics';
|
|
4
|
+
import GridMouseHandler from '../GridMouseHandler';
|
|
5
|
+
import { GridPoint } from '../GridUtils';
|
|
6
|
+
export declare type PointProperty = 'x' | 'y';
|
|
7
|
+
export declare type UserSizeProperty = 'userRowHeights' | 'userColumnWidths';
|
|
8
|
+
export declare type VisibleOffsetProperty = 'visibleRowYs' | 'visibleColumnXs';
|
|
9
|
+
export declare type VisibleSizeProperty = 'visibleRowHeights' | 'visibleColumnWidths';
|
|
10
|
+
export declare type MarginProperty = 'columnHeaderHeight' | 'rowHeaderWidth';
|
|
11
|
+
export declare type CalculatedSizeProperty = 'calculatedRowHeights' | 'calculatedColumnWidths';
|
|
12
|
+
export declare type ModelIndexesProperty = 'modelRows' | 'modelColumns';
|
|
13
|
+
export declare type FirstIndexProperty = 'firstRow' | 'firstColumn';
|
|
14
|
+
export declare type TreePaddingProperty = 'treePaddingX' | 'treePaddingY';
|
|
2
15
|
/**
|
|
3
16
|
* Abstract class that should be extended for column/row behaviour
|
|
4
17
|
* Override the necessary functions/properties
|
|
5
18
|
*/
|
|
6
|
-
declare class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
7
|
-
draggingIndex
|
|
8
|
-
resizingItems:
|
|
9
|
-
hiddenItems:
|
|
10
|
-
targetSizes: Map<
|
|
11
|
-
dragOffset: number;
|
|
12
|
-
hiddenCursor: string;
|
|
13
|
-
defaultCursor: string;
|
|
14
|
-
pointProperty:
|
|
15
|
-
userSizesProperty:
|
|
16
|
-
visibleOffsetProperty:
|
|
17
|
-
visibleSizesProperty:
|
|
18
|
-
marginProperty:
|
|
19
|
-
calculatedSizesProperty:
|
|
20
|
-
modelIndexesProperty:
|
|
21
|
-
firstIndexProperty:
|
|
22
|
-
treePaddingProperty:
|
|
23
|
-
getHiddenItems(itemIndex:
|
|
24
|
-
getNextShownItem(itemIndex:
|
|
25
|
-
setSize(metricCalculator:
|
|
26
|
-
resetSize(metricCalculator:
|
|
27
|
-
updateSeparator(grid:
|
|
28
|
-
getSeparatorIndex(gridPoint:
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
19
|
+
declare abstract class GridSeparatorMouseHandler extends GridMouseHandler {
|
|
20
|
+
protected draggingIndex?: VisibleIndex;
|
|
21
|
+
protected resizingItems: VisibleIndex[];
|
|
22
|
+
protected hiddenItems: VisibleIndex[];
|
|
23
|
+
protected targetSizes: Map<ModelIndex, number>;
|
|
24
|
+
protected dragOffset: number;
|
|
25
|
+
abstract hiddenCursor: string;
|
|
26
|
+
abstract defaultCursor: string;
|
|
27
|
+
abstract pointProperty: PointProperty;
|
|
28
|
+
abstract userSizesProperty: UserSizeProperty;
|
|
29
|
+
abstract visibleOffsetProperty: VisibleOffsetProperty;
|
|
30
|
+
abstract visibleSizesProperty: VisibleSizeProperty;
|
|
31
|
+
abstract marginProperty: MarginProperty;
|
|
32
|
+
abstract calculatedSizesProperty: CalculatedSizeProperty;
|
|
33
|
+
abstract modelIndexesProperty: ModelIndexesProperty;
|
|
34
|
+
abstract firstIndexProperty: FirstIndexProperty;
|
|
35
|
+
abstract treePaddingProperty: TreePaddingProperty;
|
|
36
|
+
abstract getHiddenItems(itemIndex: VisibleIndex, metrics: GridMetrics): VisibleIndex[];
|
|
37
|
+
abstract getNextShownItem(itemIndex: VisibleIndex, metrics: GridMetrics): VisibleIndex | null;
|
|
38
|
+
abstract setSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex, size: number): void;
|
|
39
|
+
abstract resetSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex): void;
|
|
40
|
+
abstract updateSeparator(grid: Grid, separatorIndex: VisibleIndex | null): void;
|
|
41
|
+
abstract getSeparatorIndex(gridPoint: GridPoint, grid: Grid, checkAllowResize?: boolean): VisibleIndex | null;
|
|
42
|
+
onDown(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
43
|
+
onMove(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
44
|
+
onDrag(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
45
|
+
onUp(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
46
|
+
onDoubleClick(gridPoint: GridPoint, grid: Grid): EventHandlerResult;
|
|
47
|
+
updateCursor(metrics: GridMetrics, itemIndex: VisibleIndex): void;
|
|
48
|
+
addTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void;
|
|
49
|
+
removeTargetSize(metrics: GridMetrics, itemIndex: VisibleIndex): void;
|
|
32
50
|
}
|
|
33
|
-
|
|
51
|
+
export default GridSeparatorMouseHandler;
|
|
34
52
|
//# sourceMappingURL=GridSeparatorMouseHandler.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.
|
|
1
|
+
{"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"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"}
|