@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.
Files changed (147) hide show
  1. package/dist/CellInputField.d.ts +4 -4
  2. package/dist/CellInputField.d.ts.map +1 -1
  3. package/dist/CellInputField.js +10 -11
  4. package/dist/CellInputField.js.map +1 -1
  5. package/dist/EditableGridModel.d.ts +70 -0
  6. package/dist/EditableGridModel.d.ts.map +1 -0
  7. package/dist/EditableGridModel.js +13 -0
  8. package/dist/EditableGridModel.js.map +1 -0
  9. package/dist/EventHandlerResult.d.ts +17 -0
  10. package/dist/EventHandlerResult.d.ts.map +1 -0
  11. package/dist/EventHandlerResult.js +2 -0
  12. package/dist/EventHandlerResult.js.map +1 -0
  13. package/dist/ExpandableGridModel.d.ts +34 -0
  14. package/dist/ExpandableGridModel.d.ts.map +1 -0
  15. package/dist/ExpandableGridModel.js +7 -0
  16. package/dist/ExpandableGridModel.js.map +1 -0
  17. package/dist/Grid.d.ts +283 -234
  18. package/dist/Grid.d.ts.map +1 -1
  19. package/dist/Grid.js +397 -165
  20. package/dist/Grid.js.map +1 -1
  21. package/dist/GridColorUtils.d.ts +22 -12
  22. package/dist/GridColorUtils.d.ts.map +1 -1
  23. package/dist/GridColorUtils.js +26 -21
  24. package/dist/GridColorUtils.js.map +1 -1
  25. package/dist/GridMetricCalculator.d.ts.map +1 -1
  26. package/dist/GridMetricCalculator.js +8 -4
  27. package/dist/GridMetricCalculator.js.map +1 -1
  28. package/dist/GridModel.d.ts +54 -60
  29. package/dist/GridModel.d.ts.map +1 -1
  30. package/dist/GridModel.js +54 -122
  31. package/dist/GridModel.js.map +1 -1
  32. package/dist/GridMouseHandler.d.ts +23 -24
  33. package/dist/GridMouseHandler.d.ts.map +1 -1
  34. package/dist/GridMouseHandler.js +8 -14
  35. package/dist/GridMouseHandler.js.map +1 -1
  36. package/dist/GridRange.d.ts +2 -2
  37. package/dist/GridRange.d.ts.map +1 -1
  38. package/dist/GridRange.js +1 -1
  39. package/dist/GridRange.js.map +1 -1
  40. package/dist/GridRenderer.d.ts +117 -69
  41. package/dist/GridRenderer.d.ts.map +1 -1
  42. package/dist/GridRenderer.js +183 -168
  43. package/dist/GridRenderer.js.map +1 -1
  44. package/dist/GridUtils.d.ts +4 -4
  45. package/dist/GridUtils.js +4 -4
  46. package/dist/GridUtils.js.map +1 -1
  47. package/dist/KeyHandler.d.ts +10 -7
  48. package/dist/KeyHandler.d.ts.map +1 -1
  49. package/dist/KeyHandler.js +6 -5
  50. package/dist/KeyHandler.js.map +1 -1
  51. package/dist/MockGridData.d.ts +1 -1
  52. package/dist/MockGridData.d.ts.map +1 -1
  53. package/dist/MockGridData.js.map +1 -1
  54. package/dist/MockGridModel.d.ts +39 -12
  55. package/dist/MockGridModel.d.ts.map +1 -1
  56. package/dist/MockGridModel.js +43 -10
  57. package/dist/MockGridModel.js.map +1 -1
  58. package/dist/MockTreeGridModel.d.ts +37 -22
  59. package/dist/MockTreeGridModel.d.ts.map +1 -1
  60. package/dist/MockTreeGridModel.js +38 -20
  61. package/dist/MockTreeGridModel.js.map +1 -1
  62. package/dist/errors/AssertionError.d.ts +5 -0
  63. package/dist/errors/AssertionError.d.ts.map +1 -0
  64. package/dist/errors/AssertionError.js +12 -0
  65. package/dist/errors/AssertionError.js.map +1 -0
  66. package/dist/errors/PasteError.d.ts +1 -1
  67. package/dist/errors/PasteError.d.ts.map +1 -1
  68. package/dist/errors/PasteError.js +1 -2
  69. package/dist/errors/PasteError.js.map +1 -1
  70. package/dist/errors/assertIsDefined.d.ts +3 -0
  71. package/dist/errors/assertIsDefined.d.ts.map +1 -0
  72. package/dist/errors/assertIsDefined.js +8 -0
  73. package/dist/errors/assertIsDefined.js.map +1 -0
  74. package/dist/errors/index.d.ts +2 -0
  75. package/dist/errors/index.d.ts.map +1 -1
  76. package/dist/errors/index.js +2 -1
  77. package/dist/errors/index.js.map +1 -1
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +1 -0
  81. package/dist/index.js.map +1 -1
  82. package/dist/key-handlers/EditKeyHandler.d.ts +3 -2
  83. package/dist/key-handlers/EditKeyHandler.d.ts.map +1 -1
  84. package/dist/key-handlers/EditKeyHandler.js +10 -9
  85. package/dist/key-handlers/EditKeyHandler.js.map +1 -1
  86. package/dist/key-handlers/PasteKeyHandler.d.ts +3 -5
  87. package/dist/key-handlers/PasteKeyHandler.d.ts.map +1 -1
  88. package/dist/key-handlers/PasteKeyHandler.js +3 -3
  89. package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
  90. package/dist/key-handlers/SelectionKeyHandler.d.ts +5 -5
  91. package/dist/key-handlers/SelectionKeyHandler.d.ts.map +1 -1
  92. package/dist/key-handlers/SelectionKeyHandler.js +16 -15
  93. package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/TreeKeyHandler.d.ts +2 -2
  95. package/dist/key-handlers/TreeKeyHandler.d.ts.map +1 -1
  96. package/dist/key-handlers/TreeKeyHandler.js +14 -12
  97. package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
  98. package/dist/memoizeClear.d.ts +13 -3
  99. package/dist/memoizeClear.d.ts.map +1 -1
  100. package/dist/memoizeClear.js +7 -7
  101. package/dist/memoizeClear.js.map +1 -1
  102. package/dist/mouse-handlers/EditMouseHandler.d.ts +3 -4
  103. package/dist/mouse-handlers/EditMouseHandler.d.ts.map +1 -1
  104. package/dist/mouse-handlers/EditMouseHandler.js +3 -2
  105. package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
  106. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts +12 -5
  107. package/dist/mouse-handlers/GridColumnMoveMouseHandler.d.ts.map +1 -1
  108. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js +13 -10
  109. package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
  110. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts +24 -3
  111. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.d.ts.map +1 -1
  112. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js +2 -1
  113. package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
  114. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts +16 -6
  115. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.d.ts.map +1 -1
  116. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js +41 -37
  117. package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
  118. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts +10 -3
  119. package/dist/mouse-handlers/GridRowMoveMouseHandler.d.ts.map +1 -1
  120. package/dist/mouse-handlers/GridRowMoveMouseHandler.js +14 -11
  121. package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
  122. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts +24 -3
  123. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.d.ts.map +1 -1
  124. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js +4 -3
  125. package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
  126. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts +8 -3
  127. package/dist/mouse-handlers/GridRowTreeMouseHandler.d.ts.map +1 -1
  128. package/dist/mouse-handlers/GridRowTreeMouseHandler.js +12 -7
  129. package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
  130. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts +9 -3
  131. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.d.ts.map +1 -1
  132. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js +2 -1
  133. package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
  134. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts +15 -9
  135. package/dist/mouse-handlers/GridSelectionMouseHandler.d.ts.map +1 -1
  136. package/dist/mouse-handlers/GridSelectionMouseHandler.js +26 -16
  137. package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
  138. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts +46 -28
  139. package/dist/mouse-handlers/GridSeparatorMouseHandler.d.ts.map +1 -1
  140. package/dist/mouse-handlers/GridSeparatorMouseHandler.js +57 -74
  141. package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
  142. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts +16 -6
  143. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.d.ts.map +1 -1
  144. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js +41 -37
  145. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +3 -3
@@ -1,6 +1,27 @@
1
- export default GridRowSeparatorMouseHandler;
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: any, grid: any, checkAllowResize?: boolean): number | null;
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
- import GridSeparatorMouseHandler from "./GridSeparatorMouseHandler";
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.js"],"names":[],"mappings":";AAIA;IACE,kGAUC;CA4CF"}
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", 'treePaddingX');
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.setRowHeight(modelIndex);
64
+ metricCalculator.resetRowHeight(modelIndex);
64
65
  }
65
66
 
66
67
  updateSeparator(grid, separatorIndex) {
67
68
  grid.setState({
68
69
  draggingRowSeparator: separatorIndex,
69
- isDragging: !!separatorIndex
70
+ isDragging: separatorIndex !== null
70
71
  });
71
72
  }
72
73
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridRowSeparatorMouseHandler.js"],"names":["GridUtils","GridSeparatorMouseHandler","GridRowSeparatorMouseHandler","getHiddenRows","getNextShownRow","getRowSeparatorIndex","gridPoint","grid","checkAllowResize","theme","getTheme","allowRowResize","x","y","metrics","setSize","metricCalculator","modelIndex","size","setRowHeight","resetSize","updateSeparator","separatorIndex","setState","draggingRowSeparator","isDragging"],"mappings":";;AAAA;OACOA,S;OACAC,yB;;AAEP,MAAMC,4BAAN,SAA2CD,yBAA3C,CAAqE;AAAA;AAAA;;AAAA,0CAapD,UAboD;;AAAA,2CAenD,YAfmD;;AAAA,2CAiBnD,GAjBmD;;AAAA,+CAmB/C,gBAnB+C;;AAAA,mDAqB3C,cArB2C;;AAAA,kDAuB5C,mBAvB4C;;AAAA,4CAyBlD,oBAzBkD;;AAAA,qDA2BzC,sBA3ByC;;AAAA,kDA6B5C,WA7B4C;;AAAA,gDA+B9C,UA/B8C;;AAAA,iDAiC7C,cAjC6C;;AAAA,4CAmClDD,SAAS,CAACG,aAnCwC;;AAAA,8CAqChDH,SAAS,CAACI,eArCsC;;AAAA,+CAsD/CF,4BAA4B,CAACG,oBAtDkB;AAAA;;AACxC,SAApBA,oBAAoB,CAACC,SAAD,EAAYC,IAAZ,EAA2C;AAAA,QAAzBC,gBAAyB,uEAAN,IAAM;AACpE,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;AAEA,WAAOP,SAAS,CAACK,oBAAV,CAA+BO,CAA/B,EAAkCC,CAAlC,EAAqCC,OAArC,EAA8CL,KAA9C,CAAP;AACD;;AA4BDM,EAAAA,OAAO,CAACC,gBAAD,EAAmBC,UAAnB,EAA+BC,IAA/B,EAAqC;AAC1CF,IAAAA,gBAAgB,CAACG,YAAjB,CAA8BF,UAA9B,EAA0CC,IAA1C;AACD;;AAEDE,EAAAA,SAAS,CAACJ,gBAAD,EAAmBC,UAAnB,EAA+B;AACtCD,IAAAA,gBAAgB,CAACG,YAAjB,CAA8BF,UAA9B;AACD;;AAEDI,EAAAA,eAAe,CAACd,IAAD,EAAOe,cAAP,EAAuB;AACpCf,IAAAA,IAAI,CAACgB,QAAL,CAAc;AACZC,MAAAA,oBAAoB,EAAEF,cADV;AAEZG,MAAAA,UAAU,EAAE,CAAC,CAACH;AAFF,KAAd;AAID;;AApDkE;;AAyDrE,eAAepB,4BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport GridUtils from '../GridUtils';\nimport GridSeparatorMouseHandler from './GridSeparatorMouseHandler';\n\nclass GridRowSeparatorMouseHandler extends GridSeparatorMouseHandler {\n static getRowSeparatorIndex(gridPoint, grid, checkAllowResize = true) {\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\n return GridUtils.getRowSeparatorIndex(x, y, metrics, theme);\n }\n\n hiddenCursor = 's-resize';\n\n defaultCursor = 'row-resize';\n\n pointProperty = 'y';\n\n userSizesProperty = 'userRowHeights';\n\n visibleOffsetProperty = 'visibleRowYs';\n\n visibleSizesProperty = 'visibleRowHeights';\n\n marginProperty = 'columnHeaderHeight';\n\n calculatedSizesProperty = 'calculatedRowHeights';\n\n modelIndexesProperty = 'modelRows';\n\n firstIndexProperty = 'firstRow';\n\n treePaddingProperty = 'treePaddingX';\n\n getHiddenItems = GridUtils.getHiddenRows;\n\n getNextShownItem = GridUtils.getNextShownRow;\n\n setSize(metricCalculator, modelIndex, size) {\n metricCalculator.setRowHeight(modelIndex, size);\n }\n\n resetSize(metricCalculator, modelIndex) {\n metricCalculator.setRowHeight(modelIndex);\n }\n\n updateSeparator(grid, separatorIndex) {\n grid.setState({\n draggingRowSeparator: separatorIndex,\n isDragging: !!separatorIndex,\n });\n }\n\n getSeparatorIndex = GridRowSeparatorMouseHandler.getRowSeparatorIndex;\n}\n\nexport default GridRowSeparatorMouseHandler;\n"],"file":"GridRowSeparatorMouseHandler.js"}
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
- export default GridRowTreeMouseHandler;
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: any, grid: any): boolean;
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
- import GridMouseHandler from "../GridMouseHandler";
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.js"],"names":[],"mappings":";AAGA;;GAEG;AACH;IACE,uDAmCC;CAcF"}
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.get(column);
31
- var width = visibleColumnWidths.get(column);
32
- var rowY = visibleRowYs.get(row);
33
- var height = visibleRowHeights.get(row);
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
- grid.toggleRowExpanded(row);
53
- return true;
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.js"],"names":["GridMouseHandler","GridRowTreeMouseHandler","isInTreeBox","gridPoint","grid","column","row","x","y","metrics","gridX","gridY","firstColumn","visibleColumnXs","visibleColumnWidths","visibleRowHeights","visibleRowYs","visibleRowTreeBoxes","get","columnX","width","rowY","height","onDown","onClick","toggleRowExpanded"],"mappings":"AAAA;OACOA,gB;AAEP;AACA;AACA;;AACA,MAAMC,uBAAN,SAAsCD,gBAAtC,CAAuD;AACnC,SAAXE,WAAW,CAACC,SAAD,EAAYC,IAAZ,EAAkB;AAClC,QAAM;AAAEC,MAAAA,MAAF;AAAUC,MAAAA,GAAV;AAAeC,MAAAA,CAAf;AAAkBC,MAAAA;AAAlB,QAAwBL,SAA9B;AACA,QAAM;AAAEM,MAAAA;AAAF,QAAcL,IAApB;AACA,QAAM;AACJM,MAAAA,KADI;AAEJC,MAAAA,KAFI;AAGJC,MAAAA,WAHI;AAIJC,MAAAA,eAJI;AAKJC,MAAAA,mBALI;AAMJC,MAAAA,iBANI;AAOJC,MAAAA,YAPI;AAQJC,MAAAA;AARI,QASFR,OATJ;;AAWA,QACEJ,MAAM,KAAKO,WAAX,IACAN,GAAG,IAAI,IADP,IAEAW,mBAAmB,CAACC,GAApB,CAAwBZ,GAAxB,KAAgC,IAFhC,IAGAC,CAAC,GAAGG,KAHJ,IAIAF,CAAC,GAAGG,KALN,EAME;AACA,UAAMQ,OAAO,GAAGN,eAAe,CAACK,GAAhB,CAAoBb,MAApB,CAAhB;AACA,UAAMe,KAAK,GAAGN,mBAAmB,CAACI,GAApB,CAAwBb,MAAxB,CAAd;AACA,UAAMgB,IAAI,GAAGL,YAAY,CAACE,GAAb,CAAiBZ,GAAjB,CAAb;AACA,UAAMgB,MAAM,GAAGP,iBAAiB,CAACG,GAAlB,CAAsBZ,GAAtB,CAAf;;AACA,UACEC,CAAC,IAAIG,KAAK,GAAGS,OAAb,IACAZ,CAAC,IAAIG,KAAK,GAAGS,OAAR,GAAkBC,KADvB,IAEAZ,CAAC,IAAIG,KAAK,GAAGU,IAFb,IAGAb,CAAC,IAAIG,KAAK,GAAGU,IAAR,GAAeC,MAJtB,EAKE;AACA,eAAO,IAAP;AACD;AACF;;AACD,WAAO,KAAP;AACD;;AAEDC,EAAAA,MAAM,CAACpB,SAAD,EAAYC,IAAZ,EAAkB;AACtB,WAAOH,uBAAuB,CAACC,WAAxB,CAAoCC,SAApC,EAA+CC,IAA/C,CAAP;AACD;;AAEDoB,EAAAA,OAAO,CAACrB,SAAD,EAAYC,IAAZ,EAAkB;AACvB,QAAIH,uBAAuB,CAACC,WAAxB,CAAoCC,SAApC,EAA+CC,IAA/C,CAAJ,EAA0D;AACxD,UAAM;AAAEE,QAAAA;AAAF,UAAUH,SAAhB;AACAC,MAAAA,IAAI,CAACqB,iBAAL,CAAuBnB,GAAvB;AACA,aAAO,IAAP;AACD;;AACD,WAAO,KAAP;AACD;;AAjDoD;;AAoDvD,eAAeL,uBAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport GridMouseHandler from '../GridMouseHandler';\n\n/**\n * Detect when the tree expand/collapse button is clicked\n */\nclass GridRowTreeMouseHandler extends GridMouseHandler {\n static isInTreeBox(gridPoint, grid) {\n const { column, row, x, y } = gridPoint;\n const { metrics } = grid;\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 = visibleColumnXs.get(column);\n const width = visibleColumnWidths.get(column);\n const rowY = visibleRowYs.get(row);\n const height = visibleRowHeights.get(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, grid) {\n return GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid);\n }\n\n onClick(gridPoint, grid) {\n if (GridRowTreeMouseHandler.isInTreeBox(gridPoint, grid)) {\n const { row } = gridPoint;\n grid.toggleRowExpanded(row);\n return true;\n }\n return false;\n }\n}\n\nexport default GridRowTreeMouseHandler;\n"],"file":"GridRowTreeMouseHandler.js"}
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
- export default GridScrollBarCornerMouseHandler;
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: any, grid: any): boolean;
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
- import GridMouseHandler from "../GridMouseHandler";
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.js"],"names":[],"mappings":";AAGA;;GAEG;AACH;IACE,+CAeC;CAaF"}
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.js"],"names":["GridMouseHandler","GridScrollBarCornerMouseHandler","isInCorner","gridPoint","grid","theme","getTheme","scrollBarSize","metrics","x","y","lastLeft","lastTop","width","height","onDown","onUp","onClick"],"mappings":"AAAA;OACOA,gB;AAEP;AACA;AACA;;AACA,MAAMC,+BAAN,SAA8CD,gBAA9C,CAA+D;AAC7DE,EAAAA,UAAU,CAACC,SAAD,EAAYC,IAAZ,EAAkB;AAC1B,QAAMC,KAAK,GAAGD,IAAI,CAACE,QAAL,EAAd;AACA,QAAM;AAAEC,MAAAA;AAAF,QAAoBF,KAA1B;AACA,QAAM;AAAEG,MAAAA;AAAF,QAAcJ,IAApB;AACA,QAAM;AAAEK,MAAAA,CAAF;AAAKC,MAAAA;AAAL,QAAWP,SAAjB;AACA,QAAM;AAAEQ,MAAAA,QAAF;AAAYC,MAAAA,OAAZ;AAAqBC,MAAAA,KAArB;AAA4BC,MAAAA;AAA5B,QAAuCN,OAA7C;AACA,WACED,aAAa,GAAG,CAAhB,IACAK,OAAO,GAAG,CADV,IAEAD,QAAQ,GAAG,CAFX,IAGAF,CAAC,IAAII,KAAK,GAAGN,aAHb,IAIAG,CAAC,IAAII,MAAM,GAAGP,aAJd,IAKAE,CAAC,IAAII,KALL,IAMAH,CAAC,IAAII,MAPP;AASD;;AAEDC,EAAAA,MAAM,CAACZ,SAAD,EAAYC,IAAZ,EAAkB;AACtB,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AAEDY,EAAAA,IAAI,CAACb,SAAD,EAAYC,IAAZ,EAAkB;AACpB,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AAEDa,EAAAA,OAAO,CAACd,SAAD,EAAYC,IAAZ,EAAkB;AACvB,WAAO,KAAKF,UAAL,CAAgBC,SAAhB,EAA2BC,IAA3B,CAAP;AACD;;AA5B4D;;AA+B/D,eAAeH,+BAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport GridMouseHandler from '../GridMouseHandler';\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, grid) {\n const theme = grid.getTheme();\n const { scrollBarSize } = theme;\n const { metrics } = grid;\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, grid) {\n return this.isInCorner(gridPoint, grid);\n }\n\n onUp(gridPoint, grid) {\n return this.isInCorner(gridPoint, grid);\n }\n\n onClick(gridPoint, grid) {\n return this.isInCorner(gridPoint, grid);\n }\n}\n\nexport default GridScrollBarCornerMouseHandler;\n"],"file":"GridScrollBarCornerMouseHandler.js"}
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
- export default GridSelectionMouseHandler;
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: any;
4
- hasExtendedFloating: boolean;
5
- timer: any;
6
- lastTriggerTime: any;
7
- dragBounds: any;
8
- moveSelection(grid: any, gridPoint: any, deltaX: any, deltaY: any): void;
9
- startTimer(grid: any, gridPoint: any, deltaX: any, deltaY: any): void;
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
- import GridMouseHandler from "../GridMouseHandler";
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.js"],"names":[],"mappings":";AAKA;IACE,gBAAkB;IAElB,6BAA4B;IAG5B,WAAa;IAEb,qBAAuB;IAEvB,gBAAkB;IAyLlB,yEAeC;IAED,sEAYC;IAED,kBAGC;CACF"}
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", null);
11
+ _defineProperty(this, "startPoint", void 0);
12
12
 
13
13
  _defineProperty(this, "hasExtendedFloating", false);
14
14
 
15
- _defineProperty(this, "timer", null);
15
+ _defineProperty(this, "timer", void 0);
16
16
 
17
- _defineProperty(this, "lastTriggerTime", null);
17
+ _defineProperty(this, "lastTriggerTime", void 0);
18
18
 
19
- _defineProperty(this, "dragBounds", null);
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 === null) {
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 !== null) {
191
- this.startPoint = null;
192
- this.dragBounds = null;
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
- clearTimeout(this.timer);
235
- this.timer = null;
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":"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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":";;OAGOA,gB;OACAC,S;AAEP,IAAMC,mBAAmB,GAAG,GAA5B;;AAEA,MAAMC,yBAAN,SAAwCH,gBAAxC,CAAyD;AAAA;AAAA;;AAAA;;AAAA,iDAGzB,KAHyB;;AAAA;;AAAA;;AAAA;AAAA;;AAYvDI,EAAAA,MAAM,CACJC,SADI,EAEJC,IAFI,EAGJC,KAHI,EAIgB;AACpB,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA,CAAL;AAAQC,MAAAA,MAAR;AAAgBC,MAAAA;AAAhB,QAAwBN,SAA9B;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAcN,IAApB;AACA,QAAI,CAACM,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,QAAM;AAAEC,MAAAA,KAAF;AAASC,MAAAA,KAAT;AAAgBC,MAAAA,IAAhB;AAAsBC,MAAAA;AAAtB,QAA+BL,OAArC;AACA,QAAMM,UAAU,GAAGV,CAAC,GAAGM,KAAvB;AACA,QAAMK,UAAU,GAAGV,CAAC,GAAGM,KAAvB;;AACA,QACEG,UAAU,GAAG,CAAb,IACAC,UAAU,GAAG,CADb,IAECT,MAAM,IAAI,IAAV,IAAkBQ,UAAU,GAAGF,IAFhC,IAGCL,GAAG,IAAI,IAAP,IAAeQ,UAAU,GAAGF,IAJ/B,EAKE;AACA,aAAO,KAAP;AACD;;AAED,QAAMG,aAAa,GAAGnB,SAAS,CAACoB,iBAAV,CAA4Bd,KAA5B,CAAtB;AACA,QAAMe,UAAU,GAAGf,KAAK,CAACgB,QAAzB;;AACA,QAAI,CAACH,aAAL,EAAoB;AAClB,UAAIE,UAAJ,EAAgB;AACdhB,QAAAA,IAAI,CAACkB,kBAAL;AACD,OAFD,MAEO;AACLlB,QAAAA,IAAI,CAACmB,mBAAL;AACD;AACF;;AAED,QAAMC,KAAK,GAAGpB,IAAI,CAACqB,QAAL,EAAd;AACA,QAAM;AAAEC,MAAAA,aAAF;AAAiBC,MAAAA;AAAjB,QAAsCH,KAA5C,CA5BoB,CA6BpB;;AACA,QACE,CAAChB,MAAM,KAAK,IAAX,IAAmB,CAACmB,gBAArB,MACClB,GAAG,KAAK,IAAR,IAAgB,CAACiB,aADlB,CADF,EAGE;AACAtB,MAAAA,IAAI,CAACwB,KAAL;AACAxB,MAAAA,IAAI,CAACyB,oBAAL,CACErB,MADF,EAEEC,GAFF,EAGEW,UAHF,EAIE,IAJF,EAKEA,UAAU,IAAIF,aALhB;AAOD;;AAED,SAAKY,UAAL,GAAkB3B,SAAlB;AACA,SAAK4B,mBAAL,GAA2B,KAA3B;AACA,SAAKC,UAAL,GAAkBjC,SAAS,CAACkC,mBAAV,CAA8BvB,OAA9B,EAAuCD,GAAvC,EAA4CD,MAA5C,CAAlB;AAEA,WAAO,IAAP;AACD;;AAED0B,EAAAA,MAAM,CAAC/B,SAAD,EAAuBC,IAAvB,EAAuD;AAC3D,QAAI,KAAK0B,UAAL,KAAoBK,SAAxB,EAAmC;AACjC,aAAO,KAAP;AACD;;AAED,SAAKC,SAAL;AAEA,QAAM;AAAE3B,MAAAA,GAAG,EAAE4B,QAAP;AAAiB7B,MAAAA,MAAM,EAAE8B;AAAzB,QAAyC,KAAKR,UAApD;AACA,QAAM;AAAExB,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,QAAI,CAACM,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,QAAM;AAAE4B,MAAAA,IAAF;AAAQC,MAAAA,QAAR;AAAkBC,MAAAA,GAAlB;AAAuBC,MAAAA,OAAvB;AAAgCC,MAAAA,WAAhC;AAA6CC,MAAAA;AAA7C,QAA2DlC,OAAjE;AACA,QAAMsB,UAAU,GAAGjC,SAAS,CAACkC,mBAAV,CACjBvB,OADiB,EAEjB2B,QAFiB,EAGjBC,WAHiB,CAAnB,CAd2D,CAoB3D;;AACA,QAAIO,MAAM,GAAG,CAAb;AACA,QAAIC,MAAM,GAAG,CAAb;;AACA,QAAIP,IAAI,GAAGC,QAAX,EAAqB;AACnB,UAAIlC,CAAC,GAAG0B,UAAU,CAACe,EAAnB,EAAuB;AACrBF,QAAAA,MAAM,GAAGvC,CAAC,GAAG0B,UAAU,CAACe,EAAxB;AACD,OAFD,MAEO,IAAIzC,CAAC,GAAG0B,UAAU,CAACgB,EAAnB,EAAuB;AAC5BH,QAAAA,MAAM,GAAGvC,CAAC,GAAG0B,UAAU,CAACgB,EAAxB;AACD;AACF;;AACD,QAAIP,GAAG,GAAGC,OAAV,EAAmB;AACjB,UAAInC,CAAC,GAAGyB,UAAU,CAACiB,EAAnB,EAAuB;AACrBH,QAAAA,MAAM,GAAGvC,CAAC,GAAGyB,UAAU,CAACiB,EAAxB;AACD,OAFD,MAEO,IAAI1C,CAAC,GAAGyB,UAAU,CAACkB,EAAnB,EAAuB;AAC5BJ,QAAAA,MAAM,GAAGvC,CAAC,GAAGyB,UAAU,CAACkB,EAAxB;AACD;AACF;;AAED,QAAIL,MAAM,KAAK,CAAX,IAAgBC,MAAM,KAAK,CAA/B,EAAkC;AAChC;AACA,WAAKK,UAAL,CACE/C,IADF,EAEED,SAFF,EAGE0C,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,IAAInC,GAAG,IAAI,IAAP,IAAeD,MAAM,IAAI,IAA7B,EAAmC;AACxC,UAAM;AACJ+C,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,UAaFxD,OAbJ,CADwC,CAexC;AACA;;AACA,UAAI,CAAC,KAAKqB,mBAAV,EAA+B;AAC7B,YACEM,QAAQ,KAAK,IAAb,IACAA,QAAQ,GAAGkB,mBADX,IAEA9C,GAAG,IAAI8C,mBAHT,EAIE;AACA;AACA9C,UAAAA,GAAG,GAAG8C,mBAAN;AACA,eAAKxB,mBAAL,GAA2B,IAA3B;AACD,SARD,MAQO,IACLM,QAAQ,KAAK,IAAb,IACAA,QAAQ,IAAIuB,QAAQ,GAAGJ,sBADvB,IAEA/C,GAAG,GAAGmD,QAAQ,GAAGJ,sBAHZ,EAIL;AACA;AACA/C,UAAAA,GAAG,GAAGmD,QAAQ,GAAGJ,sBAAX,GAAoC,CAA1C;AACA,eAAKzB,mBAAL,GAA2B,IAA3B;AACD;;AAED,YACEO,WAAW,KAAK,IAAhB,IACAA,WAAW,GAAGmB,uBADd,IAEAjD,MAAM,IAAIiD,uBAHZ,EAIE;AACA;AACAjD,UAAAA,MAAM,GAAGiD,uBAAT;AACA,eAAK1B,mBAAL,GAA2B,IAA3B;AACD,SARD,MAQO,IACLO,WAAW,KAAK,IAAhB,IACAA,WAAW,IAAIqB,WAAW,GAAGD,wBAD7B,IAEAlD,MAAM,GAAGmD,WAAW,GAAGD,wBAHlB,EAIL;AACA;AACAlD,UAAAA,MAAM,GAAGmD,WAAW,GAAGD,wBAAd,GAAyC,CAAlD;AACA,eAAK3B,mBAAL,GAA2B,IAA3B;AACD;AACF,OArDuC,CAuDxC;;;AACA,UACEM,QAAQ,KAAK,IAAb,IACA,CAACtC,SAAS,CAACoE,aAAV,CAAwB9B,QAAxB,EAAkC3B,OAAlC,CADD,IAEAX,SAAS,CAACoE,aAAV,CAAwB1D,GAAxB,EAA6BC,OAA7B,CAHF,EAIE;AACA;AACA,YAAI2B,QAAQ,GAAG5B,GAAX,IAAkBA,GAAG,GAAGgC,GAA5B,EAAiC;AAC/BhC,UAAAA,GAAG,GAAGsD,UAAU,GAAG,CAAnB;AACD,SAFD,MAEO,IAAI1B,QAAQ,GAAG5B,GAAX,IAAkBA,GAAG,GAAGoD,MAA5B,EAAoC;AACzCpD,UAAAA,GAAG,GAAGuD,aAAa,GAAG,CAAtB;AACD;AACF;;AACD,UACE1B,WAAW,KAAK,IAAhB,IACA,CAACvC,SAAS,CAACqE,gBAAV,CAA2B9B,WAA3B,EAAwC5B,OAAxC,CADD,IAEAX,SAAS,CAACqE,gBAAV,CAA2B5D,MAA3B,EAAmCE,OAAnC,CAHF,EAIE;AACA,YAAI4B,WAAW,GAAG9B,MAAd,IAAwBA,MAAM,GAAG+B,IAArC,EAA2C;AACzC/B,UAAAA,MAAM,GAAGyD,WAAW,GAAG,CAAvB;AACD,SAFD,MAEO,IAAI3B,WAAW,GAAG9B,MAAd,IAAwBA,MAAM,GAAGsD,KAArC,EAA4C;AACjDtD,UAAAA,MAAM,GAAG0D,YAAY,GAAG,CAAxB;AACD;AACF;;AACD9D,MAAAA,IAAI,CAACyB,oBAAL,CAA0BrB,MAA1B,EAAkCC,GAAlC,EAAuC,IAAvC,EAA6C,IAA7C;AACD;;AACD,WAAO,IAAP;AACD;;AAED4D,EAAAA,IAAI,CAAClE,SAAD,EAAuBC,IAAvB,EAAuD;AACzD,QAAI,KAAK0B,UAAL,KAAoBK,SAAxB,EAAmC;AACjC,WAAKL,UAAL,GAAkBK,SAAlB;AACA,WAAKH,UAAL,GAAkBG,SAAlB;AACA,WAAKC,SAAL;AACAhC,MAAAA,IAAI,CAACkE,eAAL;AACD;;AAED,WAAO,KAAP;AACD;;AAEDC,EAAAA,aAAa,CACXnE,IADW,EAEXD,SAFW,EAGX0C,MAHW,EAIXC,MAJW,EAKL;AACN,QAAM;AAAErC,MAAAA,GAAF;AAAOD,MAAAA;AAAP,QAAkBL,SAAxB;AACA,QAAM;AAAEO,MAAAA;AAAF,QAAcN,IAApB;AACA,QAAI,CAACM,OAAL,EAAc,MAAM,IAAIC,KAAJ,CAAU,iBAAV,CAAN;AAEd,QAAM;AAAE6D,MAAAA,eAAF;AAAmBC,MAAAA;AAAnB,QAA0CrE,IAAI,CAACsE,KAArD;;AACA,QAAIF,eAAe,IAAI,IAAnB,IAA2BC,kBAAkB,IAAI,IAArD,EAA2D;AACzD,YAAM,IAAI9D,KAAJ,CAAU,mBAAV,CAAN;AACD;;AAED,QAAM;AAAEiD,MAAAA,QAAF;AAAYD,MAAAA;AAAZ,QAA4BjD,OAAlC;AACA,QAAMiE,IAAI,GAAG9B,MAAM,GAAG,CAAT,IAAcrC,MAAM,IAAI,IAAxB,GAA+BA,MAA/B,GAAwC,CAArD;AACA,QAAMM,IAAI,GAAG+B,MAAM,GAAG,CAAT,IAAcrC,MAAM,IAAI,IAAxB,GAA+BA,MAA/B,GAAwCmD,WAAW,GAAG,CAAnE;AACA,QAAMiB,IAAI,GAAG9B,MAAM,GAAG,CAAT,IAAcrC,GAAG,IAAI,IAArB,GAA4BA,GAA5B,GAAkC,CAA/C;AACA,QAAMM,IAAI,GAAG+B,MAAM,GAAG,CAAT,IAAcrC,GAAG,IAAI,IAArB,GAA4BA,GAA5B,GAAkCmD,QAAQ,GAAG,CAA1D;AACAxD,IAAAA,IAAI,CAACyB,oBAAL,CACEuB,IAAI,CAACyB,GAAL,CAASzB,IAAI,CAAC0B,GAAL,CAASH,IAAT,EAAeF,kBAAkB,GAAG5B,MAApC,CAAT,EAAsD/B,IAAtD,CADF,EAEEsC,IAAI,CAACyB,GAAL,CAASzB,IAAI,CAAC0B,GAAL,CAASF,IAAT,EAAeJ,eAAe,GAAG1B,MAAjC,CAAT,EAAmD/B,IAAnD,CAFF,EAGE,IAHF;AAKA,SAAKgE,eAAL,GAAuBC,IAAI,CAACC,GAAL,EAAvB;AACD;;AAED9B,EAAAA,UAAU,CACR/C,IADQ,EAERD,SAFQ,EAGR0C,MAHQ,EAIRC,MAJQ,EAKF;AACN,SAAKV,SAAL;AAEA,QAAM8C,OAAO,GACX,KAAKH,eAAL,IAAwB,IAAxB,GACI/E,mBAAmB,GACnBoD,IAAI,CAACyB,GAAL,CAAS7E,mBAAT,EAA8BgF,IAAI,CAACC,GAAL,KAAa,KAAKF,eAAhD,CAFJ,GAGI,CAJN;AAKA,SAAKI,KAAL,GAAaC,UAAU,CAAC,MAAM;AAC5B,WAAKb,aAAL,CAAmBnE,IAAnB,EAAyBD,SAAzB,EAAoC0C,MAApC,EAA4CC,MAA5C;AACA,WAAKK,UAAL,CAAgB/C,IAAhB,EAAsBD,SAAtB,EAAiC0C,MAAjC,EAAyCC,MAAzC;AACD,KAHsB,EAGpBoC,OAHoB,CAAvB;AAID;;AAED9C,EAAAA,SAAS,GAAS;AAChB,QAAI,KAAK+C,KAAL,KAAehD,SAAnB,EAA8B;AAC5BkD,MAAAA,YAAY,CAAC,KAAKF,KAAN,CAAZ;AACA,WAAKA,KAAL,GAAahD,SAAb;AACD;AACF;;AAxQsD;;AA2QzD,eAAelC,yBAAf","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
- export default GridSeparatorMouseHandler;
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: any;
8
- resizingItems: any[];
9
- hiddenItems: any[];
10
- targetSizes: Map<any, any>;
11
- dragOffset: number;
12
- hiddenCursor: string;
13
- defaultCursor: string;
14
- pointProperty: string;
15
- userSizesProperty: string;
16
- visibleOffsetProperty: string;
17
- visibleSizesProperty: string;
18
- marginProperty: string;
19
- calculatedSizesProperty: string;
20
- modelIndexesProperty: string;
21
- firstIndexProperty: string;
22
- treePaddingProperty: string;
23
- getHiddenItems(itemIndex: any, metrics: any): void;
24
- getNextShownItem(itemIndex: any, metrics: any): void;
25
- setSize(metricCalculator: any, modelIndex: any, size: any): void;
26
- resetSize(metricCalculator: any, modelIndex: any): void;
27
- updateSeparator(grid: any, separatorIndex: any): void;
28
- getSeparatorIndex(gridPoint: any, grid: any, checkAllowResize?: boolean): void;
29
- updateCursor(metrics: any, itemIndex: any): void;
30
- addTargetSize(metrics: any, itemIndex: any): void;
31
- removeTargetSize(metrics: any, itemIndex: any): void;
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
- import GridMouseHandler from "../GridMouseHandler";
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.js"],"names":[],"mappings":";AAMA;;;GAGG;AACH;IAEE,mBAAqB;IAGrB,qBAAmB;IAGnB,mBAAiB;IAGjB,2BAAwB;IAExB,mBAAe;IAKf,qBAA+B;IAE/B,sBAAgC;IAEhC,sBAAgC;IAEhC,0BAAoC;IAEpC,8BAAwC;IAExC,6BAAuC;IAEvC,uBAAiC;IAEjC,gCAA0C;IAE1C,6BAAuC;IAEvC,2BAAqC;IAErC,4BAAsC;IAEtC,mDAEC;IAED,qDAEC;IAGD,iEAEC;IAGD,wDAEC;IAGD,sDAEC;IAGD,+EAEC;IAoKD,iDAQC;IAED,kDAYC;IAED,qDAIC;CACF"}
1
+ {"version":3,"file":"GridSeparatorMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mouse-handlers/GridSeparatorMouseHandler.ts"],"names":[],"mappings":"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"}