@deephaven/iris-grid 0.13.3-treemap.2 → 0.14.1-beta.6

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 (187) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +69 -63
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js +79 -73
  4. package/dist/AdvancedFilterCreator.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.d.ts +45 -45
  6. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.js +32 -36
  8. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +47 -52
  10. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  11. package/dist/AdvancedFilterCreatorSelectValueList.js +24 -39
  12. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  13. package/dist/ColumnStatistics.d.ts +34 -22
  14. package/dist/ColumnStatistics.d.ts.map +1 -1
  15. package/dist/ColumnStatistics.js +8 -12
  16. package/dist/ColumnStatistics.js.map +1 -1
  17. package/dist/CommonTypes.d.ts +58 -0
  18. package/dist/CommonTypes.d.ts.map +1 -0
  19. package/dist/CommonTypes.js +2 -0
  20. package/dist/CommonTypes.js.map +1 -0
  21. package/dist/CrossColumnSearch.d.ts +26 -24
  22. package/dist/CrossColumnSearch.d.ts.map +1 -1
  23. package/dist/CrossColumnSearch.js +9 -13
  24. package/dist/CrossColumnSearch.js.map +1 -1
  25. package/dist/FilterInputField.d.ts +48 -51
  26. package/dist/FilterInputField.d.ts.map +1 -1
  27. package/dist/FilterInputField.js +30 -27
  28. package/dist/FilterInputField.js.map +1 -1
  29. package/dist/IrisGrid.d.ts +410 -453
  30. package/dist/IrisGrid.d.ts.map +1 -1
  31. package/dist/IrisGrid.js +590 -526
  32. package/dist/IrisGrid.js.map +1 -1
  33. package/dist/IrisGridCellOverflowModal.d.ts +1 -1
  34. package/dist/IrisGridCellOverflowModal.d.ts.map +1 -1
  35. package/dist/IrisGridCellOverflowModal.js +1 -4
  36. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  37. package/dist/IrisGridCopyHandler.d.ts +52 -46
  38. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  39. package/dist/IrisGridCopyHandler.js +22 -38
  40. package/dist/IrisGridCopyHandler.js.map +1 -1
  41. package/dist/IrisGridMetricCalculator.d.ts +5 -4
  42. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  43. package/dist/IrisGridMetricCalculator.js +5 -1
  44. package/dist/IrisGridMetricCalculator.js.map +1 -1
  45. package/dist/IrisGridModel.d.ts +37 -35
  46. package/dist/IrisGridModel.d.ts.map +1 -1
  47. package/dist/IrisGridModel.js +19 -3
  48. package/dist/IrisGridModel.js.map +1 -1
  49. package/dist/IrisGridModelFactory.d.ts +7 -5
  50. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  51. package/dist/IrisGridModelFactory.js +5 -5
  52. package/dist/IrisGridModelFactory.js.map +1 -1
  53. package/dist/IrisGridModelUpdater.d.ts +13 -11
  54. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  55. package/dist/IrisGridModelUpdater.js.map +1 -1
  56. package/dist/IrisGridPartitionSelector.d.ts +38 -39
  57. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  58. package/dist/IrisGridPartitionSelector.js +18 -24
  59. package/dist/IrisGridPartitionSelector.js.map +1 -1
  60. package/dist/IrisGridProxyModel.d.ts +111 -32
  61. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  62. package/dist/IrisGridProxyModel.js +212 -170
  63. package/dist/IrisGridProxyModel.js.map +1 -1
  64. package/dist/IrisGridRenderer.d.ts +59 -31
  65. package/dist/IrisGridRenderer.d.ts.map +1 -1
  66. package/dist/IrisGridRenderer.js +92 -46
  67. package/dist/IrisGridRenderer.js.map +1 -1
  68. package/dist/IrisGridTableModel.d.ts +48 -149
  69. package/dist/IrisGridTableModel.d.ts.map +1 -1
  70. package/dist/IrisGridTableModel.js +58 -1385
  71. package/dist/IrisGridTableModel.js.map +1 -1
  72. package/dist/IrisGridTableModelTemplate.d.ts +218 -0
  73. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -0
  74. package/dist/IrisGridTableModelTemplate.js +1624 -0
  75. package/dist/IrisGridTableModelTemplate.js.map +1 -0
  76. package/dist/IrisGridTestUtils.d.ts +18 -14
  77. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  78. package/dist/IrisGridTestUtils.js +29 -1
  79. package/dist/IrisGridTestUtils.js.map +1 -1
  80. package/dist/IrisGridTheme.d.ts +35 -3
  81. package/dist/IrisGridTheme.d.ts.map +1 -1
  82. package/dist/IrisGridTheme.js.map +1 -1
  83. package/dist/IrisGridTreeTableModel.d.ts +26 -7
  84. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  85. package/dist/IrisGridTreeTableModel.js +24 -14
  86. package/dist/IrisGridTreeTableModel.js.map +1 -1
  87. package/dist/IrisGridUtils.d.ts +257 -162
  88. package/dist/IrisGridUtils.d.ts.map +1 -1
  89. package/dist/IrisGridUtils.js +132 -95
  90. package/dist/IrisGridUtils.js.map +1 -1
  91. package/dist/MissingKeyError.d.ts +5 -3
  92. package/dist/MissingKeyError.d.ts.map +1 -1
  93. package/dist/MissingKeyError.js.map +1 -1
  94. package/dist/PartitionSelectorSearch.d.ts +61 -40
  95. package/dist/PartitionSelectorSearch.d.ts.map +1 -1
  96. package/dist/PartitionSelectorSearch.js +25 -15
  97. package/dist/PartitionSelectorSearch.js.map +1 -1
  98. package/dist/PendingDataBottomBar.d.ts +3 -6
  99. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  100. package/dist/PendingDataBottomBar.js.map +1 -1
  101. package/dist/TableViewportUpdater.d.ts +39 -55
  102. package/dist/TableViewportUpdater.d.ts.map +1 -1
  103. package/dist/TableViewportUpdater.js +42 -64
  104. package/dist/TableViewportUpdater.js.map +1 -1
  105. package/dist/TreeTableViewportUpdater.d.ts +29 -37
  106. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  107. package/dist/TreeTableViewportUpdater.js +39 -50
  108. package/dist/TreeTableViewportUpdater.js.map +1 -1
  109. package/dist/index.d.ts +9 -0
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +9 -0
  112. package/dist/index.js.map +1 -1
  113. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
  114. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  115. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts +1 -1
  116. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts.map +1 -1
  117. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +2 -0
  118. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  119. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts +2 -2
  120. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
  121. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +32 -14
  122. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  123. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +41 -130
  124. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  125. package/dist/mousehandlers/IrisGridContextMenuHandler.js +426 -317
  126. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  127. package/dist/mousehandlers/IrisGridFilterMouseHandler.d.ts.map +1 -1
  128. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +2 -2
  129. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  130. package/dist/mousehandlers/IrisGridSortMouseHandler.js +1 -1
  131. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  132. package/dist/mousehandlers/PendingMouseHandler.d.ts +8 -4
  133. package/dist/mousehandlers/PendingMouseHandler.d.ts.map +1 -1
  134. package/dist/mousehandlers/PendingMouseHandler.js +4 -5
  135. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  136. package/dist/sidebar/ChartBuilder.d.ts +48 -33
  137. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  138. package/dist/sidebar/ChartBuilder.js +28 -27
  139. package/dist/sidebar/ChartBuilder.js.map +1 -1
  140. package/dist/sidebar/CustomColumnBuilder.d.ts +51 -41
  141. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  142. package/dist/sidebar/CustomColumnBuilder.js +22 -18
  143. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  144. package/dist/sidebar/CustomColumnInput.d.ts +26 -36
  145. package/dist/sidebar/CustomColumnInput.d.ts.map +1 -1
  146. package/dist/sidebar/CustomColumnInput.js +11 -20
  147. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  148. package/dist/sidebar/InputEditor.d.ts +34 -35
  149. package/dist/sidebar/InputEditor.d.ts.map +1 -1
  150. package/dist/sidebar/InputEditor.js +43 -24
  151. package/dist/sidebar/InputEditor.js.map +1 -1
  152. package/dist/sidebar/RollupRows.d.ts +67 -52
  153. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  154. package/dist/sidebar/RollupRows.js +51 -53
  155. package/dist/sidebar/RollupRows.js.map +1 -1
  156. package/dist/sidebar/SelectDistinctBuilder.d.ts +27 -21
  157. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  158. package/dist/sidebar/SelectDistinctBuilder.js +6 -10
  159. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  160. package/dist/sidebar/TableCsvExporter.d.ts +42 -39
  161. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  162. package/dist/sidebar/TableCsvExporter.js +12 -20
  163. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  164. package/dist/sidebar/TableSaver.d.ts +59 -60
  165. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  166. package/dist/sidebar/TableSaver.js +154 -68
  167. package/dist/sidebar/TableSaver.js.map +1 -1
  168. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +56 -45
  169. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  170. package/dist/sidebar/VisibilityOrderingBuilder.js +34 -29
  171. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  172. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  173. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  174. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +2 -1
  175. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  176. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  177. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +6 -5
  178. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  179. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +5 -0
  180. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  181. package/dist/sidebar/icons/index.d.ts +7 -7
  182. package/dist/sidebar/icons/index.d.ts.map +1 -1
  183. package/dist/sidebar/icons/index.js.map +1 -1
  184. package/dist/sidebar/index.d.ts +12 -12
  185. package/dist/sidebar/index.d.ts.map +1 -1
  186. package/dist/sidebar/index.js.map +1 -1
  187. package/package.json +18 -17
@@ -1,21 +1,53 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
2
 
3
3
  import { PureComponent } from 'react';
4
- import PropTypes from 'prop-types';
5
4
  import throttle from 'lodash.throttle';
6
5
  import dh from '@deephaven/jsapi-shim';
7
6
  import Log from '@deephaven/log';
8
7
  var log = Log.module('TreeTableViewportUpdater');
9
8
  var UPDATE_THROTTLE = 150;
9
+
10
10
  /**
11
11
  * Updates the viewport of a TreeTable for use in a scroll pane.
12
12
  * Automatically throttles the viewport requests and buffers above and below.
13
13
  */
14
-
15
14
  class TreeTableViewportUpdater extends PureComponent {
16
15
  constructor(props) {
17
16
  super(props);
18
- this.updateViewport = throttle(this.updateViewport.bind(this), UPDATE_THROTTLE);
17
+
18
+ _defineProperty(this, "listenerCleanup", void 0);
19
+
20
+ _defineProperty(this, "updateViewport", throttle((top, bottom) => {
21
+ if (bottom < top) {
22
+ log.error('Invalid viewport', top, bottom);
23
+ return;
24
+ }
25
+
26
+ if (top === 0 && bottom === 0) {
27
+ log.debug2('Ignoring 0-0 viewport');
28
+ return;
29
+ }
30
+
31
+ var {
32
+ table,
33
+ updateInterval
34
+ } = this.props;
35
+ var viewSize = bottom - top;
36
+ var viewportTop = Math.max(0, top - viewSize * 3);
37
+ var viewportBottom = bottom + viewSize * 3 + 1;
38
+ log.debug2('Setting Viewport Top:', viewportTop, 'Bottom:', viewportBottom, table);
39
+
40
+ if (!this.listenerCleanup) {
41
+ var {
42
+ onViewportUpdate
43
+ } = this.props;
44
+ this.listenerCleanup = table.addEventListener(dh.TreeTable.EVENT_UPDATED, onViewportUpdate);
45
+ }
46
+
47
+ table.setViewport(viewportTop, viewportBottom, undefined, updateInterval);
48
+ }, UPDATE_THROTTLE));
49
+
50
+ this.updateViewport = this.updateViewport.bind(this);
19
51
  this.listenerCleanup = null;
20
52
  }
21
53
 
@@ -63,36 +95,6 @@ class TreeTableViewportUpdater extends PureComponent {
63
95
  }
64
96
  }
65
97
 
66
- updateViewport(top, bottom) {
67
- if (bottom < top) {
68
- log.error('Invalid viewport', top, bottom);
69
- return;
70
- }
71
-
72
- if (top === 0 && bottom === 0) {
73
- log.debug2('Ignoring 0-0 viewport');
74
- return;
75
- }
76
-
77
- var {
78
- table,
79
- updateInterval
80
- } = this.props;
81
- var viewSize = bottom - top;
82
- var viewportTop = Math.max(0, top - viewSize * 3);
83
- var viewportBottom = bottom + viewSize * 3 + 1;
84
- log.debug2('Setting Viewport Top:', viewportTop, 'Bottom:', viewportBottom, table);
85
-
86
- if (!this.listenerCleanup) {
87
- var {
88
- onViewportUpdate
89
- } = this.props;
90
- this.listenerCleanup = table.addEventListener(dh.TreeTable.EVENT_UPDATED, onViewportUpdate);
91
- }
92
-
93
- table.setViewport(viewportTop, viewportBottom, null, updateInterval);
94
- }
95
-
96
98
  render() {
97
99
  return null;
98
100
  }
@@ -101,27 +103,14 @@ class TreeTableViewportUpdater extends PureComponent {
101
103
 
102
104
  _defineProperty(TreeTableViewportUpdater, "UPDATE_INTERVAL", 1000);
103
105
 
104
- TreeTableViewportUpdater.propTypes = {
105
- table: PropTypes.shape({
106
- addEventListener: PropTypes.func.isRequired,
107
- applyFilter: PropTypes.func.isRequired,
108
- applySort: PropTypes.func.isRequired,
109
- setViewport: PropTypes.func.isRequired
110
- }).isRequired,
111
- top: PropTypes.number,
112
- bottom: PropTypes.number,
113
- filters: PropTypes.arrayOf(PropTypes.shape({})),
114
- sorts: PropTypes.arrayOf(PropTypes.shape({})),
115
- updateInterval: PropTypes.number,
116
- onViewportUpdate: PropTypes.func
117
- };
118
- TreeTableViewportUpdater.defaultProps = {
106
+ _defineProperty(TreeTableViewportUpdater, "defaultProps", {
119
107
  top: 0,
120
108
  bottom: 0,
121
- onViewportUpdate: () => {},
109
+ onViewportUpdate: () => undefined,
122
110
  filters: [],
123
111
  sorts: [],
124
112
  updateInterval: TreeTableViewportUpdater.UPDATE_INTERVAL
125
- };
113
+ });
114
+
126
115
  export default TreeTableViewportUpdater;
127
116
  //# sourceMappingURL=TreeTableViewportUpdater.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/TreeTableViewportUpdater.jsx"],"names":["PureComponent","PropTypes","throttle","dh","Log","log","module","UPDATE_THROTTLE","TreeTableViewportUpdater","constructor","props","updateViewport","bind","listenerCleanup","componentDidMount","top","bottom","table","filters","sorts","debug","applyFilter","applySort","componentDidUpdate","prevProps","componentWillUnmount","cancel","error","debug2","updateInterval","viewSize","viewportTop","Math","max","viewportBottom","onViewportUpdate","addEventListener","TreeTable","EVENT_UPDATED","setViewport","render","propTypes","shape","func","isRequired","number","arrayOf","defaultProps","UPDATE_INTERVAL"],"mappings":";;AAAA,SAASA,aAAT,QAA8B,OAA9B;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,iBAArB;AACA,OAAOC,EAAP,MAAe,uBAAf;AACA,OAAOC,GAAP,MAAgB,gBAAhB;AAEA,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAJ,CAAW,0BAAX,CAAZ;AAEA,IAAMC,eAAe,GAAG,GAAxB;AAEA;AACA;AACA;AACA;;AACA,MAAMC,wBAAN,SAAuCR,aAAvC,CAAqD;AAGnDS,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,cAAL,GAAsBT,QAAQ,CAC5B,KAAKS,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAD4B,EAE5BL,eAF4B,CAA9B;AAKA,SAAKM,eAAL,GAAuB,IAAvB;AACD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,QAAM;AAAEC,MAAAA,GAAF;AAAOC,MAAAA,MAAP;AAAeC,MAAAA,KAAf;AAAsBC,MAAAA,OAAtB;AAA+BC,MAAAA;AAA/B,QAAyC,KAAKT,KAApD;AACAL,IAAAA,GAAG,CAACe,KAAJ,CAAU,mBAAV,EAA+B,KAAKV,KAApC;AACAO,IAAAA,KAAK,CAACI,WAAN,CAAkBH,OAAlB;AACAD,IAAAA,KAAK,CAACK,SAAN,CAAgBH,KAAhB;AACA,SAAKR,cAAL,CAAoBI,GAApB,EAAyBC,MAAzB;AACD;;AAEDO,EAAAA,kBAAkB,CAACC,SAAD,EAAY;AAC5B,QAAM;AAAET,MAAAA,GAAF;AAAOC,MAAAA,MAAP;AAAeC,MAAAA,KAAf;AAAsBC,MAAAA,OAAtB;AAA+BC,MAAAA;AAA/B,QAAyC,KAAKT,KAApD;;AACA,QAAIQ,OAAO,KAAKM,SAAS,CAACN,OAA1B,EAAmC;AACjCb,MAAAA,GAAG,CAACe,KAAJ,CAAU,qBAAV,EAAiCF,OAAjC;AACAD,MAAAA,KAAK,CAACI,WAAN,CAAkBH,OAAlB;AACD;;AAED,QAAIC,KAAK,KAAKK,SAAS,CAACL,KAAxB,EAA+B;AAC7Bd,MAAAA,GAAG,CAACe,KAAJ,CAAU,mBAAV,EAA+BD,KAA/B;AACAF,MAAAA,KAAK,CAACK,SAAN,CAAgBH,KAAhB;AACD;;AAED,SAAKR,cAAL,CAAoBI,GAApB,EAAyBC,MAAzB;AACD;;AAEDS,EAAAA,oBAAoB,GAAG;AACrB,SAAKd,cAAL,CAAoBe,MAApB;;AACA,QAAI,KAAKb,eAAT,EAA0B;AACxB,WAAKA,eAAL;AACD;AACF;;AAEDF,EAAAA,cAAc,CAACI,GAAD,EAAMC,MAAN,EAAc;AAC1B,QAAIA,MAAM,GAAGD,GAAb,EAAkB;AAChBV,MAAAA,GAAG,CAACsB,KAAJ,CAAU,kBAAV,EAA8BZ,GAA9B,EAAmCC,MAAnC;AACA;AACD;;AAED,QAAID,GAAG,KAAK,CAAR,IAAaC,MAAM,KAAK,CAA5B,EAA+B;AAC7BX,MAAAA,GAAG,CAACuB,MAAJ,CAAW,uBAAX;AACA;AACD;;AAED,QAAM;AAAEX,MAAAA,KAAF;AAASY,MAAAA;AAAT,QAA4B,KAAKnB,KAAvC;AACA,QAAMoB,QAAQ,GAAGd,MAAM,GAAGD,GAA1B;AACA,QAAMgB,WAAW,GAAGC,IAAI,CAACC,GAAL,CAAS,CAAT,EAAYlB,GAAG,GAAGe,QAAQ,GAAG,CAA7B,CAApB;AACA,QAAMI,cAAc,GAAGlB,MAAM,GAAGc,QAAQ,GAAG,CAApB,GAAwB,CAA/C;AACAzB,IAAAA,GAAG,CAACuB,MAAJ,CACE,uBADF,EAEEG,WAFF,EAGE,SAHF,EAIEG,cAJF,EAKEjB,KALF;;AAQA,QAAI,CAAC,KAAKJ,eAAV,EAA2B;AACzB,UAAM;AAAEsB,QAAAA;AAAF,UAAuB,KAAKzB,KAAlC;AACA,WAAKG,eAAL,GAAuBI,KAAK,CAACmB,gBAAN,CACrBjC,EAAE,CAACkC,SAAH,CAAaC,aADQ,EAErBH,gBAFqB,CAAvB;AAID;;AAEDlB,IAAAA,KAAK,CAACsB,WAAN,CAAkBR,WAAlB,EAA+BG,cAA/B,EAA+C,IAA/C,EAAqDL,cAArD;AACD;;AAEDW,EAAAA,MAAM,GAAG;AACP,WAAO,IAAP;AACD;;AAhFkD;;gBAA/ChC,wB,qBACqB,I;;AAkF3BA,wBAAwB,CAACiC,SAAzB,GAAqC;AACnCxB,EAAAA,KAAK,EAAEhB,SAAS,CAACyC,KAAV,CAAgB;AACrBN,IAAAA,gBAAgB,EAAEnC,SAAS,CAAC0C,IAAV,CAAeC,UADZ;AAErBvB,IAAAA,WAAW,EAAEpB,SAAS,CAAC0C,IAAV,CAAeC,UAFP;AAGrBtB,IAAAA,SAAS,EAAErB,SAAS,CAAC0C,IAAV,CAAeC,UAHL;AAIrBL,IAAAA,WAAW,EAAEtC,SAAS,CAAC0C,IAAV,CAAeC;AAJP,GAAhB,EAKJA,UANgC;AAOnC7B,EAAAA,GAAG,EAAEd,SAAS,CAAC4C,MAPoB;AAQnC7B,EAAAA,MAAM,EAAEf,SAAS,CAAC4C,MARiB;AASnC3B,EAAAA,OAAO,EAAEjB,SAAS,CAAC6C,OAAV,CAAkB7C,SAAS,CAACyC,KAAV,CAAgB,EAAhB,CAAlB,CAT0B;AAUnCvB,EAAAA,KAAK,EAAElB,SAAS,CAAC6C,OAAV,CAAkB7C,SAAS,CAACyC,KAAV,CAAgB,EAAhB,CAAlB,CAV4B;AAWnCb,EAAAA,cAAc,EAAE5B,SAAS,CAAC4C,MAXS;AAYnCV,EAAAA,gBAAgB,EAAElC,SAAS,CAAC0C;AAZO,CAArC;AAeAnC,wBAAwB,CAACuC,YAAzB,GAAwC;AACtChC,EAAAA,GAAG,EAAE,CADiC;AAEtCC,EAAAA,MAAM,EAAE,CAF8B;AAGtCmB,EAAAA,gBAAgB,EAAE,MAAM,CAAE,CAHY;AAItCjB,EAAAA,OAAO,EAAE,EAJ6B;AAKtCC,EAAAA,KAAK,EAAE,EAL+B;AAMtCU,EAAAA,cAAc,EAAErB,wBAAwB,CAACwC;AANH,CAAxC;AASA,eAAexC,wBAAf","sourcesContent":["import { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport throttle from 'lodash.throttle';\nimport dh from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('TreeTableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\n/**\n * Updates the viewport of a TreeTable for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\nclass TreeTableViewportUpdater extends PureComponent {\n static UPDATE_INTERVAL = 1000;\n\n constructor(props) {\n super(props);\n\n this.updateViewport = throttle(\n this.updateViewport.bind(this),\n UPDATE_THROTTLE\n );\n\n this.listenerCleanup = null;\n }\n\n componentDidMount() {\n const { top, bottom, table, filters, sorts } = this.props;\n log.debug('componentDidMount', this.props);\n table.applyFilter(filters);\n table.applySort(sorts);\n this.updateViewport(top, bottom);\n }\n\n componentDidUpdate(prevProps) {\n const { top, bottom, table, filters, sorts } = this.props;\n if (filters !== prevProps.filters) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (sorts !== prevProps.sorts) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n this.updateViewport(top, bottom);\n }\n\n componentWillUnmount() {\n this.updateViewport.cancel();\n if (this.listenerCleanup) {\n this.listenerCleanup();\n }\n }\n\n updateViewport(top, bottom) {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { table, updateInterval } = this.props;\n const viewSize = bottom - top;\n const viewportTop = Math.max(0, top - viewSize * 3);\n const viewportBottom = bottom + viewSize * 3 + 1;\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n table\n );\n\n if (!this.listenerCleanup) {\n const { onViewportUpdate } = this.props;\n this.listenerCleanup = table.addEventListener(\n dh.TreeTable.EVENT_UPDATED,\n onViewportUpdate\n );\n }\n\n table.setViewport(viewportTop, viewportBottom, null, updateInterval);\n }\n\n render() {\n return null;\n }\n}\n\nTreeTableViewportUpdater.propTypes = {\n table: PropTypes.shape({\n addEventListener: PropTypes.func.isRequired,\n applyFilter: PropTypes.func.isRequired,\n applySort: PropTypes.func.isRequired,\n setViewport: PropTypes.func.isRequired,\n }).isRequired,\n top: PropTypes.number,\n bottom: PropTypes.number,\n filters: PropTypes.arrayOf(PropTypes.shape({})),\n sorts: PropTypes.arrayOf(PropTypes.shape({})),\n updateInterval: PropTypes.number,\n onViewportUpdate: PropTypes.func,\n};\n\nTreeTableViewportUpdater.defaultProps = {\n top: 0,\n bottom: 0,\n onViewportUpdate: () => {},\n filters: [],\n sorts: [],\n updateInterval: TreeTableViewportUpdater.UPDATE_INTERVAL,\n};\n\nexport default TreeTableViewportUpdater;\n"],"file":"TreeTableViewportUpdater.js"}
1
+ {"version":3,"sources":["../src/TreeTableViewportUpdater.tsx"],"names":["PureComponent","throttle","dh","Log","log","module","UPDATE_THROTTLE","TreeTableViewportUpdater","constructor","props","top","bottom","error","debug2","table","updateInterval","viewSize","viewportTop","Math","max","viewportBottom","listenerCleanup","onViewportUpdate","addEventListener","TreeTable","EVENT_UPDATED","setViewport","undefined","updateViewport","bind","componentDidMount","filters","sorts","debug","applyFilter","applySort","componentDidUpdate","prevProps","componentWillUnmount","cancel","render","UPDATE_INTERVAL"],"mappings":"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","sourcesContent":["import { PureComponent } from 'react';\nimport throttle from 'lodash.throttle';\nimport dh, {\n EventListener,\n FilterCondition,\n RemoverFn,\n Sort,\n Table,\n} from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('TreeTableViewportUpdater');\n\nconst UPDATE_THROTTLE = 150;\n\ninterface TreeTableViewportUpdaterProps {\n table: Table;\n top: number;\n bottom: number;\n filters: FilterCondition[];\n sorts: Sort[];\n updateInterval: number;\n onViewportUpdate: EventListener;\n}\n\n/**\n * Updates the viewport of a TreeTable for use in a scroll pane.\n * Automatically throttles the viewport requests and buffers above and below.\n */\nclass TreeTableViewportUpdater extends PureComponent<\n TreeTableViewportUpdaterProps,\n Record<string, never>\n> {\n static UPDATE_INTERVAL = 1000;\n\n static defaultProps = {\n top: 0,\n bottom: 0,\n onViewportUpdate: (): void => undefined,\n filters: [],\n sorts: [],\n updateInterval: TreeTableViewportUpdater.UPDATE_INTERVAL,\n };\n\n constructor(props: TreeTableViewportUpdaterProps) {\n super(props);\n this.updateViewport = this.updateViewport.bind(this);\n\n this.listenerCleanup = null;\n }\n\n componentDidMount(): void {\n const { top, bottom, table, filters, sorts } = this.props;\n log.debug('componentDidMount', this.props);\n table.applyFilter(filters);\n table.applySort(sorts);\n this.updateViewport(top, bottom);\n }\n\n componentDidUpdate(prevProps: TreeTableViewportUpdaterProps): void {\n const { top, bottom, table, filters, sorts } = this.props;\n if (filters !== prevProps.filters) {\n log.debug('update table filter', filters);\n table.applyFilter(filters);\n }\n\n if (sorts !== prevProps.sorts) {\n log.debug('update table sort', sorts);\n table.applySort(sorts);\n }\n\n this.updateViewport(top, bottom);\n }\n\n componentWillUnmount(): void {\n this.updateViewport.cancel();\n if (this.listenerCleanup) {\n this.listenerCleanup();\n }\n }\n\n listenerCleanup: RemoverFn | null;\n\n updateViewport = throttle((top: number, bottom: number): void => {\n if (bottom < top) {\n log.error('Invalid viewport', top, bottom);\n return;\n }\n\n if (top === 0 && bottom === 0) {\n log.debug2('Ignoring 0-0 viewport');\n return;\n }\n\n const { table, updateInterval } = this.props;\n const viewSize = bottom - top;\n const viewportTop = Math.max(0, top - viewSize * 3);\n const viewportBottom = bottom + viewSize * 3 + 1;\n log.debug2(\n 'Setting Viewport Top:',\n viewportTop,\n 'Bottom:',\n viewportBottom,\n table\n );\n\n if (!this.listenerCleanup) {\n const { onViewportUpdate } = this.props;\n this.listenerCleanup = table.addEventListener(\n dh.TreeTable.EVENT_UPDATED,\n onViewportUpdate\n );\n }\n\n table.setViewport(viewportTop, viewportBottom, undefined, updateInterval);\n }, UPDATE_THROTTLE);\n\n render(): null {\n return null;\n }\n}\n\nexport default TreeTableViewportUpdater;\n"],"file":"TreeTableViewportUpdater.js"}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,21 @@
1
1
  export * from './sidebar';
2
+ export * from './AdvancedFilterCreator';
3
+ export * from './CommonTypes';
2
4
  export { default as IrisGrid } from './IrisGrid';
5
+ export * from './IrisGrid';
3
6
  export { default as SHORTCUTS } from './IrisGridShortcuts';
4
7
  export { default as IrisGridModel } from './IrisGridModel';
5
8
  export { default as IrisGridTableModel } from './IrisGridTableModel';
9
+ export * from './IrisGridTableModel';
10
+ export { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';
11
+ export { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';
12
+ export * from './IrisGridTableModelTemplate';
13
+ export * from './IrisGridTreeTableModel';
6
14
  export { default as IrisGridModelFactory } from './IrisGridModelFactory';
7
15
  export { default as IrisGridTheme } from './IrisGridTheme';
8
16
  export type { IrisGridThemeType } from './IrisGridTheme';
9
17
  export { default as IrisGridTestUtils } from './IrisGridTestUtils';
10
18
  export { default as IrisGridUtils } from './IrisGridUtils';
11
19
  export { default } from './IrisGrid';
20
+ export * from './IrisGrid';
12
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAE3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,yBAAyB,CAAC;AACxC,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,cAAc,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,20 @@
1
1
  export * from "./sidebar/index.js";
2
+ export * from "./AdvancedFilterCreator.js";
3
+ export * from "./CommonTypes.js";
2
4
  export { default as IrisGrid } from "./IrisGrid.js";
5
+ export * from "./IrisGrid.js";
3
6
  export { default as SHORTCUTS } from "./IrisGridShortcuts.js";
4
7
  export { default as IrisGridModel } from "./IrisGridModel.js";
5
8
  export { default as IrisGridTableModel } from "./IrisGridTableModel.js";
9
+ export * from "./IrisGridTableModel.js";
10
+ export { default as IrisGridTreeTableModel } from "./IrisGridTreeTableModel.js";
11
+ export { default as IrisGridTableModelTemplate } from "./IrisGridTableModelTemplate.js";
12
+ export * from "./IrisGridTableModelTemplate.js";
13
+ export * from "./IrisGridTreeTableModel.js";
6
14
  export { default as IrisGridModelFactory } from "./IrisGridModelFactory.js";
7
15
  export { default as IrisGridTheme } from "./IrisGridTheme.js";
8
16
  export { default as IrisGridTestUtils } from "./IrisGridTestUtils.js";
9
17
  export { default as IrisGridUtils } from "./IrisGridUtils.js";
10
18
  export { default } from "./IrisGrid.js";
19
+ export * from "./IrisGrid.js";
11
20
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["default","IrisGrid","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridModelFactory","IrisGridTheme","IrisGridTestUtils","IrisGridUtils"],"mappings":";SACSA,OAAO,IAAIC,Q;SACXD,OAAO,IAAIE,S;SACXF,OAAO,IAAIG,a;SACXH,OAAO,IAAII,kB;SACXJ,OAAO,IAAIK,oB;SACXL,OAAO,IAAIM,a;SAEXN,OAAO,IAAIO,iB;SACXP,OAAO,IAAIQ,a;SAEXR,O","sourcesContent":["export * from './sidebar';\nexport { default as IrisGrid } from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { default as IrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\n\nexport { default } from './IrisGrid';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["default","IrisGrid","SHORTCUTS","IrisGridModel","IrisGridTableModel","IrisGridTreeTableModel","IrisGridTableModelTemplate","IrisGridModelFactory","IrisGridTheme","IrisGridTestUtils","IrisGridUtils"],"mappings":";;;SAGSA,OAAO,IAAIC,Q;;SAEXD,OAAO,IAAIE,S;SACXF,OAAO,IAAIG,a;SACXH,OAAO,IAAII,kB;;SAEXJ,OAAO,IAAIK,sB;SACXL,OAAO,IAAIM,0B;;;SAGXN,OAAO,IAAIO,oB;SACXP,OAAO,IAAIQ,a;SAEXR,OAAO,IAAIS,iB;SACXT,OAAO,IAAIU,a;SACXV,O","sourcesContent":["export * from './sidebar';\nexport * from './AdvancedFilterCreator';\nexport * from './CommonTypes';\nexport { default as IrisGrid } from './IrisGrid';\nexport * from './IrisGrid';\nexport { default as SHORTCUTS } from './IrisGridShortcuts';\nexport { default as IrisGridModel } from './IrisGridModel';\nexport { default as IrisGridTableModel } from './IrisGridTableModel';\nexport * from './IrisGridTableModel';\nexport { default as IrisGridTreeTableModel } from './IrisGridTreeTableModel';\nexport { default as IrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nexport * from './IrisGridTableModelTemplate';\nexport * from './IrisGridTreeTableModel';\nexport { default as IrisGridModelFactory } from './IrisGridModelFactory';\nexport { default as IrisGridTheme } from './IrisGridTheme';\nexport type { IrisGridThemeType } from './IrisGridTheme';\nexport { default as IrisGridTestUtils } from './IrisGridTestUtils';\nexport { default as IrisGridUtils } from './IrisGridUtils';\nexport { default } from './IrisGrid';\nexport * from './IrisGrid';\n"],"file":"index.js"}
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridCellOverflowMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAExC;;;GAGG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,wBAAwB;IAiChC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAa5C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAM7C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAcjC,aAAa,IAAI,kBAAkB;IAKnC,OAAO,IAAI,kBAAkB;CAI9B;AAED,eAAe,gCAAgC,CAAC"}
1
+ {"version":3,"file":"IrisGridCellOverflowMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,QAAQ,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;IAC7D,OAAO,CAAC,QAAQ,CAAW;gBAEf,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,iBAAiB;IAyCzB,OAAO,CAAC,wBAAwB;IAiChC,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAa5C,OAAO,CAAC,KAAK,EAAE,SAAS,GAAG,kBAAkB;IAM7C,MAAM,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO;IAcjC,aAAa,IAAI,kBAAkB;IAKnC,OAAO,IAAI,kBAAkB;CAI9B;AAED,eAAe,gCAAgC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"mappings":"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","sourcesContent":["import {\n GridPoint,\n GridMouseHandler,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'deep-equal';\nimport type IrisGrid from '../IrisGrid';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({\n x,\n y,\n column,\n row,\n }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } = renderer.getCellOverflowButtonPosition(\n rendererState\n );\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row),\n });\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"file":"IrisGridCellOverflowMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"names":["GridMouseHandler","deepEqual","IrisGridCellOverflowMouseHandler","constructor","irisGrid","destroyColumnTooltip","setState","overflowButtonTooltipProps","setCursor","point","isHoveringOverflowButton","cursor","stopPropagation","preventDefault","getButtonPosition","x","y","column","row","renderer","grid","state","props","metrics","model","canvasContext","context","theme","getTheme","rendererState","mouseX","mouseY","left","top","width","height","getCellOverflowButtonPosition","shouldRenderOverflowButton","onMove","newProps","onWheel","onDown","showOverflowModal","overflowText","getValueForCell","onContextMenu","onLeave"],"mappings":"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","sourcesContent":["import {\n GridPoint,\n GridMouseHandler,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport deepEqual from 'deep-equal';\nimport type IrisGrid from '../IrisGrid';\nimport { IrisGridRenderState } from '../IrisGridRenderer';\n\n/**\n * Handles cursor and click action for cell overflow button\n * The button is rendered via IrisGridRenderer\n */\nclass IrisGridCellOverflowMouseHandler extends GridMouseHandler {\n private irisGrid: IrisGrid;\n\n constructor(irisGrid: IrisGrid) {\n super(850); // Needs to be before GridSelectionMouseHandler\n\n this.irisGrid = irisGrid;\n }\n\n private destroyColumnTooltip(): void {\n this.irisGrid.setState({ overflowButtonTooltipProps: null });\n }\n\n private setCursor(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n this.cursor = 'pointer';\n return { stopPropagation: false, preventDefault: false };\n }\n\n this.cursor = null;\n return false;\n }\n\n private getButtonPosition({\n x,\n y,\n column,\n row,\n }: GridPoint): {\n left: number;\n top: number;\n width: number;\n height: number;\n } | null {\n if (column == null || row == null) {\n return null;\n }\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return null;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n };\n\n const { left, top, width, height } = renderer.getCellOverflowButtonPosition(\n rendererState\n );\n if (left == null || width == null || top == null || height == null) {\n return null;\n }\n\n return { left, top, width, height };\n }\n\n private isHoveringOverflowButton(point: GridPoint): boolean {\n const { x, y } = point;\n const { left, top, width, height } = this.getButtonPosition(point) ?? {};\n if (left == null || width == null || top == null || height == null) {\n return false;\n }\n\n const { renderer, grid, state, props } = this.irisGrid;\n if (!grid) {\n return false;\n }\n const { metrics } = state;\n const { model } = props;\n const { canvasContext: context } = grid || {};\n const theme = grid.getTheme();\n const rendererState = {\n context,\n mouseX: x,\n mouseY: y,\n metrics,\n model,\n theme,\n } as IrisGridRenderState;\n\n return (\n renderer.shouldRenderOverflowButton(rendererState) &&\n x >= left &&\n x <= left + width &&\n y >= top &&\n y <= top + height\n );\n }\n\n onMove(point: GridPoint): EventHandlerResult {\n if (this.isHoveringOverflowButton(point)) {\n const { overflowButtonTooltipProps } = this.irisGrid.state;\n const newProps = this.getButtonPosition(point);\n if (!deepEqual(overflowButtonTooltipProps, newProps)) {\n this.irisGrid.setState({ overflowButtonTooltipProps: newProps });\n }\n } else {\n this.destroyColumnTooltip();\n }\n return this.setCursor(point);\n }\n\n onWheel(point: GridPoint): EventHandlerResult {\n this.destroyColumnTooltip();\n return this.onMove(point);\n }\n\n // Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown\n onDown(point: GridPoint): boolean {\n this.destroyColumnTooltip();\n const { column, row } = point;\n\n if (this.isHoveringOverflowButton(point)) {\n this.irisGrid.setState({\n showOverflowModal: true,\n overflowText: this.irisGrid.getValueForCell(column, row) as string,\n });\n }\n\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onLeave(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n}\n\nexport default IrisGridCellOverflowMouseHandler;\n"],"file":"IrisGridCellOverflowMouseHandler.js"}
@@ -1,5 +1,5 @@
1
1
  import { GridMouseHandler, GridPoint, EventHandlerResult } from '@deephaven/grid';
2
- import type { IrisGrid } from '../IrisGrid';
2
+ import { IrisGrid } from '../IrisGrid';
3
3
  /**
4
4
  * Handles interaction with tables when the Linker tool is active
5
5
  */
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridColumnSelectMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;gBACjD,QAAQ,EAAE,QAAQ;IAO9B,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,cAAc;IActB,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAqBhD,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAmBjD,OAAO,IAAI,kBAAkB;IAU7B,MAAM,IAAI,kBAAkB;IAI5B,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;CAalD;AAED,eAAe,gCAAgC,CAAC"}
1
+ {"version":3,"file":"IrisGridColumnSelectMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC;;GAEG;AACH,cAAM,gCAAiC,SAAQ,gBAAgB;gBACjD,QAAQ,EAAE,QAAQ;IAO9B,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,QAAQ;IAKhB,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,2BAA2B;IAOnC,OAAO,CAAC,cAAc;IActB,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAqBhD,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;IAmBjD,OAAO,IAAI,kBAAkB;IAU7B,MAAM,IAAI,kBAAkB;IAI5B,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;CAclD;AAED,eAAe,gCAAgC,CAAC"}
@@ -2,6 +2,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
2
2
 
3
3
  /* eslint class-methods-use-this: "off" */
4
4
  import { GridMouseHandler } from '@deephaven/grid';
5
+ import { assertNotNull } from '@deephaven/utils';
5
6
 
6
7
  /**
7
8
  * Handles interaction with tables when the Linker tool is active
@@ -147,6 +148,7 @@ class IrisGridColumnSelectMouseHandler extends GridMouseHandler {
147
148
  column
148
149
  } = gridPoint;
149
150
  var tableColumn = this.getTableColumn(column);
151
+ assertNotNull(tableColumn);
150
152
 
151
153
  if (this.isValidColumn(tableColumn)) {
152
154
  this.irisGrid.selectColumn(tableColumn);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"names":["GridMouseHandler","IrisGridColumnSelectMouseHandler","constructor","irisGrid","cursor","isActive","isSelectingColumn","props","isValidColumn","tableColumn","columnSelectionValidator","updateColumnSelectionStatus","getTableColumn","columnIndex","model","modelColumn","getModelColumn","columns","onMove","gridPoint","columnAllowedCursor","columnNotAllowedCursor","column","setState","hoverSelectColumn","onWheel","preventDefault","stopPropagation","onLeave","onDown","onClick","selectColumn"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport type { Column } from '@deephaven/jsapi-shim';\nimport type { IrisGrid } from '../IrisGrid';\n\n/**\n * Handles interaction with tables when the Linker tool is active\n */\nclass IrisGridColumnSelectMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n this.cursor = null;\n }\n\n private irisGrid: IrisGrid;\n\n private isActive(): boolean {\n const { isSelectingColumn } = this.irisGrid.props;\n return isSelectingColumn;\n }\n\n private isValidColumn(tableColumn: Column | null): boolean {\n if (tableColumn == null) {\n return false;\n }\n\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator) {\n columnSelectionValidator(null);\n }\n }\n\n private getTableColumn(columnIndex: number | null): Column | null {\n if (columnIndex == null) {\n return null;\n }\n\n const { model } = this.irisGrid.props;\n const modelColumn = this.irisGrid.getModelColumn(columnIndex);\n if (modelColumn == null) {\n return null;\n }\n\n return model.columns[modelColumn];\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n return true;\n }\n\n // keeps linker cursor state during wheel event\n onWheel(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n } else {\n this.cursor = columnNotAllowedCursor;\n }\n\n // don't block wheel event from scrolling\n return { preventDefault: false, stopPropagation: false };\n }\n\n onLeave(): EventHandlerResult {\n if (this.isActive()) {\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n this.updateColumnSelectionStatus();\n\n return false;\n }\n\n onDown(): EventHandlerResult {\n return this.isActive();\n }\n\n onClick(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n if (this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"file":"IrisGridColumnSelectMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"names":["GridMouseHandler","assertNotNull","IrisGridColumnSelectMouseHandler","constructor","irisGrid","cursor","isActive","isSelectingColumn","props","isValidColumn","tableColumn","columnSelectionValidator","updateColumnSelectionStatus","getTableColumn","columnIndex","model","modelColumn","getModelColumn","columns","onMove","gridPoint","columnAllowedCursor","columnNotAllowedCursor","column","setState","hoverSelectColumn","onWheel","preventDefault","stopPropagation","onLeave","onDown","onClick","selectColumn"],"mappings":"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","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport type { Column } from '@deephaven/jsapi-shim';\nimport { assertNotNull } from '@deephaven/utils';\nimport { IrisGrid } from '../IrisGrid';\n\n/**\n * Handles interaction with tables when the Linker tool is active\n */\nclass IrisGridColumnSelectMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n this.cursor = null;\n }\n\n private irisGrid: IrisGrid;\n\n private isActive(): boolean {\n const { isSelectingColumn } = this.irisGrid.props;\n return isSelectingColumn;\n }\n\n private isValidColumn(tableColumn: Column | null): boolean {\n if (tableColumn == null) {\n return false;\n }\n\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator) {\n columnSelectionValidator(null);\n }\n }\n\n private getTableColumn(columnIndex: number | null): Column | null {\n if (columnIndex == null) {\n return null;\n }\n\n const { model } = this.irisGrid.props;\n const modelColumn = this.irisGrid.getModelColumn(columnIndex);\n if (modelColumn == null) {\n return null;\n }\n\n return model.columns[modelColumn];\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: column });\n } else {\n this.cursor = columnNotAllowedCursor;\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n return true;\n }\n\n // keeps linker cursor state during wheel event\n onWheel(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { columnAllowedCursor, columnNotAllowedCursor } = this.irisGrid.props;\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n\n if (this.isValidColumn(tableColumn)) {\n this.cursor = columnAllowedCursor;\n } else {\n this.cursor = columnNotAllowedCursor;\n }\n\n // don't block wheel event from scrolling\n return { preventDefault: false, stopPropagation: false };\n }\n\n onLeave(): EventHandlerResult {\n if (this.isActive()) {\n this.irisGrid.setState({ hoverSelectColumn: null });\n }\n\n this.updateColumnSelectionStatus();\n\n return false;\n }\n\n onDown(): EventHandlerResult {\n return this.isActive();\n }\n\n onClick(gridPoint: GridPoint): EventHandlerResult {\n if (!this.isActive()) {\n return false;\n }\n\n const { column } = gridPoint;\n const tableColumn = this.getTableColumn(column);\n assertNotNull(tableColumn);\n if (this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"file":"IrisGridColumnSelectMouseHandler.js"}
@@ -1,4 +1,4 @@
1
- import { GridMouseHandler, GridPoint, EventHandlerResult } from '@deephaven/grid';
1
+ import { GridMouseHandler, GridPoint, EventHandlerResult, Grid, GridMouseEvent } from '@deephaven/grid';
2
2
  import type { IrisGrid } from '../IrisGrid';
3
3
  /**
4
4
  * Detects mouse hover over column headers and displays the appropriate tooltip
@@ -6,11 +6,11 @@ import type { IrisGrid } from '../IrisGrid';
6
6
  declare class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
7
7
  constructor(irisGrid: IrisGrid);
8
8
  private irisGrid;
9
- private destroyColumnTooltip;
10
9
  private hideColumnTooltip;
11
10
  onDown(): EventHandlerResult;
12
11
  onContextMenu(): EventHandlerResult;
13
12
  onWheel(): EventHandlerResult;
13
+ onLeave(gridPoint: GridPoint, grid: Grid, event: GridMouseEvent): EventHandlerResult;
14
14
  onMove(gridPoint: GridPoint): EventHandlerResult;
15
15
  }
16
16
  export default IrisGridColumnTooltipMouseHandler;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridColumnTooltipMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,cAAM,iCAAkC,SAAQ,gBAAgB;gBAClD,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,oBAAoB;IAO5B,OAAO,CAAC,iBAAiB;IAQzB,MAAM,IAAI,kBAAkB;IAK5B,aAAa,IAAI,kBAAkB;IAKnC,OAAO,IAAI,kBAAkB;IAK7B,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;CAsBjD;AAED,eAAe,iCAAiC,CAAC"}
1
+ {"version":3,"file":"IrisGridColumnTooltipMouseHandler.d.ts","sourceRoot":"","sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"names":[],"mappings":"AACA,OAAO,EACL,gBAAgB,EAChB,SAAS,EACT,kBAAkB,EAClB,IAAI,EACJ,cAAc,EACf,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C;;GAEG;AACH,cAAM,iCAAkC,SAAQ,gBAAgB;gBAClD,QAAQ,EAAE,QAAQ;IAM9B,OAAO,CAAC,QAAQ,CAAW;IAE3B,OAAO,CAAC,iBAAiB;IAQzB,MAAM,IAAI,kBAAkB;IAK5B,aAAa,IAAI,kBAAkB;IAKnC,OAAO,IAAI,kBAAkB;IAK7B,OAAO,CACL,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,GACpB,kBAAkB;IA8BrB,MAAM,CAAC,SAAS,EAAE,SAAS,GAAG,kBAAkB;CAsBjD;AAED,eAAe,iCAAiC,CAAC"}
@@ -15,18 +15,6 @@ class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
15
15
  this.irisGrid = irisGrid;
16
16
  }
17
17
 
18
- destroyColumnTooltip() {
19
- var {
20
- shownColumnTooltip
21
- } = this.irisGrid.state;
22
-
23
- if (shownColumnTooltip != null) {
24
- this.irisGrid.setState({
25
- shownColumnTooltip: null
26
- });
27
- }
28
- }
29
-
30
18
  hideColumnTooltip() {
31
19
  var {
32
20
  tooltip
@@ -49,7 +37,37 @@ class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
49
37
  }
50
38
 
51
39
  onWheel() {
52
- this.destroyColumnTooltip();
40
+ this.hideColumnTooltip();
41
+ return false;
42
+ }
43
+
44
+ onLeave(gridPoint, grid, event) {
45
+ /**
46
+ * This should always be a react event
47
+ * React seems to be handling onMouseLeave incorrectly at times
48
+ * When moving to the padding between the column and popper, React sets
49
+ * event.relatedTarget to window, but event.nativeEvent.relatedTarget is the popper.
50
+ * It's possibly related to popper being rendered in a portal
51
+ */
52
+ var {
53
+ relatedTarget
54
+ } = event instanceof MouseEvent ? event : event.nativeEvent;
55
+ var {
56
+ tooltip
57
+ } = this.irisGrid;
58
+
59
+ if (!tooltip) {
60
+ return false;
61
+ }
62
+
63
+ var popper = tooltip.popper.current;
64
+
65
+ if (popper && relatedTarget instanceof Element && popper.element.contains(relatedTarget)) {
66
+ // Do not hide the popper if we moved the cursor from canvas to popper
67
+ return false;
68
+ }
69
+
70
+ this.hideColumnTooltip();
53
71
  return false;
54
72
  }
55
73
 
@@ -71,7 +89,7 @@ class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
71
89
  * however, gridY also == theme.columnHeaderHeight, so row still has a value
72
90
  * so this tooltip won't actually show until row is null at columnHeaderHeight - 1
73
91
  */
74
- if (y >= 0 && y <= theme.columnHeaderHeight) {
92
+ if (theme.columnHeaderHeight && y >= 0 && y <= theme.columnHeaderHeight) {
75
93
  newTooltip = column;
76
94
  }
77
95
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"names":["GridMouseHandler","IrisGridColumnTooltipMouseHandler","constructor","irisGrid","destroyColumnTooltip","shownColumnTooltip","state","setState","hideColumnTooltip","tooltip","stopTimer","hide","onDown","onContextMenu","onWheel","onMove","gridPoint","y","column","row","theme","getTheme","newTooltip","columnHeaderHeight"],"mappings":";;AAAA;AACA,SACEA,gBADF,QAIO,iBAJP;;AAOA;AACA;AACA;AACA,MAAMC,iCAAN,SAAgDD,gBAAhD,CAAiE;AAC/DE,EAAAA,WAAW,CAACC,QAAD,EAAqB;AAC9B;;AAD8B;;AAG9B,SAAKA,QAAL,GAAgBA,QAAhB;AACD;;AAIOC,EAAAA,oBAAoB,GAAS;AACnC,QAAM;AAAEC,MAAAA;AAAF,QAAyB,KAAKF,QAAL,CAAcG,KAA7C;;AACA,QAAID,kBAAkB,IAAI,IAA1B,EAAgC;AAC9B,WAAKF,QAAL,CAAcI,QAAd,CAAuB;AAAEF,QAAAA,kBAAkB,EAAE;AAAtB,OAAvB;AACD;AACF;;AAEOG,EAAAA,iBAAiB,GAAS;AAChC,QAAM;AAAEC,MAAAA;AAAF,QAAc,KAAKN,QAAzB;;AACA,QAAIM,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACC,SAAR;AACAD,MAAAA,OAAO,CAACE,IAAR;AACD;AACF;;AAEDC,EAAAA,MAAM,GAAuB;AAC3B,SAAKJ,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDK,EAAAA,aAAa,GAAuB;AAClC,SAAKL,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDM,EAAAA,OAAO,GAAuB;AAC5B,SAAKV,oBAAL;AACA,WAAO,KAAP;AACD;;AAEDW,EAAAA,MAAM,CAACC,SAAD,EAA2C;AAC/C,QAAM;AAAEC,MAAAA,CAAF;AAAKC,MAAAA,MAAL;AAAaC,MAAAA;AAAb,QAAqBH,SAA3B;AACA,QAAM;AAAEX,MAAAA;AAAF,QAAyB,KAAKF,QAAL,CAAcG,KAA7C;AACA,QAAMc,KAAK,GAAG,KAAKjB,QAAL,CAAckB,QAAd,EAAd;AACA,QAAIC,UAAU,GAAG,IAAjB;;AACA,QAAIJ,MAAM,KAAK,IAAX,IAAmBC,GAAG,KAAK,IAA/B,EAAqC;AACnC;AACN;AACA;AACA;AACA;AACM,UAAIF,CAAC,IAAI,CAAL,IAAUA,CAAC,IAAIG,KAAK,CAACG,kBAAzB,EAA6C;AAC3CD,QAAAA,UAAU,GAAGJ,MAAb;AACD;AACF;;AAED,QAAII,UAAU,KAAKjB,kBAAnB,EAAuC;AACrC,WAAKF,QAAL,CAAcI,QAAd,CAAuB;AAAEF,QAAAA,kBAAkB,EAAEiB;AAAtB,OAAvB;AACD;;AAED,WAAO,KAAP;AACD;;AA5D8D;;AA+DjE,eAAerB,iCAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n} from '@deephaven/grid';\nimport type { IrisGrid } from '../IrisGrid';\n\n/**\n * Detects mouse hover over column headers and displays the appropriate tooltip\n */\nclass IrisGridColumnTooltipMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n private irisGrid: IrisGrid;\n\n private destroyColumnTooltip(): void {\n const { shownColumnTooltip } = this.irisGrid.state;\n if (shownColumnTooltip != null) {\n this.irisGrid.setState({ shownColumnTooltip: null });\n }\n }\n\n private hideColumnTooltip(): void {\n const { tooltip } = this.irisGrid;\n if (tooltip) {\n tooltip.stopTimer();\n tooltip.hide();\n }\n }\n\n onDown(): EventHandlerResult {\n this.hideColumnTooltip();\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.hideColumnTooltip();\n return false;\n }\n\n onWheel(): EventHandlerResult {\n this.destroyColumnTooltip();\n return false;\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n const { y, column, row } = gridPoint;\n const { shownColumnTooltip } = this.irisGrid.state;\n const theme = this.irisGrid.getTheme();\n let newTooltip = null;\n if (column !== null && row === null) {\n /**\n * one would expect at y == theme.columnHeaderHeight, row == null\n * however, gridY also == theme.columnHeaderHeight, so row still has a value\n * so this tooltip won't actually show until row is null at columnHeaderHeight - 1\n */\n if (y >= 0 && y <= theme.columnHeaderHeight) {\n newTooltip = column;\n }\n }\n\n if (newTooltip !== shownColumnTooltip) {\n this.irisGrid.setState({ shownColumnTooltip: newTooltip });\n }\n\n return false;\n }\n}\n\nexport default IrisGridColumnTooltipMouseHandler;\n"],"file":"IrisGridColumnTooltipMouseHandler.js"}
1
+ {"version":3,"sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"names":["GridMouseHandler","IrisGridColumnTooltipMouseHandler","constructor","irisGrid","hideColumnTooltip","tooltip","stopTimer","hide","onDown","onContextMenu","onWheel","onLeave","gridPoint","grid","event","relatedTarget","MouseEvent","nativeEvent","popper","current","Element","element","contains","onMove","y","column","row","shownColumnTooltip","state","theme","getTheme","newTooltip","columnHeaderHeight","setState"],"mappings":";;AAAA;AACA,SACEA,gBADF,QAMO,iBANP;;AASA;AACA;AACA;AACA,MAAMC,iCAAN,SAAgDD,gBAAhD,CAAiE;AAC/DE,EAAAA,WAAW,CAACC,QAAD,EAAqB;AAC9B;;AAD8B;;AAG9B,SAAKA,QAAL,GAAgBA,QAAhB;AACD;;AAIOC,EAAAA,iBAAiB,GAAS;AAChC,QAAM;AAAEC,MAAAA;AAAF,QAAc,KAAKF,QAAzB;;AACA,QAAIE,OAAJ,EAAa;AACXA,MAAAA,OAAO,CAACC,SAAR;AACAD,MAAAA,OAAO,CAACE,IAAR;AACD;AACF;;AAEDC,EAAAA,MAAM,GAAuB;AAC3B,SAAKJ,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDK,EAAAA,aAAa,GAAuB;AAClC,SAAKL,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDM,EAAAA,OAAO,GAAuB;AAC5B,SAAKN,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDO,EAAAA,OAAO,CACLC,SADK,EAELC,IAFK,EAGLC,KAHK,EAIe;AACpB;AACJ;AACA;AACA;AACA;AACA;AACA;AACI,QAAM;AAAEC,MAAAA;AAAF,QACJD,KAAK,YAAYE,UAAjB,GAA8BF,KAA9B,GAAsCA,KAAK,CAACG,WAD9C;AAGA,QAAM;AAAEZ,MAAAA;AAAF,QAAc,KAAKF,QAAzB;;AACA,QAAI,CAACE,OAAL,EAAc;AACZ,aAAO,KAAP;AACD;;AAED,QAAMa,MAAM,GAAGb,OAAO,CAACa,MAAR,CAAeC,OAA9B;;AAEA,QACED,MAAM,IACNH,aAAa,YAAYK,OADzB,IAEAF,MAAM,CAACG,OAAP,CAAeC,QAAf,CAAwBP,aAAxB,CAHF,EAIE;AACA;AACA,aAAO,KAAP;AACD;;AACD,SAAKX,iBAAL;AACA,WAAO,KAAP;AACD;;AAEDmB,EAAAA,MAAM,CAACX,SAAD,EAA2C;AAC/C,QAAM;AAAEY,MAAAA,CAAF;AAAKC,MAAAA,MAAL;AAAaC,MAAAA;AAAb,QAAqBd,SAA3B;AACA,QAAM;AAAEe,MAAAA;AAAF,QAAyB,KAAKxB,QAAL,CAAcyB,KAA7C;AACA,QAAMC,KAAK,GAAG,KAAK1B,QAAL,CAAc2B,QAAd,EAAd;AACA,QAAIC,UAAU,GAAG,IAAjB;;AACA,QAAIN,MAAM,KAAK,IAAX,IAAmBC,GAAG,KAAK,IAA/B,EAAqC;AACnC;AACN;AACA;AACA;AACA;AACM,UAAIG,KAAK,CAACG,kBAAN,IAA4BR,CAAC,IAAI,CAAjC,IAAsCA,CAAC,IAAIK,KAAK,CAACG,kBAArD,EAAyE;AACvED,QAAAA,UAAU,GAAGN,MAAb;AACD;AACF;;AAED,QAAIM,UAAU,KAAKJ,kBAAnB,EAAuC;AACrC,WAAKxB,QAAL,CAAc8B,QAAd,CAAuB;AAAEN,QAAAA,kBAAkB,EAAEI;AAAtB,OAAvB;AACD;;AAED,WAAO,KAAP;AACD;;AAvF8D;;AA0FjE,eAAe9B,iCAAf","sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport {\n GridMouseHandler,\n GridPoint,\n EventHandlerResult,\n Grid,\n GridMouseEvent,\n} from '@deephaven/grid';\nimport type { IrisGrid } from '../IrisGrid';\n\n/**\n * Detects mouse hover over column headers and displays the appropriate tooltip\n */\nclass IrisGridColumnTooltipMouseHandler extends GridMouseHandler {\n constructor(irisGrid: IrisGrid) {\n super();\n\n this.irisGrid = irisGrid;\n }\n\n private irisGrid: IrisGrid;\n\n private hideColumnTooltip(): void {\n const { tooltip } = this.irisGrid;\n if (tooltip) {\n tooltip.stopTimer();\n tooltip.hide();\n }\n }\n\n onDown(): EventHandlerResult {\n this.hideColumnTooltip();\n return false;\n }\n\n onContextMenu(): EventHandlerResult {\n this.hideColumnTooltip();\n return false;\n }\n\n onWheel(): EventHandlerResult {\n this.hideColumnTooltip();\n return false;\n }\n\n onLeave(\n gridPoint: GridPoint,\n grid: Grid,\n event: GridMouseEvent\n ): EventHandlerResult {\n /**\n * This should always be a react event\n * React seems to be handling onMouseLeave incorrectly at times\n * When moving to the padding between the column and popper, React sets\n * event.relatedTarget to window, but event.nativeEvent.relatedTarget is the popper.\n * It's possibly related to popper being rendered in a portal\n */\n const { relatedTarget } =\n event instanceof MouseEvent ? event : event.nativeEvent;\n\n const { tooltip } = this.irisGrid;\n if (!tooltip) {\n return false;\n }\n\n const popper = tooltip.popper.current;\n\n if (\n popper &&\n relatedTarget instanceof Element &&\n popper.element.contains(relatedTarget)\n ) {\n // Do not hide the popper if we moved the cursor from canvas to popper\n return false;\n }\n this.hideColumnTooltip();\n return false;\n }\n\n onMove(gridPoint: GridPoint): EventHandlerResult {\n const { y, column, row } = gridPoint;\n const { shownColumnTooltip } = this.irisGrid.state;\n const theme = this.irisGrid.getTheme();\n let newTooltip = null;\n if (column !== null && row === null) {\n /**\n * one would expect at y == theme.columnHeaderHeight, row == null\n * however, gridY also == theme.columnHeaderHeight, so row still has a value\n * so this tooltip won't actually show until row is null at columnHeaderHeight - 1\n */\n if (theme.columnHeaderHeight && y >= 0 && y <= theme.columnHeaderHeight) {\n newTooltip = column;\n }\n }\n\n if (newTooltip !== shownColumnTooltip) {\n this.irisGrid.setState({ shownColumnTooltip: newTooltip });\n }\n\n return false;\n }\n}\n\nexport default IrisGridColumnTooltipMouseHandler;\n"],"file":"IrisGridColumnTooltipMouseHandler.js"}