@deephaven/iris-grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AdvancedFilterCreator.js +65 -102
- package/dist/AdvancedFilterCreator.js.map +1 -1
- package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
- package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
- package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
- package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
- package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
- package/dist/ColumnHeaderGroup.js +6 -8
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/ColumnStatistics.js +22 -28
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/CrossColumnSearch.js +20 -29
- package/dist/CrossColumnSearch.js.map +1 -1
- package/dist/FilterInputField.js +19 -46
- package/dist/FilterInputField.js.map +1 -1
- package/dist/GotoRow.js +32 -29
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGrid.js +490 -822
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js +10 -11
- package/dist/IrisGridBottomBar.js.map +1 -1
- package/dist/IrisGridCacheUtils.js +28 -8
- package/dist/IrisGridCacheUtils.js.map +1 -1
- package/dist/IrisGridCellOverflowModal.js +30 -13
- package/dist/IrisGridCellOverflowModal.js.map +1 -1
- package/dist/IrisGridCellRendererUtils.js +6 -12
- package/dist/IrisGridCellRendererUtils.js.map +1 -1
- package/dist/IrisGridCopyHandler.js +28 -47
- package/dist/IrisGridCopyHandler.js.map +1 -1
- package/dist/IrisGridMetricCalculator.js +28 -51
- package/dist/IrisGridMetricCalculator.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +32 -30
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridPartitionSelector.js +28 -62
- package/dist/IrisGridPartitionSelector.js.map +1 -1
- package/dist/IrisGridProxyModel.js +7 -12
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridRenderer.js +162 -264
- package/dist/IrisGridRenderer.js.map +1 -1
- package/dist/IrisGridTableModel.js +23 -16
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTableModelTemplate.js +49 -73
- package/dist/IrisGridTableModelTemplate.js.map +1 -1
- package/dist/IrisGridTestUtils.js +19 -19
- package/dist/IrisGridTestUtils.js.map +1 -1
- package/dist/IrisGridTextCellRenderer.js +35 -52
- package/dist/IrisGridTextCellRenderer.js.map +1 -1
- package/dist/IrisGridTheme.js +9 -1
- package/dist/IrisGridTheme.js.map +1 -1
- package/dist/IrisGridThemeProvider.js +5 -7
- package/dist/IrisGridThemeProvider.js.map +1 -1
- package/dist/IrisGridTreeTableModel.js +5 -9
- package/dist/IrisGridTreeTableModel.js.map +1 -1
- package/dist/IrisGridUtils.js +246 -300
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/NoPastePermissionModal.js +3 -5
- package/dist/NoPastePermissionModal.js.map +1 -1
- package/dist/PendingDataBottomBar.js +27 -16
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/ToastBottomBar.js +16 -8
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/format-context-menus/CustomFormatAction.js +11 -24
- package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
- package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
- package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
- package/dist/key-handlers/CopyKeyHandler.js +1 -3
- package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
- package/dist/key-handlers/ReverseKeyHandler.js +1 -3
- package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
- package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
- package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
- package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
- package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
- package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
- package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
- package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
- package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
- package/dist/mousehandlers/PendingMouseHandler.js +10 -18
- package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
- package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +45 -102
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnBuilder.js +35 -77
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/CustomColumnInput.js +9 -11
- package/dist/sidebar/CustomColumnInput.js.map +1 -1
- package/dist/sidebar/InputEditor.js +17 -24
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js +6 -11
- package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -1
- package/dist/sidebar/RollupRows.js +72 -113
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +16 -33
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableCsvExporter.js +50 -74
- package/dist/sidebar/TableCsvExporter.js.map +1 -1
- package/dist/sidebar/TableSaver.js +18 -42
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +3 -4
- package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +45 -34
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
- package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
- package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
- package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
- package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
- package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
- package/package.json +16 -16
|
@@ -20,11 +20,9 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
20
20
|
this.handleListChange = this.handleListChange.bind(this);
|
|
21
21
|
this.handleSearchChange = this.handleSearchChange.bind(this);
|
|
22
22
|
this.handleUpdateFilterTimeout = this.handleUpdateFilterTimeout.bind(this);
|
|
23
|
-
var
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
selectedValues
|
|
27
|
-
} = props;
|
|
23
|
+
var dh = props.dh,
|
|
24
|
+
invertSelection = props.invertSelection,
|
|
25
|
+
selectedValues = props.selectedValues;
|
|
28
26
|
this.tableUtils = new TableUtils(dh);
|
|
29
27
|
this.state = {
|
|
30
28
|
filters: [],
|
|
@@ -37,11 +35,10 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
37
35
|
this.initSearchTable();
|
|
38
36
|
}
|
|
39
37
|
componentDidUpdate(prevProps, prevState) {
|
|
40
|
-
var
|
|
41
|
-
invertSelection,
|
|
42
|
-
selectedValues,
|
|
43
|
-
table
|
|
44
|
-
} = this.props;
|
|
38
|
+
var _this$props = this.props,
|
|
39
|
+
invertSelection = _this$props.invertSelection,
|
|
40
|
+
selectedValues = _this$props.selectedValues,
|
|
41
|
+
table = _this$props.table;
|
|
45
42
|
if (prevProps.table !== table) {
|
|
46
43
|
this.initSearchTable();
|
|
47
44
|
}
|
|
@@ -55,10 +52,9 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
55
52
|
selectedValues
|
|
56
53
|
});
|
|
57
54
|
}
|
|
58
|
-
var
|
|
59
|
-
table
|
|
60
|
-
searchText
|
|
61
|
-
} = this.state;
|
|
55
|
+
var _this$state = this.state,
|
|
56
|
+
searchTable = _this$state.table,
|
|
57
|
+
searchText = _this$state.searchText;
|
|
62
58
|
if (searchTable !== prevState.table) {
|
|
63
59
|
if (prevState.table != null) {
|
|
64
60
|
prevState.table.close();
|
|
@@ -72,9 +68,7 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
72
68
|
}
|
|
73
69
|
}
|
|
74
70
|
componentWillUnmount() {
|
|
75
|
-
var
|
|
76
|
-
table
|
|
77
|
-
} = this.state;
|
|
71
|
+
var table = this.state.table;
|
|
78
72
|
if (table != null) {
|
|
79
73
|
table.close();
|
|
80
74
|
}
|
|
@@ -82,20 +76,17 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
82
76
|
this.stopUpdateFilterTimer();
|
|
83
77
|
}
|
|
84
78
|
getColumnName() {
|
|
85
|
-
var
|
|
86
|
-
table
|
|
87
|
-
} = this.props;
|
|
79
|
+
var table = this.props.table;
|
|
88
80
|
if (table != null) {
|
|
89
81
|
return table.columns[0].name;
|
|
90
82
|
}
|
|
91
83
|
return '';
|
|
92
84
|
}
|
|
93
85
|
getDisplayedValuesCount() {
|
|
94
|
-
var
|
|
95
|
-
invertSelection,
|
|
96
|
-
selectedValues,
|
|
97
|
-
table
|
|
98
|
-
} = this.state;
|
|
86
|
+
var _this$state2 = this.state,
|
|
87
|
+
invertSelection = _this$state2.invertSelection,
|
|
88
|
+
selectedValues = _this$state2.selectedValues,
|
|
89
|
+
table = _this$state2.table;
|
|
99
90
|
if (table == null) {
|
|
100
91
|
return null;
|
|
101
92
|
}
|
|
@@ -106,12 +97,8 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
106
97
|
}
|
|
107
98
|
getDisplayedValueText() {
|
|
108
99
|
var count = this.getDisplayedValuesCount();
|
|
109
|
-
var
|
|
110
|
-
|
|
111
|
-
} = this.state;
|
|
112
|
-
var {
|
|
113
|
-
formatter
|
|
114
|
-
} = this.props;
|
|
100
|
+
var table = this.state.table;
|
|
101
|
+
var formatter = this.props.formatter;
|
|
115
102
|
if (count != null && table != null) {
|
|
116
103
|
var formattedCount = formatter.getFormattedString(count, 'long');
|
|
117
104
|
var formattedTableSize = formatter.getFormattedString(table.totalSize, 'long');
|
|
@@ -124,9 +111,7 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
124
111
|
return null;
|
|
125
112
|
}
|
|
126
113
|
initSearchTable() {
|
|
127
|
-
var
|
|
128
|
-
table
|
|
129
|
-
} = this.props;
|
|
114
|
+
var table = this.props.table;
|
|
130
115
|
if (table == null) {
|
|
131
116
|
return;
|
|
132
117
|
}
|
|
@@ -148,9 +133,7 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
148
133
|
selectedValues,
|
|
149
134
|
invertSelection
|
|
150
135
|
});
|
|
151
|
-
var
|
|
152
|
-
onChange
|
|
153
|
-
} = this.props;
|
|
136
|
+
var onChange = this.props.onChange;
|
|
154
137
|
onChange(selectedValues, invertSelection);
|
|
155
138
|
}
|
|
156
139
|
handleSearchChange(event) {
|
|
@@ -175,9 +158,7 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
175
158
|
invertSelection,
|
|
176
159
|
selectedValues
|
|
177
160
|
});
|
|
178
|
-
var
|
|
179
|
-
onChange
|
|
180
|
-
} = this.props;
|
|
161
|
+
var onChange = this.props.onChange;
|
|
181
162
|
onChange(selectedValues, invertSelection);
|
|
182
163
|
}
|
|
183
164
|
startUpdateFilterTimer() {
|
|
@@ -191,16 +172,11 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
191
172
|
}
|
|
192
173
|
}
|
|
193
174
|
updateTableFilter() {
|
|
194
|
-
var
|
|
195
|
-
table,
|
|
196
|
-
searchText
|
|
197
|
-
|
|
198
|
-
var
|
|
199
|
-
timeZone
|
|
200
|
-
} = this.props;
|
|
201
|
-
var {
|
|
202
|
-
tableUtils
|
|
203
|
-
} = this;
|
|
175
|
+
var _this$state3 = this.state,
|
|
176
|
+
table = _this$state3.table,
|
|
177
|
+
searchText = _this$state3.searchText;
|
|
178
|
+
var timeZone = this.props.timeZone;
|
|
179
|
+
var tableUtils = this.tableUtils;
|
|
204
180
|
var column = table === null || table === void 0 ? void 0 : table.columns[0];
|
|
205
181
|
var filters = [];
|
|
206
182
|
if (column == null) {
|
|
@@ -232,19 +208,17 @@ class AdvancedFilterCreatorSelectValue extends PureComponent {
|
|
|
232
208
|
});
|
|
233
209
|
}
|
|
234
210
|
render() {
|
|
235
|
-
var
|
|
236
|
-
error,
|
|
237
|
-
filters,
|
|
238
|
-
invertSelection,
|
|
239
|
-
selectedValues,
|
|
240
|
-
searchText,
|
|
241
|
-
table
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
showSearch
|
|
247
|
-
} = this.props;
|
|
211
|
+
var _this$state4 = this.state,
|
|
212
|
+
error = _this$state4.error,
|
|
213
|
+
filters = _this$state4.filters,
|
|
214
|
+
invertSelection = _this$state4.invertSelection,
|
|
215
|
+
selectedValues = _this$state4.selectedValues,
|
|
216
|
+
searchText = _this$state4.searchText,
|
|
217
|
+
table = _this$state4.table;
|
|
218
|
+
var _this$props2 = this.props,
|
|
219
|
+
dh = _this$props2.dh,
|
|
220
|
+
formatter = _this$props2.formatter,
|
|
221
|
+
showSearch = _this$props2.showSearch;
|
|
248
222
|
var columnName = this.getColumnName();
|
|
249
223
|
var displayedValuesText = this.getDisplayedValueText();
|
|
250
224
|
var placeholderText = columnName ? "Find ".concat(columnName, "...") : '';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedFilterCreatorSelectValue.js","names":["React","PureComponent","classNames","TableUtils","Button","FadeTransition","AdvancedFilterCreatorSelectValueList","jsx","_jsx","jsxs","_jsxs","AdvancedFilterCreatorSelectValue","constructor","props","_defineProperty","handleSelectAllClick","bind","handleClearAllClick","handleListChange","handleSearchChange","handleUpdateFilterTimeout","dh","invertSelection","selectedValues","tableUtils","state","filters","searchText","componentDidMount","initSearchTable","componentDidUpdate","prevProps","prevState","table","setState","searchTable","close","startUpdateFilterTimer","componentWillUnmount","searchTablePromise","undefined","stopUpdateFilterTimer","getColumnName","columns","name","getDisplayedValuesCount","totalSize","length","getDisplayedValueText","count","formatter","formattedCount","getFormattedString","formattedTableSize","prefix","concat","copy","then","onChange","event","target","value","resetSelection","updateFilterTimer","updateTableFilter","setTimeout","searchDebounceTime","clearTimeout","timeZone","column","error","filter","isCharType","type","makeQuickFilter","isTextType","push","render","showSearch","columnName","displayedValuesText","placeholderText","className","children","htmlFor","id","placeholder","kind","onClick","in","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { type Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Button, FadeTransition } from '@deephaven/components';\nimport AdvancedFilterCreatorSelectValueList from './AdvancedFilterCreatorSelectValueList';\nimport './AdvancedFilterCreatorSelectValue.scss';\nimport { type ColumnName } from './CommonTypes';\n\ninterface AdvancedFilterCreatorSelectValueProps<T> {\n dh: typeof DhType;\n invertSelection: boolean;\n selectedValues: (T | null)[];\n table?: DhType.Table;\n formatter: Formatter;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n showSearch: boolean;\n timeZone: string;\n}\n\ninterface AdvancedFilterCreatorSelectValueState<T> {\n error?: string;\n filters: DhType.FilterCondition[];\n invertSelection: boolean;\n selectedValues: (T | null)[];\n searchText: string;\n table?: DhType.Table;\n}\n\nclass AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueProps<T>,\n AdvancedFilterCreatorSelectValueState<T>\n> {\n static searchDebounceTime = 250;\n\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n showSearch: true,\n };\n\n constructor(props: AdvancedFilterCreatorSelectValueProps<T>) {\n super(props);\n\n this.handleSelectAllClick = this.handleSelectAllClick.bind(this);\n this.handleClearAllClick = this.handleClearAllClick.bind(this);\n this.handleListChange = this.handleListChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUpdateFilterTimeout = this.handleUpdateFilterTimeout.bind(this);\n\n const { dh, invertSelection, selectedValues } = props;\n\n this.tableUtils = new TableUtils(dh);\n\n this.state = {\n filters: [],\n invertSelection,\n selectedValues,\n searchText: '',\n };\n }\n\n componentDidMount(): void {\n this.initSearchTable();\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueProps<T>,\n prevState: AdvancedFilterCreatorSelectValueState<T>\n ): void {\n const { invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n this.initSearchTable();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ invertSelection });\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues });\n }\n\n const { table: searchTable, searchText } = this.state;\n\n if (searchTable !== prevState.table) {\n if (prevState.table != null) {\n prevState.table.close();\n }\n if (searchTable != null) {\n this.startUpdateFilterTimer();\n }\n }\n\n if (searchText !== prevState.searchText) {\n this.startUpdateFilterTimer();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.state;\n if (table != null) {\n table.close();\n }\n this.searchTablePromise = undefined;\n\n this.stopUpdateFilterTimer();\n }\n\n searchTablePromise?: Promise<DhType.Table>;\n\n tableUtils: TableUtils;\n\n updateFilterTimer?: ReturnType<typeof setTimeout>;\n\n getColumnName(): ColumnName {\n const { table } = this.props;\n if (table != null) {\n return table.columns[0].name;\n }\n return '';\n }\n\n getDisplayedValuesCount(): number | null {\n const { invertSelection, selectedValues, table } = this.state;\n if (table == null) {\n return null;\n }\n\n if (invertSelection) {\n return table.totalSize - selectedValues.length;\n }\n return selectedValues.length;\n }\n\n getDisplayedValueText(): string | null {\n const count = this.getDisplayedValuesCount();\n const { table } = this.state;\n\n const { formatter } = this.props;\n\n if (count != null && table != null) {\n const formattedCount = formatter.getFormattedString(count, 'long');\n const formattedTableSize = formatter.getFormattedString(\n table.totalSize,\n 'long'\n );\n let prefix = '';\n if (count < 1000000) {\n prefix = 'Displaying ';\n }\n return `${prefix}${formattedCount} of ${formattedTableSize}`;\n }\n return null;\n }\n\n initSearchTable(): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n const searchTablePromise = table.copy();\n this.searchTablePromise = searchTablePromise;\n this.searchTablePromise.then(searchTable => {\n if (this.searchTablePromise === searchTablePromise) {\n this.setState({ table: searchTable });\n this.searchTablePromise = undefined;\n } else {\n searchTable.close();\n }\n });\n }\n\n handleListChange(\n selectedValues: (T | null)[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleSearchChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const searchText = event.target.value;\n this.setState({ searchText });\n }\n\n handleSelectAllClick(): void {\n this.resetSelection(true);\n }\n\n handleClearAllClick(): void {\n this.resetSelection(false);\n }\n\n handleUpdateFilterTimeout(): void {\n this.updateFilterTimer = undefined;\n this.updateTableFilter();\n }\n\n resetSelection(invertSelection: boolean): void {\n const selectedValues: T[] = [];\n\n this.setState({ invertSelection, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n startUpdateFilterTimer(): void {\n this.stopUpdateFilterTimer();\n\n this.updateFilterTimer = setTimeout(\n this.handleUpdateFilterTimeout,\n AdvancedFilterCreatorSelectValue.searchDebounceTime\n );\n }\n\n stopUpdateFilterTimer(): void {\n if (this.updateFilterTimer != null) {\n clearTimeout(this.updateFilterTimer);\n this.updateFilterTimer = undefined;\n }\n }\n\n updateTableFilter(): void {\n const { table, searchText } = this.state;\n const { timeZone } = this.props;\n const { tableUtils } = this;\n const column = table?.columns[0];\n const filters = [];\n if (column == null) {\n return;\n }\n let error;\n if (searchText.length > 0) {\n let filter = null;\n if (TableUtils.isCharType(column.type)) {\n // Just exact match for char\n filter = tableUtils.makeQuickFilter(column, searchText);\n } else if (TableUtils.isTextType(column.type)) {\n // case insensitive & contains search text\n filter = tableUtils.makeQuickFilter(column, `~${searchText}`, timeZone);\n } else {\n // greater than or equal search for everything else\n // we may want to be smarter with some other types (like dates)\n filter = tableUtils.makeQuickFilter(\n column,\n `>=${searchText}`,\n timeZone\n );\n }\n\n if (filter != null) {\n filters.push(filter);\n } else {\n error = 'Invalid search text';\n }\n }\n\n this.setState({ filters, error });\n }\n\n render(): React.ReactElement {\n const {\n error,\n filters,\n invertSelection,\n selectedValues,\n searchText,\n table,\n } = this.state;\n const { dh, formatter, showSearch } = this.props;\n const columnName = this.getColumnName();\n const displayedValuesText = this.getDisplayedValueText();\n const placeholderText = columnName ? `Find ${columnName}...` : '';\n\n return (\n <div className=\"advanced-filter-creator-select-value\">\n <div className={showSearch ? 'form-group' : ''}>\n <label htmlFor=\"advanced-filter-creator-select-value-input\">\n Select Values\n </label>\n {showSearch && (\n <input\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': error != null,\n })}\n id=\"advanced-filter-creator-select-value-input\"\n placeholder={placeholderText}\n value={searchText}\n onChange={this.handleSearchChange}\n />\n )}\n </div>\n <AdvancedFilterCreatorSelectValueList\n dh={dh}\n table={table}\n filters={filters}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n onChange={this.handleListChange}\n />\n <div className=\"advanced-filter-creator-select-meta-row\">\n <div>\n <Button kind=\"ghost\" onClick={this.handleSelectAllClick}>\n Select All\n </Button>\n <Button kind=\"ghost\" onClick={this.handleClearAllClick}>\n Clear\n </Button>\n </div>\n <FadeTransition\n in={displayedValuesText != null}\n mountOnEnter\n unmountOnExit\n >\n <div className=\"row-count-info\">{displayedValuesText}</div>\n </FadeTransition>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValue;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AdvancedFilterCreatorSelectValue.js","names":["React","PureComponent","classNames","TableUtils","Button","FadeTransition","AdvancedFilterCreatorSelectValueList","jsx","_jsx","jsxs","_jsxs","AdvancedFilterCreatorSelectValue","constructor","props","_defineProperty","handleSelectAllClick","bind","handleClearAllClick","handleListChange","handleSearchChange","handleUpdateFilterTimeout","dh","invertSelection","selectedValues","tableUtils","state","filters","searchText","componentDidMount","initSearchTable","componentDidUpdate","prevProps","prevState","_this$props","table","setState","_this$state","searchTable","close","startUpdateFilterTimer","componentWillUnmount","searchTablePromise","undefined","stopUpdateFilterTimer","getColumnName","columns","name","getDisplayedValuesCount","_this$state2","totalSize","length","getDisplayedValueText","count","formatter","formattedCount","getFormattedString","formattedTableSize","prefix","concat","copy","then","onChange","event","target","value","resetSelection","updateFilterTimer","updateTableFilter","setTimeout","searchDebounceTime","clearTimeout","_this$state3","timeZone","column","error","filter","isCharType","type","makeQuickFilter","isTextType","push","render","_this$state4","_this$props2","showSearch","columnName","displayedValuesText","placeholderText","className","children","htmlFor","id","placeholder","kind","onClick","in","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValue.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { type Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { Button, FadeTransition } from '@deephaven/components';\nimport AdvancedFilterCreatorSelectValueList from './AdvancedFilterCreatorSelectValueList';\nimport './AdvancedFilterCreatorSelectValue.scss';\nimport { type ColumnName } from './CommonTypes';\n\ninterface AdvancedFilterCreatorSelectValueProps<T> {\n dh: typeof DhType;\n invertSelection: boolean;\n selectedValues: (T | null)[];\n table?: DhType.Table;\n formatter: Formatter;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n showSearch: boolean;\n timeZone: string;\n}\n\ninterface AdvancedFilterCreatorSelectValueState<T> {\n error?: string;\n filters: DhType.FilterCondition[];\n invertSelection: boolean;\n selectedValues: (T | null)[];\n searchText: string;\n table?: DhType.Table;\n}\n\nclass AdvancedFilterCreatorSelectValue<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueProps<T>,\n AdvancedFilterCreatorSelectValueState<T>\n> {\n static searchDebounceTime = 250;\n\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n showSearch: true,\n };\n\n constructor(props: AdvancedFilterCreatorSelectValueProps<T>) {\n super(props);\n\n this.handleSelectAllClick = this.handleSelectAllClick.bind(this);\n this.handleClearAllClick = this.handleClearAllClick.bind(this);\n this.handleListChange = this.handleListChange.bind(this);\n this.handleSearchChange = this.handleSearchChange.bind(this);\n this.handleUpdateFilterTimeout = this.handleUpdateFilterTimeout.bind(this);\n\n const { dh, invertSelection, selectedValues } = props;\n\n this.tableUtils = new TableUtils(dh);\n\n this.state = {\n filters: [],\n invertSelection,\n selectedValues,\n searchText: '',\n };\n }\n\n componentDidMount(): void {\n this.initSearchTable();\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueProps<T>,\n prevState: AdvancedFilterCreatorSelectValueState<T>\n ): void {\n const { invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n this.initSearchTable();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ invertSelection });\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues });\n }\n\n const { table: searchTable, searchText } = this.state;\n\n if (searchTable !== prevState.table) {\n if (prevState.table != null) {\n prevState.table.close();\n }\n if (searchTable != null) {\n this.startUpdateFilterTimer();\n }\n }\n\n if (searchText !== prevState.searchText) {\n this.startUpdateFilterTimer();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.state;\n if (table != null) {\n table.close();\n }\n this.searchTablePromise = undefined;\n\n this.stopUpdateFilterTimer();\n }\n\n searchTablePromise?: Promise<DhType.Table>;\n\n tableUtils: TableUtils;\n\n updateFilterTimer?: ReturnType<typeof setTimeout>;\n\n getColumnName(): ColumnName {\n const { table } = this.props;\n if (table != null) {\n return table.columns[0].name;\n }\n return '';\n }\n\n getDisplayedValuesCount(): number | null {\n const { invertSelection, selectedValues, table } = this.state;\n if (table == null) {\n return null;\n }\n\n if (invertSelection) {\n return table.totalSize - selectedValues.length;\n }\n return selectedValues.length;\n }\n\n getDisplayedValueText(): string | null {\n const count = this.getDisplayedValuesCount();\n const { table } = this.state;\n\n const { formatter } = this.props;\n\n if (count != null && table != null) {\n const formattedCount = formatter.getFormattedString(count, 'long');\n const formattedTableSize = formatter.getFormattedString(\n table.totalSize,\n 'long'\n );\n let prefix = '';\n if (count < 1000000) {\n prefix = 'Displaying ';\n }\n return `${prefix}${formattedCount} of ${formattedTableSize}`;\n }\n return null;\n }\n\n initSearchTable(): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n const searchTablePromise = table.copy();\n this.searchTablePromise = searchTablePromise;\n this.searchTablePromise.then(searchTable => {\n if (this.searchTablePromise === searchTablePromise) {\n this.setState({ table: searchTable });\n this.searchTablePromise = undefined;\n } else {\n searchTable.close();\n }\n });\n }\n\n handleListChange(\n selectedValues: (T | null)[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleSearchChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const searchText = event.target.value;\n this.setState({ searchText });\n }\n\n handleSelectAllClick(): void {\n this.resetSelection(true);\n }\n\n handleClearAllClick(): void {\n this.resetSelection(false);\n }\n\n handleUpdateFilterTimeout(): void {\n this.updateFilterTimer = undefined;\n this.updateTableFilter();\n }\n\n resetSelection(invertSelection: boolean): void {\n const selectedValues: T[] = [];\n\n this.setState({ invertSelection, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n startUpdateFilterTimer(): void {\n this.stopUpdateFilterTimer();\n\n this.updateFilterTimer = setTimeout(\n this.handleUpdateFilterTimeout,\n AdvancedFilterCreatorSelectValue.searchDebounceTime\n );\n }\n\n stopUpdateFilterTimer(): void {\n if (this.updateFilterTimer != null) {\n clearTimeout(this.updateFilterTimer);\n this.updateFilterTimer = undefined;\n }\n }\n\n updateTableFilter(): void {\n const { table, searchText } = this.state;\n const { timeZone } = this.props;\n const { tableUtils } = this;\n const column = table?.columns[0];\n const filters = [];\n if (column == null) {\n return;\n }\n let error;\n if (searchText.length > 0) {\n let filter = null;\n if (TableUtils.isCharType(column.type)) {\n // Just exact match for char\n filter = tableUtils.makeQuickFilter(column, searchText);\n } else if (TableUtils.isTextType(column.type)) {\n // case insensitive & contains search text\n filter = tableUtils.makeQuickFilter(column, `~${searchText}`, timeZone);\n } else {\n // greater than or equal search for everything else\n // we may want to be smarter with some other types (like dates)\n filter = tableUtils.makeQuickFilter(\n column,\n `>=${searchText}`,\n timeZone\n );\n }\n\n if (filter != null) {\n filters.push(filter);\n } else {\n error = 'Invalid search text';\n }\n }\n\n this.setState({ filters, error });\n }\n\n render(): React.ReactElement {\n const {\n error,\n filters,\n invertSelection,\n selectedValues,\n searchText,\n table,\n } = this.state;\n const { dh, formatter, showSearch } = this.props;\n const columnName = this.getColumnName();\n const displayedValuesText = this.getDisplayedValueText();\n const placeholderText = columnName ? `Find ${columnName}...` : '';\n\n return (\n <div className=\"advanced-filter-creator-select-value\">\n <div className={showSearch ? 'form-group' : ''}>\n <label htmlFor=\"advanced-filter-creator-select-value-input\">\n Select Values\n </label>\n {showSearch && (\n <input\n type=\"text\"\n className={classNames('form-control', {\n 'is-invalid': error != null,\n })}\n id=\"advanced-filter-creator-select-value-input\"\n placeholder={placeholderText}\n value={searchText}\n onChange={this.handleSearchChange}\n />\n )}\n </div>\n <AdvancedFilterCreatorSelectValueList\n dh={dh}\n table={table}\n filters={filters}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n onChange={this.handleListChange}\n />\n <div className=\"advanced-filter-creator-select-meta-row\">\n <div>\n <Button kind=\"ghost\" onClick={this.handleSelectAllClick}>\n Select All\n </Button>\n <Button kind=\"ghost\" onClick={this.handleClearAllClick}>\n Clear\n </Button>\n </div>\n <FadeTransition\n in={displayedValuesText != null}\n mountOnEnter\n unmountOnExit\n >\n <div className=\"row-count-info\">{displayedValuesText}</div>\n </FadeTransition>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValue;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -34,10 +34,9 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
34
34
|
this.handleViewportChange = this.handleViewportChange.bind(this);
|
|
35
35
|
this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);
|
|
36
36
|
this.handleTableUpdate = this.handleTableUpdate.bind(this);
|
|
37
|
-
var
|
|
38
|
-
selectedValues,
|
|
39
|
-
dh
|
|
40
|
-
} = this.props;
|
|
37
|
+
var _this$props = this.props,
|
|
38
|
+
selectedValues = _this$props.selectedValues,
|
|
39
|
+
dh = _this$props.dh;
|
|
41
40
|
this.dh = dh;
|
|
42
41
|
this.list = null;
|
|
43
42
|
this.state = {
|
|
@@ -49,18 +48,15 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
49
48
|
};
|
|
50
49
|
}
|
|
51
50
|
componentDidMount() {
|
|
52
|
-
var
|
|
53
|
-
table
|
|
54
|
-
} = this.props;
|
|
51
|
+
var table = this.props.table;
|
|
55
52
|
if (table) this.startListening(table);
|
|
56
53
|
}
|
|
57
54
|
componentDidUpdate(prevProps) {
|
|
58
|
-
var
|
|
59
|
-
filters,
|
|
60
|
-
invertSelection,
|
|
61
|
-
selectedValues,
|
|
62
|
-
table
|
|
63
|
-
} = this.props;
|
|
55
|
+
var _this$props2 = this.props,
|
|
56
|
+
filters = _this$props2.filters,
|
|
57
|
+
invertSelection = _this$props2.invertSelection,
|
|
58
|
+
selectedValues = _this$props2.selectedValues,
|
|
59
|
+
table = _this$props2.table;
|
|
64
60
|
if (prevProps.table !== table) {
|
|
65
61
|
if (prevProps.table) this.stopListening(prevProps.table);
|
|
66
62
|
if (table) this.startListening(table);
|
|
@@ -82,18 +78,12 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
82
78
|
}
|
|
83
79
|
}
|
|
84
80
|
componentWillUnmount() {
|
|
85
|
-
var
|
|
86
|
-
table
|
|
87
|
-
} = this.props;
|
|
81
|
+
var table = this.props.table;
|
|
88
82
|
if (table) this.stopListening(table);
|
|
89
83
|
}
|
|
90
84
|
handleSelect(itemIndex, value) {
|
|
91
|
-
var
|
|
92
|
-
|
|
93
|
-
} = this.props;
|
|
94
|
-
var {
|
|
95
|
-
selectedValues
|
|
96
|
-
} = this.state;
|
|
85
|
+
var invertSelection = this.props.invertSelection;
|
|
86
|
+
var selectedValues = this.state.selectedValues;
|
|
97
87
|
selectedValues = [...selectedValues];
|
|
98
88
|
var selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(value, selectedValues);
|
|
99
89
|
if (selectedIndex >= 0) {
|
|
@@ -105,12 +95,8 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
105
95
|
if (invertSelection) {
|
|
106
96
|
isSelected = !isSelected;
|
|
107
97
|
}
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
} = this.state;
|
|
111
|
-
var {
|
|
112
|
-
items
|
|
113
|
-
} = this.state;
|
|
98
|
+
var offset = this.state.offset;
|
|
99
|
+
var items = this.state.items;
|
|
114
100
|
items = [...items];
|
|
115
101
|
var visibleItemIndex = itemIndex - offset;
|
|
116
102
|
if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {
|
|
@@ -120,9 +106,7 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
120
106
|
items,
|
|
121
107
|
selectedValues
|
|
122
108
|
});
|
|
123
|
-
var
|
|
124
|
-
onChange
|
|
125
|
-
} = this.props;
|
|
109
|
+
var onChange = this.props.onChange;
|
|
126
110
|
onChange(selectedValues, invertSelection);
|
|
127
111
|
}
|
|
128
112
|
handleViewportChange(top, bottom) {
|
|
@@ -132,15 +116,12 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
132
116
|
this.updateItemSelection();
|
|
133
117
|
}
|
|
134
118
|
handleTableUpdate(event) {
|
|
135
|
-
var
|
|
136
|
-
table,
|
|
137
|
-
formatter
|
|
138
|
-
} = this.props;
|
|
119
|
+
var _this$props3 = this.props,
|
|
120
|
+
table = _this$props3.table,
|
|
121
|
+
formatter = _this$props3.formatter;
|
|
139
122
|
if (!table) return;
|
|
140
123
|
var data = event.detail;
|
|
141
|
-
var
|
|
142
|
-
offset
|
|
143
|
-
} = data;
|
|
124
|
+
var offset = data.offset;
|
|
144
125
|
var items = [];
|
|
145
126
|
var column = table.columns[0];
|
|
146
127
|
for (var r = 0; r < data.rows.length; r += 1) {
|
|
@@ -177,12 +158,8 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
177
158
|
});
|
|
178
159
|
}
|
|
179
160
|
isValueSelected(value) {
|
|
180
|
-
var
|
|
181
|
-
|
|
182
|
-
} = this.props;
|
|
183
|
-
var {
|
|
184
|
-
selectedValues
|
|
185
|
-
} = this.state;
|
|
161
|
+
var invertSelection = this.props.invertSelection;
|
|
162
|
+
var selectedValues = this.state.selectedValues;
|
|
186
163
|
|
|
187
164
|
// Need to check if any of the valueOf matches, timestamp value that is equal
|
|
188
165
|
var selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(value, selectedValues);
|
|
@@ -200,15 +177,11 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
200
177
|
}
|
|
201
178
|
}
|
|
202
179
|
updateItemSelection() {
|
|
203
|
-
var
|
|
204
|
-
items
|
|
205
|
-
} = this.state;
|
|
180
|
+
var items = this.state.items;
|
|
206
181
|
items = [...items];
|
|
207
182
|
for (var i = 0; i < items.length; i += 1) {
|
|
208
183
|
var item = items[i];
|
|
209
|
-
var
|
|
210
|
-
value
|
|
211
|
-
} = item;
|
|
184
|
+
var value = item.value;
|
|
212
185
|
item.isSelected = this.isValueSelected(value);
|
|
213
186
|
}
|
|
214
187
|
this.setState({
|
|
@@ -217,9 +190,7 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
217
190
|
}
|
|
218
191
|
updateViewport(top, bottom) {
|
|
219
192
|
var isLoading = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
220
|
-
var
|
|
221
|
-
table
|
|
222
|
-
} = this.props;
|
|
193
|
+
var table = this.props.table;
|
|
223
194
|
if (table == null) {
|
|
224
195
|
return;
|
|
225
196
|
}
|
|
@@ -235,12 +206,11 @@ class AdvancedFilterCreatorSelectValueList extends PureComponent {
|
|
|
235
206
|
table.setViewport(topRow, bottomRow);
|
|
236
207
|
}
|
|
237
208
|
render() {
|
|
238
|
-
var
|
|
239
|
-
offset,
|
|
240
|
-
isLoading,
|
|
241
|
-
items,
|
|
242
|
-
itemCount
|
|
243
|
-
} = this.state;
|
|
209
|
+
var _this$state = this.state,
|
|
210
|
+
offset = _this$state.offset,
|
|
211
|
+
isLoading = _this$state.isLoading,
|
|
212
|
+
items = _this$state.items,
|
|
213
|
+
itemCount = _this$state.itemCount;
|
|
244
214
|
return /*#__PURE__*/_jsxs("div", {
|
|
245
215
|
className: "select-value-list-wrapper",
|
|
246
216
|
children: [/*#__PURE__*/_jsx(SelectValueList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdvancedFilterCreatorSelectValueList.js","names":["React","PureComponent","LoadingSpinner","SelectValueList","FadeTransition","Log","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorSelectValueList","indexOf","value","values","i","length","v","valueOf","constructor","props","_defineProperty","handleSelect","bind","handleViewportChange","handleSelectionUpdate","handleTableUpdate","selectedValues","dh","list","state","itemCount","items","offset","isLoading","componentDidMount","table","startListening","componentDidUpdate","prevProps","filters","invertSelection","stopListening","resetViewport","setState","applyFilter","componentWillUnmount","itemIndex","selectedIndex","splice","push","isSelected","visibleItemIndex","onChange","top","bottom","updateViewport","updateItemSelection","event","formatter","data","detail","column","columns","r","rows","row","get","displayValue","className","children","getFormattedString","type","name","isValueSelected","debug2","size","addEventListener","Table","EVENT_UPDATED","removeEventListener","topRow","bottomRow","item","arguments","undefined","viewportSize","Math","max","setViewport","render","onSelect","onViewportChange","ref","in","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent, type ReactElement } from 'react';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { type Formatter } from '@deephaven/jsapi-utils';\nimport {\n LoadingSpinner,\n SelectValueList,\n type SelectItem,\n FadeTransition,\n} from '@deephaven/components';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('AdvancedFilterCreatorSelectValueList');\n\ninterface AdvancedFilterCreatorSelectValueListProps<T> {\n dh: typeof DhType;\n selectedValues: (T | null)[];\n table?: DhType.Table;\n filters: DhType.FilterCondition[];\n invertSelection: boolean;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterCreatorSelectValueListState<T> {\n itemCount: number;\n items: SelectItem<T>[];\n offset: number;\n selectedValues: (T | null)[];\n isLoading: boolean;\n}\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass AdvancedFilterCreatorSelectValueList<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueListProps<T>,\n AdvancedFilterCreatorSelectValueListState<T>\n> {\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n };\n\n /**\n * Get the index of a value in an array. Has some special handling for some types, like DateTimes and Longs.\n * @param value The value to search for\n * @param values The array of values to search within\n */\n static indexOf(value: unknown, values: unknown[]): number {\n for (let i = 0; i < values.length; i += 1) {\n const v = values[i];\n if (\n v === value ||\n (v != null &&\n v.valueOf != null &&\n value != null &&\n value.valueOf != null &&\n v.valueOf() === value.valueOf())\n ) {\n return i;\n }\n }\n\n return -1;\n }\n\n constructor(props: AdvancedFilterCreatorSelectValueListProps<T>) {\n super(props);\n\n this.handleSelect = this.handleSelect.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n\n const { selectedValues, dh } = this.props;\n\n this.dh = dh;\n this.list = null;\n\n this.state = {\n itemCount: 0,\n items: [],\n offset: 0,\n selectedValues,\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n const { table } = this.props;\n if (table) this.startListening(table);\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueListProps<T>\n ): void {\n const { filters, invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n if (prevProps.table) this.stopListening(prevProps.table);\n if (table) this.startListening(table);\n this.resetViewport();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ selectedValues: [] }, this.handleSelectionUpdate);\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues }, this.handleSelectionUpdate);\n }\n\n if (prevProps.filters !== filters) {\n table?.applyFilter(filters);\n this.resetViewport();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.props;\n if (table) this.stopListening(table);\n }\n\n dh: typeof DhType;\n\n list: SelectValueList<T> | null;\n\n handleSelect(itemIndex: number, value: T | null): void {\n const { invertSelection } = this.props;\n let { selectedValues } = this.state;\n selectedValues = [...selectedValues];\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n if (selectedIndex >= 0) {\n selectedValues.splice(selectedIndex, 1);\n } else {\n selectedValues.push(value);\n }\n\n let isSelected = selectedIndex < 0;\n if (invertSelection) {\n isSelected = !isSelected;\n }\n\n const { offset } = this.state;\n let { items } = this.state;\n items = [...items];\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n items[visibleItemIndex].isSelected = isSelected;\n }\n\n this.setState({ items, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.updateViewport(top, bottom);\n }\n\n handleSelectionUpdate(): void {\n this.updateItemSelection();\n }\n\n handleTableUpdate(event: DhType.Event<DhType.ViewportData>): void {\n const { table, formatter } = this.props;\n if (!table) return;\n\n const data = event.detail;\n const { offset } = data;\n const items = [];\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n let displayValue: string | JSX.Element;\n if (value == null) {\n displayValue = <i className=\"text-muted\">null</i>;\n } else if (value === '') {\n displayValue = <i className=\"text-muted\">empty</i>;\n } else {\n displayValue = formatter.getFormattedString(\n value,\n column.type,\n column.name\n );\n }\n const isSelected = this.isValueSelected(value);\n items.push({\n displayValue,\n value,\n isSelected,\n });\n }\n\n log.debug2('Received table update:', offset, items.length);\n\n const itemCount = table.size;\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n isValueSelected(value: T): boolean {\n const { invertSelection } = this.props;\n const { selectedValues } = this.state;\n\n // Need to check if any of the valueOf matches, timestamp value that is equal\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n\n return invertSelection ? selectedIndex < 0 : selectedIndex >= 0;\n }\n\n startListening(table: DhType.Table): void {\n table.addEventListener(this.dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n stopListening(table: DhType.Table): void {\n table.removeEventListener(\n this.dh.Table.EVENT_UPDATED,\n this.handleTableUpdate\n );\n }\n\n resetViewport(): void {\n if (this.list && this.list.topRow != null && this.list.bottomRow != null) {\n this.updateViewport(this.list.topRow, this.list.bottomRow, true);\n }\n }\n\n updateItemSelection(): void {\n let { items } = this.state;\n\n items = [...items];\n\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value } = item;\n item.isSelected = this.isValueSelected(value);\n }\n\n this.setState({ items });\n }\n\n updateViewport(top: number, bottom: number, isLoading = false): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n if (isLoading) {\n this.setState({ isLoading: true });\n }\n\n const viewportSize = bottom - top + 1;\n const topRow = Math.max(0, top - viewportSize * 3);\n const bottomRow = Math.max(topRow, bottom + viewportSize * 3);\n\n log.debug2('Setting viewport', topRow, ',', bottomRow);\n table.setViewport(topRow, bottomRow);\n }\n\n render(): ReactElement {\n const { offset, isLoading, items, itemCount } = this.state;\n\n return (\n <div className=\"select-value-list-wrapper\">\n <SelectValueList\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n ref={list => {\n this.list = list;\n }}\n />\n <FadeTransition in={isLoading} mountOnEnter unmountOnExit>\n <div className=\"loading-list\">\n <LoadingSpinner className=\"loading-spinner-large\" />\n </div>\n </FadeTransition>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValueList;\n"],"mappings":";;;AAAA;AACA,OAAOA,KAAK,IAAIC,aAAa,QAA2B,OAAO;AAG/D,SACEC,cAAc,EACdC,eAAe,EAEfC,cAAc,QACT,uBAAuB;AAC9B,OAAOC,GAAG,MAAM,gBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAEjC,IAAMC,GAAG,GAAGL,GAAG,CAACM,MAAM,CAAC,sCAAsC,CAAC;AAmB9D;AACA;AACA;AACA;AACA,MAAMC,oCAAoC,SAAsBX,aAAa,CAG3E;EAOA;AACF;AACA;AACA;AACA;EACE,OAAOY,OAAOA,CAACC,KAAc,EAAEC,MAAiB,EAAU;IACxD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,MAAM,CAACE,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACzC,IAAME,CAAC,GAAGH,MAAM,CAACC,CAAC,CAAC;MACnB,IACEE,CAAC,KAAKJ,KAAK,IACVI,CAAC,IAAI,IAAI,IACRA,CAAC,CAACC,OAAO,IAAI,IAAI,IACjBL,KAAK,IAAI,IAAI,IACbA,KAAK,CAACK,OAAO,IAAI,IAAI,IACrBD,CAAC,CAACC,OAAO,CAAC,CAAC,KAAKL,KAAK,CAACK,OAAO,CAAC,CAAE,EAClC;QACA,OAAOH,CAAC;MACV;IACF;IAEA,OAAO,CAAC,CAAC;EACX;EAEAI,WAAWA,CAACC,KAAmD,EAAE;IAC/D,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IAAAA,eAAA;IAEb,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,CAACC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACC,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACD,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAACE,qBAAqB,GAAG,IAAI,CAACA,qBAAqB,CAACF,IAAI,CAAC,IAAI,CAAC;IAClE,IAAI,CAACG,iBAAiB,GAAG,IAAI,CAACA,iBAAiB,CAACH,IAAI,CAAC,IAAI,CAAC;IAE1D,IAAM;MAAEI,cAAc;MAAEC;IAAG,CAAC,GAAG,IAAI,CAACR,KAAK;IAEzC,IAAI,CAACQ,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACC,IAAI,GAAG,IAAI;IAEhB,IAAI,CAACC,KAAK,GAAG;MACXC,SAAS,EAAE,CAAC;MACZC,KAAK,EAAE,EAAE;MACTC,MAAM,EAAE,CAAC;MACTN,cAAc;MACdO,SAAS,EAAE;IACb,CAAC;EACH;EAEAC,iBAAiBA,CAAA,EAAS;IACxB,IAAM;MAAEC;IAAM,CAAC,GAAG,IAAI,CAAChB,KAAK;IAC5B,IAAIgB,KAAK,EAAE,IAAI,CAACC,cAAc,CAACD,KAAK,CAAC;EACvC;EAEAE,kBAAkBA,CAChBC,SAAuD,EACjD;IACN,IAAM;MAAEC,OAAO;MAAEC,eAAe;MAAEd,cAAc;MAAES;IAAM,CAAC,GAAG,IAAI,CAAChB,KAAK;IACtE,IAAImB,SAAS,CAACH,KAAK,KAAKA,KAAK,EAAE;MAC7B,IAAIG,SAAS,CAACH,KAAK,EAAE,IAAI,CAACM,aAAa,CAACH,SAAS,CAACH,KAAK,CAAC;MACxD,IAAIA,KAAK,EAAE,IAAI,CAACC,cAAc,CAACD,KAAK,CAAC;MACrC,IAAI,CAACO,aAAa,CAAC,CAAC;IACtB;IAEA,IAAIJ,SAAS,CAACE,eAAe,KAAKA,eAAe,EAAE;MACjD,IAAI,CAACG,QAAQ,CAAC;QAAEjB,cAAc,EAAE;MAAG,CAAC,EAAE,IAAI,CAACF,qBAAqB,CAAC;IACnE;IAEA,IAAIc,SAAS,CAACZ,cAAc,KAAKA,cAAc,EAAE;MAC/C,IAAI,CAACiB,QAAQ,CAAC;QAAEjB;MAAe,CAAC,EAAE,IAAI,CAACF,qBAAqB,CAAC;IAC/D;IAEA,IAAIc,SAAS,CAACC,OAAO,KAAKA,OAAO,EAAE;MACjCJ,KAAK,aAALA,KAAK,eAALA,KAAK,CAAES,WAAW,CAACL,OAAO,CAAC;MAC3B,IAAI,CAACG,aAAa,CAAC,CAAC;IACtB;EACF;EAEAG,oBAAoBA,CAAA,EAAS;IAC3B,IAAM;MAAEV;IAAM,CAAC,GAAG,IAAI,CAAChB,KAAK;IAC5B,IAAIgB,KAAK,EAAE,IAAI,CAACM,aAAa,CAACN,KAAK,CAAC;EACtC;EAMAd,YAAYA,CAACyB,SAAiB,EAAElC,KAAe,EAAQ;IACrD,IAAM;MAAE4B;IAAgB,CAAC,GAAG,IAAI,CAACrB,KAAK;IACtC,IAAI;MAAEO;IAAe,CAAC,GAAG,IAAI,CAACG,KAAK;IACnCH,cAAc,GAAG,CAAC,GAAGA,cAAc,CAAC;IACpC,IAAMqB,aAAa,GAAGrC,oCAAoC,CAACC,OAAO,CAChEC,KAAK,EACLc,cACF,CAAC;IACD,IAAIqB,aAAa,IAAI,CAAC,EAAE;MACtBrB,cAAc,CAACsB,MAAM,CAACD,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC,MAAM;MACLrB,cAAc,CAACuB,IAAI,CAACrC,KAAK,CAAC;IAC5B;IAEA,IAAIsC,UAAU,GAAGH,aAAa,GAAG,CAAC;IAClC,IAAIP,eAAe,EAAE;MACnBU,UAAU,GAAG,CAACA,UAAU;IAC1B;IAEA,IAAM;MAAElB;IAAO,CAAC,GAAG,IAAI,CAACH,KAAK;IAC7B,IAAI;MAAEE;IAAM,CAAC,GAAG,IAAI,CAACF,KAAK;IAC1BE,KAAK,GAAG,CAAC,GAAGA,KAAK,CAAC;IAClB,IAAMoB,gBAAgB,GAAGL,SAAS,GAAGd,MAAM;IAC3C,IAAImB,gBAAgB,IAAI,CAAC,IAAIA,gBAAgB,GAAGpB,KAAK,CAAChB,MAAM,EAAE;MAC5DgB,KAAK,CAACoB,gBAAgB,CAAC,CAACD,UAAU,GAAGA,UAAU;IACjD;IAEA,IAAI,CAACP,QAAQ,CAAC;MAAEZ,KAAK;MAAEL;IAAe,CAAC,CAAC;IAExC,IAAM;MAAE0B;IAAS,CAAC,GAAG,IAAI,CAACjC,KAAK;IAC/BiC,QAAQ,CAAC1B,cAAc,EAAEc,eAAe,CAAC;EAC3C;EAEAjB,oBAAoBA,CAAC8B,GAAW,EAAEC,MAAc,EAAQ;IACtD,IAAI,CAACC,cAAc,CAACF,GAAG,EAAEC,MAAM,CAAC;EAClC;EAEA9B,qBAAqBA,CAAA,EAAS;IAC5B,IAAI,CAACgC,mBAAmB,CAAC,CAAC;EAC5B;EAEA/B,iBAAiBA,CAACgC,KAAwC,EAAQ;IAChE,IAAM;MAAEtB,KAAK;MAAEuB;IAAU,CAAC,GAAG,IAAI,CAACvC,KAAK;IACvC,IAAI,CAACgB,KAAK,EAAE;IAEZ,IAAMwB,IAAI,GAAGF,KAAK,CAACG,MAAM;IACzB,IAAM;MAAE5B;IAAO,CAAC,GAAG2B,IAAI;IACvB,IAAM5B,KAAK,GAAG,EAAE;IAChB,IAAM8B,MAAM,GAAG1B,KAAK,CAAC2B,OAAO,CAAC,CAAC,CAAC;IAC/B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,IAAI,CAACK,IAAI,CAACjD,MAAM,EAAEgD,CAAC,IAAI,CAAC,EAAE;MAC5C,IAAME,GAAG,GAAGN,IAAI,CAACK,IAAI,CAACD,CAAC,CAAC;MACxB,IAAMnD,KAAK,GAAGqD,GAAG,CAACC,GAAG,CAACL,MAAM,CAAC;MAC7B,IAAIM,YAAkC;MACtC,IAAIvD,KAAK,IAAI,IAAI,EAAE;QACjBuD,YAAY,gBAAG9D,IAAA;UAAG+D,SAAS,EAAC,YAAY;UAAAC,QAAA,EAAC;QAAI,CAAG,CAAC;MACnD,CAAC,MAAM,IAAIzD,KAAK,KAAK,EAAE,EAAE;QACvBuD,YAAY,gBAAG9D,IAAA;UAAG+D,SAAS,EAAC,YAAY;UAAAC,QAAA,EAAC;QAAK,CAAG,CAAC;MACpD,CAAC,MAAM;QACLF,YAAY,GAAGT,SAAS,CAACY,kBAAkB,CACzC1D,KAAK,EACLiD,MAAM,CAACU,IAAI,EACXV,MAAM,CAACW,IACT,CAAC;MACH;MACA,IAAMtB,UAAU,GAAG,IAAI,CAACuB,eAAe,CAAC7D,KAAK,CAAC;MAC9CmB,KAAK,CAACkB,IAAI,CAAC;QACTkB,YAAY;QACZvD,KAAK;QACLsC;MACF,CAAC,CAAC;IACJ;IAEA1C,GAAG,CAACkE,MAAM,CAAC,wBAAwB,EAAE1C,MAAM,EAAED,KAAK,CAAChB,MAAM,CAAC;IAE1D,IAAMe,SAAS,GAAGK,KAAK,CAACwC,IAAI;IAC5B,IAAI,CAAChC,QAAQ,CAAC;MAAEb,SAAS;MAAEC,KAAK;MAAEC,MAAM;MAAEC,SAAS,EAAE;IAAM,CAAC,CAAC;EAC/D;EAEAwC,eAAeA,CAAC7D,KAAQ,EAAW;IACjC,IAAM;MAAE4B;IAAgB,CAAC,GAAG,IAAI,CAACrB,KAAK;IACtC,IAAM;MAAEO;IAAe,CAAC,GAAG,IAAI,CAACG,KAAK;;IAErC;IACA,IAAMkB,aAAa,GAAGrC,oCAAoC,CAACC,OAAO,CAChEC,KAAK,EACLc,cACF,CAAC;IAED,OAAOc,eAAe,GAAGO,aAAa,GAAG,CAAC,GAAGA,aAAa,IAAI,CAAC;EACjE;EAEAX,cAAcA,CAACD,KAAmB,EAAQ;IACxCA,KAAK,CAACyC,gBAAgB,CAAC,IAAI,CAACjD,EAAE,CAACkD,KAAK,CAACC,aAAa,EAAE,IAAI,CAACrD,iBAAiB,CAAC;EAC7E;EAEAgB,aAAaA,CAACN,KAAmB,EAAQ;IACvCA,KAAK,CAAC4C,mBAAmB,CACvB,IAAI,CAACpD,EAAE,CAACkD,KAAK,CAACC,aAAa,EAC3B,IAAI,CAACrD,iBACP,CAAC;EACH;EAEAiB,aAAaA,CAAA,EAAS;IACpB,IAAI,IAAI,CAACd,IAAI,IAAI,IAAI,CAACA,IAAI,CAACoD,MAAM,IAAI,IAAI,IAAI,IAAI,CAACpD,IAAI,CAACqD,SAAS,IAAI,IAAI,EAAE;MACxE,IAAI,CAAC1B,cAAc,CAAC,IAAI,CAAC3B,IAAI,CAACoD,MAAM,EAAE,IAAI,CAACpD,IAAI,CAACqD,SAAS,EAAE,IAAI,CAAC;IAClE;EACF;EAEAzB,mBAAmBA,CAAA,EAAS;IAC1B,IAAI;MAAEzB;IAAM,CAAC,GAAG,IAAI,CAACF,KAAK;IAE1BE,KAAK,GAAG,CAAC,GAAGA,KAAK,CAAC;IAElB,KAAK,IAAIjB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGiB,KAAK,CAAChB,MAAM,EAAED,CAAC,IAAI,CAAC,EAAE;MACxC,IAAMoE,IAAI,GAAGnD,KAAK,CAACjB,CAAC,CAAC;MACrB,IAAM;QAAEF;MAAM,CAAC,GAAGsE,IAAI;MACtBA,IAAI,CAAChC,UAAU,GAAG,IAAI,CAACuB,eAAe,CAAC7D,KAAK,CAAC;IAC/C;IAEA,IAAI,CAAC+B,QAAQ,CAAC;MAAEZ;IAAM,CAAC,CAAC;EAC1B;EAEAwB,cAAcA,CAACF,GAAW,EAAEC,MAAc,EAA2B;IAAA,IAAzBrB,SAAS,GAAAkD,SAAA,CAAApE,MAAA,QAAAoE,SAAA,QAAAC,SAAA,GAAAD,SAAA,MAAG,KAAK;IAC3D,IAAM;MAAEhD;IAAM,CAAC,GAAG,IAAI,CAAChB,KAAK;IAC5B,IAAIgB,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,IAAIF,SAAS,EAAE;MACb,IAAI,CAACU,QAAQ,CAAC;QAAEV,SAAS,EAAE;MAAK,CAAC,CAAC;IACpC;IAEA,IAAMoD,YAAY,GAAG/B,MAAM,GAAGD,GAAG,GAAG,CAAC;IACrC,IAAM2B,MAAM,GAAGM,IAAI,CAACC,GAAG,CAAC,CAAC,EAAElC,GAAG,GAAGgC,YAAY,GAAG,CAAC,CAAC;IAClD,IAAMJ,SAAS,GAAGK,IAAI,CAACC,GAAG,CAACP,MAAM,EAAE1B,MAAM,GAAG+B,YAAY,GAAG,CAAC,CAAC;IAE7D7E,GAAG,CAACkE,MAAM,CAAC,kBAAkB,EAAEM,MAAM,EAAE,GAAG,EAAEC,SAAS,CAAC;IACtD9C,KAAK,CAACqD,WAAW,CAACR,MAAM,EAAEC,SAAS,CAAC;EACtC;EAEAQ,MAAMA,CAAA,EAAiB;IACrB,IAAM;MAAEzD,MAAM;MAAEC,SAAS;MAAEF,KAAK;MAAED;IAAU,CAAC,GAAG,IAAI,CAACD,KAAK;IAE1D,oBACEtB,KAAA;MAAK6D,SAAS,EAAC,2BAA2B;MAAAC,QAAA,gBACxChE,IAAA,CAACJ,eAAe;QACd6B,SAAS,EAAEA,SAAU;QACrBC,KAAK,EAAEA,KAAM;QACbC,MAAM,EAAEA,MAAO;QACf0D,QAAQ,EAAE,IAAI,CAACrE,YAAa;QAC5BsE,gBAAgB,EAAE,IAAI,CAACpE,oBAAqB;QAC5CqE,GAAG,EAAEhE,IAAI,IAAI;UACX,IAAI,CAACA,IAAI,GAAGA,IAAI;QAClB;MAAE,CACH,CAAC,eACFvB,IAAA,CAACH,cAAc;QAAC2F,EAAE,EAAE5D,SAAU;QAAC6D,YAAY;QAACC,aAAa;QAAA1B,QAAA,eACvDhE,IAAA;UAAK+D,SAAS,EAAC,cAAc;UAAAC,QAAA,eAC3BhE,IAAA,CAACL,cAAc;YAACoE,SAAS,EAAC;UAAuB,CAAE;QAAC,CACjD;MAAC,CACQ,CAAC;IAAA,CACd,CAAC;EAEV;AACF;AAAChD,eAAA,CAhQKV,oCAAoC,kBAIlB;EACpB8B,eAAe,EAAE,IAAI;EACrBd,cAAc,EAAE,EAAE;EAClB0B,QAAQ,EAAEA,CAAA,KAAYgC;AACxB,CAAC;AA0PH,eAAe1E,oCAAoC","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"AdvancedFilterCreatorSelectValueList.js","names":["React","PureComponent","LoadingSpinner","SelectValueList","FadeTransition","Log","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorSelectValueList","indexOf","value","values","i","length","v","valueOf","constructor","props","_defineProperty","handleSelect","bind","handleViewportChange","handleSelectionUpdate","handleTableUpdate","_this$props","selectedValues","dh","list","state","itemCount","items","offset","isLoading","componentDidMount","table","startListening","componentDidUpdate","prevProps","_this$props2","filters","invertSelection","stopListening","resetViewport","setState","applyFilter","componentWillUnmount","itemIndex","selectedIndex","splice","push","isSelected","visibleItemIndex","onChange","top","bottom","updateViewport","updateItemSelection","event","_this$props3","formatter","data","detail","column","columns","r","rows","row","get","displayValue","className","children","getFormattedString","type","name","isValueSelected","debug2","size","addEventListener","Table","EVENT_UPDATED","removeEventListener","topRow","bottomRow","item","arguments","undefined","viewportSize","Math","max","setViewport","render","_this$state","onSelect","onViewportChange","ref","in","mountOnEnter","unmountOnExit"],"sources":["../src/AdvancedFilterCreatorSelectValueList.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent, type ReactElement } from 'react';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { type Formatter } from '@deephaven/jsapi-utils';\nimport {\n LoadingSpinner,\n SelectValueList,\n type SelectItem,\n FadeTransition,\n} from '@deephaven/components';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('AdvancedFilterCreatorSelectValueList');\n\ninterface AdvancedFilterCreatorSelectValueListProps<T> {\n dh: typeof DhType;\n selectedValues: (T | null)[];\n table?: DhType.Table;\n filters: DhType.FilterCondition[];\n invertSelection: boolean;\n onChange: (selectedValues: (T | null)[], invertSelection: boolean) => void;\n formatter: Formatter;\n}\n\ninterface AdvancedFilterCreatorSelectValueListState<T> {\n itemCount: number;\n items: SelectItem<T>[];\n offset: number;\n selectedValues: (T | null)[];\n isLoading: boolean;\n}\n/**\n * Select values from a long scrollable list.\n * Swaps items in and out for infinite scrolling\n */\nclass AdvancedFilterCreatorSelectValueList<T = unknown> extends PureComponent<\n AdvancedFilterCreatorSelectValueListProps<T>,\n AdvancedFilterCreatorSelectValueListState<T>\n> {\n static defaultProps = {\n invertSelection: true,\n selectedValues: [],\n onChange: (): void => undefined,\n };\n\n /**\n * Get the index of a value in an array. Has some special handling for some types, like DateTimes and Longs.\n * @param value The value to search for\n * @param values The array of values to search within\n */\n static indexOf(value: unknown, values: unknown[]): number {\n for (let i = 0; i < values.length; i += 1) {\n const v = values[i];\n if (\n v === value ||\n (v != null &&\n v.valueOf != null &&\n value != null &&\n value.valueOf != null &&\n v.valueOf() === value.valueOf())\n ) {\n return i;\n }\n }\n\n return -1;\n }\n\n constructor(props: AdvancedFilterCreatorSelectValueListProps<T>) {\n super(props);\n\n this.handleSelect = this.handleSelect.bind(this);\n this.handleViewportChange = this.handleViewportChange.bind(this);\n this.handleSelectionUpdate = this.handleSelectionUpdate.bind(this);\n this.handleTableUpdate = this.handleTableUpdate.bind(this);\n\n const { selectedValues, dh } = this.props;\n\n this.dh = dh;\n this.list = null;\n\n this.state = {\n itemCount: 0,\n items: [],\n offset: 0,\n selectedValues,\n isLoading: true,\n };\n }\n\n componentDidMount(): void {\n const { table } = this.props;\n if (table) this.startListening(table);\n }\n\n componentDidUpdate(\n prevProps: AdvancedFilterCreatorSelectValueListProps<T>\n ): void {\n const { filters, invertSelection, selectedValues, table } = this.props;\n if (prevProps.table !== table) {\n if (prevProps.table) this.stopListening(prevProps.table);\n if (table) this.startListening(table);\n this.resetViewport();\n }\n\n if (prevProps.invertSelection !== invertSelection) {\n this.setState({ selectedValues: [] }, this.handleSelectionUpdate);\n }\n\n if (prevProps.selectedValues !== selectedValues) {\n this.setState({ selectedValues }, this.handleSelectionUpdate);\n }\n\n if (prevProps.filters !== filters) {\n table?.applyFilter(filters);\n this.resetViewport();\n }\n }\n\n componentWillUnmount(): void {\n const { table } = this.props;\n if (table) this.stopListening(table);\n }\n\n dh: typeof DhType;\n\n list: SelectValueList<T> | null;\n\n handleSelect(itemIndex: number, value: T | null): void {\n const { invertSelection } = this.props;\n let { selectedValues } = this.state;\n selectedValues = [...selectedValues];\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n if (selectedIndex >= 0) {\n selectedValues.splice(selectedIndex, 1);\n } else {\n selectedValues.push(value);\n }\n\n let isSelected = selectedIndex < 0;\n if (invertSelection) {\n isSelected = !isSelected;\n }\n\n const { offset } = this.state;\n let { items } = this.state;\n items = [...items];\n const visibleItemIndex = itemIndex - offset;\n if (visibleItemIndex >= 0 && visibleItemIndex < items.length) {\n items[visibleItemIndex].isSelected = isSelected;\n }\n\n this.setState({ items, selectedValues });\n\n const { onChange } = this.props;\n onChange(selectedValues, invertSelection);\n }\n\n handleViewportChange(top: number, bottom: number): void {\n this.updateViewport(top, bottom);\n }\n\n handleSelectionUpdate(): void {\n this.updateItemSelection();\n }\n\n handleTableUpdate(event: DhType.Event<DhType.ViewportData>): void {\n const { table, formatter } = this.props;\n if (!table) return;\n\n const data = event.detail;\n const { offset } = data;\n const items = [];\n const column = table.columns[0];\n for (let r = 0; r < data.rows.length; r += 1) {\n const row = data.rows[r];\n const value = row.get(column);\n let displayValue: string | JSX.Element;\n if (value == null) {\n displayValue = <i className=\"text-muted\">null</i>;\n } else if (value === '') {\n displayValue = <i className=\"text-muted\">empty</i>;\n } else {\n displayValue = formatter.getFormattedString(\n value,\n column.type,\n column.name\n );\n }\n const isSelected = this.isValueSelected(value);\n items.push({\n displayValue,\n value,\n isSelected,\n });\n }\n\n log.debug2('Received table update:', offset, items.length);\n\n const itemCount = table.size;\n this.setState({ itemCount, items, offset, isLoading: false });\n }\n\n isValueSelected(value: T): boolean {\n const { invertSelection } = this.props;\n const { selectedValues } = this.state;\n\n // Need to check if any of the valueOf matches, timestamp value that is equal\n const selectedIndex = AdvancedFilterCreatorSelectValueList.indexOf(\n value,\n selectedValues\n );\n\n return invertSelection ? selectedIndex < 0 : selectedIndex >= 0;\n }\n\n startListening(table: DhType.Table): void {\n table.addEventListener(this.dh.Table.EVENT_UPDATED, this.handleTableUpdate);\n }\n\n stopListening(table: DhType.Table): void {\n table.removeEventListener(\n this.dh.Table.EVENT_UPDATED,\n this.handleTableUpdate\n );\n }\n\n resetViewport(): void {\n if (this.list && this.list.topRow != null && this.list.bottomRow != null) {\n this.updateViewport(this.list.topRow, this.list.bottomRow, true);\n }\n }\n\n updateItemSelection(): void {\n let { items } = this.state;\n\n items = [...items];\n\n for (let i = 0; i < items.length; i += 1) {\n const item = items[i];\n const { value } = item;\n item.isSelected = this.isValueSelected(value);\n }\n\n this.setState({ items });\n }\n\n updateViewport(top: number, bottom: number, isLoading = false): void {\n const { table } = this.props;\n if (table == null) {\n return;\n }\n\n if (isLoading) {\n this.setState({ isLoading: true });\n }\n\n const viewportSize = bottom - top + 1;\n const topRow = Math.max(0, top - viewportSize * 3);\n const bottomRow = Math.max(topRow, bottom + viewportSize * 3);\n\n log.debug2('Setting viewport', topRow, ',', bottomRow);\n table.setViewport(topRow, bottomRow);\n }\n\n render(): ReactElement {\n const { offset, isLoading, items, itemCount } = this.state;\n\n return (\n <div className=\"select-value-list-wrapper\">\n <SelectValueList\n itemCount={itemCount}\n items={items}\n offset={offset}\n onSelect={this.handleSelect}\n onViewportChange={this.handleViewportChange}\n ref={list => {\n this.list = list;\n }}\n />\n <FadeTransition in={isLoading} mountOnEnter unmountOnExit>\n <div className=\"loading-list\">\n <LoadingSpinner className=\"loading-spinner-large\" />\n </div>\n </FadeTransition>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorSelectValueList;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,14 +10,12 @@ export function isColumnHeaderGroup(x) {
|
|
|
10
10
|
}
|
|
11
11
|
export default class ColumnHeaderGroup {
|
|
12
12
|
constructor(_ref) {
|
|
13
|
-
var
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
parent
|
|
20
|
-
} = _ref;
|
|
13
|
+
var name = _ref.name,
|
|
14
|
+
children = _ref.children,
|
|
15
|
+
color = _ref.color,
|
|
16
|
+
depth = _ref.depth,
|
|
17
|
+
childIndexes = _ref.childIndexes,
|
|
18
|
+
parent = _ref.parent;
|
|
21
19
|
_defineProperty(this, "name", void 0);
|
|
22
20
|
_defineProperty(this, "children", void 0);
|
|
23
21
|
_defineProperty(this, "depth", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnHeaderGroup.js","names":["GridUtils","memoizeOne","Log","log","module","isColumnHeaderGroup","x","ColumnHeaderGroup","constructor","_ref","name","children","color","depth","childIndexes","parent","_defineProperty","movedItems","flattenedIndexes","flat","visibleIndexes","getVisibleIndexes","start","Math","min","end","max","length","warn","concat","undefined","setParent","addChildren","newChildren","Set","removeChildren","forEach","delete","isNew","startsWith","NEW_GROUP_PREFIX","isValid"],"sources":["../src/ColumnHeaderGroup.ts"],"sourcesContent":["import {\n type MoveOperation,\n GridUtils,\n type ModelIndex,\n type BoundedAxisRange,\n type IColumnHeaderGroup,\n} from '@deephaven/grid';\nimport memoizeOne from 'memoize-one';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('ColumnHeaderGroup');\n\nexport function isColumnHeaderGroup(x: unknown): x is ColumnHeaderGroup {\n return x instanceof ColumnHeaderGroup;\n}\n\nexport type ColumnHeaderGroupConfig = {\n name: string;\n children: string[];\n color?: string | null;\n depth: number;\n childIndexes: ModelIndex[];\n parent?: string;\n};\n\nexport default class ColumnHeaderGroup implements IColumnHeaderGroup {\n static NEW_GROUP_PREFIX = ':newGroup';\n\n name: string;\n\n children: string[];\n\n depth: number;\n\n parent?: string;\n\n color?: string;\n\n childIndexes: ModelIndex[];\n\n constructor({\n name,\n children,\n color,\n depth,\n childIndexes,\n parent,\n }: ColumnHeaderGroupConfig) {\n this.name = name;\n this.children = children;\n this.color = color ?? undefined;\n this.depth = depth;\n this.childIndexes = childIndexes;\n this.parent = parent;\n }\n\n getVisibleRange = memoizeOne(\n (movedItems: readonly MoveOperation[]): BoundedAxisRange => {\n const flattenedIndexes = this.childIndexes.flat();\n const visibleIndexes = GridUtils.getVisibleIndexes(\n flattenedIndexes,\n movedItems\n );\n\n const start = Math.min(...visibleIndexes);\n const end = Math.max(...visibleIndexes);\n\n if (end - start !== flattenedIndexes.length - 1) {\n log.warn(`Column header group ${this.name} is not contiguous`);\n }\n\n return [start, end];\n }\n );\n\n setParent(parent: string | undefined): void {\n this.parent = parent;\n }\n\n addChildren(children: string[]): void {\n const newChildren = new Set(this.children.concat(children));\n this.children = [...newChildren];\n }\n\n removeChildren(children: string[]): void {\n const newChildren = new Set(this.children);\n children.forEach(name => newChildren.delete(name));\n this.children = [...newChildren];\n }\n\n get isNew(): boolean {\n return this.name.startsWith(ColumnHeaderGroup.NEW_GROUP_PREFIX);\n }\n\n /**\n * Checks if a group is valid.\n * An invalid group needs to be re-parsed with the corresponding model.\n * @returns true if the group is valid (all children have indexes)\n */\n isValid(): boolean {\n return this.children.length === this.childIndexes.length;\n }\n}\n"],"mappings":";;;AAAA,SAEEA,SAAS,QAIJ,iBAAiB;AACxB,OAAOC,UAAU,MAAM,aAAa;AACpC,OAAOC,GAAG,MAAM,gBAAgB;AAEhC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,mBAAmB,CAAC;AAE3C,OAAO,SAASC,mBAAmBA,CAACC,CAAU,EAA0B;EACtE,OAAOA,CAAC,YAAYC,iBAAiB;AACvC;AAWA,eAAe,MAAMA,iBAAiB,CAA+B;EAenEC,WAAWA,CAAAC,IAAA,EAOiB;IAAA,
|
|
1
|
+
{"version":3,"file":"ColumnHeaderGroup.js","names":["GridUtils","memoizeOne","Log","log","module","isColumnHeaderGroup","x","ColumnHeaderGroup","constructor","_ref","name","children","color","depth","childIndexes","parent","_defineProperty","movedItems","flattenedIndexes","flat","visibleIndexes","getVisibleIndexes","start","Math","min","end","max","length","warn","concat","undefined","setParent","addChildren","newChildren","Set","removeChildren","forEach","delete","isNew","startsWith","NEW_GROUP_PREFIX","isValid"],"sources":["../src/ColumnHeaderGroup.ts"],"sourcesContent":["import {\n type MoveOperation,\n GridUtils,\n type ModelIndex,\n type BoundedAxisRange,\n type IColumnHeaderGroup,\n} from '@deephaven/grid';\nimport memoizeOne from 'memoize-one';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('ColumnHeaderGroup');\n\nexport function isColumnHeaderGroup(x: unknown): x is ColumnHeaderGroup {\n return x instanceof ColumnHeaderGroup;\n}\n\nexport type ColumnHeaderGroupConfig = {\n name: string;\n children: string[];\n color?: string | null;\n depth: number;\n childIndexes: ModelIndex[];\n parent?: string;\n};\n\nexport default class ColumnHeaderGroup implements IColumnHeaderGroup {\n static NEW_GROUP_PREFIX = ':newGroup';\n\n name: string;\n\n children: string[];\n\n depth: number;\n\n parent?: string;\n\n color?: string;\n\n childIndexes: ModelIndex[];\n\n constructor({\n name,\n children,\n color,\n depth,\n childIndexes,\n parent,\n }: ColumnHeaderGroupConfig) {\n this.name = name;\n this.children = children;\n this.color = color ?? undefined;\n this.depth = depth;\n this.childIndexes = childIndexes;\n this.parent = parent;\n }\n\n getVisibleRange = memoizeOne(\n (movedItems: readonly MoveOperation[]): BoundedAxisRange => {\n const flattenedIndexes = this.childIndexes.flat();\n const visibleIndexes = GridUtils.getVisibleIndexes(\n flattenedIndexes,\n movedItems\n );\n\n const start = Math.min(...visibleIndexes);\n const end = Math.max(...visibleIndexes);\n\n if (end - start !== flattenedIndexes.length - 1) {\n log.warn(`Column header group ${this.name} is not contiguous`);\n }\n\n return [start, end];\n }\n );\n\n setParent(parent: string | undefined): void {\n this.parent = parent;\n }\n\n addChildren(children: string[]): void {\n const newChildren = new Set(this.children.concat(children));\n this.children = [...newChildren];\n }\n\n removeChildren(children: string[]): void {\n const newChildren = new Set(this.children);\n children.forEach(name => newChildren.delete(name));\n this.children = [...newChildren];\n }\n\n get isNew(): boolean {\n return this.name.startsWith(ColumnHeaderGroup.NEW_GROUP_PREFIX);\n }\n\n /**\n * Checks if a group is valid.\n * An invalid group needs to be re-parsed with the corresponding model.\n * @returns true if the group is valid (all children have indexes)\n */\n isValid(): boolean {\n return this.children.length === this.childIndexes.length;\n }\n}\n"],"mappings":"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","ignoreList":[]}
|