@deephaven/iris-grid 0.22.3-beta.15 → 0.22.3-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdvancedFilterCreator.js +7 -65
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +0 -23
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +0 -52
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +2 -42
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js +0 -11
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js +1 -20
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CrossColumnSearch.js +2 -23
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.js +2 -36
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.d.ts +1 -1
- package/dist/GotoRow.d.ts.map +1 -1
- package/dist/GotoRow.js +2 -7
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.d.ts +41 -35
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +77 -519
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.d.ts +1 -1
- package/dist/IrisGridBottomBar.d.ts.map +1 -1
- package/dist/IrisGridBottomBar.js +2 -2
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +6 -21
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +3 -50
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js +2 -12
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModel.js +32 -58
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.js +0 -7
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +0 -4
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.js +0 -23
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.js +9 -153
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +41 -183
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridShortcuts.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +2 -2
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +10 -90
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.d.ts +2 -2
- package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +70 -461
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js +0 -23
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js +3 -42
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +11 -5
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +98 -196
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/MissingKeyError.js +0 -7
- package/dist/MissingKeyError.js.map +1 -1
- package/dist/PartitionSelectorSearch.js +2 -48
- package/dist/PartitionSelectorSearch.js.map +1 -1
- package/dist/PendingDataBottomBar.d.ts +1 -1
- package/dist/PendingDataBottomBar.d.ts.map +1 -1
- package/dist/PendingDataBottomBar.js +2 -7
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/TableViewportUpdater.d.ts +2 -2
- package/dist/TableViewportUpdater.d.ts.map +1 -1
- package/dist/TableViewportUpdater.js +3 -29
- package/dist/TableViewportUpdater.js.map +1 -1
- package/dist/ToastBottomBar.d.ts +1 -1
- package/dist/ToastBottomBar.d.ts.map +1 -1
- package/dist/ToastBottomBar.js +2 -4
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/TreeTableViewportUpdater.js +0 -21
- package/dist/TreeTableViewportUpdater.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +4 -25
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -7
- package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -9
- package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/FormatContextMenuUtils.js +3 -9
- package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
- package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -8
- package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
- package/dist/format-context-menus/index.js.map +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/ClearFilterKeyHandler.js +0 -8
- package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +1 -10
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +0 -11
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -32
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +4 -34
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -20
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +15 -105
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -9
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -17
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +2 -15
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +0 -6
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/mousehandlers/index.js.map +1 -1
- package/dist/sidebar/AdvancedSettings.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.d.ts +4 -4
- package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +2 -6
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsType.js +0 -2
- package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +2 -46
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +6 -58
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +4 -15
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.js +5 -36
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/OptionType.js +0 -2
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/RollupRows.js +9 -65
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +0 -13
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +0 -52
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.d.ts +1 -1
- package/dist/sidebar/TableSaver.d.ts.map +1 -1
- package/dist/sidebar/TableSaver.js +10 -123
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts +3 -2
- package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.js +37 -116
- package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +2 -14
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationOperation.js +0 -2
- package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +2 -5
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.d.ts +1 -1
- package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +2 -12
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +2 -16
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -35
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +2 -12
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -3
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +16 -26
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +9 -172
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +2 -16
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -12
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/icons/BarIcon.js +0 -3
- package/dist/sidebar/icons/BarIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatColumnWhereIcon.js +2 -5
- package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/FormatRowWhereIcon.js +2 -5
- package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
- package/dist/sidebar/icons/HistogramIcon.js +0 -3
- package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
- package/dist/sidebar/icons/LineIcon.js +0 -3
- package/dist/sidebar/icons/LineIcon.js.map +1 -1
- package/dist/sidebar/icons/PieIcon.js +0 -3
- package/dist/sidebar/icons/PieIcon.js.map +1 -1
- package/dist/sidebar/icons/ScatterIcon.js +0 -3
- package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
- package/dist/sidebar/icons/index.js.map +1 -1
- package/dist/sidebar/index.js.map +1 -1
- package/package.json +15 -15
|
@@ -1,8 +1,6 @@
|
|
|
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
|
-
|
|
3
2
|
import { GridMouseHandler } from '@deephaven/grid';
|
|
4
3
|
import deepEqual from 'deep-equal';
|
|
5
|
-
|
|
6
4
|
/**
|
|
7
5
|
* Handles cursor and click action for cell overflow button
|
|
8
6
|
* The button is rendered via IrisGridRenderer
|
|
@@ -10,18 +8,14 @@ import deepEqual from 'deep-equal';
|
|
|
10
8
|
class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
11
9
|
constructor(irisGrid) {
|
|
12
10
|
super(850); // Needs to be before GridSelectionMouseHandler
|
|
13
|
-
|
|
14
11
|
_defineProperty(this, "irisGrid", void 0);
|
|
15
|
-
|
|
16
12
|
this.irisGrid = irisGrid;
|
|
17
13
|
}
|
|
18
|
-
|
|
19
14
|
destroyColumnTooltip() {
|
|
20
15
|
this.irisGrid.setState({
|
|
21
16
|
overflowButtonTooltipProps: null
|
|
22
17
|
});
|
|
23
18
|
}
|
|
24
|
-
|
|
25
19
|
setCursor(point) {
|
|
26
20
|
if (this.isHoveringOverflowButton(point)) {
|
|
27
21
|
this.cursor = 'pointer';
|
|
@@ -30,11 +24,9 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
30
24
|
preventDefault: false
|
|
31
25
|
};
|
|
32
26
|
}
|
|
33
|
-
|
|
34
27
|
this.cursor = null;
|
|
35
28
|
return false;
|
|
36
29
|
}
|
|
37
|
-
|
|
38
30
|
getButtonPosition(_ref) {
|
|
39
31
|
var {
|
|
40
32
|
x,
|
|
@@ -42,22 +34,18 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
42
34
|
column,
|
|
43
35
|
row
|
|
44
36
|
} = _ref;
|
|
45
|
-
|
|
46
37
|
if (column == null || row == null) {
|
|
47
38
|
return null;
|
|
48
39
|
}
|
|
49
|
-
|
|
50
40
|
var {
|
|
51
41
|
renderer,
|
|
52
42
|
grid,
|
|
53
43
|
state,
|
|
54
44
|
props
|
|
55
45
|
} = this.irisGrid;
|
|
56
|
-
|
|
57
46
|
if (!grid) {
|
|
58
47
|
return null;
|
|
59
48
|
}
|
|
60
|
-
|
|
61
49
|
var {
|
|
62
50
|
metrics
|
|
63
51
|
} = state;
|
|
@@ -82,11 +70,9 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
82
70
|
width,
|
|
83
71
|
height
|
|
84
72
|
} = renderer.getCellOverflowButtonPosition(rendererState);
|
|
85
|
-
|
|
86
73
|
if (left == null || width == null || top == null || height == null) {
|
|
87
74
|
return null;
|
|
88
75
|
}
|
|
89
|
-
|
|
90
76
|
return {
|
|
91
77
|
left,
|
|
92
78
|
top,
|
|
@@ -94,10 +80,8 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
94
80
|
height
|
|
95
81
|
};
|
|
96
82
|
}
|
|
97
|
-
|
|
98
83
|
isHoveringOverflowButton(point) {
|
|
99
84
|
var _this$getButtonPositi;
|
|
100
|
-
|
|
101
85
|
var {
|
|
102
86
|
x,
|
|
103
87
|
y
|
|
@@ -108,22 +92,18 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
108
92
|
width,
|
|
109
93
|
height
|
|
110
94
|
} = (_this$getButtonPositi = this.getButtonPosition(point)) !== null && _this$getButtonPositi !== void 0 ? _this$getButtonPositi : {};
|
|
111
|
-
|
|
112
95
|
if (left == null || width == null || top == null || height == null) {
|
|
113
96
|
return false;
|
|
114
97
|
}
|
|
115
|
-
|
|
116
98
|
var {
|
|
117
99
|
renderer,
|
|
118
100
|
grid,
|
|
119
101
|
state,
|
|
120
102
|
props
|
|
121
103
|
} = this.irisGrid;
|
|
122
|
-
|
|
123
104
|
if (!grid) {
|
|
124
105
|
return false;
|
|
125
106
|
}
|
|
126
|
-
|
|
127
107
|
var {
|
|
128
108
|
metrics
|
|
129
109
|
} = state;
|
|
@@ -144,14 +124,12 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
144
124
|
};
|
|
145
125
|
return renderer.shouldRenderOverflowButton(rendererState) && x >= left && x <= left + width && y >= top && y <= top + height;
|
|
146
126
|
}
|
|
147
|
-
|
|
148
127
|
onMove(point) {
|
|
149
128
|
if (this.isHoveringOverflowButton(point)) {
|
|
150
129
|
var {
|
|
151
130
|
overflowButtonTooltipProps
|
|
152
131
|
} = this.irisGrid.state;
|
|
153
132
|
var newProps = this.getButtonPosition(point);
|
|
154
|
-
|
|
155
133
|
if (!deepEqual(overflowButtonTooltipProps, newProps)) {
|
|
156
134
|
this.irisGrid.setState({
|
|
157
135
|
overflowButtonTooltipProps: newProps
|
|
@@ -160,44 +138,36 @@ class IrisGridCellOverflowMouseHandler extends GridMouseHandler {
|
|
|
160
138
|
} else {
|
|
161
139
|
this.destroyColumnTooltip();
|
|
162
140
|
}
|
|
163
|
-
|
|
164
141
|
return this.setCursor(point);
|
|
165
142
|
}
|
|
166
|
-
|
|
167
143
|
onWheel(point) {
|
|
168
144
|
this.destroyColumnTooltip();
|
|
169
145
|
return this.onMove(point);
|
|
170
|
-
}
|
|
171
|
-
|
|
146
|
+
}
|
|
172
147
|
|
|
148
|
+
// Needs to be onDown and not onClick b/c of GridSelectionMouseHandler shifting cell onDown
|
|
173
149
|
onDown(point) {
|
|
174
150
|
this.destroyColumnTooltip();
|
|
175
151
|
var {
|
|
176
152
|
column,
|
|
177
153
|
row
|
|
178
154
|
} = point;
|
|
179
|
-
|
|
180
155
|
if (this.isHoveringOverflowButton(point)) {
|
|
181
156
|
this.irisGrid.setState({
|
|
182
157
|
showOverflowModal: true,
|
|
183
158
|
overflowText: this.irisGrid.getValueForCell(column, row)
|
|
184
159
|
});
|
|
185
160
|
}
|
|
186
|
-
|
|
187
161
|
return false;
|
|
188
162
|
}
|
|
189
|
-
|
|
190
163
|
onContextMenu() {
|
|
191
164
|
this.destroyColumnTooltip();
|
|
192
165
|
return false;
|
|
193
166
|
}
|
|
194
|
-
|
|
195
167
|
onLeave() {
|
|
196
168
|
this.destroyColumnTooltip();
|
|
197
169
|
return false;
|
|
198
170
|
}
|
|
199
|
-
|
|
200
171
|
}
|
|
201
|
-
|
|
202
172
|
export default IrisGridCellOverflowMouseHandler;
|
|
203
173
|
//# sourceMappingURL=IrisGridCellOverflowMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridCellOverflowMouseHandler.js","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"],"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"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\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"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGridCellOverflowMouseHandler.js","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"],"sources":["../../src/mousehandlers/IrisGridCellOverflowMouseHandler.ts"],"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\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"],"mappings":"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"}
|
|
@@ -1,76 +1,59 @@
|
|
|
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
|
-
|
|
3
2
|
/* eslint class-methods-use-this: "off" */
|
|
4
3
|
import { GridMouseHandler } from '@deephaven/grid';
|
|
5
|
-
|
|
6
4
|
/**
|
|
7
5
|
* Handles interaction with tables when the Linker tool is active
|
|
8
6
|
*/
|
|
9
7
|
class IrisGridColumnSelectMouseHandler extends GridMouseHandler {
|
|
10
8
|
constructor(irisGrid) {
|
|
11
9
|
super();
|
|
12
|
-
|
|
13
10
|
_defineProperty(this, "irisGrid", void 0);
|
|
14
|
-
|
|
15
11
|
this.irisGrid = irisGrid;
|
|
16
12
|
this.cursor = null;
|
|
17
13
|
}
|
|
18
|
-
|
|
19
14
|
isActive() {
|
|
20
15
|
var {
|
|
21
16
|
isSelectingColumn
|
|
22
17
|
} = this.irisGrid.props;
|
|
23
18
|
return isSelectingColumn;
|
|
24
19
|
}
|
|
25
|
-
|
|
26
20
|
isValidColumn(tableColumn) {
|
|
27
21
|
if (tableColumn == null) {
|
|
28
22
|
return false;
|
|
29
23
|
}
|
|
30
|
-
|
|
31
24
|
var {
|
|
32
25
|
columnSelectionValidator
|
|
33
26
|
} = this.irisGrid.props;
|
|
34
|
-
|
|
35
27
|
if (columnSelectionValidator != null) {
|
|
36
28
|
return columnSelectionValidator(tableColumn);
|
|
37
29
|
}
|
|
38
|
-
|
|
39
30
|
return true;
|
|
40
31
|
}
|
|
41
|
-
|
|
42
32
|
updateColumnSelectionStatus() {
|
|
43
33
|
var {
|
|
44
34
|
columnSelectionValidator
|
|
45
35
|
} = this.irisGrid.props;
|
|
46
|
-
|
|
47
36
|
if (columnSelectionValidator != null) {
|
|
48
37
|
columnSelectionValidator(null);
|
|
49
38
|
}
|
|
50
39
|
}
|
|
51
|
-
|
|
52
40
|
getTableColumn(columnIndex) {
|
|
53
41
|
if (columnIndex == null) {
|
|
54
42
|
return null;
|
|
55
43
|
}
|
|
56
|
-
|
|
57
44
|
var {
|
|
58
45
|
model
|
|
59
46
|
} = this.irisGrid.props;
|
|
60
47
|
var modelColumn = this.irisGrid.getModelColumn(columnIndex);
|
|
61
|
-
|
|
62
48
|
if (modelColumn == null) {
|
|
63
49
|
return null;
|
|
64
50
|
}
|
|
65
|
-
|
|
66
51
|
return model.columns[modelColumn];
|
|
67
52
|
}
|
|
68
|
-
|
|
69
53
|
onMove(gridPoint) {
|
|
70
54
|
if (!this.isActive()) {
|
|
71
55
|
return false;
|
|
72
56
|
}
|
|
73
|
-
|
|
74
57
|
var {
|
|
75
58
|
columnAllowedCursor,
|
|
76
59
|
columnNotAllowedCursor
|
|
@@ -79,7 +62,6 @@ class IrisGridColumnSelectMouseHandler extends GridMouseHandler {
|
|
|
79
62
|
column
|
|
80
63
|
} = gridPoint;
|
|
81
64
|
var tableColumn = this.getTableColumn(column);
|
|
82
|
-
|
|
83
65
|
if (this.isValidColumn(tableColumn)) {
|
|
84
66
|
this.cursor = columnAllowedCursor;
|
|
85
67
|
this.irisGrid.setState({
|
|
@@ -91,16 +73,14 @@ class IrisGridColumnSelectMouseHandler extends GridMouseHandler {
|
|
|
91
73
|
hoverSelectColumn: null
|
|
92
74
|
});
|
|
93
75
|
}
|
|
94
|
-
|
|
95
76
|
return true;
|
|
96
|
-
}
|
|
97
|
-
|
|
77
|
+
}
|
|
98
78
|
|
|
79
|
+
// keeps linker cursor state during wheel event
|
|
99
80
|
onWheel(gridPoint) {
|
|
100
81
|
if (!this.isActive()) {
|
|
101
82
|
return false;
|
|
102
83
|
}
|
|
103
|
-
|
|
104
84
|
var {
|
|
105
85
|
columnAllowedCursor,
|
|
106
86
|
columnNotAllowedCursor
|
|
@@ -109,53 +89,43 @@ class IrisGridColumnSelectMouseHandler extends GridMouseHandler {
|
|
|
109
89
|
column
|
|
110
90
|
} = gridPoint;
|
|
111
91
|
var tableColumn = this.getTableColumn(column);
|
|
112
|
-
|
|
113
92
|
if (this.isValidColumn(tableColumn)) {
|
|
114
93
|
this.cursor = columnAllowedCursor;
|
|
115
94
|
} else {
|
|
116
95
|
this.cursor = columnNotAllowedCursor;
|
|
117
|
-
}
|
|
118
|
-
|
|
96
|
+
}
|
|
119
97
|
|
|
98
|
+
// don't block wheel event from scrolling
|
|
120
99
|
return {
|
|
121
100
|
preventDefault: false,
|
|
122
101
|
stopPropagation: false
|
|
123
102
|
};
|
|
124
103
|
}
|
|
125
|
-
|
|
126
104
|
onLeave() {
|
|
127
105
|
if (this.isActive()) {
|
|
128
106
|
this.irisGrid.setState({
|
|
129
107
|
hoverSelectColumn: null
|
|
130
108
|
});
|
|
131
109
|
}
|
|
132
|
-
|
|
133
110
|
this.updateColumnSelectionStatus();
|
|
134
111
|
return false;
|
|
135
112
|
}
|
|
136
|
-
|
|
137
113
|
onDown() {
|
|
138
114
|
return this.isActive();
|
|
139
115
|
}
|
|
140
|
-
|
|
141
116
|
onClick(gridPoint) {
|
|
142
117
|
if (!this.isActive()) {
|
|
143
118
|
return false;
|
|
144
119
|
}
|
|
145
|
-
|
|
146
120
|
var {
|
|
147
121
|
column
|
|
148
122
|
} = gridPoint;
|
|
149
123
|
var tableColumn = this.getTableColumn(column);
|
|
150
|
-
|
|
151
124
|
if (tableColumn != null && this.isValidColumn(tableColumn)) {
|
|
152
125
|
this.irisGrid.selectColumn(tableColumn);
|
|
153
126
|
}
|
|
154
|
-
|
|
155
127
|
return true;
|
|
156
128
|
}
|
|
157
|
-
|
|
158
129
|
}
|
|
159
|
-
|
|
160
130
|
export default IrisGridColumnSelectMouseHandler;
|
|
161
131
|
//# sourceMappingURL=IrisGridColumnSelectMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridColumnSelectMouseHandler.js","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"],"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"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 { 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 != null) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\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 (tableColumn != null && this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGridColumnSelectMouseHandler.js","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"],"sources":["../../src/mousehandlers/IrisGridColumnSelectMouseHandler.ts"],"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 { 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 != null) {\n return columnSelectionValidator(tableColumn);\n }\n return true;\n }\n\n private updateColumnSelectionStatus(): void {\n const { columnSelectionValidator } = this.irisGrid.props;\n if (columnSelectionValidator != null) {\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 (tableColumn != null && this.isValidColumn(tableColumn)) {\n this.irisGrid.selectColumn(tableColumn);\n }\n\n return true;\n }\n}\n\nexport default IrisGridColumnSelectMouseHandler;\n"],"mappings":"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"}
|
|
@@ -1,46 +1,36 @@
|
|
|
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
|
-
|
|
3
2
|
/* eslint class-methods-use-this: "off" */
|
|
4
3
|
import { GridMouseHandler } from '@deephaven/grid';
|
|
5
|
-
|
|
6
4
|
/**
|
|
7
5
|
* Detects mouse hover over column headers and displays the appropriate tooltip
|
|
8
6
|
*/
|
|
9
7
|
class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
|
|
10
8
|
constructor(irisGrid) {
|
|
11
9
|
super();
|
|
12
|
-
|
|
13
10
|
_defineProperty(this, "irisGrid", void 0);
|
|
14
|
-
|
|
15
11
|
this.irisGrid = irisGrid;
|
|
16
12
|
}
|
|
17
|
-
|
|
18
13
|
hideColumnTooltip() {
|
|
19
14
|
var {
|
|
20
15
|
tooltip
|
|
21
16
|
} = this.irisGrid;
|
|
22
|
-
|
|
23
17
|
if (tooltip) {
|
|
24
18
|
tooltip.stopTimer();
|
|
25
19
|
tooltip.hide();
|
|
26
20
|
}
|
|
27
21
|
}
|
|
28
|
-
|
|
29
22
|
onDown() {
|
|
30
23
|
this.hideColumnTooltip();
|
|
31
24
|
return false;
|
|
32
25
|
}
|
|
33
|
-
|
|
34
26
|
onContextMenu() {
|
|
35
27
|
this.hideColumnTooltip();
|
|
36
28
|
return false;
|
|
37
29
|
}
|
|
38
|
-
|
|
39
30
|
onWheel() {
|
|
40
31
|
this.hideColumnTooltip();
|
|
41
32
|
return false;
|
|
42
33
|
}
|
|
43
|
-
|
|
44
34
|
onLeave(gridPoint, grid, event) {
|
|
45
35
|
/**
|
|
46
36
|
* This should always be a react event
|
|
@@ -55,22 +45,17 @@ class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
|
|
|
55
45
|
var {
|
|
56
46
|
tooltip
|
|
57
47
|
} = this.irisGrid;
|
|
58
|
-
|
|
59
48
|
if (!tooltip) {
|
|
60
49
|
return false;
|
|
61
50
|
}
|
|
62
|
-
|
|
63
51
|
var popper = tooltip.popper.current;
|
|
64
|
-
|
|
65
52
|
if (popper && relatedTarget instanceof Element && popper.element.contains(relatedTarget)) {
|
|
66
53
|
// Do not hide the popper if we moved the cursor from canvas to popper
|
|
67
54
|
return false;
|
|
68
55
|
}
|
|
69
|
-
|
|
70
56
|
this.hideColumnTooltip();
|
|
71
57
|
return false;
|
|
72
58
|
}
|
|
73
|
-
|
|
74
59
|
onMove(gridPoint) {
|
|
75
60
|
var {
|
|
76
61
|
column,
|
|
@@ -81,21 +66,16 @@ class IrisGridColumnTooltipMouseHandler extends GridMouseHandler {
|
|
|
81
66
|
shownColumnTooltip
|
|
82
67
|
} = this.irisGrid.state;
|
|
83
68
|
var newTooltip = null;
|
|
84
|
-
|
|
85
69
|
if (column !== null && row === null && columnHeaderDepth === 0) {
|
|
86
70
|
newTooltip = column;
|
|
87
71
|
}
|
|
88
|
-
|
|
89
72
|
if (newTooltip !== shownColumnTooltip) {
|
|
90
73
|
this.irisGrid.setState({
|
|
91
74
|
shownColumnTooltip: newTooltip
|
|
92
75
|
});
|
|
93
76
|
}
|
|
94
|
-
|
|
95
77
|
return false;
|
|
96
78
|
}
|
|
97
|
-
|
|
98
79
|
}
|
|
99
|
-
|
|
100
80
|
export default IrisGridColumnTooltipMouseHandler;
|
|
101
81
|
//# sourceMappingURL=IrisGridColumnTooltipMouseHandler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridColumnTooltipMouseHandler.js","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","column","row","columnHeaderDepth","shownColumnTooltip","state","newTooltip","setState"],"sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"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 { column, row, columnHeaderDepth } = gridPoint;\n const { shownColumnTooltip } = this.irisGrid.state;\n let newTooltip = null;\n if (column !== null && row === null && columnHeaderDepth === 0) {\n newTooltip = column;\n }\n\n if (newTooltip !== shownColumnTooltip) {\n this.irisGrid.setState({ shownColumnTooltip: newTooltip });\n }\n\n return false;\n }\n}\n\nexport default IrisGridColumnTooltipMouseHandler;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGridColumnTooltipMouseHandler.js","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","column","row","columnHeaderDepth","shownColumnTooltip","state","newTooltip","setState"],"sources":["../../src/mousehandlers/IrisGridColumnTooltipMouseHandler.ts"],"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 { column, row, columnHeaderDepth } = gridPoint;\n const { shownColumnTooltip } = this.irisGrid.state;\n let newTooltip = null;\n if (column !== null && row === null && columnHeaderDepth === 0) {\n newTooltip = column;\n }\n\n if (newTooltip !== shownColumnTooltip) {\n this.irisGrid.setState({ shownColumnTooltip: newTooltip });\n }\n\n return false;\n }\n}\n\nexport default IrisGridColumnTooltipMouseHandler;\n"],"mappings":";AAAA;AACA,SACEA,gBAAgB,QAKX,iBAAiB;AAGxB;AACA;AACA;AACA,MAAMC,iCAAiC,SAASD,gBAAgB,CAAC;EAC/DE,WAAW,CAACC,QAAkB,EAAE;IAC9B,KAAK,EAAE;IAAC;IAER,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;EAIQC,iBAAiB,GAAS;IAChC,IAAM;MAAEC;IAAQ,CAAC,GAAG,IAAI,CAACF,QAAQ;IACjC,IAAIE,OAAO,EAAE;MACXA,OAAO,CAACC,SAAS,EAAE;MACnBD,OAAO,CAACE,IAAI,EAAE;IAChB;EACF;EAEAC,MAAM,GAAuB;IAC3B,IAAI,CAACJ,iBAAiB,EAAE;IACxB,OAAO,KAAK;EACd;EAEAK,aAAa,GAAuB;IAClC,IAAI,CAACL,iBAAiB,EAAE;IACxB,OAAO,KAAK;EACd;EAEAM,OAAO,GAAuB;IAC5B,IAAI,CAACN,iBAAiB,EAAE;IACxB,OAAO,KAAK;EACd;EAEAO,OAAO,CACLC,SAAoB,EACpBC,IAAU,EACVC,KAAqB,EACD;IACpB;AACJ;AACA;AACA;AACA;AACA;AACA;IACI,IAAM;MAAEC;IAAc,CAAC,GACrBD,KAAK,YAAYE,UAAU,GAAGF,KAAK,GAAGA,KAAK,CAACG,WAAW;IAEzD,IAAM;MAAEZ;IAAQ,CAAC,GAAG,IAAI,CAACF,QAAQ;IACjC,IAAI,CAACE,OAAO,EAAE;MACZ,OAAO,KAAK;IACd;IAEA,IAAMa,MAAM,GAAGb,OAAO,CAACa,MAAM,CAACC,OAAO;IAErC,IACED,MAAM,IACNH,aAAa,YAAYK,OAAO,IAChCF,MAAM,CAACG,OAAO,CAACC,QAAQ,CAACP,aAAa,CAAC,EACtC;MACA;MACA,OAAO,KAAK;IACd;IACA,IAAI,CAACX,iBAAiB,EAAE;IACxB,OAAO,KAAK;EACd;EAEAmB,MAAM,CAACX,SAAoB,EAAsB;IAC/C,IAAM;MAAEY,MAAM;MAAEC,GAAG;MAAEC;IAAkB,CAAC,GAAGd,SAAS;IACpD,IAAM;MAAEe;IAAmB,CAAC,GAAG,IAAI,CAACxB,QAAQ,CAACyB,KAAK;IAClD,IAAIC,UAAU,GAAG,IAAI;IACrB,IAAIL,MAAM,KAAK,IAAI,IAAIC,GAAG,KAAK,IAAI,IAAIC,iBAAiB,KAAK,CAAC,EAAE;MAC9DG,UAAU,GAAGL,MAAM;IACrB;IAEA,IAAIK,UAAU,KAAKF,kBAAkB,EAAE;MACrC,IAAI,CAACxB,QAAQ,CAAC2B,QAAQ,CAAC;QAAEH,kBAAkB,EAAEE;MAAW,CAAC,CAAC;IAC5D;IAEA,OAAO,KAAK;EACd;AACF;AAEA,eAAe5B,iCAAiC"}
|