@deephaven/grid 0.7.3-beta.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/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 +397 -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 -4
- 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 +8 -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 -1
- 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 -5
- 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 +43 -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 +38 -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 +13 -10
- 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 +41 -37
- 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 +14 -11
- 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 +26 -16
- 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 +57 -74
- 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 +41 -37
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1,6 +1,27 @@
|
|
|
1
|
-
|
|
1
|
+
import Grid from '../Grid';
|
|
2
|
+
import GridMetricCalculator from '../GridMetricCalculator';
|
|
3
|
+
import { ModelIndex, VisibleIndex } from '../GridMetrics';
|
|
4
|
+
import GridUtils, { GridPoint } from '../GridUtils';
|
|
5
|
+
import GridSeparatorMouseHandler from './GridSeparatorMouseHandler';
|
|
2
6
|
declare class GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {
|
|
3
|
-
static getRowSeparatorIndex(gridPoint:
|
|
7
|
+
static getRowSeparatorIndex(gridPoint: GridPoint, grid: Grid, checkAllowResize?: boolean): VisibleIndex | null;
|
|
8
|
+
hiddenCursor: string;
|
|
9
|
+
defaultCursor: string;
|
|
10
|
+
pointProperty: "y";
|
|
11
|
+
userSizesProperty: "userRowHeights";
|
|
12
|
+
visibleOffsetProperty: "visibleRowYs";
|
|
13
|
+
visibleSizesProperty: "visibleRowHeights";
|
|
14
|
+
marginProperty: "columnHeaderHeight";
|
|
15
|
+
calculatedSizesProperty: "calculatedRowHeights";
|
|
16
|
+
modelIndexesProperty: "modelRows";
|
|
17
|
+
firstIndexProperty: "firstRow";
|
|
18
|
+
treePaddingProperty: "treePaddingY";
|
|
19
|
+
getHiddenItems: typeof GridUtils.getHiddenRows;
|
|
20
|
+
getNextShownItem: typeof GridUtils.getNextShownRow;
|
|
21
|
+
setSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex, size: number): void;
|
|
22
|
+
resetSize(metricCalculator: GridMetricCalculator, modelIndex: ModelIndex): void;
|
|
23
|
+
updateSeparator(grid: Grid, separatorIndex: VisibleIndex | null): void;
|
|
24
|
+
getSeparatorIndex: typeof GridRowSeparatorMouseHandler.getRowSeparatorIndex;
|
|
4
25
|
}
|
|
5
|
-
|
|
26
|
+
export default GridRowSeparatorMouseHandler;
|
|
6
27
|
//# sourceMappingURL=GridRowSeparatorMouseHandler.d.ts.map
|
|
@@ -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,15 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
10
10
|
|
|
11
|
-
_defineProperty(this, "startPoint",
|
|
11
|
+
_defineProperty(this, "startPoint", void 0);
|
|
12
12
|
|
|
13
13
|
_defineProperty(this, "hasExtendedFloating", false);
|
|
14
14
|
|
|
15
|
-
_defineProperty(this, "timer",
|
|
15
|
+
_defineProperty(this, "timer", void 0);
|
|
16
16
|
|
|
17
|
-
_defineProperty(this, "lastTriggerTime",
|
|
17
|
+
_defineProperty(this, "lastTriggerTime", void 0);
|
|
18
18
|
|
|
19
|
-
_defineProperty(this, "dragBounds",
|
|
19
|
+
_defineProperty(this, "dragBounds", void 0);
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
onDown(gridPoint, grid, event) {
|
|
@@ -29,6 +29,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
29
29
|
var {
|
|
30
30
|
metrics
|
|
31
31
|
} = grid;
|
|
32
|
+
if (!metrics) throw new Error('metrics not set');
|
|
32
33
|
var {
|
|
33
34
|
gridX,
|
|
34
35
|
gridY,
|
|
@@ -71,7 +72,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
71
72
|
}
|
|
72
73
|
|
|
73
74
|
onDrag(gridPoint, grid) {
|
|
74
|
-
if (this.startPoint ===
|
|
75
|
+
if (this.startPoint === undefined) {
|
|
75
76
|
return false;
|
|
76
77
|
}
|
|
77
78
|
|
|
@@ -91,6 +92,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
91
92
|
var {
|
|
92
93
|
metrics
|
|
93
94
|
} = grid;
|
|
95
|
+
if (!metrics) throw new Error('metrics not set');
|
|
94
96
|
var {
|
|
95
97
|
left,
|
|
96
98
|
lastLeft,
|
|
@@ -141,21 +143,21 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
141
143
|
// So when that happens, just adjust the point to be past the new boundary
|
|
142
144
|
|
|
143
145
|
if (!this.hasExtendedFloating) {
|
|
144
|
-
if (startRow < floatingTopRowCount && row >= floatingTopRowCount) {
|
|
146
|
+
if (startRow !== null && startRow < floatingTopRowCount && row >= floatingTopRowCount) {
|
|
145
147
|
// Extending from floating top into the view
|
|
146
148
|
row = floatingTopRowCount;
|
|
147
149
|
this.hasExtendedFloating = true;
|
|
148
|
-
} else if (startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
|
|
150
|
+
} else if (startRow !== null && startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
|
|
149
151
|
// Extending from floating bottom into the view
|
|
150
152
|
row = rowCount - floatingBottomRowCount - 1;
|
|
151
153
|
this.hasExtendedFloating = true;
|
|
152
154
|
}
|
|
153
155
|
|
|
154
|
-
if (startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
|
|
156
|
+
if (startColumn !== null && startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
|
|
155
157
|
// Extending from floating left into the view
|
|
156
158
|
column = floatingLeftColumnCount;
|
|
157
159
|
this.hasExtendedFloating = true;
|
|
158
|
-
} else if (startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
|
|
160
|
+
} else if (startColumn !== null && startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
|
|
159
161
|
// Extending from floating right into the view
|
|
160
162
|
column = columnCount - floatingRightColumnCount - 1;
|
|
161
163
|
this.hasExtendedFloating = true;
|
|
@@ -163,7 +165,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
163
165
|
} // When a selection is dragging from within the main area to over a floating area, scroll.
|
|
164
166
|
|
|
165
167
|
|
|
166
|
-
if (!GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
|
|
168
|
+
if (startRow !== null && !GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
|
|
167
169
|
// Need to scroll
|
|
168
170
|
if (startRow > row && row < top) {
|
|
169
171
|
row = topVisible - 1;
|
|
@@ -172,7 +174,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
172
174
|
}
|
|
173
175
|
}
|
|
174
176
|
|
|
175
|
-
if (!GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
|
|
177
|
+
if (startColumn !== null && !GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
|
|
176
178
|
if (startColumn > column && column < left) {
|
|
177
179
|
column = leftVisible - 1;
|
|
178
180
|
} else if (startColumn < column && column > right) {
|
|
@@ -187,9 +189,9 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
187
189
|
}
|
|
188
190
|
|
|
189
191
|
onUp(gridPoint, grid) {
|
|
190
|
-
if (this.startPoint !==
|
|
191
|
-
this.startPoint =
|
|
192
|
-
this.dragBounds =
|
|
192
|
+
if (this.startPoint !== undefined) {
|
|
193
|
+
this.startPoint = undefined;
|
|
194
|
+
this.dragBounds = undefined;
|
|
193
195
|
this.stopTimer();
|
|
194
196
|
grid.commitSelection();
|
|
195
197
|
}
|
|
@@ -205,10 +207,16 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
205
207
|
var {
|
|
206
208
|
metrics
|
|
207
209
|
} = grid;
|
|
210
|
+
if (!metrics) throw new Error('metrics not set');
|
|
208
211
|
var {
|
|
209
212
|
selectionEndRow,
|
|
210
213
|
selectionEndColumn
|
|
211
214
|
} = grid.state;
|
|
215
|
+
|
|
216
|
+
if (selectionEndRow == null || selectionEndColumn == null) {
|
|
217
|
+
throw new Error('selection not set');
|
|
218
|
+
}
|
|
219
|
+
|
|
212
220
|
var {
|
|
213
221
|
rowCount,
|
|
214
222
|
columnCount
|
|
@@ -231,8 +239,10 @@ class GridSelectionMouseHandler extends GridMouseHandler {
|
|
|
231
239
|
}
|
|
232
240
|
|
|
233
241
|
stopTimer() {
|
|
234
|
-
|
|
235
|
-
|
|
242
|
+
if (this.timer !== undefined) {
|
|
243
|
+
clearTimeout(this.timer);
|
|
244
|
+
this.timer = undefined;
|
|
245
|
+
}
|
|
236
246
|
}
|
|
237
247
|
|
|
238
248
|
}
|
|
@@ -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":";;OAAOA,gB;OACAC,S;AAEP,IAAMC,mBAAmB,GAAG,GAA5B;;AAEA,MAAMC,yBAAN,SAAwCH,gBAAxC,CAAyD;AAAA;AAAA;;AAAA,wCAC1C,IAD0C;;AAAA,iDAGjC,KAHiC;;AAAA,mCAM/C,IAN+C;;AAAA,6CAQrC,IARqC;;AAAA,wCAU1C,IAV0C;AAAA;;AAYvDI,EAAAA,MAAM,CAACC,SAAD,EAAYC,IAAZ,EAAkBC,KAAlB,EAAyB;AAC7B,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA,CAAL;AAAQC,MAAAA,MAAR;AAAgBC,MAAAA;AAAhB,QAAwBN,SAA9B;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAcN,IAApB;AACA,QAAM;AAAEO,MAAAA,KAAF;AAASC,MAAAA,KAAT;AAAgBC,MAAAA,IAAhB;AAAsBC,MAAAA;AAAtB,QAA+BJ,OAArC;AACA,QAAMK,UAAU,GAAGT,CAAC,GAAGK,KAAvB;AACA,QAAMK,UAAU,GAAGT,CAAC,GAAGK,KAAvB;;AACA,QACEG,UAAU,GAAG,CAAb,IACAC,UAAU,GAAG,CADb,IAECR,MAAM,IAAI,IAAV,IAAkBO,UAAU,GAAGF,IAFhC,IAGCJ,GAAG,IAAI,IAAP,IAAeO,UAAU,GAAGF,IAJ/B,EAKE;AACA,aAAO,KAAP;AACD;;AAED,QAAMG,aAAa,GAAGlB,SAAS,CAACmB,iBAAV,CAA4Bb,KAA5B,CAAtB;AACA,QAAMc,UAAU,GAAGd,KAAK,CAACe,QAAzB;;AACA,QAAI,CAACH,aAAL,EAAoB;AAClB,UAAIE,UAAJ,EAAgB;AACdf,QAAAA,IAAI,CAACiB,kBAAL;AACD,OAFD,MAEO;AACLjB,QAAAA,IAAI,CAACkB,mBAAL;AACD;AACF;;AAED,QAAMC,KAAK,GAAGnB,IAAI,CAACoB,QAAL,EAAd;AACA,QAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAsCH,KAA5C,CA1B6B,CA2B7B;;AACA,QACE,CAACf,MAAM,KAAK,IAAX,IAAmB,CAACkB,gBAArB,MACCjB,GAAG,KAAK,IAAR,IAAgB,CAACgB,aADlB,CADF,EAGE;AACArB,MAAAA,IAAI,CAACuB,KAAL;AACAvB,MAAAA,IAAI,CAACwB,oBAAL,CACEpB,MADF,EAEEC,GAFF,EAGEU,UAHF,EAIE,IAJF,EAKEA,UAAU,IAAIF,aALhB;AAOD;;AAED,SAAKY,UAAL,GAAkB1B,SAAlB;AACA,SAAK2B,mBAAL,GAA2B,KAA3B;AACA,SAAKC,UAAL,GAAkBhC,SAAS,CAACiC,mBAAV,CAA8BtB,OAA9B,EAAuCD,GAAvC,EAA4CD,MAA5C,CAAlB;AAEA,WAAO,IAAP;AACD;;AAEDyB,EAAAA,MAAM,CAAC9B,SAAD,EAAYC,IAAZ,EAAkB;AACtB,QAAI,KAAKyB,UAAL,KAAoB,IAAxB,EAA8B;AAC5B,aAAO,KAAP;AACD;;AAED,SAAKK,SAAL;AAEA,QAAM;AAAEzB,MAAAA,GAAG,EAAE0B,QAAP;AAAiB3B,MAAAA,MAAM,EAAE4B;AAAzB,QAAyC,KAAKP,UAApD;AACA,QAAM;AAAEvB,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWJ,SAAjB;AACA,QAAI;AAAEM,MAAAA,GAAF;AAAOD,MAAAA;AAAP,QAAkBL,SAAtB;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAcN,IAApB;AACA,QAAM;AAAEiC,MAAAA,IAAF;AAAQC,MAAAA,QAAR;AAAkBC,MAAAA,GAAlB;AAAuBC,MAAAA,OAAvB;AAAgCC,MAAAA,WAAhC;AAA6CC,MAAAA;AAA7C,QAA2DhC,OAAjE;AACA,QAAMqB,UAAU,GAAGhC,SAAS,CAACiC,mBAAV,CACjBtB,OADiB,EAEjByB,QAFiB,EAGjBC,WAHiB,CAAnB,CAZsB,CAkBtB;;AACA,QAAIO,MAAM,GAAG,CAAb;AACA,QAAIC,MAAM,GAAG,CAAb;;AACA,QAAIP,IAAI,GAAGC,QAAX,EAAqB;AACnB,UAAIhC,CAAC,GAAGyB,UAAU,CAACc,EAAnB,EAAuB;AACrBF,QAAAA,MAAM,GAAGrC,CAAC,GAAGyB,UAAU,CAACc,EAAxB;AACD,OAFD,MAEO,IAAIvC,CAAC,GAAGyB,UAAU,CAACe,EAAnB,EAAuB;AAC5BH,QAAAA,MAAM,GAAGrC,CAAC,GAAGyB,UAAU,CAACe,EAAxB;AACD;AACF;;AACD,QAAIP,GAAG,GAAGC,OAAV,EAAmB;AACjB,UAAIjC,CAAC,GAAGwB,UAAU,CAACgB,EAAnB,EAAuB;AACrBH,QAAAA,MAAM,GAAGrC,CAAC,GAAGwB,UAAU,CAACgB,EAAxB;AACD,OAFD,MAEO,IAAIxC,CAAC,GAAGwB,UAAU,CAACiB,EAAnB,EAAuB;AAC5BJ,QAAAA,MAAM,GAAGrC,CAAC,GAAGwB,UAAU,CAACiB,EAAxB;AACD;AACF;;AAED,QAAIL,MAAM,KAAK,CAAX,IAAgBC,MAAM,KAAK,CAA/B,EAAkC;AAChC;AACA,WAAKK,UAAL,CACE7C,IADF,EAEED,SAFF,EAGEwC,MAAM,GAAG,CAAT,GACIO,IAAI,CAACC,IAAL,CAAUR,MAAM,GAAGF,WAAnB,CADJ,GAEIS,IAAI,CAACE,KAAL,CAAWT,MAAM,GAAGF,WAApB,CALN,EAMEG,MAAM,GAAG,CAAT,GACIM,IAAI,CAACC,IAAL,CAAUP,MAAM,GAAGF,SAAnB,CADJ,GAEIQ,IAAI,CAACE,KAAL,CAAWR,MAAM,GAAGF,SAApB,CARN;AAUD,KAZD,MAYO,IAAIjC,GAAG,IAAI,IAAP,IAAeD,MAAM,IAAI,IAA7B,EAAmC;AACxC,UAAM;AACJ6C,QAAAA,mBADI;AAEJC,QAAAA,sBAFI;AAGJC,QAAAA,uBAHI;AAIJC,QAAAA,wBAJI;AAKJC,QAAAA,WALI;AAMJC,QAAAA,QANI;AAOJC,QAAAA,MAPI;AAQJC,QAAAA,KARI;AASJC,QAAAA,UATI;AAUJC,QAAAA,aAVI;AAWJC,QAAAA,WAXI;AAYJC,QAAAA;AAZI,UAaFtD,OAbJ,CADwC,CAexC;AACA;;AACA,UAAI,CAAC,KAAKoB,mBAAV,EAA+B;AAC7B,YAAIK,QAAQ,GAAGkB,mBAAX,IAAkC5C,GAAG,IAAI4C,mBAA7C,EAAkE;AAChE;AACA5C,UAAAA,GAAG,GAAG4C,mBAAN;AACA,eAAKvB,mBAAL,GAA2B,IAA3B;AACD,SAJD,MAIO,IACLK,QAAQ,IAAIuB,QAAQ,GAAGJ,sBAAvB,IACA7C,GAAG,GAAGiD,QAAQ,GAAGJ,sBAFZ,EAGL;AACA;AACA7C,UAAAA,GAAG,GAAGiD,QAAQ,GAAGJ,sBAAX,GAAoC,CAA1C;AACA,eAAKxB,mBAAL,GAA2B,IAA3B;AACD;;AAED,YACEM,WAAW,GAAGmB,uBAAd,IACA/C,MAAM,IAAI+C,uBAFZ,EAGE;AACA;AACA/C,UAAAA,MAAM,GAAG+C,uBAAT;AACA,eAAKzB,mBAAL,GAA2B,IAA3B;AACD,SAPD,MAOO,IACLM,WAAW,IAAIqB,WAAW,GAAGD,wBAA7B,IACAhD,MAAM,GAAGiD,WAAW,GAAGD,wBAFlB,EAGL;AACA;AACAhD,UAAAA,MAAM,GAAGiD,WAAW,GAAGD,wBAAd,GAAyC,CAAlD;AACA,eAAK1B,mBAAL,GAA2B,IAA3B;AACD;AACF,OA9CuC,CAgDxC;;;AACA,UACE,CAAC/B,SAAS,CAACkE,aAAV,CAAwB9B,QAAxB,EAAkCzB,OAAlC,CAAD,IACAX,SAAS,CAACkE,aAAV,CAAwBxD,GAAxB,EAA6BC,OAA7B,CAFF,EAGE;AACA;AACA,YAAIyB,QAAQ,GAAG1B,GAAX,IAAkBA,GAAG,GAAG8B,GAA5B,EAAiC;AAC/B9B,UAAAA,GAAG,GAAGoD,UAAU,GAAG,CAAnB;AACD,SAFD,MAEO,IAAI1B,QAAQ,GAAG1B,GAAX,IAAkBA,GAAG,GAAGkD,MAA5B,EAAoC;AACzClD,UAAAA,GAAG,GAAGqD,aAAa,GAAG,CAAtB;AACD;AACF;;AACD,UACE,CAAC/D,SAAS,CAACmE,gBAAV,CAA2B9B,WAA3B,EAAwC1B,OAAxC,CAAD,IACAX,SAAS,CAACmE,gBAAV,CAA2B1D,MAA3B,EAAmCE,OAAnC,CAFF,EAGE;AACA,YAAI0B,WAAW,GAAG5B,MAAd,IAAwBA,MAAM,GAAG6B,IAArC,EAA2C;AACzC7B,UAAAA,MAAM,GAAGuD,WAAW,GAAG,CAAvB;AACD,SAFD,MAEO,IAAI3B,WAAW,GAAG5B,MAAd,IAAwBA,MAAM,GAAGoD,KAArC,EAA4C;AACjDpD,UAAAA,MAAM,GAAGwD,YAAY,GAAG,CAAxB;AACD;AACF;;AACD5D,MAAAA,IAAI,CAACwB,oBAAL,CAA0BpB,MAA1B,EAAkCC,GAAlC,EAAuC,IAAvC,EAA6C,IAA7C;AACD;;AACD,WAAO,IAAP;AACD;;AAED0D,EAAAA,IAAI,CAAChE,SAAD,EAAYC,IAAZ,EAAkB;AACpB,QAAI,KAAKyB,UAAL,KAAoB,IAAxB,EAA8B;AAC5B,WAAKA,UAAL,GAAkB,IAAlB;AACA,WAAKE,UAAL,GAAkB,IAAlB;AACA,WAAKG,SAAL;AACA9B,MAAAA,IAAI,CAACgE,eAAL;AACD;;AAED,WAAO,KAAP;AACD;;AAEDC,EAAAA,aAAa,CAACjE,IAAD,EAAOD,SAAP,EAAkBwC,MAAlB,EAA0BC,MAA1B,EAAkC;AAC7C,QAAM;AAAEnC,MAAAA,GAAF;AAAOD,MAAAA;AAAP,QAAkBL,SAAxB;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAcN,IAApB;AACA,QAAM;AAAEkE,MAAAA,eAAF;AAAmBC,MAAAA;AAAnB,QAA0CnE,IAAI,CAACoE,KAArD;AACA,QAAM;AAAEd,MAAAA,QAAF;AAAYD,MAAAA;AAAZ,QAA4B/C,OAAlC;AACA,QAAM+D,IAAI,GAAG9B,MAAM,GAAG,CAAT,IAAcnC,MAAM,IAAI,IAAxB,GAA+BA,MAA/B,GAAwC,CAArD;AACA,QAAMK,IAAI,GAAG8B,MAAM,GAAG,CAAT,IAAcnC,MAAM,IAAI,IAAxB,GAA+BA,MAA/B,GAAwCiD,WAAW,GAAG,CAAnE;AACA,QAAMiB,IAAI,GAAG9B,MAAM,GAAG,CAAT,IAAcnC,GAAG,IAAI,IAArB,GAA4BA,GAA5B,GAAkC,CAA/C;AACA,QAAMK,IAAI,GAAG8B,MAAM,GAAG,CAAT,IAAcnC,GAAG,IAAI,IAArB,GAA4BA,GAA5B,GAAkCiD,QAAQ,GAAG,CAA1D;AACAtD,IAAAA,IAAI,CAACwB,oBAAL,CACEsB,IAAI,CAACyB,GAAL,CAASzB,IAAI,CAAC0B,GAAL,CAASH,IAAT,EAAeF,kBAAkB,GAAG5B,MAApC,CAAT,EAAsD9B,IAAtD,CADF,EAEEqC,IAAI,CAACyB,GAAL,CAASzB,IAAI,CAAC0B,GAAL,CAASF,IAAT,EAAeJ,eAAe,GAAG1B,MAAjC,CAAT,EAAmD9B,IAAnD,CAFF,EAGE,IAHF;AAKA,SAAK+D,eAAL,GAAuBC,IAAI,CAACC,GAAL,EAAvB;AACD;;AAED9B,EAAAA,UAAU,CAAC7C,IAAD,EAAOD,SAAP,EAAkBwC,MAAlB,EAA0BC,MAA1B,EAAkC;AAC1C,SAAKV,SAAL;AAEA,QAAM8C,OAAO,GACX,KAAKH,eAAL,IAAwB,IAAxB,GACI7E,mBAAmB,GACnBkD,IAAI,CAACyB,GAAL,CAAS3E,mBAAT,EAA8B8E,IAAI,CAACC,GAAL,KAAa,KAAKF,eAAhD,CAFJ,GAGI,CAJN;AAKA,SAAKI,KAAL,GAAaC,UAAU,CAAC,MAAM;AAC5B,WAAKb,aAAL,CAAmBjE,IAAnB,EAAyBD,SAAzB,EAAoCwC,MAApC,EAA4CC,MAA5C;AACA,WAAKK,UAAL,CAAgB7C,IAAhB,EAAsBD,SAAtB,EAAiCwC,MAAjC,EAAyCC,MAAzC;AACD,KAHsB,EAGpBoC,OAHoB,CAAvB;AAID;;AAED9C,EAAAA,SAAS,GAAG;AACViD,IAAAA,YAAY,CAAC,KAAKF,KAAN,CAAZ;AACA,SAAKA,KAAL,GAAa,IAAb;AACD;;AArOsD;;AAwOzD,eAAehF,yBAAf","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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"}
|