@deephaven/grid 0.7.3-beta.8 → 0.8.2-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +371 -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 -41
  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 +6 -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 -9
  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 -10
  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 +24 -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 +32 -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 +11 -12
  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 +40 -38
  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 +13 -12
  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 +22 -20
  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 +45 -86
  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 +40 -38
  145. package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
  146. package/dist/tsconfig.tsbuildinfo +1 -1
  147. package/package.json +3 -3
@@ -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,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
8
8
  constructor() {
9
9
  super(...arguments);
10
10
 
11
- _defineProperty(this, "startPoint", null);
12
-
13
11
  _defineProperty(this, "hasExtendedFloating", false);
14
-
15
- _defineProperty(this, "timer", null);
16
-
17
- _defineProperty(this, "lastTriggerTime", null);
18
-
19
- _defineProperty(this, "dragBounds", null);
20
12
  }
21
13
 
22
14
  onDown(gridPoint, grid, event) {
@@ -29,6 +21,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
29
21
  var {
30
22
  metrics
31
23
  } = grid;
24
+ if (!metrics) throw new Error('metrics not set');
32
25
  var {
33
26
  gridX,
34
27
  gridY,
@@ -71,7 +64,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
71
64
  }
72
65
 
73
66
  onDrag(gridPoint, grid) {
74
- if (this.startPoint === null) {
67
+ if (this.startPoint === undefined) {
75
68
  return false;
76
69
  }
77
70
 
@@ -91,6 +84,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
91
84
  var {
92
85
  metrics
93
86
  } = grid;
87
+ if (!metrics) throw new Error('metrics not set');
94
88
  var {
95
89
  left,
96
90
  lastLeft,
@@ -141,21 +135,21 @@ class GridSelectionMouseHandler extends GridMouseHandler {
141
135
  // So when that happens, just adjust the point to be past the new boundary
142
136
 
143
137
  if (!this.hasExtendedFloating) {
144
- if (startRow < floatingTopRowCount && row >= floatingTopRowCount) {
138
+ if (startRow !== null && startRow < floatingTopRowCount && row >= floatingTopRowCount) {
145
139
  // Extending from floating top into the view
146
140
  row = floatingTopRowCount;
147
141
  this.hasExtendedFloating = true;
148
- } else if (startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
142
+ } else if (startRow !== null && startRow >= rowCount - floatingBottomRowCount && row < rowCount - floatingBottomRowCount) {
149
143
  // Extending from floating bottom into the view
150
144
  row = rowCount - floatingBottomRowCount - 1;
151
145
  this.hasExtendedFloating = true;
152
146
  }
153
147
 
154
- if (startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
148
+ if (startColumn !== null && startColumn < floatingLeftColumnCount && column >= floatingLeftColumnCount) {
155
149
  // Extending from floating left into the view
156
150
  column = floatingLeftColumnCount;
157
151
  this.hasExtendedFloating = true;
158
- } else if (startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
152
+ } else if (startColumn !== null && startColumn >= columnCount - floatingRightColumnCount && column < columnCount - floatingRightColumnCount) {
159
153
  // Extending from floating right into the view
160
154
  column = columnCount - floatingRightColumnCount - 1;
161
155
  this.hasExtendedFloating = true;
@@ -163,7 +157,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
163
157
  } // When a selection is dragging from within the main area to over a floating area, scroll.
164
158
 
165
159
 
166
- if (!GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
160
+ if (startRow !== null && !GridUtils.isFloatingRow(startRow, metrics) && GridUtils.isFloatingRow(row, metrics)) {
167
161
  // Need to scroll
168
162
  if (startRow > row && row < top) {
169
163
  row = topVisible - 1;
@@ -172,7 +166,7 @@ class GridSelectionMouseHandler extends GridMouseHandler {
172
166
  }
173
167
  }
174
168
 
175
- if (!GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
169
+ if (startColumn !== null && !GridUtils.isFloatingColumn(startColumn, metrics) && GridUtils.isFloatingColumn(column, metrics)) {
176
170
  if (startColumn > column && column < left) {
177
171
  column = leftVisible - 1;
178
172
  } else if (startColumn < column && column > right) {
@@ -187,9 +181,9 @@ class GridSelectionMouseHandler extends GridMouseHandler {
187
181
  }
188
182
 
189
183
  onUp(gridPoint, grid) {
190
- if (this.startPoint !== null) {
191
- this.startPoint = null;
192
- this.dragBounds = null;
184
+ if (this.startPoint !== undefined) {
185
+ this.startPoint = undefined;
186
+ this.dragBounds = undefined;
193
187
  this.stopTimer();
194
188
  grid.commitSelection();
195
189
  }
@@ -205,10 +199,16 @@ class GridSelectionMouseHandler extends GridMouseHandler {
205
199
  var {
206
200
  metrics
207
201
  } = grid;
202
+ if (!metrics) throw new Error('metrics not set');
208
203
  var {
209
204
  selectionEndRow,
210
205
  selectionEndColumn
211
206
  } = grid.state;
207
+
208
+ if (selectionEndRow == null || selectionEndColumn == null) {
209
+ throw new Error('selection not set');
210
+ }
211
+
212
212
  var {
213
213
  rowCount,
214
214
  columnCount
@@ -231,8 +231,10 @@ class GridSelectionMouseHandler extends GridMouseHandler {
231
231
  }
232
232
 
233
233
  stopTimer() {
234
- clearTimeout(this.timer);
235
- this.timer = null;
234
+ if (this.timer !== undefined) {
235
+ clearTimeout(this.timer);
236
+ this.timer = undefined;
237
+ }
236
238
  }
237
239
 
238
240
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mouse-handlers/GridSelectionMouseHandler.js"],"names":["GridMouseHandler","GridUtils","DEFAULT_INTERVAL_MS","GridSelectionMouseHandler","onDown","gridPoint","grid","event","x","y","column","row","metrics","gridX","gridY","maxX","maxY","gridMouseX","gridMouseY","isModifierKey","isModifierKeyDown","isShiftKey","shiftKey","trimSelectedRanges","clearSelectedRanges","theme","getTheme","autoSelectRow","autoSelectColumn","focus","moveCursorToPosition","startPoint","hasExtendedFloating","dragBounds","getScrollDragBounds","onDrag","stopTimer","startRow","startColumn","left","lastLeft","top","lastTop","columnWidth","rowHeight","deltaX","deltaY","x1","x2","y1","y2","startTimer","Math","ceil","floor","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","columnCount","rowCount","bottom","right","topVisible","bottomVisible","leftVisible","rightVisible","isFloatingRow","isFloatingColumn","onUp","commitSelection","moveSelection","selectionEndRow","selectionEndColumn","state","minX","minY","min","max","lastTriggerTime","Date","now","timeout","timer","setTimeout","clearTimeout"],"mappings":";;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
- 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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"}